Digital Index Operator

Idea by Scott Shawcroft (@tannewt).

3D printed clips that hold two pogo pins on a board's RESET or BOOT button, so a test rig can press it with a relay.

George Jetson's job at Spacely Sprockets was digital index operator: he pressed one button all day. These clips do the same for hardware-in-the-loop testing.

How it works

Cutaway of the clip seated on a tact switch, pogo pins touching opposite corner pads
Cutaway of the clip on the switch. Each glow color marks one pair of pads that are tied together inside the switch. Click for the video.

Edge clamp

Orange edge clamp on a Feather RP2040 RESET button
Clamps the nearest board edge. Works on every board, including QT Py and ItsyBitsy. Click for the video.

Hole mount

Blue hole mount clip on a Feather RP2040 RESET button
Screws through the nearest mounting hole (M2.5 on Feather, M3 on Metro). Click for the video.

Files

Parts from Adafruit

PartWhy
Pogo Pins "Needle Head" P75-B1 (2430)The contact. 1.0 mm body, 0.7 mm tip, small enough to land on the pads of a 4.2 mm tact switch. Two per clip.
Pogo Pins "Crown Head" P75-H2 (2429)Optional. Better grip on the larger 6 mm switch pads used on Metros.
M2.5 Nylon Screw and Stand-off Set (3299)Hole mount on Feathers: M2.5 x 10 screw and nut.
M3 Nylon Screw and Stand-off Set (4685)Hole mount on Metros: M3 x 10 screw and nut.
Silicone Cover Stranded Wire 30AWG (2051)Solder to the pogo pin tails.
STEMMA Non-Latching Mini Relay (4409)Closes the two wires to press the button from any microcontroller.
Pre-Cut Heat Shrink Pack (4559)Insulate the solder joints.
Feather RP2040 (4884)The board shown in the videos.

Button reference

Distance from each button center to the nearest board edge and mounting hole, from the Adafruit Eagle files. "Row" is the board number in the FreeCAD Params sheet.

BoardButtonRefSwitchSideNearest edgeNearest holeRow
Feather RP2040 rev DRESETSW1KMR2top6.41 mm (bottom)10.1 mm (M2.5)1
Feather RP2040 rev DBOOTSW3RA_MINItop1.65 mm (right)5.1 mm (M2.5)2
ESP32-S3 TFT Feather Rev DRESETSW2RKB2bottom6.22 mm (bottom)7.5 mm (M2.5)3
ESP32-S3 TFT Feather Rev DBOOTSW1RKB2bottom6.22 mm (bottom)11.8 mm (M2.5)4
Adafruit Feather nRF52840 Rev ERESETSW1RKB2top6.22 mm (bottom)37.3 mm (M2.5)5
Adafruit Feather nRF52840 Rev EUSERSW2RKB2top6.17 mm (bottom)18.7 mm (M2.5)6
Feather M4 AirLift rev ARESETSW1KMR2top6.54 mm (bottom)7.9 mm (M2.5)7
ItsyBitsy M4 rev DRESETSW1RKB2top5.22 mm (right)none8
ItsyBitsy RP2040 rev C1RESETSW2KMR2top4.95 mm (bottom)none9
ItsyBitsy RP2040 rev C1BOOTSW3KMR2top4.95 mm (top)none10
QT Py RP2040 rev BBOOTSW2RKB2top5.16 mm (left)none11
QT Py RP2040 rev BRESETSW1RKB2top2.79 mm (bottom)none12
QT Py ESP32-S3 rev CRESETRESETRKB2top6.10 mm (left)none13
QT Py ESP32-S3 rev CBOOTBOOTRKB2top6.10 mm (left)none14
Metro ESP32-S3 rev BRESETSW3RA_METROtop1.71 mm (top)14.0 mm (M3)15
Metro ESP32-S3 rev BBOOTSW1RKB2top14.48 mm (right)26.2 mm (M3)16
Metro M4 AirLift rev B1RESETRESET6x6_SMTtop3.81 mm (top)9.0 mm (M3)17
Metro Express rev HRESETRESET6x6_SMTtop3.94 mm (top)9.0 mm (M3)18
Metro Amethyst rev DRESETSW2RA_METROtop1.78 mm (left)13.9 mm (M3)19
Metro Amethyst rev DBOOTSW3RA_METROtop4.32 mm (right)7.8 mm (M3)20