link101 started from a very real frustration: having to choose between buying different adapter boards for every robotics component or spinning a custom PCB for every project. So I decided to build one PCB to connect them all.
One board that speaks CAN-FD, RS485, Dynamixel, Feetech, UART, I2C, and MIT Cheetah-protocol actuators. One board that shows up as standard Linux devices over a single USB Type-C cable. No driver hell. No adapter spaghetti. No rebooting to figure out which ttyUSB is which.
Transparency mode is for getting your robot running fast. LINK101 acts as a protocol bridge. Your existing ros2_control setup, vendor drivers, and launch files work without modification. The board exposes every bus as a standard Linux interface β /dev/axon-can, /dev/axon-rs485, and so on. You don't write any firmware. You just plug it in and your hardware shows up where your existing code expects it.
Standalone mode is for when you need determinism. The RP2350 runs a ROS2 node on the MCU using zenoh-pico over USB CDC. Time-critical control loops move off the host OS entirely. No scheduling jitter. No missed deadlines. This requires writing application-specific firmware, but the SDK and a project template are provided.
Vendor library and templates are there to help you get running faster. We are adding drivers for all major actuator brands. Spend less time wrestling with protocols, more time building your robot. Community contributions are encouraged and credited.
Features and SpecificationsMCU: Raspberry Pi RP2350 (dual Cortex-M33 at 150 MHz, 520 KB SRAM, 2 MB flash
CAN bus: MCP2518FD transceiver, CAN-FD capable
- XT30(2+2) connector for MIT Cheetah protocol (Damiao, CubeMars, Unitree, MyActuator)
- JST-GH 4-pin connector for ODrive protocol
- Screw Terminals for everything else
RS485: hardware UART with transceiver (XH2.54 connector)
- Feetech and Dynamixel connectors
- Screw Terminals and 2.54mm Pin Headers for everything else
Half-duplex UART: 1x bus compatible with Feetech SCS/STS, Dynamixel Protocol 1.0 and 2.0, FashionStar bus servos (Dynamixel and Molex connectors)
Full-duplex UART: 2x serial ports, one with 5V level shifter (XH2.54 connectorss)
I2C: hardware I2C with Qwiic/STEMMA QT (JST-GH 4-pin connector)
- SparkFun, Adafruit STEMMA QT, Seeed Grove compatible sensors, displays, and expanders
- USB Type-C composite device with multiple interfaces (CDC serial ports, SocketCAN, debug)
- Stable udev device names (e.g.
/dev/axon-rs485,/dev/axon-can) - IMU: LSM6DSOTR 6-axis (accelerometer + gyroscope), and
- NeoPixel LED per protocol bus for visual status and debugging
- 7x GPIO and 4x ADC ports for further extension
link101 is open source across the stack. Hardware design files (KiCad schematics, PCB layout, fabrication outputs, BOM) and module footprints are released under CERN-OHL-W v2. Firmware SDK, protocol drivers, and ROS 2 packages are released under the MIT license. Custom carrier boards that use the module do not need to be open-sourced.
For standalone mode, the firmware SDK exposes a clean interface for adding protocol support: implement a small set of functions, register a protocol name, and you have a working driver.
We strongly encourage sharing drivers back to the community via pull request. Once merged, every user gets access to the new protocol, and the contributor is credited in the project. In bridge mode, no firmware development is needed at all since existing host-side ROS2 packages and vendor tools work directly over the exposed Linux devices.






Comments