Close
0%
0%

Jumperlink: A Smarter Way to Connect Electronics

Jumperlink is a board designed to make electronic connections easier to set up, maintain, and share compared to traditional jumper wires.

Similar projects worth following
If you’ve ever spent more time untangling spaghetti-mess jumper wires than actually building circuits, you’re not alone. Breadboards + jumper wires are great for getting started, but they come with a bunch of annoying realities: loose connections, fragile wires, confusing layouts, fragile setups weeks later, and that inevitable moment where you sigh and say, “I have to rebuild this?”

Enter Junperlink — a configurable, FPGA-powered connection board that replaces messy jumpers with software-defined links. No more guessing which wire goes where. No more lost connections. Just clean, reliable routing at up to 150 MHz.

Why Junperlink?

Traditional jumper wires:
fall out during debugging
degrade after repeated plugging/unplugging
clutter your workspace when circuits aren’t simple
are nearly impossible to document or reproduce
become consumables you can never keep track of

Junperlink was designed to solve these problems, giving you a smarter way to link circuits without spaghe

Most electronic engineers or hobbyists have used jumper wires, particularly when starting their first projects with a breadboard. This is quite good for quick prototyping.Students and hobbyists can easily modify circuits to see how changes affect behavior, which is invaluable for understanding electronics principles hands-on.

but then you definitely will find out the notable disadvantages, such as unreliable connections during debugging and testing. It is exhilarating when starting a project. However, frustration inevitably creeps in when you discover that your system isn't working because a wire is loose, or you need to reassemble it after a few weeks, struggling to remember how to reconstruct your project. The most discouraging part is realizing that a project built with jumper wires is delicate and messy. I give up, those are the final words when that day eventually comes.

I have to spend hours to rebuild below project when I need to do a simple test:

Let's carefully recall our minds and list all the issues for the jumper wires:

1, Jumper wires are easy to lose connection after certain times of plugging in and out.

2, Jumper wires are NOT suitable for high speed

3, Jumper wires are NOT friendly for debugging, NOT friendly for signal testing with oscilloscope probes.

4, Jumper wires are good for very simple projects, but they become messy when more  cables are added in.

5, Jumper wires are hard to set up when more than 10 wires have to be used

6, Jumper wires are fragile and have to be handled very carefully when moving a project setup from one place to another.

7, Jumper wires are tough to maintain the settings, especially need to be re-set up several weeks later.

8, Jumper wires are consumables, and you will find there are no cables available in your drawers after a certain time no matter how many you have bought, you have to borrow some wires from another project, which is carefully stored in your cabinet. This again makes you headache when you have to re-set up “another project” in the future.

9 Other issues, for example, the head pin of jumper wires accidentally touches a PCB and gets the PCB board spike.

So, is there any other option to overcome the shortages listed above? What alternatives are available for replacing jumper wires? 

The answer was NO when I searched it over the internet. 

As an electronic engineer, I thought this was quite a good point for me if I could design a board to fix most problems listed above and that's where my solution comes in—I've developed a new board called the "JumperLink."

What is a Jumperlink?

A Jumperlink is a board with a FPGA on and provides a configurable switch function for external connections. 

A diagram will be much more useful than any words.

The basic idea comes from my experience using jumper wires. Any one wire will be connected to power or a signal. so I asked myself if I could make a connector with any pin that can be configured as a power output or signal input/output by software, then it is able to be used to connect most external devices. those external devices which are easy to purchase from online, such as from sparkfun or aliexpress etc. 

As shown in the picture, Jumperlink has one FPGA in the middle and 20 pins on both left and right sides which is symmetrical in design. a multiplexer is added to each pin between FPGA and connectors, which makes each pin of the board able to be connected to 5V, 3.3V, signal and Ground. All signals are connected to a FPGA in which all of them are able to be configured from software. 3.3V and 5V are selected because they are the most common power in the embedded world.

this is the PCB I completed: 

More details about Jumperlink

Jumperlink includes many useful features. Below is a summary of the key highlights:

1, Board size: 180 mm × 25.4 mm

2, Uses standard 2.54 mm pitch headers/connectors 

3. Provides...

