
When nothing arrives
Four symptoms cover most first failures on a CAN rail. Each has several possible causes, so a symptom is a clue and the way through is to change one thing at a time.
Read the symptom as a clue
The same symptom can come from different faults. Treat what you see as a clue and change one thing at a time. Two changes at once may fix the rail and teach you nothing about why.
The sender keeps trying
A frame is acknowledged when at least one other node received it without a CRC error. A lone sender never gets that dominant bit in the acknowledge slot, so it sees an acknowledge error, sends an error flag and tries again. The cause may be that no other node is on the rail, that the others are unpowered, that they are in listen-only mode, that their rates differ, or that a wire is open.
Both desks see errors
Every node on the rail must run at the same bit rate. Nodes keep in step by re-timing on edges, which only works if they agree how long a bit is. A node at the wrong rate flags errors and disturbs the others, so neither side is the broken one. Check the rate on every node.
The ends
With no 120 ohm blocks the edges reflect from the open ends, and the rail can fail, sooner as the rate rises. Measure with the power off: about 60 ohm between CAN high and CAN low means both ends are fitted, about 120 means one.
Swapped wires
If CAN high and CAN low are crossed at one node, its dominant bits push the difference the wrong way. The others read them as recessive, and it never reads theirs as dominant. Wire colours differ between cables and vehicles, so go by the labels on the connector, not the colour.
What comes next
A real board is the next step. Most ESP32 chips (the ESP32, S2, S3, C3, C5, C6, H2 and P4) have a CAN controller called TWAI, and it still needs a transceiver chip beside it. The TK109 CAN board chapter takes you from this hall to wires on a real board. This is the last lesson of the course.
Common mistakes
- Changing several things at once. If it starts working you do not know which change did it, and the next board fails the same way.
- Assuming the sender is broken because it keeps retrying. Retrying is what a sender does when nobody acknowledges. Look at the rail and the other nodes.
- Trusting wire colour. Colours vary.
Edit this page — content/fundamentals/can/when-nothing-arrives.mdx
Discuss this article
Ask about this page. The answer stays here, on the page it belongs to, for whoever hits the same wall next.