CRC-16/MODBUS Calculator
Enter Modbus RTU bytes in hexadecimal format. You can use spaces, commas, or a continuous hex string.
01 03 00 00 00 0A should produce CRC bytes C5 CD (low byte first).What this crc calculator modbus tool does
This page gives you a practical CRC-16/MODBUS calculator for Modbus RTU messages. If you work with PLCs, industrial sensors, RS-485 devices, or serial gateways, you know that one wrong CRC byte can break communication. The calculator helps you quickly generate and verify the checksum so your frame formatting is correct before testing on real hardware.
CRC in Modbus is not optional for RTU frames. It detects transmission errors and protects the integrity of requests and responses. The CRC is appended to the end of the frame as low byte first, high byte second, which is one of the most common points of confusion.
How to use the calculator
1) Calculate CRC for data bytes
Paste your frame bytes without CRC into the input box, then click Calculate CRC. The tool returns:
- The 16-bit CRC value in standard hex notation
- The transmit byte order for Modbus RTU (LSB first)
- Your original frame with CRC bytes appended
2) Verify a full Modbus frame
If your frame already includes CRC at the end, click Verify Frame CRC. The calculator will:
- Split payload and received CRC bytes
- Recalculate CRC over payload bytes
- Tell you whether the frame is valid
CRC-16/MODBUS parameters used
To avoid ambiguity, this tool uses the standard Modbus RTU CRC configuration:
- Name: CRC-16/MODBUS
- Polynomial:
0xA001(reversed representation) - Initial value:
0xFFFF - Reflect input/output: Yes (bitwise algorithm reflects behavior)
- XOR out:
0x0000 - Byte order in frame: Low byte first, high byte second
Worked Modbus example
Request frame (without CRC):
01 03 00 00 00 0A
Calculated CRC is 0xCDC5. For Modbus transmission order, append:
C5 CD
Full RTU request becomes:
01 03 00 00 00 0A C5 CD
Common mistakes when debugging Modbus CRC
- Appending CRC high byte first instead of low byte first
- Including spaces or separators as bytes by mistake in custom scripts
- Calculating CRC over ASCII hex characters instead of binary byte values
- Using CRC-CCITT or CRC-IBM defaults instead of true Modbus settings
- Including start/stop bits, parity, or timing gaps in CRC calculation (do not do this)
Why this matters in real systems
In an industrial network, intermittent CRC issues can look like random timeouts, slave exceptions, or communication drops. A reliable calculator lets you validate frames before firmware deployment, reducing troubleshooting time and avoiding expensive downtime. It is especially useful when integrating new instruments, writing custom drivers, or testing through serial-to-Ethernet bridges.
Quick FAQ
Does this work for Modbus TCP?
Modbus TCP does not use the RTU CRC field because TCP already has error checking. This calculator is for Modbus RTU-style CRC.
Can I paste hex with commas or 0x prefixes?
Yes. Formats like 0x01,0x03,0x00,0x00,0x00,0x0A are accepted.
How do I know if my frame is complete?
For verification mode, include the full frame with the last two bytes as CRC. The calculator compares those bytes against a fresh CRC computation.
Final note
Use this crc calculator modbus tool as a quick validation step whenever you build or inspect RTU frames. Correct CRC handling removes one of the biggest sources of communication errors in serial Modbus integrations.