Here’s a funny queston. How do you solder 78 separate APA102-2020 onto a board?
Just in case it isn't clear, each of these has 8 pads (6 active) and each unit only 2mm on each side. These parts are TINY!
I normally make SMT prototypes by dabbing the pads with a toothpick covered with solder paste. I then reflow with a hot air rework station. However, that approach didn’t seem too appealing given the large number of pads involved.
Therefore, I decided to spent another late night making a mylar stencil. Several reasons for this extra step. First, I was intimidated by the prospect of dabbing ~500 pads. Secondly, I knew I might need to take a few turns on the design so figured it was high time to learn how to make stencils. Thirdly, I had previously learned that hand-dabbing the pads led to very inconsistent results for leadless chips like the APA102 and I wanted to avoid problems.
In short, making my own stencil would be an investment in saving time in the future.
I ordered a bunch of mylar transparencies from Ebay a year ago just for this very purpose. I had been keeping them at Cambridge Hackspace while waiting for the “right time”. So I headed over to the lab, and spent an entire evening painfully teaching myself the art of making stencils.
In my case, stencil making involved transferring a solder mask into RDWorks which then in turn drives the hackspace laser cutter. For my tests, I started by using a different board I knew really well and brought along some solder paste so I could do a full end-to-end test. This test was on another board design, not the pendant, since at that time I didn't have the PCB boards back from OSHPark.
Making stencils proved to be painful process of finetuning laser power and speed to get a cut just right without burning or mutilating the plastic.
Unfortunately, this process left a lot to be desired. Even with careful attention to laser power, it appeared unavoidable that the mylar got a little bumpy. I worried these bumps would come back to bite me, since they would mean more pockets for the solder paste to stick, thus weaking the consistency of the layer. Sadly, I didn’t find any alternative approaches and was stuck with the bumps at the end of the evening.
A few days later, the post man dropped off 3 shiny boards from OSH Park. Once the boards arrived, I used my new stencil to apply some solder paste. Just as I feared, the layer was very inconsistent. Quite disappointed, I consigned myself to the knowledge that future rework was almost certainly going to be required.
My setup is simple. I hold the board in a stickvise and use tweezers to place each part. I did all of this with a binocular microscope. If you are over the age of 40 or have poor vision, a stereoscopic microscope is essential for SMT work.
In this case, there were 78 APA 102s that each had to be in the correct orientation.
Patience is a virtue when it comes to SMT.
After initial placement, it was time to reflow. I carefully applied 270C of heat using a hot air tool, pressing each LED gently with ESD tweezers to ensure each pad was wet and to ensure the surface tension grabbed each part into its proper position.
So, an hour later, 78 addressable LEDs were placed and soldered.
Heeding some earlier experience, I elected to not populate the back of the board with the control circuitry until i was sure that the chips were placed correctly. I knew that the board was unlikey to work and more rework would be necessary, so given the board was going to undergo a lot of temperature changes in the resulting fixes, it didn’t make sense to put expensive components on the reverse side until later. Instead, I placed some wires against some testpoints so I could power and write to the board.
My setup now looked like this:
First, I did some continuity tests to see what would happen. Seeing no obvious shorts, I now decided to apply voltage.
Layout for this board was really hard since I don't have a professional version of Eagle. So I was confined to 2 layers.
With some scrupulous care, I managed to layout the back of the board in a way that needed minimum vias. This meant that the top of the board could focus on the 78 APA102 LED chips. And the bottom of the board could focus on the SAMD21 (Arduino compatible circuitry.)
Getting this whole thing to route was a real pain in the ass. However, I started to learn how the Eagle route optimizer works. I had never realized it before, but Eagle basically sets up several different routing jobs and runs them in parallel trying to find the one that gives the best result. Each of these jobs typically just varies the direction of the vias and the routing grid.
I knew from hours of empirical tests trying to get this board to route that a routing grid between 0.1 and 0.15 was necessary to make the APA102s happy. Therefore, I set up the router manually to vary just that setting:
This acheived some reasonable success, however, there were still some glitches where the router kept painting itself in the wall, unable to "untangle" itself from vias from the back to the front. Eagle has a strange quirk in the way it handles routing. It first tries to just get any 100% net route that it can. And then it optimizes trying to cut out routes or wigging lines to avoid vias and long traces. The problem is that once Eagle "lays down" a via during the initial pass, its is reluctant to get rid of them. However, I found that increasing the router cost for a via was quite successful at prevent this from happening, forcing Eagle to get the routing "right" up front:
Doubling the cost from 8 to 15 did the trick.
Now I got a fully routed board!
Now it was off to OSH park to get this to the fab!
A few days later, I held in my hand something very cool:
Call me a softie, but there is something really cool about hold this little object seeing all of the places for the leds!
Step one was a design. I've used APA102-2020s in some previous designs, and really love how small they are. However, I've never seen anyone incorporate them in a wearable.
First thing was developing the shape of the heart. I did this by looking at different heart shapes online and then using illustrator to make a simple curve. Frankly I didn't like nearly any heart shown by google, so ended up branching up a bit on my own with the shape:
Next, I used a painful process to add points and then export to DXF for eagle which ignores the curves and assumes straight lines connect everything. Grrr.
Now I used Illustrator to inset this shape a few ways to create the outlines. As you can see, this took some trial and error.
Now, it was time to lay out a schematic. Fortunately, I have footprints and plenty of sub-circuts already set up. These days, I am pushing a SAMD21-based design to OSHPark about once a week, and I use a very consistent net naming convention. It took me just a few minutes to paste in a level shifter, a MOSFET, a SAMD21 MCU and LiPo charger.
Now came the very very painful part - slowly laying out each LED in a position.
You might think I wrote a fancy ULP script to do this in Eagle to save me from the hours of manual labor to manually rotate each LED to exactly right place and to creating the right spacing along a path.
Sadly, I did not create such a ULP. :(
So after the better part of an afternoon, I had this:
The next challenge was laying out the entire board and routing. See the next journal entry.