Hello world, first time posting.
I’ve been working with ROS for a few years, mostly on the CI/CD, deployment, and control side. Lately I got into hardware, and I have something I think the community might find useful.
The low-level I/O situation has always frustrated me.
On one end, you have the dongle pile. USB-to-RS485. USB-to-CAN. A Dynamixel U2D2. Each with its own driver quirks, its own /dev/ttyUSBx that shuffles every reboot, its own failure mode. It works until you need to change something, and then you’re re-routing cables and debugging enumeration order.
On the other end, you roll your own. Pick an MCU, write firmware, handle timing, deal with half-duplex bus contention, implement a host protocol, write a ROS node to talk to it. Three weeks later you’re debugging edge cases instead of working on your robot.
I wanted something in between. A single board that handles the bus interfaces, exposes everything as standard Linux devices, and gets out of the way.
That’s Axon.
Interfaces
- 1x half-duplex TTL bus (Dynamixel, Feetech, Waveshare servos)
- 2x UART ports (one with level-shifted interface for GPS, BMS, etc.)
- 1x RS485 (Servos, Waveshare hub motors, Modbus RTU, VFDs, BMS)
- 1x CAN FD with XT30 (2+2) and JST-GH connectors (ODrive, Gyems, Damiao)
- I2C with Qwiic connectors
- Integrated 9-DOF IMU (LSM6DSOTR + MMC5983MA)
Features
- Stable device names: /dev/axon_serial0, /dev/axon_rs485, socketCAN can0. No more guessing which /dev/ttyACMx is which.
- Per-bus activity LEDs
- Sniff mode: hold a button at boot and the board captures all bus traffic with direction tagging. No logic analyzer, no extra hardware.
Modular architecture
The Axon core is a module. The carrier board handles connectors and form factor. Don’t like the connector layout? Grab the KiCad template and design your own carrier. Or use the reference carrier and get building.
Out of the box it’s a transparent USB bridge. But it’s an RP2350 under the hood. When you need tighter timing, local sensor fusion, or real-time control loops, flash your own firmware. Run PicoROS over zenoh-pico. Close loops on-MCU at kHz rates. Same board, same connectors, no hardware redesign. I’ll release an example repo for that path shortly.
Status
Fully open source, hardware and firmware. Prototypes validated. Coming to Crowd Supply soon.
Happy to answer questions. Curious what features would make this more useful for your setups.
