Modbus RTU / TCP Frame Generator & 16-Bit CRC Calculator

CALCULATE MODBUS CRC-16 (LOW/HIGH BYTE) & PARSE FIELD HEX MESSAGES

Generated Modbus RTU Frame

Modbus CRC-16 (Low Byte, High Byte) --
Complete Transmission Frame (Hex) --
Decoded Frame Breakdown:
--

Modbus CRC-16 Calculation Algorithm

Polynomial: 0xA001 (Reverse of 0x8005) | Initial Value: 0xFFFF

Modbus RTU uses a 16-bit Cyclical Redundancy Check (CRC-16) appended to every request and response message. The lower byte of CRC is transmitted first, followed by the higher byte.

Frequently Asked Questions

Why is the CRC byte order swapped in Modbus RTU?

Standard Modbus RTU specification mandates Little-Endian byte order for the 16-bit CRC checksum. That means CRC Low Byte is transmitted first, followed by CRC High Byte.

What are the most common Modbus Function Codes?

FC 03: Read Holding Registers, FC 04: Read Input Registers, FC 06: Write Single Register, FC 16 (0x10): Write Multiple Registers.

How does Modbus TCP differ from Modbus RTU?

Modbus TCP encapsulates the Modbus PDU inside a 6-byte MBAP header (Transaction ID, Protocol ID, Length, Unit ID) over Ethernet TCP/IP port 502, eliminating the need for CRC-16 checksums.