Chris Collins

Tools · embedded

CRC and checksum calculator

Compute any of 40 standard CRCs (CRC-8 to CRC-64) or define your own, identify an unknown CRC from an expected value, generate C code, and calculate checksums, NMEA, Luhn, and Modbus RTU frames.

Added

How to use it

CRC

Enter data as text (with \n, \r, and \xNN escapes), hex bytes, decimal bytes, or a file. The table shows every algorithm in the catalogue — CRC-8/SMBUS, CRC-8/MAXIM (Dallas 1-Wire), CRC-16/MODBUS, CRC-16/XMODEM, CRC-16/CCITT-FALSE, CRC-16/KERMIT, CRC-32 (Ethernet, zip), CRC-32C (Castagnoli), CRC-32/MPEG-2, CRC-64/XZ, and more — with its result in hex and the parameters that define it. A note says where each one is used. Filter the list by name or use.

To identify an unknown CRC, paste the value your device sends into Expected. Matching algorithms are highlighted, including 16-bit ones whose bytes are swapped on the wire.

Custom lets you set the width (1–64), polynomial, initial value, input and output reflection, and final XOR (the Rocksoft/RevEng model), shows the check value for 123456789, and generates table-driven C code you can copy or download.

Other checks

  • Checksums: 8-bit sum and two’s complement, 16-bit sum, XOR, LRC, Fletcher-16 and -32, Adler-32, and the Internet (IP/UDP/TCP) checksum.

  • NMEA: checks or adds the *hh checksum on GPS sentences.

  • Luhn: validates card, IMEI, and other numbers and gives the check digit.

  • Modbus RTU: builds a request frame from address, function, and data with the CRC appended (low byte first), and decodes a received frame, checking its CRC and explaining the function and exception codes.

All 40 catalogue entries are checked against their published check values.

Sharing

Share link copies a URL that opens this tool with your current settings — every value it remembers between visits, packed into ?s=. Opening a link replaces your saved settings for this tool. You can also write a short link by hand with data, mode (the CRC input and how to read it (text, hex, dec)), for example /tools/crc/?data=01%2003%2000%2000%2000%200A&mode=hex.

Runs entirely in your browser; nothing you type leaves this page.