We’ve been brewing an electronic project for some time now. Ever since we entered the SMD prototyping phase, there has been many questions about making an effective test/programming setup as the size of our prototypes was getting smaller and smaller. There wasn’t much real estate left to place test LEDs or things like extra screw holes.
We had heard about bed of nails but it seemed like a fancy industrial setup only accessible to large factories. After much experimentation, we decided that it was time to update our process and get into easily reproducible precision.
Note: You’ll find our design files for the pogo pin setup at the end of this post, anyone can use it and make his/her own precision pogo jigs.
Pogo pins have been around for a while, they are neat , small needles with a spring. Pogo pins are great resources, just with one drawback: they are relatively fragile.
If you aren’t already familiar with them, check out these blog entries. Most of the tutorials about pogo pins show more or less the same basic structure: 1 PCB board (pogo bed) is attached with sets of pogo pins, then a board (the one to be tested/programmed) placed on top of the pogo pins. 2 boards are joined by screws and counterscrews. Sometimes a toggle clamp is used.
Oftentimes, the layout of pogo pins has to be regular, following a grid or straight lines on the PCB. We’d like to benefit from the size of pogo pins to free up design, and allow different arrangements for pogo pins.
In addition, alignment between pins and PCBs is done either by hand or by screwing the boards together. Not very fast or repeatable :(
Limitations and tedium
No matter how good these tutorials are (and they are), there is an intense manual process of soldering pogo pins at right angle and they often don’t quite precisely align to all the contacts.
- This gets worse as the PCB gets smaller. It requires more and more attention since the test/programming setup itself becomes small and fragile. There is a risk of shorting components or mis-contacts.
- Contact pads on the test PCBs tend to be all constrained to a straight line to ease pogo alignment and this further limits PCB design.
- The 3 mm of travel most pogo pins afford seems to be used fully, causing shaky insertion when those pogo pins are pressed: using bouncy pogo pins as support doesn’t provide a stable hold. When the pogo pins aren’t inserted perfectly flat, shorts or pins missing are possible, creating false contacts, or permanent damages.
For all these reasons we decided to look for a safer method.
A scalable solution
After much experimentation, we decided to use an inexpensive 3D printer¹ to design our precision pogo jig.
This mini architecture functions like a sandwich with the 3D printed structure in the middle with pogo pins inserted.
The 3D print serves 4 tasks:
- A volume to hold all the pogo pins
- An area for board drop-in
- An anchor for the pogo bed
- A holder for a toggle clamp
The assembly is really 3 steps. The steps are :
- Insert pogo pins into the 3D print
- Solder the pogo pins to the pogo bed
- Mount a toggle clamp
Drop in a test board and clamp the test board. The test board is ready to be connected. It looks like this in the real world :
Precision and 3D printing
The pogo pins we used for our board were as close as 0.091" (2.3 mm). Our printer could go to a minimum distance of 0.055" (1.4mm). The limiting factor here is the printer nozzle. We kept the standard 0.4mm nozzle but with a better printer or simply one that can change its nozzle, you might get even better results.
You don’t have to worry anymore about the placement of the pins, they don’t need to be spread evenly across the plane or aligned. The support afforded by the 3D printed holder doesn’t constrain the placement of your test pads on your board.
Pogo pins alignment
The pogo pins can be inserted by hand through the print. We left a small space (a tolerance) in each hole so that it fits snug.
We wanted the pogo pins to stay in their position and remain flushed to the soldering point on the test board. But how should we align them together?
Simply push a pin until you see the golden part emerge from the holder. We included tolerances so this operation doesn’t have to be precise. In fact, if you look at the picture above, you’ll see that one of our pins is not aligned well. That’s ok, with a 1mm travel for each pin, they will still all touch their target.
When a pogo pin is in position, its head is exposed beyond the 3D printed support. It’s held just right so that each pogo can’t fall out or tilt when the jig is moved. This adequate tightness is essential since in order to solder the pogo pins, we needed to flip the jig around.
Soldering to the pogo bed
The pogo bed is a PCB that‘s soldered with all the pogo pins. In order to get the holder and the bed tightly together, we created anchor points on the holder and holes in the PCB (see red arrow in the image below). This way the two fit really well even before any soldering takes place. The tolerance for the hole-anchor gap is 0.004" (0.1mm).
On the pogo bed, there are vias (plated holes, indicated by the purple arrow) made to fit the pogo pins. On the image below, only some of the vias have pogo pins, and you can see (orange arrow on the image) these are located flushed to the surface, they are designed to leave a small gap for soldering.
There is no heat issues with the printed holder during soldering, since the point of solder is far away from where the print is and the pogo pins themselves are upside down avoiding most of the heat conduction.
After soldering all the pins to the pogo bed, it is virtually inseparable from the holder. The strength surprised us as we thought this would be the weakest point of the system. The strength of solder combined with locking anchors on the holder makes it a robust setup.
Punch with precision
Mounting a toggle clamp is useful for long programming/testing sessions. You could use your hand to press and hold your board down as it is being connected (we tried, that was fun) but it’s only going to be good for testing boards quickly.
We added a medium toggle clamp that presses 0.039" (1mm) down from the middle of the test board. With that, we can communicate and upload programs for hours. You can even shake the board if you have a motion sensor, it won’t go away!
This travel motion of 0.039" (1mm) is essential to avoid issues with boards placed at an angle. Longer travel would open the possibility for misalignment of the pins with their corresponding pads.
A shorter travel is also possible (0.5mm) but it would make alignment of the pogo pins more difficult and board placement fiddly. We stayed conservative here but we’d love to hear from others’ experiments.
Results after clamping
Before powering up our board, we clamped it as above and um-clamped it to examine the test pads: we found small punches on each pogo pads, with most of them right in the middle!
The test pads we used have a diameter between 0.031" (0.8mm) and 0.055"(1.4mm). If you are concerned that the scratches from the pogo pins on the test pads may cause reliability issues with repeated use, pogo pins with flat or rounded heads are available.
When we powered up the jig and tested the board, it all worked. Including the tiny pads. Success! Right after the first working jig, we printed more so everyone around the studio can have their own within a few hours.
Looking forward and sharing
We were quite happy to see how it turned out. As you can tell from the picture above, there wasn’t too much difference between the planned setup and the one made. You can use any 3D modeling software to design your jig (We used Rhino). The system is quite resilient and 3D printed holder protects the pins even when the jig is dropped.
Ultimately, we replaced manual work by design work. That way we can make many jigs quickly, modify and share easily modules that are generic enough that anyone would be able to use them for their own jigs.
So here it is,
A module to get your pogo pins going. It includes:
- The pogo pin model (P75-B1)
- A tolerancing object to help pogo pin insertion (hidden in the pic above)
- A rim for pogo insertion clearance
- The pogo support to be 3D printed.
- A PCB cutout with the right via to use with these pins
The picture shown above has all the tolerance work done. Sometimes the printer smears the pogo pin entry point, so we included a rim to be used at the beginning and the end of the pogo support. Other times, your pogo bed board has its own thickness. If so, the placement of the via can be moved/scaled accordingly. Complete instructions are included in the summary section of the download page, so you can make changes according to your needs.
Beyond this project
We feel that methods brought by 3D modeling/printing are opening up Electronic design and engineering to interesting solutions. We can truly work cross-discipline: It’s an exciting time to make things.
Some of the constraints of the PCB world (grid, 2D, screws…) are disappearing: That’s quite liberating. More freedom in our design is achieved by associating support functions and electronic functions while keeping them separate.
This also means that we can use less, cheaper, recyclable material and fulfill the same tasks. All of this in just a few hours.
We hope that others will enrich what we’ve shared. We’d like to hear back from you if you make your own. Enjoy!
1: The 3D print for this jig was made with an FDM 3D printer with standard 0.4 mm nozzle. Our jig was printed with PLA (filament size: 1.75 mm) with nozzle temperature at 210C and bed temperature at 41C. The design was printed with a 0.2 layer height. At this point in time, almost any 3D printer on the market should be able to produce such print. We tested with a Da Vinci Pro.