Teensy–Robstride Bridge
A hardware and software bridge that lets a PC reliably control multiple robot motors over Ethernet.
Goal, approach and outcome
- Goal
- Give a PC a simple, predictable way to command motors that speak a vendor CAN protocol.
- Approach
- Put a Teensy between the PC and the motors: receive command batches over UDP, forward them on CAN, wait for feedback from every motor, then accept the next batch.
- Outcome
- Steady control timing for teleop, logging, or higher-level controllers, with open-source firmware and host demos.
From the bench to the block diagram
The three motors in the photo are Motor 1 to 3 below. The Teensy sits between the PC and the CAN bus and keeps the whole chain in step.
Feedback from every motor before the next batch
Send
The PC sends one command batch to the Teensy over Ethernet (UDP).
Forward
The Teensy passes each command to its motor on the CAN bus.
Wait
It holds until every motor has answered with its feedback.
Repeat
Only then does it accept the next batch, so the timing stays steady.
Why the sync matters
Without waiting for every motor, command timing drifts and debugging becomes messy. Round-based Type 2 feedback across up to three daisy-chained O2 motors keeps the loop steady.
What the software includes
- Teensy firmware and C++ helpers for O2 frames
- Threaded host UDP client and CMake PC demos (comm test, MIT mode, multi-motor)
- Bring-up sketches and optional timing logs with a Python plot script
Default path uses UDP port 8003 on a small static LAN.
