Hands-on with Raspberry Pi's CM5 Programming Jig

Brajeshwar1 pts0 comments

Hands-on with Raspberry Pi's CM5 Programming Jig - Jeff GeerlingHands-on with Raspberry Pi's CM5 Programming Jig<br>Aug 19, 2026

In the before-times, when Raspberry Pi CM5s were (relatively) affordable, I built a number of Pi clusters (example), and one of the most annoying parts of the build was flashing Raspberry Pi OS to all the Pis.<br>One, two, or even three Pis isn't a big deal, but once you hit 4+, the process of plugging the Compute Module into a carrier board, plugging that into a computer, managing Raspberry Pi Imager, and trying to match up details like a hostname, MAC address, and the physical Pi itself, gets annoying.<br>Solvable, but annoying.<br>Raspberry Pi has a solution for that, now. It's the CM5 Programming Jig (pictured above), one of which they sent for testing.<br>Because of a tight schedule this week, I only got a few hours to get up to speed. I haven't gotten an end-to-end CM5 imaging line going, but I was able to get most of the way there.<br>Demo of the CM5 Programming Jig<br>For the tl;dr, you can watch the video with an unboxing, full demonstration, and more context here:

But if you enjoy reading, skip the video and carry on!<br>Programming and Testing Jigs<br>Before talking about Raspberry Pi's Jig (which was developed in tandem with EDAtec), I would be remiss not to mention Everypin's CM5 Flash Jig, which is very closely related, but works with Everypin's open source Python libraries and costs €2200 (about $2500 USD).<br>The Raspberry Pi version costs $600, and works out of the box with Raspberry Pi's own Pi imaging/management tools, like rpi-sb-provisioner (which runs on the Jig) and pi-gen.<br>Everypin did excellent work documenting the CM5 test points and their own Jig, but a price well over $2k makes it very difficult to justify for smaller CM5 production runs.<br>The Raspberry Pi version is relatively expensive, but easier to justify if you're a small business (or even factory production line) provisioning hundreds or thousands of Compute Modules.<br>Getting the Programming Jig Ready<br>Raspberry Pi has documentation for the Programming Jig, so I won't rehash all that, but the basic process is:<br>(Assuming the Programming Jig is not already flashed): Flash Jig OS to the Jig using Raspberry Pi Imager 2.0.11 or later.<br>Build your own Raspberry Pi .img images using pi-gen<br>Configure the Programming Jig via it's local web UI<br>Start popping in CM5s to flash.<br>The LED on the Jig will start flashing blue, and after a few minutes, when the CM5 is finished, it should switch to green.<br>pi-gen to build an OS Image<br>Just as a note, when I tried building my own Pi OS image on my Mac running macOS Tahoe, I ran the included Docker script, and had to check out the arm64 branch of the pi-gen software.<br>Here are the contents of my config file used for image generation:<br>RELEASE=trixie<br>ARCH=arm64<br>IMG_NAME="jeffpios-trixie"<br>PI_GEN_RELEASE="Jeff Geerling Pi OS"<br>USE_QEMU=0

# Account and SSH settings<br>FIRST_USER_NAME="jgeerling"<br>PASSWORDLESS_SUDO=1<br>ENABLE_SSH=1<br>PUBKEY_ONLY_SSH=1<br>PUBKEY_SSH_FIRST_USER="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA+PT1uOv/gmUyD+Dj++gQAMrmsXmGDtUesd1CrIRD1d jeff@macmini"

I generated a Trixie 'Lite' image and copied that over to the Programming Jig using magic-wormhole.<br>rpi-sb-provisioner to Provision the CM5s<br>The provisioner has it's own web UI that you can use to monitor CM5 flashing progress. It will also log all successful runs in a local manufacturing database with information about the CM5's MAC address, serial number, and hardware specs.<br>I guess it's up to you to feed that data into other manufacturing systems, labeling workflows, etc. And larger operations would certainly have more automation for loading and unloading CM5s. It wouldn't surprise me if Raspberry Pi themselves use this or a version of it in their own manufacturing lines.<br>I know they were working on CM4 test jigs years ago when I visited the Sony factory (see photo above), but it used the more fragile Hirose connectors, which are only rated for around 30 insertions before signal integrity is not guaranteed. I can imagine feeding a thousand Pis a day into those connectors was a recipe for annoying quirks!<br>Instead, the Programming Jig has a 'bed of nails' (a bunch of pogo pins) which target test pad locations on the bottom of every CM5:<br>Much more repeatable, and this is the same kind of setup I saw them using for Pi 4 production when I visited their factory.<br>Conclusion<br>Honestly, this is not something an individual tinkerer could justify buying, even if you manage a few small Pi clusters. But to some small businesses and systems integrators, the CM5 Jig will be immensely useful.<br>And in 5-10 years, if you start seeing these things show up in used factory surplus, know that they have a little CM5 tucked inside you could harvest :)

Further reading:<br>Upgrading my Open Source Pi Surveillance Server with Frigate<br>The first good Raspberry Pi Laptop<br>Raspberry Pi CM5 is 2-3x faster, drop-in upgrade (mostly)

Comments

raspberry programming cm5s annoying factory using

Related Articles