Skip to main content
Anh Duc Tran

Embedded · 2026

Teensy–Robstride Bridge

A hardware and software bridge that lets a PC reliably control multiple robot motors over Ethernet.

Teensy 4.1 · UDP · CAN · Robstride O2 · C++

Bench setup: Teensy 4.1 and three Robstride O2 motors.
Three Robstride O2 motors with Teensy control board

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.

  1. Send

    The PC sends one command batch to the Teensy over Ethernet (UDP).

  2. Forward

    The Teensy passes each command to its motor on the CAN bus.

  3. Wait

    It holds until every motor has answered with its feedback.

  4. 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.

Next project

Perception · 2025

Vision-Based Human-Following Robot

A mobile robot that detects a person, follows them at a safe distance, avoids obstacles, and can switch modes using hand gestures.