Read more »

  • Another Jumperlink Example

    dylan zheng02/23/2026 at 14:48 0 comments

    Another Jumperlink Example

    (I²C OLED Demo)

    In this example, I’ll demonstrate how Jumperlink handles an I²C bus setup.

    The module used here is an SSD1306 128×64 0.91" OLED display (I²C version) — a common and inexpensive module easily available from AliExpress and other online suppliers.

    This OLED module exposes four signals:

    • VCC
    • GND
    • SCL (I²C Clock)
    • SDA (I²C Data)

    To make the comparison fair, I first built the test setup using traditional jumper wires.

    The running result is:

    Then I rebuilt the setup using Jumperlink instead of traditional jumper wires.

    The signal mapping is configured as follows:

    • R4 → SDA signal (from pin 3 of connector J8 on the I/O board)
    • R6 → SCL signal (from pin 5 of J8)
    • R10 → GND (from pin 9 of J8)

    On the left side of Jumperlink, pins L13, L15, L17, and L19 are assigned and connected to the OLED module (VCC, GND, SCL, SDA).

    In this example, we also need UART console access for debugging:

    • TXD (pin 8 of J8)
    • RXD (pin 10 of J8)

    Since connector J8 is now occupied by Jumperlink, those UART signals can no longer be accessed directly from the original header. Instead of running extra jumper wires, I simply re-linked them internally within Jumperlink and routed them to different available pins on the left side — in this case, L1 (TXD) and L3 (RXD).

    No rewiring. No signal conflict. Just reconfiguration.

    Below is the fully linked circuit configuration.

    The running result is:

    The final wiring is clean, compact, and easy to follow.

    As demonstrated, Jumperlink fundamentally improves how two modules are interconnected. It removes cable clutter and replaces it with a structured, software-defined configuration. Connections become faster to set up, easier to maintain, and far simpler to document and share with others.

