To calculate a BCC checksum on Windows, apply the protocol's specified one-byte formula to the exact covered bytes: XOR-8 starts at 00 and XORs each byte, while Modbus ASCII LRC is the two's complement of the byte sum modulo 256.

The word “checksum” does not identify one universal algorithm. Different devices and protocols can use different widths, initial values, included fields, complements, byte orders, and framing rules. Some documentation even uses BCC for an additive checksum, LRC, or CRC rather than an eight-bit XOR.

The Checksum Calculator makes its three formulas explicit and processes the selected bytes locally. It does not guess which convention a device expects, so the device documentation remains the authority for the input and algorithm.

bcc checksum on windows
BCC Checksum on Windows: XOR-8, LRC, Byte Rules

Identify the checksum convention first

Before opening the calculator, record the protocol's input representation, checksum width, algorithm, initial value, covered fields, final transformation, and transmitted byte order. For a concrete vendor definition, the BALTECH XOR-8 BCC reference describes an eight-bit XOR over selected bytes.

Calculated value Formula Meaning Framing note
XOR-8 BCC BCC = 00 XOR b0 XOR b1 through bn A one-byte XOR of every selected byte. Order does not matter, and carries are irrelevant. Include only the fields defined as covered by the checksum.
Modbus ASCII LRC LRC = (negative byte sum) modulo 256 The two's complement of the final eight-bit sum. Standard Modbus ASCII excludes the starting colon and ending CRLF.
Raw sum modulo 256 Sum = (b0 + b1 through bn) modulo 256 A diagnostic intermediate showing the low eight bits of the ordinary byte sum. It is not the final Modbus LRC.

The MODBUS over Serial Line Specification V1.02 places the starting colon and ending CRLF outside the bytes supplied to the ASCII LRC calculation. Other protocols may define a different scope. Confirm the fields in the relevant vendor document rather than removing characters merely because they look like framing.

Calculate a BCC checksum in a Windows browser

  1. Read the device documentation. Identify the exact payload or frame fields covered by the checksum. Note whether the manual specifies XOR-8 BCC, Modbus ASCII LRC, an additive sum, or another formula, and record any required inclusion or exclusion rules.
  2. Open the Checksum Calculator in your Windows browser. The page provides separate controls for UTF-8 text and hexadecimal bytes, plus a calculation action.
  3. Choose the input representation used by the protocol. Select hexadecimal bytes when the documentation supplies explicit byte pairs or binary data. Select UTF-8 text only when the characters you type will be encoded as the intended protocol bytes.
  4. Enter exactly the covered bytes. In hexadecimal mode, type each byte as exactly two hex digits, with optional whitespace between bytes. Do not include a starting colon, CRLF, address, function code, or data field unless the target specification includes it in the checksum.
  5. Run the calculation. The page shows two lowercase hexadecimal digits for each of the three values and reports the exact number of bytes processed. Check that the displayed count matches the byte sequence described by the device manual.
  6. Compare the formulas with the documentation. Use the XOR-8 result for a documented eight-bit XOR, the Modbus ASCII LRC for the standard two's-complement convention, and the raw sum only when the device describes an additive result. The calculator does not claim protocol compatibility merely because a manual contains the word BCC.
  7. Copy the labeled output. A copied result includes all three values and the byte count, preserving the selected interpretation for a diagnostic note or support request.
  8. Check errors and input size. The calculator accepts at most 500,000 bytes, never silently truncates input, and reports malformed hexadecimal data without producing a partial value.

This browser-based Windows workflow keeps the byte count and formula visible while you compare the result with the manual. It avoids the ambiguity of entering a printable frame when the protocol actually operates on binary bytes.

Prepare the exact bytes for either input mode

Text and hexadecimal inputs are not interchangeable representations. Text mode follows UTF-8, while hexadecimal mode parses explicit bytes. Choose the mode that preserves the protocol's intended byte sequence.

Input mode What to enter Behavior to plan for
UTF-8 text The exact characters covered by the checksum. The browser encodes the string as UTF-8 first. Non-ASCII characters can contribute several bytes, so the displayed byte count may exceed the number of visible characters.
Hexadecimal bytes Two hexadecimal digits per byte, separated by optional whitespace. The parser rejects 0x prefixes, commas, colons, dashes, odd-length nibbles, and comments instead of guessing how to interpret them.

Use hexadecimal mode when the protocol specifies an exact binary payload, a non-UTF-8 character set, or bytes copied from a packet capture. Use text mode when UTF-8 is genuinely the protocol's representation. ASCII characters occupy one UTF-8 byte, but adding a non-ASCII character can change both the payload and the checksum input.

Framing remains a separate decision. For standard Modbus ASCII LRC, enter the message bytes without the starting colon and ending CRLF. For any other protocol, follow that specification's exact coverage. The page does not remove framing automatically.

Worked example for the bytes 31 32 33

Suppose a device specification identifies 31 32 33 as the covered bytes. These are the ASCII bytes for “123.” All arithmetic below is shown in hexadecimal.

  • XOR-8 BCC: (00 XOR 31) XOR 32 XOR 33 = 30.
  • Raw byte sum: (31 + 32 + 33) modulo 256 = 96.
  • Modbus ASCII LRC: (00 - 96) modulo 256 = 6A.

The raw sum and LRC satisfy the consistency relationship 96 + 6A = 100, which equals 00 modulo 256. The sample also shows why the three outputs must remain clearly labeled. Use 30 only for a documented XOR-8 BCC, or 6A for the documented Modbus ASCII LRC; this example alone does not establish what a real device expects.

Check the result before inserting it

Before placing a checksum byte into a message, confirm that the selected result matches the documented algorithm, checksum width, initial value, included fields, final complement, and byte-order convention. Also confirm that the calculator's byte count agrees with your frame. A visually similar text frame can contain a different number of bytes because of the input encoding or because framing was included by mistake.

For XOR-8, byte order within the covered sequence does not change the result because XOR is commutative. That property does not make every protocol's BCC interchangeable with XOR-8. An additive convention may call for the raw sum, a Modbus convention may call for the two's complement, and another device may use a different range or transformation entirely.

These one-byte checks can detect some accidental changes, but they are not cryptographic hashes, message authentication codes, digital signatures, encryption, or proof of origin. XOR and additive checksums have many collisions and can be deliberately adjusted. Do not use them to protect credentials, authorize commands, verify software downloads, or authenticate hostile network traffic. If the documentation calls for CRC-16, CRC-32, Fletcher, Adler, an Internet checksum, or a named cryptographic hash, this calculator is the wrong tool.