First (real) surface mount design and assembly
One of the hardware systems of Super Street Fire unrelated to fire control is the motion sensing gloves we use for gesture recognition. While playing the game, players wear special gloves which have multiple accelerometers, gyroscopes, and magnetometers in them. The gloves take the sensor data and stream it wirelessly to a central control system which does gesture recognition. The control system then activates the fire control system based on what gestures are recognized - for example, a punch will send a wave of fire towards the other player, but different kinds of punches will change the timing and amount of fire. A jab will send one quick wave, while an uppercut will be slower but activate two flame effects at the same time.
The gloves were originally assembled using off the shelf parts. The main components of the glove hardware are an Arduino-compatible IMU, a radio, and a LiPo battery charger. The first prototype used SparkFun boards, attached to plastic pieces:
Once the gloves were successfully streaming data, the parts were boxed up for protection. The original gloves used XBee radios, but we moved to WiFly in the second year due to range issues. This also required the use of the Adafruit XBee Adapter Kit instead of the SparkFun XBee Explorer, as the version at the time did not do proper level shifting. The second year gloves had three boxes, one each for the IMU, radio, and LiPo battery and charger:
While this glove design worked (and was held together by beautiful leatherwork done by Carl Penny), it was still bulky, rattled when people threw strong punches, and the quality of some of the boards was a bit suspect - we lost multiple Micro USB connectors from the SparkFun charger boards.
Up until a few weeks ago, I hadn't done any real surface mount electronics design, and only a small amount of SMD assembly. A glove hardware redesign seemed like a good project to work on, so I decided to make custom glove hardware that would incorporate all of these components into one board. The design goal was to have an Arduino-compatible board, using a ATMega32u4 microcontroller, with integrated 6- or 9-axis IMU, headers for a WiFly radio, and LiPo battery charger. The gloves currently use 1000mAh LiPo batteries, so the board would hopefully be no larger than 2" x 1.32".
The first glove prototype came together quickly. I kept the parts mostly to 0805 as I'd been able to work with them before without any difficulty. The original design looks like this (minus many 3D models):
It uses the MCP73831 for LiPo charging, the 32u4 for the microcontroller, and the InvenSense MPU-9150 9-axis sensor. This would have to be a SMD project - the MPU-9150 only comes in a QFN package. The board production only took three days by Seeedstudio, giving me ten of these:
The plan was to use a stencil and solder paste - which, although I'd never done before, seemed like a good idea because I have a laser cutter. This took a decent amount of work using CorelDRAW, Inkscape, and LaserCut 5.1, but eventually gave me a stencil that was just about the correct size.
Some examples of testing with card stock to determine a good speed and power level:
The last of the parts came in today, so I attempted to put it together. First up was using the stencil and solder paste. This was the hardest part of the assembly - getting the paste to the pads cleanly and uniformly. I felt that this may have been way too much in some areas (especially the MPU-9150) and not enough in others, but figured I'd give it a shot:
Placing the parts was surprisingly easy using a pair of tweezers. I started with curved tweezers but eventually found regular ones were easier to work with:
From there, the board went on my hot plate. The smaller parts snapped into place easily, but there was definitely too much solder paste on the two chips. The 32u4 had many solder bridges, and the MPU-9150 didn't seat itself properly. I cleaned off some of the excess solder around the MPU-9150, reheated the board, and nudged the chip. It seemed to fall into place without too much trouble:
Unfortunately, I had no solder wick readily available, so I wasn't able to fix all the bridged pins on the 32u4. It definitely was way too much solder paste, giving huge bridges such as this one:
So while I haven't been able to test the new glove hardware prototype yet, the surface mount soldering for it was much easier than expected. The total time for placing parts and soldering was just under two hours, giving me this:
I'll be cleaning up the 32u4 tomorrow and testing the board's functionality then. I'll have a full technical writeup including schematics and layout files once it's been tested and any revisions have been made. This design looks like it will be a huge improvement over using off the shelf parts, and allow us to make gloves that look much nicer for our next run of Super Street Fire.