Electronic – NRF24L01+ false detection

noisenrf24l01

I use a NRF24L01+ module configured for receiver, 3-bytes address, 1-byte CRC, 1 Mbit/s, channel 2402 MHz, 2 pipes listening. Addresses are non-trivial (0x525443 and 0x4d4252).

But when transmitter is off, and receiver stay listening, I have often false packet detection: every 5-15 minutes I get a valid packet (with random payload, of course) for a pipe, so address and CRC match. Why?

Just a simple calculation: suppose NRF24 chip constantly demodulate incoming RF signal even if there is no carrier 1). For valid packet it necessary to match 4 bytes: synchro (0xAA/0x55 depending on first address bit), 3 bytes of address (any of 2 pipes), 1 byte CRC, so average time for false detection (suppose uniform distribution) is

240/(2×106) sec = 152 hours

Moreover, when I configured the chip for 2-bytes CRC, I got false detection after 1.5 hours. This is very amazing, because CRC is uniformly distributed and average time for false detection should be multiplicated by 256, but actually multiplicated by 10 approximately. Why? I'm very confused.

Anybody have this problem? Maybe anyone can repeat my experiment?

P. S. I know that NRF24L01+ supports 5-bytes address, and I can add any number of my own checksum bytes to payload to solve my problem. I have just a theoretic question. Why I have so often false detection, that not agrees with math.


1) The receiver print carrier-detect register (0x09, called RPD for NRF24L01+) when valid packet appears: RPD is 0 when I have an accidental packet, RPD is 1 when I send packet from a transmitter.

Best Answer

This is a strong case to use RSSI to reject bad signals. The nRF24L01P has RPD=1 at signal >-64 dBm. But this chip nRF24L01, does not but has different thresholds of carrier detect. This should be reconsidered when garbage data is received. Also the L01 is not recommended for new design.

Your assumptions include that all noise is detected as random data, which does not appear to be true in your case. Analysis requires details of the design to see what data patterns are detected with statistical analysis. Perhaps Bias, asymmetry and filtered noise from LO leakage and stray noise are causing pattern bias from ambient signals. CRC length will help as expected only if noise is detected as pure random.

Another such example of non-random patterns is Rician Fading of stray transmitters in-channel modulates distortion according to reflection path interference length.

Your RPD should be mostly false and thus you ignore the data.