View project log

  • 1
    Jumperlink Manual

                                         



    1. Introduction

    Jumperlink is a smart electronic connection platform designed to simplify circuit prototyping and testing. It replaces traditional jumper wires by allowing users to create electrical connections through software control, making circuit setup faster, cleaner, and more flexible.

    Instead of manually wiring connections on a breadboard, Jumperlink uses an internal switching matrix to route signals between pins. This enables rapid reconfiguration of circuits without physically changing wiring, reducing setup time and minimizing human error.

    By removing the need for physical jumper wires, Jumperlink helps streamline workflows, improve reliability, and create a more efficient development environment for engineers, students, and makers.

    2. Logical diagram

    Jumperlink is built around a central FPGA and features 20 pins on each side of the board in a symmetrical layout.

    Its logical diagram is shown below:

    Each pin is routed through a multiplexer positioned between the FPGA and the external connector. This design allows every pin from the connectors to be selectively connected to one of the following:

    • 5V power
    • 3.3V power
    • Digital signal (via FPGA)
    • Ground

    All signal paths are controlled by the FPGA and can be configured through software to match the requirements of the application.

    The inclusion of both 3.3V and 5V power rails ensures compatibility with the most commonly used voltage levels in embedded systems.

    3. Hardware structure

    ❶, Left-Side Connector The left-side connector provides 20 pins in a female header format for external device connections.

    ❷, USB Type-C Connector The USB Type-C connector is used to supply power to the board and to download configuration data.

    ❸, User Button Press the user button to toggle all links on both side connectors between enabled and disabled states.

    When links are disabled, all pins on both connectors are set to a high-impedance state.

    When links are enabled, pin functions operate according to the configured settings.

    ❹, User LED The user LED indicates the current link status. Different flashing rates represent whether the links are enabled or disabled.

    ❺, Right-Side Connector The right-side connector provides 20 pins in a male header format for external device connections.

    4. Dimension

    5. Driver installation in Windows

    The Jumperlink board uses an FTDI interface based on the FT232HL.

    For most Windows operating systems, including Windows 10, the required FTDI driver is automatically installed by the OS. No manual driver installation is required for basic USB recognition.

    However, to enable advanced communication with Jumperlink the driver must be replaced with libusbK.

    Follow the steps below to replace the default FTDI driver with libusbK by Zadig:

    1, Download Zadig from Internet

    2, Right-click the Zadig executable and select Run as administrator.

    3, Connect the Jumperlink board to your PC via the USB Type-C cable.

    4, In Zadig, go to Options → List All Devices.

    5, From the dropdown list, select the FTDI device (e.g., Single RS232-HS).

    6, In the driver selection box, choose libusbK.

    7, Click Replace Driver

    8, After completion, the device should now appear with the libusbK driver in Device Manager.

    6. Driver installation in Linux

    TBD

    7. Jumperlink2

    To enable flexible link configuration, Jumperlink provides a dedicated PC software tool called Jumperlink2.

    Jumperlink refers to the hardware device, while Jumperlink2 is the configuration software used to control and program the board. The software allows users to define pin functions, create signal links, and generate configuration files that can be downloaded to the hardware.

    Jumperlink2 provides the following features:

    • Pin Type Selection  Configure each pin as 5V, 3.3V, Ground, or Signal.
    • Signal Linking  Create connections between two pins when they are configured as signal pins.
    • Configuration Download  Download the generated configuration file directly to the Jumperlink board.
    • Configuration File Management  Save configurations as files on the PC. These files can be reopened, edited, and re-downloaded to the board when required.
    • Pin Description  Add simple text descriptions to each pin to make identification easier during configuration.

    Follow the steps below to configure and program the Jumperlink board:

    1, Open the Software

    Launch the Jumperlink2 application on your PC.

    ❶ , The currently opened file is shown in the top-left corner. For example, LED_tms167.json in the figure below.

    ❷ , The title Jumperlink2 appears at the top of the window.

    ❸ , A simple menu bar is provided for basic user operations.

    ❹ , A group of frequently used command buttons is located below the menu bar for quick access.

    ❺ , The central area of the application is the main working space where pin configuration and signal linking are performed.

    ❻ , The bottom section of the application displays log messages, including status information and operation results.

    In the working area, there are 40 units in total, labeled L1–L20 and R1–R20.

    They represent the 20 connector pins on the left side and the 20 connector pins on the right side.

    the Detail number of each pin:


    2, Configure Pins and Links

    Select the required pin type for each pin (e.g., 5V, 3.3V, Ground, or Signal) according to application.

    Each pin can be configured with 7 options:

    Hi-Z

    5V

    VCC

    GND

    Input signal

    Output signal

    OD (Open-Drain) signal

    the default set for VCC is 3.3V and the OD signal is mainly for I²C bus

    If a pin is configured as a signal (Input, Output, or OD), a connecting circle will appear next to the pin.

    To create a link, click the connecting circles of two signal pins according to your application requirements. For example, clicking the connecting circles of L9 and R12 will automatically create a link between these two pins.

     To delete a link, first select the link and then click the X mark displayed on it. Alternatively, changing either pin type from Signal to Hi-Z, 5V, VCC, or GND will automatically remove the link.


    3, Save the Configuration

    Click Save button or click File -> save to store the project file on your PC. The saved file can be reopened later for editing.

    4 Build the Configuration File  Click Build or Tool -> Build to generate the configuration .bin file.

    if it is built successfully, the Log output will looks like this:

    [2026-03-27 13:16:07] Build completed successfully.

    5, Upload to the Board  Connect the Jumperlink board to the PC using a USB type-c cable.  Click Upload or Tool-> Upload to download the generated configuration file to the board.

    [2026-03-27 13:22:42] Upload completed successfully.

    6,Enable the Links on the Board

    After the configuration .bin file has been downloaded, the User LED will flash slowly (3 seconds ON / 3 seconds OFF), indicating that the download was successful. At this stage, all pins remain in the Hi-Z (high-impedance) state.

    Press the User Button to enable the configured links. When the links are enabled, the User LED will flash faster (1 second ON / 1 second OFF), indicating that the downloaded configuration is active.

    Each time the User Button is pressed, the configuration will toggle between enabled and disabled states. The LED flashing rate indicates the current status.

    8. Extend boards

    As the default connector types on Jumperlink are male on one side and female on the other, it is easy to connect two devices that use different connector types. However, this configuration may be limited when both external devices use the same type of connector.

    For example:

    A male-to-male (header-to-header) extension connector allows Jumperlink to connect to devices that have female headers on both sides.

    A female-to-female extension board allows Jumperlink to connect to devices that use male pin headers.

    Right-angle extension connectors are also available to support different mechanical layouts and make connections easier in space-limited setups.

    These extension options allow Jumperlink to interface with a wide range of external devices and development boards.

    9. Example:Connecting a Raspberry Pi I/O Board to a TM1637 LED Module

    This example demonstrates how to use Jumperlink to connect a Raspberry Pi I/O board to a TM1637 LED display module without using traditional jumper wires.

    1, Prepare the Hardware

    The project requires the following components:

    • Raspberry Pi I/O board
    • TM1637 LED display module
    • Jumperlink board 
    • extent board

    Since the TM1637 LED display module uses male pin headers and the J8 connector on the Raspberry Pi I/O board also uses male pin headers, a female-to-female extension board is required to complete the connection.

    Normally, these two devices would be connected using four jumper wires. The required signals are:

    • 5V
    • GND
    • CLK
    • DIO


    2. Connect Jumperlink to the Raspberry Pi I/O Board and TM1637 module

    Attach the right-side connector of Jumperlink with the extent board,then to the lower section of connector J8 on the Raspberry Pi I/O board. When aligned with the bottom portion of the J8 header:

    • R1–R20 on Jumperlink correspond to pins 21–40 of J8.

    This alignment makes the pin mapping easier to follow and eliminates the need to repeatedly count header pins during setup.

    while TM1637 module is connected to L1,L3,L5 and L7.

    3,Configure the Pins in the Jumperlink Software

    Open the Jumperlink2 application and configure the required signals.

    For this example:

    • Configure the pins L1,L3,L5 and L7 to match TM1637 module. L1 and L3 are all Output as the data direction will be from Jumperlink to TM1637.
    • Configure the pins corresponding to GPIO20 and GPIO21.
    • Create links in the software

    L1 - R19 link is used for CLK of TM1637

    L2 - R17 link is used for DIO of TM1637

    There are no showing wires between IO board and TM1637 for power signals 5V and GND, because

    Jumperlink would provide 5V to TM1637

    L5 and R20 is connected by Jumperlink Ground plane.


    To improve clarity, name the pins in the software according to their actual functions.  For example:

    • name R19 as GPIO21, R17 as GPIO20, indicating the 2 pin are GPIO21 and GPIO20 from Raspberry CM4 module


    • Similarly name L1 as CLK, L2 as DIO to indicating the functions from TM1637 module.

    Once complete, save the project file.

    4,Build and Download the configuration to Jumperlink

     Click Build or Tool -> Build to generate the configuration .bin file.

    if it is built successfully, the Log output will looks like this:

    [2026-03-29 18:00:59] on_build.

    [2026-03-29 18:00:59] Updating verilog files...

    [2026-03-29 18:00:59] Running Apio build...

    [2026-03-29 18:00:59] 🟩 Running in Python source mode

    [2026-03-29 18:01:01] 🔧 Starting FPGA build flow...

    [2026-03-29 18:01:07] ✅ Build complete! Output: build.bin

    [2026-03-29 18:01:07] Build completed successfully.

    Click Upload or Tool-> Upload to download the generated configuration file to the board.

    if it is upload successfully, the Log output will looks like this:

    [2026-03-29 18:32:36] on_upload.

    [2026-03-29 18:32:36] Running Apio upload...

    [2026-03-29 18:32:36] 🟩 Running in Python source mode

    [2026-03-29 18:32:36] ⬆️ Uploading bitstream to FPGA...

    [2026-03-29 18:32:42] ✅ Upload complete!

    [2026-03-29 18:32:42] Upload completed successfully.

    Please note:

    The real output log will be subject to change after software updating to new reversion.

    After the configuration .bin file has been downloaded, the User LED will flash slowly (3 seconds ON / 3 seconds OFF), indicating that the download was successful. At this stage, all pins remain in the Hi-Z (high-impedance) state.

    Press the User Button to enable the configured links. When the links are enabled, the User LED will flash faster (1 second ON / 1 second OFF), indicating that the downloaded configuration is active.

    5, Test the function of TM1637

    Run the driver software of TM1637 on Raspberry Pi software, and the program runs as expected

    10.  More Examples

    TBD

View all instructions

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates