Pogo Pin Serial Adapter Thing
A few weeks ago, I was working on a small project of mine, and I faced a rather large problem. I had to program nearly five hundred badges in a week. I needed a small programming adapter that would allow me to stab a few pads on a badge with six pogo pins, press a button, and move onto the next badge.
While not true for all things in life, sometimes you need to trade quality for expediency. This is how I built a terrible but completely functional USB to serial adapter to program hundreds of badges in just a few hours.
As is usually the case for any tutorial I write, this is not the right way to do things. In commercial or manufacturing settings, pogo pins are usually found in test or programming jigs. In these jigs, the pogo pin is mounted perpendicular to a PCB, with each pin running through a second identical PCB mounted on standoffs. Just look at these fantastic products on Tindie for an example. These two PCBs provide mechanical stability and electrical connections to each pogo pin. This is a very robust system, but building one of these test jigs means I need to order a few PCBs. I didn’t have the time to do this, so I needed another solution.
All I need is some way to hold six pogo pins on 0.1″ centers, with a few pads to wire these pins up to a USB to serial adapter. A single PCB to do this is extremely simple — all you need are a few pads to hold the pogo pins and a set of holes to plug a serial adapter into.
I managed to whip up a PCB (right) for this in about three minutes. It’s extremely simple, with the only remarkable feature being six very long pads for the pogo pins. If you’re very good at applying solder paste by hand, the surface tension of melted solder will align the pogo pins, leaving you with six perfect pogo pins all aligned and parallel to each other.
A PCB solution is easy, but it also takes time. Unless you have a PCB mill sitting in your lab, you’ll have to make due with ordering this board from OSH Park or something. Sometimes you need a pogo pin programmer right now.
If you don’t have a PCB mill, I hope you have a 3D printer. Last year, [Timothy Reese] created the Fiddy for Adafruit. This is a 3D printed ‘clip’ for six pogo pins, designed to clip onto the end of an Adafruit Pro Trinket for FTDI programming. Before designing my own pogo pin adapter, I made Fiddy. It performs its job well. The Adafruit Fiddy will clamp down on small boards, and it will program them.
There are a few shortcomings to the Adafruit Fiddy. I found my 3D printed version to be a little too flexible, although this is probably because I printed it in ABS, not PLA. The Fiddy is a little bulky. I also don’t need a programmer that clamps down on a board — I’m more than happy to hold a serial programmer against a board for forty-five seconds if it means the pins are a little more secure and the device is a little more robust.
There’s the lit review for the existing solutions for a simple, handheld pogo pin programmer. They’re all good, but I needed something right away. Except for the pogo pins (available wherever fine electronics are sold), I only needed a few items that were already on my workbench:
For this project, the pogo pins will be held in place with a 3D printed adapter. After a few minutes in OpenSCAD, I came up with this model. It aligns six pogo pins on 0.1″ centers, and can be epoxied to the back of a standard, off-the-shelf USB to Serial adapter.
There’s not much to this 3D printed pogo pin adapter. Think of these 3D printed parts as more of a jig, with a small amount of epoxy providing the mechanical strength.
These parts were printed at a very low layer height (0.05mm) using whatever filament was already in my printer. The orientation of the parts on the bed required support for the overhangs that would become the space behind the normal FTDI pin headers, and a passthrough for the Kynar wire from the pins to the pads.
In normal applications of pogo pins, you’d simply place the pin in a circular pad and solder the brass casing to a PCB. I don’t have this option, so I need to attach Kynar wire. I did this by stripping the Kynar, placing 2-3 millimeters of stripped wire in the hole at the non-pogo end of the pin, tacking it down, and wrapping the rest of the stripped wire around the pin. A tiny bit of solder holds everything together, and a small bit of heat shrink will keep the pins from shorting to each other once this is assembled.
After preparing six pogo pins, I had to sandwich all of them between two pieces of plastic. If I have one tip on how to do this, it’s, ‘go slow’. I used five-minute epoxy for this, installing one pin at a time and making sure they were all aligned and even. It takes patience, but it will work.
After that, the only thing left to do was to solder the other end of the Kynar wire to the FTDI adapter. It’s small, fiddly soldering, but it can be done.
While I was able to program a few hundred badges with this pogo pin serial adapter, I’m not going to call this a ‘good’ solution. There are a few issues with this device, and I’m actually surprised it worked in the first place.
After programming, the ESP8266 on the badge restarts, and the LEDs turn on. While the power supply for the FTDI adapter is capable of providing the required ~300mA to the badge, I should have used a larger gauge wire to attach the pogo pins to the USB to serial adapter. This really isn’t a big issue, but it is an issue.
Additionally, I had to be very, very careful not to get any epoxy on the ‘springy’ part of the pogo pins. It’s easy to not screw up the springiness of pogo pins if you’re dealing with solder, but epoxy gets everywhere. I found that a quick rub down with isopropyl alcohol does clean the pins, but this is still something I wish I didn’t have to deal with.
If I had to do this again, with no limitations on time or money, I would take the PCB I created in Eagle above, grab an FTDI chip and a USB connector, and simply build my own USB to serial adapter that uses pogo pins instead of pin headers. This actually wouldn’t be that much work — two hours to design the circuit, maybe an hour assembling it, and if everything goes right I’d have the perfect tool for the job.
However, sometimes you just have to solder and glue some crap together and hope it works. That’s what I managed to do here, and yes, it did work.