Modbus CRC16 Calculator
Calculate the CRC16 checksum for Modbus RTU frames. Paste a hex frame to verify or compute the CRC.
Modbus
CRC16
RTU
checksum
CRC
serial
RS-485
Input values
⚙
Enter values and click Calculate to see results here.
Formula
CRC16 = Polynomial 0xA001 (reversed 0x8005)
Initial value: 0xFFFF
XOR each byte, shift right, check LSB for polynomial XOR
Worked Example
Given: Modbus RTU frame: 01 03 00 00 00 0A
Step 1: Initialize CRC = 0xFFFF
Step 2: Process each byte through CRC algorithm
Step 3: Final CRC = 0xC5CD
Complete frame: 01 03 00 00 00 0A C5 CD
The last two bytes (C5 CD) are the CRC, low byte first.
Engineering Notes
- CRC vs LRC: Modbus RTU uses CRC16. Modbus ASCII uses LRC. Do not mix them up.
- Byte order: CRC is transmitted low byte first. If your device expects high byte first, swap the bytes.
- Common errors: Wrong CRC usually means wiring issue (TX/RX swap), baud rate mismatch, or noise on the RS-485 bus.
- Debugging tip: Use a serial protocol analyzer to capture the raw bytes. Verify the CRC matches your calculation.
References
- MODBUS over Serial Line Specification V1.02 — Section 3.2
- IEC 61158 — Modbus protocol