Board Build-out and Testing, Plus First Light!
As I posted earlier I now have a test board in hand. I had to wait for a solder stencil to arrive as well, which I'll explain below. So now I can build one and see if months of design has paid off!
How to Build Modern Electronics
I'm pretty fascinated with the process of soldering today's insanely tiny electronics. Kickstarter always puts images down at the bottom, so I'll try to post them in order as I explain it here. Also: All the really tiny parts will come soldered in the kit, so don't panic as you read this! It's 2012 and we have robots that do this kind of work :)
Step One: Lay Out Your Parts
The solder paste doesn't stay wet long, so ideally you want everything laid out in advance for easy transferring. I only soldered up one board, so I used one of the other ones to place all the pieces (pic2 ).
Step Two: Align Stencil
Solder paste is a messy material. It has the consistency of cake icing and tends to just mush everywhere. In order to get it on the board in precision amounts a stencil is used. Since I'm only using this stencil for the test boards I had it made of kapton (a plastic), cut out with a laser cutter. (pic 3)
The trick is getting the very small holes lined up across the board. It might look good in one corner but a slight rotation or misalignment will make it completely off in the other corner. You can tell it's right when the you can't see any of the green board through the stencil holes. (pic 4-5)
Step Three: Squeegee
Now I'm all set up to lay down the solder paste. A line of it is squeezed out on one edge of the board and a small squeegee is used to pull it across the board. (pic 6) You pretty much have to get it right in one go, everything is small and the kapton is flexible so it will move around if you try and mess with it. A swift but purposeful stroke is used with even pressure across the whole thing. The result is all the wholes are filled with grey solder paste! (pic 7)
Step Four: Add the Parts
After carefully lifting the kapton stencil off I could then place all the parts on the board. Having already laid them out this was just as easy as picking them up with tweezers and dropping them onto the pasted board. Of course now I had to get the alignment exactly right. It takes a little bit of patience and a steady hand. Ideally you want to place the part straight down onto the board into the paste exactly right since lifting it back up or moving it tends to smear the solder paste that was so carefully laid out by the stencil. (pic 8)
Step Five: Bake!
So now all you have to do is heat it up so the solder melts. I carefully moved the populated board onto a nonstick hotplate -- originally made for cooking bacon, now used just for making electronics (and never used for cooking again since it's contaminated). I had a temperature probe on the hotplate as well to keep an eye one it. (pic 9)
I let it preheat at around 100 C for a minute before bringing it up to around 200 C. The board smokes alarmingly as the rosin in the solder paste burns off, and the suddenly you can see the grey paste turn silver as it melts. A few seconds later and the whole board has re-flowed and all the parts are sitting in silvery solder.
Then the hotplate is turned off and about half an hour later everything is back at room temperature and magically everything (around 60 parts total) is soldered on!
After hand soldering the large, through hole stuff (switches and headers) I have a complete test board.
Well the next step is to plug it in and see what happens. And the answer is: nothing. Well of course, nothing is programmed on the computer chip yet -- still fresh from the factory. But I should see definitely not see one thing: it should not draw more than few miliAmps, if it does then something is wrong in a bad way -- like a short circuit somewhere.
So with held breath watching the Ammeter I plugged it in a flipped the switch.
And nothing, just a tiny trickle of around 1 mA. Phew. But actually that was too little current so I think something else if wrong. Using a voltage probe I found that the switching power supply (going from 5V USB to 3.3V) on the board was off. Some more poking and the issue was found.
VINA vs EN
In order to turn off the board when the battery gets too low there is a voltage divider (see earlier post) that is tuned to the battery voltage and fed into both the "VINA" (voltage in analog )and "EN" (enable) pins on the switcher. At the time I thought these both did the same thing, and basically they do, but with one key difference. The VINA pin draws a fair amount of current to run its analog comparator. The upshot being that the pin acts like a small resistor that's in parallel with the voltage divider resistors. This threw off the math so bad that the pin is below the cutoff voltage and the power chip will not turn on. This of course is what it's designed to do, it's just doing it at the wrong voltage. So I took some much smaller resistors and replaced the ones on the board real quick. (pic 10)
It actually took two tries since it was guess and check kind of thing. But with the right resistors in place I switched it on again and now it draws 10 mA or so. Much more like what I was expecting. More probing showed that the power was on and there was 3.3V everywhere on the board! And no shorts, no mod wire, just a simple change of resistor values.
If only that were it :)
Now I had to get something programmed on the chip and see if I can get the peripherals (like the LEDs) up and running. I have a new code repository on git hub for firmware:
I used an AVR ISP programmer with the header on the board to upload a simple blinking code and nothing happened. Turns out for a couple of reasons. First I found out PORT D wont be an output until you turn off the JTAG interface -- lost a few hours to that one. And it doesn't work because there are no set resistors on the LED driver boards. Of course I knew that. I am waiting to test the brightness and color of the LEDs to color balance them before choosing resistor values. For now I soldered a 10k resistor across the red driver.
So after all that it works! I can turn on and off the red lights at least (last pic). Lots more work to be done in testing and to get the whole board up and running, but so far so good!