CAN Bus Servo: One Wire, No Collisions

A CAN bus servo isn’t just a servo with a different connector. It solves a problem that gets worse the more axes you add: what happens when multiple devices try to talk at the same time.

With eight PWM servos, you run eight separate signal wires. The controller refreshes each one sequentially — channel 1, then 2, then 3. At 50 Hz refresh, the last servo gets its position command 16 milliseconds after the first. With a quadcopter flight controller running a 400 Hz loop, that gap matters. But the real issue isn’t speed. It’s that PWM has no way to handle simultaneous communication because it never needs to. It’s one-way, one wire per servo. No collisions possible because there’s nothing to collide.

What Breaks with TTL

TTL UART fixes the one-way limitation. Servos can report position, temperature, current draw back to the controller. And you can daisy-chain them on a single bus instead of running separate wires. This looks good on paper.

The problem is bus access. When the controller polls servo 3 for its temperature, and servo 7 simultaneously tries to push a fault alert, both frames hit the bus at once. Neither gets through intact. The controller sees garbage, waits for a timeout, retries the poll. Servo 7 also retries its alert. Now you have two devices retrying into the same collision window and the bus throughput tanks. With two servos this is manageable. With twelve, it’s not.

CAN Arbitration in Practice

CAN bus servos handle this in hardware through non-destructive arbitration. Every CAN frame starts with an identifier. Lower ID numbers win. When two nodes transmit at the same moment, both drive the bus and listen. The node with the higher ID detects that its recessive bit got overwritten, realizes it lost arbitration, and backs off immediately. The winning frame continues without a single bit lost. No collision. No retry. No latency penalty.

In a 12-axis robot where six servos generate telemetry after a coordinated move, this is the difference between deterministic latency and random delays. Assign your safety-critical servo ID 1, your least-important axis ID 12. The bus sorts priority on its own.

Is it worth the cost? If you’re running two servos on a test fixture, no. If you’re integrating a multi-axis system where one missed telemetry frame triggers a fault shutdown, the hardware arbitration in a CAN bus servo pays for itself the first time a collision doesn’t happen.

Related: Programmable Digital Servo: Tune in Software

Secure Sampling: For small batches and Trade Assurance protection, visit our

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top