ADS-B CRC Calculation Tool
Compute and verify the 24-bit cyclic redundancy check used in ADS-B and Mode S frames. This premium calculator supports full 112-bit and 56-bit messages, plus payload-only parity generation for 88-bit and 32-bit data fields. It is ideal for avionics engineers, SDR hobbyists, surveillance analysts, and anyone validating 1090 MHz message integrity.
CRC Calculator
Expert Guide to ADS-B CRC Calculation
ADS-B CRC calculation is one of the most important low-level validation steps in 1090 MHz surveillance analysis. Whenever an aircraft broadcasts an ADS-B extended squitter, the receiver must decide whether the message was captured cleanly enough to trust. That decision starts with the cyclic redundancy check, commonly called the CRC or parity field. A correct CRC does not guarantee that every decoded field makes operational sense, but it is the first and most fundamental filter that protects downstream position, velocity, identity, and status processing from random bit errors.
At a practical level, an ADS-B CRC calculator takes a stream of message bits, applies the Mode S generator polynomial, and produces a 24-bit remainder. In a full message, that remainder should match the parity bits embedded at the end of the transmission. If you are working from a payload-only bit string, the same process generates the parity bits you would append to create a complete frame. This is exactly why CRC calculation matters in avionics development, SDR decoding, and surveillance data quality testing.
Why CRC matters in ADS-B
ADS-B relies on a broadcast model. The aircraft transmits, and any properly tuned receiver can hear the message if radio conditions allow. Because there is no guaranteed point-to-point handshake for each 1090ES broadcast, the receiver must quickly detect corruption on its own. The CRC provides a compact and mathematically robust method to do that. If noise, interference, multipath, or bit timing issues alter the message, the final remainder usually changes, and the receiver rejects the frame.
In the field, CRC validation is especially useful when comparing decoder performance. If two SDR setups are receiving the same aircraft, the one with fewer CRC failures is usually doing a better job on signal chain integrity, gain staging, clock stability, front-end filtering, or demodulation. For engineering teams, CRC pass rate is also a helpful benchmark when testing antennas, LNAs, coax runs, and embedded receivers.
| Frame Type | Total Bits | Data Bits Before Parity | Parity / CRC Bits | Approximate On-Air Time Including 8 Microsecond Preamble |
|---|---|---|---|---|
| Mode S short frame | 56 | 32 | 24 | 64 microseconds |
| ADS-B extended squitter / long Mode S frame | 112 | 88 | 24 | 120 microseconds |
The numbers above are foundational. At a 1 megabit per second symbol rate, each message bit occupies about 1 microsecond. Add the fixed 8 microsecond preamble and you get the total time the message occupies the channel. That matters because longer frames provide more payload capacity but also stay on the air longer, which can increase the chance of collisions in busy airspace.
What exactly is being calculated
In standard ADS-B extended squitter, the final 24 bits carry parity generated from the preceding bits using the Mode S generator polynomial. The common implementation pattern is straightforward:
- Take the message bits that should be protected by the CRC.
- Append 24 zero bits to the protected portion if you are generating parity from payload only.
- Perform modulo-2 polynomial division using the Mode S generator polynomial.
- Take the 24-bit remainder as the CRC or parity value.
- For a full message, compare the computed parity against the last 24 transmitted bits.
Modulo-2 division sounds abstract, but in software it is mostly XOR logic. There are no carries like ordinary arithmetic. Each time the leading current bit is a one, the generator polynomial is XORed into the aligned message segment. Once you walk across the frame, the final 24 bits left over are the remainder. That remainder is the value this calculator displays.
ADS-B versus generic Mode S parity behavior
One reason people search for ADS-B CRC calculation rather than just Mode S CRC is that not every Mode S message is interpreted the same way. ADS-B extended squitter, especially DF17, is the cleanest case for parity validation because the 24-bit field is used directly as a CRC parity result. Other Mode S formats may involve address parity or data parity overlay conventions. If you feed one of those frames into a simple ADS-B CRC checker, it can appear to fail even when the transmitter is behaving correctly for that specific downlink format.
That is why a serious workflow always starts by identifying the frame length and downlink format. If the frame is a standard 112-bit ADS-B message, CRC verification is direct. If it is a different Mode S response, additional interpretation may be required. This calculator is optimized for ADS-B CRC work and for parity generation from raw payload bits, which covers the most common engineering and hobbyist use cases.
Field structure and where the CRC sits
For a 112-bit ADS-B message, the first 5 bits represent the downlink format, followed by the capability field, the 24-bit ICAO aircraft address, and the 56-bit ME field that holds the actual ADS-B content. The final 24 bits are parity. Many decoders refer to that final field as PI. If you are analyzing a hex string, the last 6 hex characters correspond to those 24 parity bits because each hex character equals 4 bits.
| Field | Typical ADS-B Extended Squitter Width | Purpose |
|---|---|---|
| DF | 5 bits | Identifies the downlink format, such as DF17 for standard ADS-B extended squitter. |
| CA | 3 bits | Capability information related to transponder behavior. |
| ICAO Address | 24 bits | Unique aircraft address used across surveillance systems. |
| ME | 56 bits | Message payload carrying position, velocity, identification, or status data. |
| PI | 24 bits | Parity or CRC field used for error detection. |
How to use this calculator effectively
If you already have a complete 28-character hex message, choose the 112-bit full message option and paste it into the input box. The calculator will sanitize spaces, compute the expected CRC over the protected bits, extract the transmitted parity from the last 24 bits, and tell you whether they match. If they do, the message passes CRC validation. If not, you likely have a bit error, a format mismatch, or a non ADS-B parity overlay case.
If you are generating test traffic or building your own frame encoder, choose the payload-only mode instead. The tool will append 24 zero bits internally, perform the division, and return the correct 24-bit CRC value to append. This is useful when constructing unit tests for decoders, validating FPGA logic, or comparing embedded firmware output against a known-good reference.
Common reasons for CRC failure
- Weak signal strength or high thermal noise that corrupts one or more bits.
- Front-end overload from excessive gain or nearby strong transmitters.
- Clock drift or sample rate mismatch in the SDR demodulation chain.
- Incorrect message length assumptions, such as treating a 56-bit frame as 112 bits.
- Using a simple ADS-B CRC check on a Mode S frame that uses parity overlay conventions.
- Typing errors when entering hexadecimal data by hand.
When debugging, always inspect the basics first: correct frame length, valid hex count, and the expected downlink format. After that, compare the embedded and calculated parity values byte by byte. This calculator includes a chart for exactly that reason. A byte-level view often reveals whether the mismatch is small, random, or systematic. Systematic patterns can point to nibble shifts, truncation, or repeated parsing mistakes.
Performance interpretation for real receivers
One CRC mismatch in isolation is not especially meaningful. What matters is the rate of clean frames over time. In a healthy RF environment, a well configured 1090 MHz receiver should pass CRC on a high percentage of decodable messages. If your CRC pass rate drops sharply during busy traffic periods, you may be seeing front-end compression, local interference, or overlap between simultaneous messages. If the pass rate is poor all the time, check antenna placement, coax loss, connectors, and any bias tee or LNA arrangement.
Another practical tip is to compare CRC pass rates across message types. Position squitters, velocity messages, and aircraft identification messages are all carried inside the same extended squitter framework, so the CRC process is identical. If only one type seems to fail in your logs, the problem is often not RF. It may instead be a parser bug in the code that routes specific type codes after demodulation.
Reference numbers professionals should remember
- 1090ES transmissions use the 1090 MHz frequency.
- Extended squitter messages contain 112 total bits.
- Short Mode S messages contain 56 total bits.
- The CRC length is 24 bits in both cases.
- A 28-character hex string corresponds to 112 bits.
- A 14-character hex string corresponds to 56 bits.
These numbers form the backbone of fast manual validation. If someone sends you a claimed full ADS-B frame that has only 24 hex characters, you can immediately tell it is incomplete. Likewise, if a reported parity field is only 4 hex characters long, it cannot represent the full 24-bit ADS-B CRC.
Standards context and authoritative resources
For broader operational context around ADS-B equipment and surveillance modernization, the Federal Aviation Administration maintains useful technical and program references. Start with the FAA ADS-B equipage overview at faa.gov/nextgen/equipadsb and the FAA technology page at faa.gov/air_traffic/technology/equipadsb. These pages are not CRC tutorials by themselves, but they provide the regulatory and operational framework that explains why message integrity checks matter.
If you are doing deeper decoder work, combine official operational references with protocol-level documentation and validated open research implementations. The operational layer tells you why the data exists. The bit-level layer tells you how the message is encoded, protected, and validated. Together, they make CRC results far more meaningful than a simple pass or fail label on a screen.
Final takeaway
ADS-B CRC calculation is not just a mathematical exercise. It is a practical reliability gate for every 1090ES receiver chain. Whether you are verifying a single hex message, building a transponder test fixture, or tuning an SDR feeder station, understanding the 24-bit parity check helps you distinguish real aircraft data from corrupted noise. Use full-message mode when you want to verify received frames, and use payload-only mode when you want to generate the correct parity for test vectors. In both cases, the CRC is your first line of confidence.
Engineering note: this page focuses on direct CRC validation for ADS-B style frames and generic Mode S parity generation. Some non ADS-B downlink formats can involve additional parity interpretation logic beyond a simple compare.