Little progress on the imote as of late because I was busy hammering out a massive PCB order for imotion, a cool Christmas wizmo (more on that later), and a new product called Logic. I managed to get that out the door at about 5AM Saturday morning.
Then it was back to the imote, and imote adhesive, the current bane of my existance. The adhesive is a two-part epoxy that hardens up in about 10 minutes. You mix it with a cool glue gun (see below). The trigger presses a plunger which ejects glue from the cartridge. The two parts are mixed in a long "mixer" which swirls the two together as they travel down the tube. Then a luer-lock attached syringe needle caps it all off, giving you a nice controllable output. That is, until the glue starts to harden up. Then you take off the needle push a bunch of glue through to clear it and put the needle back on. Yes, it's as messy as it sounds. Not great for small quantities. I went through at least 20 disposable gloves trying to keep the parts free of glue...
Anyway the main takeaway so far is that this isn't going to be easy. Basically the issue with gluing in the polycarbonate/plexy/glass is as follows: too little glue, you have a cosmetic problem because you can see the difference between where the glue is and isn't. To much, and it squeezes out the sides, becomes a cosmetic problem. So that has it's own class of potential solutions.
The other issue is that (stupidly) I figured the PCB could be installed with adhesive as well and so didn't design a mounting solution. So one solution is to design one up and through away all the parts I have (~800$) but let's call that a last resort. The first good solution is to combine the problem with that of the glass (not really glass but that's what I'm going to call it from now on) -- install the glass so that some glue overflows. Then dump a bunch more glue into the assembly on top of the glass, and stick the PCB in on top of that, allowing the glue to seep up through the apertures in the PCB and around the edge. Solution part two, is then to fill up the rest of the enclosure with glue (!) and install the top glass piece at the same time, squeezing out and cleaning up the extra at the same time. Luckily the adhesive I'm using is very well behaved and doesn't expand or contract noticeably otherwise obviously this would be out. The problem, though, is that 1) it looks like a fish bowl (index of refraction), it increases - probably doubles -- the weight, and most importantly makes little bubbles on the surface of the PCB/components where it reacts (presumably) with the residue on the surface. This last thing makes it a cosmetic issue.
To sum up, what looks like the best option now is to float the pcb in the adhesive but not fill up the part with adhesive. Then, install the other glass piece by 1) applying glue along the ridge and then 2) using a custom tool to essentially scrape out all but a controlled distribution of adhesive, such that when you put the glass in it's the perfect amount -- perfectly covering the ridge surface but not spilling out.
Ok, on to the pictures:

Ok, here we go. Better pictures soon (these are pretty bad), but here you can get a glimpse of what's coming. I'm pretty happy, it's going to be a nice product.


