Modbus CRC Errors: Causes & Fixes

TROUBLESHOOTINGUpdated Feb 202610 min read

A CRC (Cyclic Redundancy Check) error means the Modbus frame arrived but was corrupted in transit. The master calculates a CRC from the received bytes and compares it to the CRC appended by the sender — if they don't match, something changed the data between sender and receiver. This is always a physical layer or electrical noise problem.

How CRC Works in Modbus

Every Modbus RTU frame ends with a 2-byte CRC-16 checksum. The sender calculates it from all preceding bytes using a standard polynomial (0xA001). The receiver does the same calculation and compares. If even a single bit is flipped during transmission, the CRC won't match.

Modbus TCP uses TCP's own checksumming and doesn't have this issue — if you're seeing data corruption over TCP, your problem is at the application layer (byte order, data types), not the transport layer.

Common Causes

1. Missing termination resistors

Without 120Ω terminators at both ends of the RS485 bus, signal reflections corrupt frames. This is the #1 cause of intermittent CRC errors, especially on cable runs over 10 metres.

2. Incorrect wiring

RS485 needs twisted pair cable. Running Modbus over untwisted cable alongside power cables introduces electromagnetic interference that flips bits.

3. Missing ground reference

Without a common ground between nodes, the differential voltage reference drifts and bit decisions become unreliable. This causes random CRC failures that are maddening to debug.

4. Baud rate too high for cable length

At 115200 baud over 500m of cable, you're asking for trouble. RS485 can do 1200m at 9600 baud, but the maximum distance drops as baud rate increases.

5. Electromagnetic interference

Running RS485 cables near VFDs, transformers, or high-current power cables introduces noise. BESS sites and generator installations are particularly bad for this.

Wiring Fixes

Grounding & Shielding

Connect a dedicated signal ground wire between all nodes on the RS485 bus. This is the third wire that manufacturers like Phoenix Contact and Wago correctly include in their RS485 connectors but that gets forgotten in field wiring.

Software-Side Fixes

While CRC errors are fundamentally a hardware problem, you can improve resilience:

📊 Request Logging

Track & diagnose CRC errors over time

ModBus Pro's built-in request logging records every request and response with timestamps. Spot patterns in communication failures — turning random errors into actionable diagnostics.

Download Free