Module 1 · 2 hours
CAN Bus & Digital Diagnostics
CAN is the nervous system of most humanoids. This module covers the protocol, how to read traffic with a sniffer, and how to localize a fault to a specific node.
Learning Objectives
- Explain CAN frame structure, arbitration, and node IDs
- Read a CAN trace and identify the source node for any message
- Diagnose bus errors — passive, active, bus-off — from telemetry
- Distinguish a dead node from a wiring fault from a termination issue
CAN fundamentals in 10 minutes
CAN is a two-wire differential serial bus. All nodes share the bus; each listens to every message and decides based on ID whether to act.
Arbitration is lossless: lower IDs win. This is why safety-critical messages are assigned low IDs.
The bus requires 120 Ω termination at each physical end. A missing or extra terminator is one of the most common sources of intermittent errors.
Reading a trace
Connect a CAN sniffer to a T-junction — never break the bus during diagnosis.
Filter by node ID first, then by message type. Joint state messages are typically 0x100–0x1FF; commanded torques 0x200–0x2FF.
A node that stops transmitting but still ACKs is alive but faulted. A node that stops ACKing is powered down or disconnected.
Bus error states
Error-active: normal. Transient errors are logged but the bus recovers.
Error-passive: the node is generating errors but is being quiet about it. Check wiring and termination.
Bus-off: the node has disconnected itself. Power-cycle to recover, and investigate whatever drove it off the bus.