Every Adafruit board needs a tester to ensure that the hardware works before it's placed in the Adafruit store. These testers generally consist of a board with a pre-programmed microcontroller to administer the test, and an array of spring loaded contacts, often called "pogo pins", to mate with the device under test.

Are you doing your own small scale manufacturing?  Do you just want to get your code working before soldering headers on that FeatherWing?  Either way, this guide is for you.

In this guide, you'll learn how to make your own tester for Feather/FeatherWing form factor boards.

Be prepared to heat up your 3D printer and your soldering iron for this project!

Parts

This project requires 3× 10-packs of the "Spear Head" pogo pins, since Feathers have 28 pins!
Prototyping feather wing PCB with loose headers
A Feather board without ambition is a Feather board without FeatherWings!This is the FeatherWing Proto - a prototyping add-on for all Feather boards. Using our...
Out of Stock
Double prototyping feather wing PCB with socket headers installed
This is the FeatherWing Doubler - a prototyping add-on and more for all Feather boards. This is similar to our
$7.50
In Stock
Video of a white hand manipulating a toggle clamp to press a blue rectangular board.
*Ka-thunk* Pin down that PCB with our Toggle Clamp, a sturdy and reliable way to quickly press and release with precision! A pogo-pin bed is a great way to...
$3.95
In Stock
Angled shot of a single Pogo Pin - spear head.
Pogo pins are little spring-loaded contacts, very handy for making jigs, or making momentary (but electrically solid) contacts. We use them by the dozen for making programming and...
$7.50
In Stock
Black Nylon Screw and Stand-off Set with M2.5 Threads, kit box
Totaling 380 pieces, this M2.5 Screw Set is a must-have for your workstation. You'll have enough screws, nuts, and hex standoffs to fuel your maker...
$16.95
In Stock
USB Cable with Type A and Micro B ends and switch in center
ON...off...ON...off...ON...off...ON...off...WE CAN'T STOP CLICKING THIS ON-OFF SWITCH! It has such a satisfying click and it works so well.  Plus, it's just...
$5.95
In Stock
1 x Tapered Heat-Set Inserts for Plastic
Brass, M4 x 0.70 mm Thread Size, 4.700 mm Installed Length (Pack of 100)
1 x Zinc-Aluminum-Coated Alloy Steel Socket Head Screw
M4 x 0.7 mm Thread, 8 mm Long (pack of 50)

Grab the printable files from prusaprinters.org and slice the main file, toggle.scad. Recommended settings:

  • 0.4mm nozzle
  • 0.25mm layer height
  • 2 perimeters
  • 10% infill

Next, it's time to place the heat-set inserts in the raised portion of the print. Begin by pressing the narrow end of the insert into the plastic by hand. If it's too tight, then use a 1/4" (or 6mm) drill bit to slightly enlarge the very top of the hole. Once the bottom of the insert is in place, heat your soldering iron and have a pair of needle nose pliers handy. Put the soldering iron into the heat-set insert and push down SLOWLY as the plastic melts. Once the insert is flush with the plastic surface, place the pliers on top of the insert to keep it from pulling out and withdraw the iron.

Repeat this process for all 4 inserts.

While there are specialty soldering iron tips designed to work with these threaded inserts, the author finds that his "normal" soldering iron can do in a pinch—just make sure it is clean and will not transfer any solder blobs into the threads!

Later, you may find that you need to raise your toggle. If so, use shim-1mm.scad -- If you need a different height, you can simply change the Z scaling of the model in your slicer. For instance, if you need a 1.5mm shim, scale it by 150% in Z, and 100% in X and Y. This step is optional and depends on the height of the components on the board under test.

You can also grab the scad file and change the height of the toggle tower and its position, in case you have more specific needs. This can be done with the free openscad program.

Consider whether you want the toggle clamp on the left or right side of the tester, and whether you want the USB cable of the Feather coming out the front or the back. This will allow you to determine which side of the FeatherWing doubler receives the pogo pins. Also make sure you correctly identify the top side of the PCBs (it's the side with the silkscreen).

Using 6mm M-F nylon standoffs from the M2.5 thread kit, fasten the FeatherWing proto on top of the doubler, with the male thread extending out the top. For now, secure them temporarily together with a screw from the bottom. Double check that the orientation of the two PCBs match. After the next step, the proto board and the stand-offs will be captive and cannot be removed without unsoldering the pogo pins, so triple check everything.

Insert the pogo pins from the top through both sets of holes, adjusting them so the tips of the pins are at roughly the same height.

If this is a purpose-built testing rig, you can populate only the needed pins. This guide shows all pins populated because it is intended to be "general purpose".

Be careful of a hot soldering iron when soldering or installing heat set nuts.

Solder them one by one on the doubler from the top side. Be careful not to burn yourself, as the whole pogo pin will be heated to high temperatures as you solder and can remain hot for some time.

There's no need to solder the pins to the middle proto board, it's there to keep the pins vertical, not to create electrical connections.

It may feel like a drag, but at this point you should check for continuity from the tip of each pogo pin to the other side of the doubler, and fix any problems you encounter.

On the other half of the doubler, solder female headers to the top so that it can accept a feather with downward-facing male pins.

Now it's time for final assembly. Remove the screws from the bottom side. On the top side, add another set of M-F 6mm stand-offs. Using nuts as spacers between the PCB and the 3D printed base, secure it with screws from below.

 

Secure the toggle switch on the pillar with M4 screws.

Place a PCB on the pogo pins and lower the toggle carefully. At this point you are likely to discover that the toggle clamp causes the PCB to bow quite a bit. If so, return to the 3D printing page and print an appropriate shim to raise the base of the clamp so that it won't bow the board but will still have enough force to make good contact on all the pins.

Use a pair of flush cutters to shorten the threads of the up-pointing stand-offs so that it is easier to remove a PCB from the fixture.

Finally, stick four of rubber feet on the bottom of the fixture to stop it from slipping around or rocking back and forth.

To use the fixture,

  • Remove power from the fixture
  • Place the device to test in the fixture and lower the toggle
  • Apply power from the fixture and wait for the test result
  • Remove power from the fixture
  • Remove the device from the fixture

The test program depends on the device you are testing. For instance, if the board should contain an I2C device at address 68, then the very simplest test program might say (in pesudocode)

  1. Set NeoPixel to BLACK
  2. Initialize I2C bus
  3. Scan I2C bus
  4. If address 68 is present: Test is successful; show GREEN on neopixel
  5. Else: Test fails, blink RED on neopixel

A more production-ready test fixture might:

  • Be designed so that the device under test can be safely hot-plugged, so that the whole fixture does not need to be power cycled
  • Perform a test of more functions of the device besides I2C detection
  • Include a buzzer and/or a display for test results
  • Include purpose-built circuitry specific to the device (either built in the prototyping area or on a custom PCB)
  • Omit the unnecessary pogo pins (for example, an I2C Feather might only connect SDA, SCL, GND and 3V3 pins)

Want to know more about what goes into designing a professional test fixture?  Check out this video by Ladyada:

This guide was first published on Dec 11, 2020. It was last updated on Mar 08, 2024.