The next generation jumperless breadboard
Jumperless V5 is a breaboard where any point can be connected to any other with software-defined jumpers. RGB LEDs under each hole turn the breadboard itself into a display; paired with its assortment of routable analog/digial IO, Jumperless V5 gives you real-time information about everything that's happening in your circuit and the ability to change it at a whim.
You'll be able to get one on Crowd Supply in the near future.
V555.mp4
The 4 individually programmable ±8V power supplies, 5 voltage/current/resistance measurement channels, and 10 GPIO can all be connected anywhere on the breadboard or the Arduino Nano header. Connections made with its matrix of 12 analog crossbar switches can be changed in just a few microseconds, so measurements and GPIO can multiplexed to cover the entire board at once.
V5 is a major redesign of the original Jumperless. Having a few hundred people out there using Jumperlesses, sharing ideas, and writing their own apps gave me a long enough list of things I wish I had done that I felt it was time to push the design even further. Now that the fundamentals are battle-tested (switching matrix, power supply, routing algorithm), Jumperless V5 can add some even crazier new stuff like; an ungodly number (445) of LEDs, a built in rotary encoder/switch, daisy chain headers, individually programmable power rails, and an isolated, always-on probing system.
These additions may seem somewhat minor, but they fundamentally change the way using a Jumperless V5 feels. It's intuitive enough that it quickly just becomes "part of your brain" in the same way your computer does. And it's easy to forget this isn't how prototyping stuff on a breadboard always has been.
PadBindings.mp4
probeNoAudio.mp4
Jumperless V5 will cost roughly $350 (with free shipping worldwide)
You're flipping through a comic book and see an ad in the back for some X ray glasses. You put some coins in an envelope and send it off (because it's like 50 years ago in this made up scenario) and get back some spectacles. You immediately look up at the night sky towards the galactic center for Sagittarius A* and don't see a thing; you've been had. You go back to prototyping your new Eurorack module (because that's what I assume everyone was doing in the early 80's) and forget to take them off.
You notice that you can now see electrons flowing, capacitors charging, frequencies changing, UART messages passing, all right there on your breadboard. Those aren't X-ray specs, they're electron specs, even better.
Jumperless V5 is that pair of x-ray spectacles. Like all the fancy test equipment covering our workbenches, it converts the things that our hunter-gatherer-ass MK 1 eyeballs can't perceive into something they can. The difference is that it does it for everything, everywhere, exactly where it's happening with an RGB LED under every hole.
Now you're prototyping in God Mode, never again will you spend 2 hours testing every possible issue just to find that your Tx and Rx lines are swapped, or you forgot to hook up the Vcc pin, or some other thing that seems absolutely obvious in retrospect but you simply didn't have the information until you went down the list and checked each thing that could possibly go wrong.
Jumper wires are another time-consuming, flow-breaking thing, so let's get rid of those too. To be able to read and write anything everywhere, it also needs to be fully jumperless, so any rows on the breadboard (and the Arduino Nano header) can be connected to any other, as well as any of the 4 programmable power supplies, 3 analog measurement channels, 2 current/resistance sensors, (supplies and measurement are all good to +-8V), or 10 GPIO (4 are 5V logic, 6 are 3.3V. All 10 can instead be routed to another daisy-chained Jumperless as fully analog connections.)
This isn't meant to abstract away the tactile process of prototyping under a layer of software. In fact, it's just the opposite, not having your circuit hidden under a tangled mass of jumper wires gives you a breadboard that is understandable at a glance and almost reads like a schematic. You can just drop a measurement anywhere and have it displayed on the LEDs under that row so you will immediately see if anything changes in real time, so you can get a much more intuitive sense about why things work (or don't). It's about cutting down on the debugging bullshit and letting the grander plans for what you're building flow freely. Ideas happen at their own pace, and getting stuck on the finicky details of circuit design can break the creative momentum.
The probe, rotary encoder, and onboard menus make connecting to a computer optional. You can do everything with only USB C power. Your past projects are saved into onboard flash as simple text files that can be uploaded to your computer and shared.
Breadboards should be a playground, and now you can attach a debug probe to them.
moreMenusSm2.mp4
Now you have a breadboard with:
- 4 x 12 bit DACs (MCP4278) buffered and shifted to ±8V through high current op amps (2 L272D)
- 3 x 12 bit ADCs (built into the RP2040) double buffered and level shifted (2 LM324) to read ±8V
- 2 x 12 bit current/voltage sensors (INA219) which can also be used to measure resistance
- 4 x 5V logic level GPIO (MCP23S17)
- 6 x 3.3V logic level GPIO (RP2040) which can also be hardware I2C, UART, or SPI
- 1 x ±8V op amp noninverting buffer (LM324)
- 2 x 14 pin daisy chain headers on either side to pass 8 analog signals + SPI + Power to another Jumperless
- A probe to select rows without affecting connections (TRRRS jack with I2C)
- A rotary encoder / switch (SIQ-02FVS3)
- 445 addressable RGB LEDs (XL-1010RGBC)
You can see how all this stuff is connected in the schematic.
Or check out the PCB and GitHub repo
All these things are routable to anywhere on the breadboard or Nano header in a few microseconds under the control of the onboard RP2040. This freedom to script connections and measurements and route outputs anywhere presumably makes just about any random circuit on the Jumperless V5 Turing complete. There are an infinite number of things you could make this thing do, and the Prime Directive is to make those awesome hacks as simple and straightforward to pull off as possible.
But for now, I'll only talk about things I've written firmware for that is currently supported without any hacking required.
Jumperless V5 accepts commands and stores connections in a ridiculously simple, human readable format that you can just drop onto the board as a text file. You can save a bunch of these net lists into persistent storage and switch between them at your whim. It will even accept connections from whatever's plugged into the Nano header (or anywhere else on the board over UART).
f {ADC1-10, 15-48, TOP_RAIL-17, TOP_RAIL>6.5V, D0-UART_Rx, D1-UART_Tx, }
⬆︎ that's it, that's everything you need to send it to make things happen
You can see how all that firmware works in the firmware section of the GitHub repo
Jumperless V5 uses a string of 92 ±0.1% precision resistors in a huge voltage divider and one of the ADC channels to sense which number the probe is poking. The probe itself is very simple, just a button, an LED, and a pokey needle to touch the sensing pads. It connects to the main board with a TRRRS 1/8" audio jack. It also has I2C and power available on there for future hacking purposes (in case someone wants to stick an OLED on the probe, the code already does send signals for an SSD1306 display).
If you happen to misplace your probe, the way it's designed allows you to just plug in any random 1/8" audio cable and poke out connections with the tip.
The desktop app allows you to assign up to 8 Wokwi projects to separate slots that are polled for changes and automatically updated on the Jumperless V5 (within half a second of clicking Save). Or if you don't want to use Wokwi, it simply acts as a regular terminal emulator like PuTTY, xTerm, Serial, etc. You could also just use any of those, the menus are sent and handled on the Jumperless itself, the Jumperless desktop app just adds automatic firmware updates, Wokwi polling, and arduino-cli for flashing code from your Wokwi sketch to the Arduino via a single USB cable.
![Screenshot 2024-06-14 at 10 23 31 PM](https://private-user-images.githubusercontent.com/20519442/339956956-cbb18ee4-1a9d-4453-85b6-f8c31a1ea151.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQxODQ0MDQsIm5iZiI6MTcyNDE4NDEwNCwicGF0aCI6Ii8yMDUxOTQ0Mi8zMzk5NTY5NTYtY2JiMThlZTQtMWE5ZC00NDUzLTg1YjYtZjhjMzFhMWVhMTUxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODIwVDIwMDE0NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWVhZmJkYjYzODNmZDFhNWJiMjlmNDA1NTEwNTQzMjBiZGU4OTBmMjZiMTRkZWYyZTFkZDE1MWVlYjIyODU3NWMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.NQNqJ6d34x0Tt3sqpz5Xx_XDMo8QxkOLrL1B6JanfeE)
![Screenshot 2024-06-14 at 10 11 18 AM](https://private-user-images.githubusercontent.com/20519442/339957346-0a502cf6-6f17-4eb9-b38f-3589f6f4f0af.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQxODQ0MDQsIm5iZiI6MTcyNDE4NDEwNCwicGF0aCI6Ii8yMDUxOTQ0Mi8zMzk5NTczNDYtMGE1MDJjZjYtNmYxNy00ZWI5LWIzOGYtMzU4OWY2ZjRmMGFmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODIwVDIwMDE0NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPThlOTM4YTE2NzdjNjQwNDdkNzVjMjRmMzRjNmM3NGQ0NTU5MWFmMzllMmZkYzkxMDU0ODdmOWI2MzNlMzAwODgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.4HFx8Q8NGpOnDPF5LObPlC1D7pv8bVroP_yOAFMNEG8)
Jumperless V5 can sniff or write any UART, I2C, SPI, or MIDI signals on the board. It can be set to either print whatever it reads on the breadboard LEDs, turning the Jumperless into a serial monitor and/or show up as 2 USB devices to your computer and give you bidirectional communication through that other port. Look at that, Jumperless just saved you $3 on one of those little USB-UART boards, it practically pays for itself!!1!
The firmware saves multiple netlists in separate text files. You can save/load/manage the various slots through a serial terminal, the onboard menus, or even crazier things like having the slot change based on a Eurorack CV (control voltage) signal or whatever. So Jumperless can be incorporated into your modular synth setup as a way to switch between a bunch of patches live on the fly. The switchover time from one setup to another is quick enough to be inaudible.
The CMOS analog switches inside these CH446Qs can only block or pass voltages that are between their power supply rails. They're powered with an LT1054CP charge pump voltage doubler/inverter circuit that produces ~±9V. So it can handle any voltages between +9V and -9V and ~100mA per connection. You may notice that these values are well outside the absolute maximum ratings (14.6V and 10mA per connection) listed in the CH446Q datasheet. That's because they are, all the specifications of the CH446Q get better as the supply voltage increases, so I'm exploiting the arcane weirdness of CMOS to get closer to an ideal switch. All of this is unchanged from the original Jumperless, so it's been well tested.
Okay, here's the main bummer here. As it turns out, we live in a universe governed by both physics and capitalism, so manufacturers only make chips they think people will buy. The CH446Q (and the MT8816 it was based on) were made with radio, video, and audio in mind, which is much more concerned with frequency response than acting like an idealized jumper wire that can pass a bunch of current. So the total resistance for a jumperless connection is ~90Ω (45Ω for each pass through an overdriven crosspoint switch). For most circuits, this really doesn't have a noticeable effect. The beauty of the Jumperless V5 is that it can show you when that resistance is affecting your circuit and tell you to place an old-school jumper wire on that connection like it's the 1800s.
If this campaign does well enough, the next project will be making a general purpose crossbar switch out of beefy MOSFETs and floating gate drivers to get the voltage limits into the ±50V range and the Ron down to ~1Ω, but custom high-current silicon is a huge, expensive undertaking (that I am 100% committed to doing)
The CH446Q analog crosspoint switches used here have a 3dB rolloff (1/2 the signal amplitude is passed, not a hard limit) of 50MHz, which is well above any breadboard's rolloff frequency (the clip-plastic-clip between each row is effectively a tiny capacitor.) So even for super high speed SPI signals, this really isn't an issue. Modern (last ~30 years) input buffers on ICs are just amazing. TL;DR In regards to frequency, if it works on a regular breadboard, it will work on this.
If you're worried about messing up one of the a spring clips and ruining your Jumperless, fear not! The breadboard shell is removable, so you can easily remove the shell and replace the offending clip (5-6 spares will be included).
This is really just for peace of mind. These clips are made of spring-tempered phosphor bronze, which is what they use for super high quality breadboards, and they're pretty hard to permanently bend out of shape.
The other cool bonus of having removable shells is that you can print your own in any color/material you like and swap it out. The stock shell is 3D printed in black SLS PA-12 Nylon.
When you buy a Jumperless, you're also buying the right so have a working Jumperless forever. There's literally nothing you can do to break it so badly that I won't happily fix or replace it for free. If you want to fix it yourself, I will send you any parts you need and walk you through the repair.
This thing infinitely open source and hackable. I'm kind of a zealot about that stuff. Want to make 10 of these with a USB Mini port for you and your friends? Let me know and I'll double check everything when you're putting in the PCB order to make sure all the parts are placed correctly and stuff (and I'd totally buy one, I love USB Mini). I'll even send you the custom spring clips.
If you have some feature you want to add, I'm happy to help. Either by just adding it myself or walking you through the relevant bits of code to make it happen.