CR 4/7
How CR 4/7 Shapes a LoRa Link Budget
LoRa transmits payload data in nibbles (4-bit groups) and applies a shortened Hamming block code before interleaving and Gray mapping onto chirp symbols. The coding rate selects how many parity bits are appended to each nibble: CR 4/5 adds one bit, CR 4/6 adds two, CR 4/7 adds three, and CR 4/8 adds four. With three parity bits per data nibble, CR 4/7 produces 7-bit code words, so the coded payload grows by the factor 7/4 = 1.75 relative to the raw data. That 75% overhead is the price for letting the demodulator correct, not merely detect, isolated symbol errors that slip past the spread-spectrum processing gain.
The error-correction benefit interacts directly with the rest of the LoRa modulation chain. The chirp spread-spectrum waveform already buys roughly 10*log10(2^SF / SF) dB of processing gain, pulling weak signals out of the noise. CR 4/7 then cleans up the residual symbol errors that remain near the demodulator threshold, which in practice extends usable range by a fraction of a dB to a couple of dB of additional fade margin compared with CR 4/5. Because the diagonal interleaver spreads each nibble across several consecutive chirp symbols, a burst of interference that wipes out one or two symbols can still be reconstructed from the surviving code-word bits.
The trade-off is airtime. Every extra parity bit lengthens the on-air packet, raising energy per message and consuming more of a node's regulatory duty-cycle allowance in bands like EU 868 MHz. For a battery sensor reporting infrequently over a clean channel, CR 4/5 is usually the right default; CR 4/7 earns its overhead on links that sit near the sensitivity floor or share a congested industrial band.
Coded Payload and Time-on-Air
Rcode = 4 / (4 + n) → n = 3 gives Rcode = 4/7 ≈ 0.571
Coding overhead:
Overhead = (4 + n)/4 − 1 = 3/4 = 75%
Payload symbol count (LoRa, with header):
npayload = 8 + max( ⌈(8·PL − 4·SF + 28 + 16 − 20·H) / (4·(SF − 2·DE))⌉ × (4 + CRn), 0 )
Time-on-air:
Tpacket = (npreamble + 4.25 + npayload) × (2SF / BW)
Where PL = payload bytes, SF = spreading factor, H = 0 for explicit header, DE = low-data-rate optimize flag, CRn = n (1 to 4), BW = bandwidth in Hz. Example: PL = 20 B, SF = 9, BW = 125 kHz, CR 4/7 → Tpacket ≈ 0.31 s versus ≈ 0.23 s at CR 4/5.
Coding-Rate Comparison
| Coding Rate | Header n | Rcode | Parity bits / nibble | Overhead | Typical Use |
|---|---|---|---|---|---|
| CR 4/5 | 1 | 0.800 | 1 (detect only) | 25% | LoRaWAN default, clean channels |
| CR 4/6 | 2 | 0.667 | 2 | 50% | Light interference, energy-sensitive |
| CR 4/7 | 3 | 0.571 | 3 | 75% | Cell-edge or moderately noisy links |
| CR 4/8 | 4 | 0.500 | 4 | 100% | Severe bursty interference, max robustness |
Frequently Asked Questions
How much extra airtime does CR 4/7 add versus CR 4/5?
The coded payload scales with the factor (4 + n)/4, so CR 4/5 (n = 1) uses a 1.25 multiplier and CR 4/7 (n = 3) uses 1.75, a 40% increase in coded payload symbols. For a 20-byte payload at SF9 and 125 kHz, time-on-air typically grows roughly 30 to 40%, from about 0.23 s to 0.31 s, raising energy per packet and duty-cycle consumption in the same proportion.
Does CR 4/7 use a real error-correcting code or just parity?
It applies a shortened Hamming block code at nibble granularity with interleaving and Gray mapping. CR 4/5's single bit gives detection only, but CR 4/7's three parity bits per four-bit word allow single-bit correction within a code word plus extra detection. Combined with the diagonal interleaver that spreads a nibble across multiple chirp symbols, it recovers from short bursts of corrupted symbols rather than only flagging them.
When should I choose CR 4/7 instead of CR 4/8 on a LoRaWAN node?
CR 4/7 is the middle ground when a link sees occasional interference but cannot afford the full 100% overhead of CR 4/8. Use it for fixed sensors in moderately noisy industrial bands or cell-edge links a few dB above the demodulator floor. Step to CR 4/8 only for severe bursty interference. Note that standard LoRaWAN channels fix the rate at CR 4/5, so CR 4/7 is most relevant to proprietary point-to-point or fixed-rate private networks.