[WIP] IO_decoder: A modular High-Density USB I/O system (up to 128 pins)

More
11 Jan 2026 17:01 #341281 by bobwolf
Hi everyone,

I’d like to share a personal project I’ve been working on: io_decoder.

It’s a modular system designed to expand LinuxCNC I/O capabilities via a High-Speed USB connection.

Important Note on Use Case: This system is specifically designed for Operator Panels (HMI), pendants, and secondary controls. Since it communicates via USB, it is not intended for hard real-time machine functions (like step/dir motor control). It is the perfect companion for those who need a massive amount of I/O for buttons, switches, encoders, and potentiometers without using up expensive real-time FPGA pins.

How it differs from DIY serial solutions: Unlike standard serial-over-Arduino projects, io_decoder uses a dedicated HAL component optimized for lower latency and handles complex tasks (like keyboard mapping and encoder scaling) natively at the driver level, rather than requiring complex HAL logic.

Key Features:

Scalability: Modular design from 8 to 128 Digital I/O pins.

Smart Inputs: Built-in support for keyboard emulation (mapping pins directly to keysyms) and toggle functions.

Encoders & Analog: Supports up to 4 encoders and 3 ADC inputs for joysticks or feed-rate overrides.

Robustness: Integrated Hot-Plug management (auto-reconnect if the cable is unplugged).

Special Functions: Digital outputs with "blink" functionality and DAC outputs.

Project Status: This is a "labor of love" in active development. I have already produced and tested the first batch of PCBs. They are "first-run" prototypes with some "growing pains" (youthful mistakes!) that I’m currently fixing for the next hardware revision. The software side is stable and I'm already using it for my own setup.

Video Demo & Documentation: I've recorded a short video showing the current prototype in action: Video Link:


In the video you can see:

0:05 - Digital I/O (Buttons and LEDs) reactivity and HAL pin monitoring.

0:50 - Analog potentiometer (ADC) and Encoder tracking.

1:20 - Hot-Plug Test: Watch the driver automatically recover after disconnecting the USB cable!

Links: Official Project Page: bobwolfrst.github.io/io_decoder-linuxCNC/  GitHub Repository: github.com/bobwolfrst/io_decoder-linuxCNC

I’m looking forward to any feedback, technical advice, or questions from the community!

Best regards,

bobwolf
The following user(s) said Thank You: tommylight, pommen, COFHAL, nwallace, Unlogic, NWE

Please Log in or Create an account to join the conversation.

More
12 Jan 2026 07:55 #341305 by pippin88
Interested!

Cost?
The following user(s) said Thank You: COFHAL

Please Log in or Create an account to join the conversation.

More
12 Jan 2026 19:47 #341322 by bobwolf
Hi!
Thanks for the interest. I'm currently finalizing the cost analysis based on a small production batch.

My target is to offer a Starter Kit for 99€, which includes:

1x Base Board: (USB interface, ATmega core, 4x Encoder inputs, 3x Analog inputs, and DAC outputs).

2x Expansion Modules: Adding 16 Digital I/O (8+8) to the system.

Individual 8-bit expansion modules will be around 20€.

I'm currently refining the 'v2' hardware to eliminate the minor layout issues of the prototypes and optimize for small-scale production (aiming for an initial batch of 30 units). This price point allows me to offer a robust, pre-assembled solution while covering the extensive development of the HAL driver and firmware.

I'll keep you updated on the v2 progress and when I'll be ready to ship!
The following user(s) said Thank You: COFHAL, NWE

Please Log in or Create an account to join the conversation.

More
22 Jan 2026 09:44 #341683 by bobwolf
I've decided to release a 'Starter Edition' for Arduino Uno to let everyone test the driver's performance. Details and download link are available in the technical thread here:
forum.linuxcnc.org/27-driver-boards/5823...cal-feedback-request

Please Log in or Create an account to join the conversation.

Time to create page: 0.151 seconds
Powered by Kunena Forum