PB
Available
security
lock Free · Private · In-Browser

CRC-16 MODBUS Calculator

Generate the MODBUS reflected 16-bit cyclic redundancy check.

  

Run the reflected MODBUS CRC bit by bit

CRC-16 MODBUS starts with hexadecimal FFFF, XORs each byte into the low register, and shifts right eight times using reflected polynomial A001 whenever the outgoing bit is one. This calculator applies that exact parameter set to UTF-8 bytes and presents the register as four lowercase hexadecimal digits, making protocol test vectors and manually assembled frames easier to check.

The conventional check string 123456789 produces 4b37. On a MODBUS serial wire, the low CRC byte is transmitted first, so the two frame bytes would be 37 followed by 4b even though the numeric register is written 4b37. That byte-order distinction is a common source of false mismatches when comparing a calculator with captured packets.

Match byte order at the protocol boundary

A CRC is designed for accidental transmission errors, not malicious alteration, and different CRC-16 names can hide different initialization, reflection, polynomial, or final-XOR choices. Computation is private in your browser. This text page hashes UTF-8 bytes rather than a typed hexadecimal frame; use a byte-oriented implementation when protocol input must include arbitrary binary octets.

Frequently Asked Questions

What polynomial does CRC-16 MODBUS use?

The reflected bit loop uses hexadecimal A001, corresponding to the normal polynomial 8005.

Why are MODBUS CRC bytes sent low byte first?

The protocol appends the least significant CRC byte before the most significant byte on the wire.

Is CRC-16 MODBUS cryptographically secure?

No. It detects common line errors but can be deliberately recomputed after changing a message.

Take it further
All Free Tools

Browse the full set of free, private, in-browser tools.

Learn More arrow_forward