CRC and checksum calculator
You need to verify a CRC-16 Modbus, CCITT, XMODEM or CRC-32 value and the free calculator sites disagree with each other. 13 preset CRC polynomials plus a custom mode, all matching the published check values for the test string 123456789. Also XOR-8, SUM-8, LRC and Fletcher-16.
Open the calculator in EM·LINKBelow is a worked example. The working calculator runs free in EM·LINK.
Worked example
Example inputs
Example result
Matches the published check value. On a Modbus RTU frame send 37 then 4B.
| Algorithm | Poly | Result |
|---|---|---|
| CRC-16/MODBUS | 8005 | 4B37 |
| CRC-16/CCITT-FALSE | 1021 | 29B1 |
| CRC-16/XMODEM | 1021 | 31C3 |
| CRC-16/KERMIT | 1021 | 2189 |
| CRC-8/SMBUS | 07 | F4 |
| CRC-32 (zlib) | 04C11DB7 | CBF43926 |
Also XOR-8 0x31, SUM-8 0xDD, LRC 0x23, Fletcher-16 0x1EDE.
CRCs are computed in your browser. Nothing is sent to us.
The working calculator is CRC & Checksum Suite in EM·LINK, our free browser tool. The button opens it directly.
How to read the result
Every preset is checked against the standard test string, so you can trust the number before you put it in firmware or a frame builder.
The same suite covers the simple checksums used beside CRCs: the XOR-8 in GNSS sentences and the LRC trailer in Modbus ASCII.
How this is calculated
Each preset is a set of catalogue parameters: width, polynomial, initial value, input and output reflection, and final XOR. The register is updated one byte at a time.
The full derivation, step by step, is in the EM·LINK documentation.
Calculated per CRC catalogue check values. These tools are an engineering aid, not a certification.
Next step
Polling more than one device? Embedos Edge reads Modbus and pushes it to the cloud. Book a 20 min commissioning call.
Common questions
What is the CRC-16 Modbus of 123456789?
0x4B37. CCITT-FALSE gives 0x29B1, XMODEM 0x31C3 and CRC-32 (zlib) 0xCBF43926.
Can I enter a custom polynomial?
Yes. Set width, polynomial, init, input and output reflection and final XOR.
Which byte goes first in a Modbus RTU frame?
Modbus RTU sends the CRC low byte first, then the high byte.
Related tools
- Modbus register interpreter, to decode the registers once the frame passes its CRC.
- RS-485 termination and bias, when CRC errors come from a noisy or unbiased line.
- UART baud rate error, when bytes arrive corrupted because the clock divisor is off.