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