Check out this robot my brother just made for a robot competition in his freshman engineering class: it packs 2 DC gearhead motors, 3 IR range sensors, a National Instruments board of some sort, and a classic PIC 16F877, all elegantly packaged within or on top of a cardboard box. Woo!
Glass: When the imote's glass panels *finally* gets in after several weeks of anxious waiting, and among many other errors they send it to my home address, I drive home early from work (and return later) to meet up with the package about 4PM or so and arrive just when the USB van is pulling up. I rush upstairs, rip open the package and... well, the glass is not cut cosmetically. Turns out that the water jet process "pits" the surrounding surface. That and the path the jet takes puts a nice little notch in one end of the piece. In other words its not even close to looking good enough to use. So it's a no-go on water-jet glass. It's polycarbonate now! Eventually I'll figure out how to get glass machined but I'll start across that bridge a bit later.
Polycarbonate: So the imote polycarbonate panels need to me be machined, it can't be lasered because it apparently puts off all sorts of dangerous fumes. The quote comes back for this at about 14$/imote. Aggh. It'll have to do for now... It, along with 17 nice anodized red aluminum pieces are headed my way on ~tuesday next week. That will be cool to get! Also acriclic is ceranly a good option if polycarbonate ends up not being and better looking that acrylic. Acrylic can be easily lasered at a much lower price...
Aluminum to Polycarbonate Glue: I've got a guy coming out next week or so to evaluate a solution (glue type + applicator) for bonding the imote poly panels to the aluminum center piece. The challenge is that this thing needs to look like a million bucks!
Web Site. The website concept is up at http://www.saleae.com/test. It's rough, but roughly complete. I made a clean little php shopping cart and it's integrated with paypal, or at least mostly integrated. There's still a problem with a paypal api that would allow me to show the user their entire order details after they compete their purchase and get sent back to the saleae.com site. Not a show stopper. What's left? Cleanup + everything related to the imote: pictures, blurbs, etc. Shouldn't be too bad but I need the hardware + working software...
PCB: The PCB goes together well, works, and looks great! woo! I use a dremel cutting wheel to cut the pcbs out of the array, and then a sander attachment to clean up the tabs. That works well and is clean and fast. The parts look good on the black PCB. Looks sharp and pro even at qty 1. That's what we're going for!
Red LEDs: Now for the bad news. The device itself refuses to work. Took me 1.5 days to figure this out, but guess what the difference is between the two board revisions that causes the problems? Red leds, instead ot blue. Go, on try and figure out why the hell that would make a difference... Apparently the red is close enough to IR that when it's flashing (as the lights are, to control brightness) and next to the IR receiver... well, all kinds of garbage data gets reported... I'm not sure what I'm going to do. One possible solution is to simply not make a red imote. But there's several reasons why thats not attractive: blue costs more and offers a potential premium price point; green is lest trustworthy as an anodize color (that's a guess), and I've got 17 parts right now colored red and don't really want to strip them and do them over, adding more time and cost... That said, I may do exactly that. The only idea I have that might do the trick is to literally paint the back and sides of the IR receiver with black enamel. Or build some sort of baffle...
Going part time: Part time at Leapfrog starts... tomorrow! Which means a 3 day weekend for me -- and 4-day weekends from here on out! The downside of course is that my cashflow now becomes slightly negative, and the part time runs out at the end of January. I could probably continue to work part time after that... but probably shouldn't. Why? Because it's too easy. More importantly because I wouldn't learn anything or be scared out of complacency.
imote app: I started the App today. It's going to be great, and very clean. .NET is fantastic for doing something like this. I'm using plugin architecture so people can add media player support easily -- it should be simple, clean and easy. In somewhat unrelated news, I found out that Apple sells their IR remote on the Apple store -- by itself -- which means I could promote the fact that you could use it with the imote -- i.e. have a little bit of the nice mac media experience (and elegance) on your pc. If I can't sell it directly I could still collect referral commission for remotes bought in Apple's online store. Also may be able to re-sell them simple by buying from retailers who offer sharp discounts.
machining: When I'm bored at work -- ADDing out -- I really really want to build stuff. So I'm thinking that maybe this Christmas break I'll spend 1 week with my brother in a machine shop. Machining. Stuff. Woo!
Random: We have this old furnace in our house that runs on gas. So I fire it up last week - which took a bit of doing - and the cool thing is whenever you turn it on it flames out the bottom. This thing has no thermostat, no fan, and heats the hallway about 10deg warmer than any other room... but I have a special place in my heart for it.
Random 2: I fixed my brakes last weekend! I had been putting that off for ever... anyway every time I do that I forget how to do it and this was no exception. Anyway I end up putting these heavy things in a backpack and biking them 3 miles to get them machined... But now they are great! Like having a new(er) car....
Additionally I received the machined aluminum parts! Still waiting on the glass (so I can verify) and then I'm ordering a batch of these things anodized a nice color. Not sure what color yet, I'm thinking maybe red... or blue.
PCB Specs:
- Quantity: 200 on 2 panels
- Cost: 180$, including shipping.
- Tab routed (included in price -- I didn't have to lay it out)
- ROHS compliant
- Black solder mask
- Electrical Test
Well, honestly because I'm bored at work...

So tonight among other things I manually routed the iMote pcb -- which I've never really done before -- and discovered... it's kind of fun! It's a bit of a game, and you're creating something at the same time.
check it out, it's the PCB routing touring test: can you spot which of these was routed by a human?


Yup, the iMote works. Woo Hoo! Next up are PC App, Enclosure, Consumer packaging & web store.
Specs:
IC: Cypress CY7C63803-SXC, Flash 8K, 256b ram, low-speed usb, HID implementation
Firmware: Assembly language. Big time USB help via Cypress's PSoC setup. Relatively straightforward thanks to writing debug out data on a couple of pins and using a logic analyzer to capture the action.
LEDs: 4 LEDs updated over usb at ~120Hz; 256 brightness levels.
IR: IR receiver module. I don't have a line on the exact one I need, but it will be wide-band, i.e. able to decode remotes that modulate at between 34KHz and 58KHz which is essentially all of them.
PC Software SDK: The iMote has a clean and easy .NET SDK to get callbacks from the iMote, and to set the LED brightness.
PC Software (Consumer): This is what my brother Mark will be cranking out. Should be awesome so stay tuned.
Debug Setup:
Schematic. Dirt simple. That's why I'm doing this project first.
PCB...
SDK Debug Output
Some assembly language for you
And some C# for you
Logic Analyzer Output -- top 2 lines are quick and dirty debug output from the imote, and the bottom line is IR data.