RFM69 OOK – DAGC, Sensitivity Boost and Modulation index

As a final step in exploring the optimal settings for receiving “foreign” OOK signals with the RFM69, the settings for DAGC, Sensitivity Boost and the effect of the Modulation index are explored. The modulation index is actually a FSK aspect, and no effect should be expected for OOK. However, as it can be programmed to High or Low, it is included in the exploration.

Foreign OOK refers to signals that are not natively produced by an RFM69, but are originating form various sensors or remote controls.

From the first results, it can be concluded that Sensitivity Boost has a clear advantage, and also DAGC enabled helps in icreasing sesnitivity:

Experimental setup

A LPC824/RFM69CW has been programmed to send an FS20-like signal every second, which consisted of 3 repetitions spaced about 50ms. The signal includes a 16-bit sequence number, and the transmit power settings. On a raspberry pi 2 with RFM69CW, the signal is received. The power setting sweep at the transmit side is from 0 to 31. The total measurement continued for about 43 hours. During this time 468480 OOK pulse trains have been transmitted. Of which 155620 signals have been picked up by the receiver (33%). The signal contains parity bits and a checksum. Only 75 of the 155620 received signals (0.04%) contained an error. The transmitter and receiver were separated about 10 meters, including a concrete wall and floor. Per one of the 8 modes, the maximum number of signals send out is 58560. Per mode-power setting it is 1830. The transmitter and receiver were programmed to transmit 10kHz separated (868.270MHz and 868.280Mhz)

The receiver sensitivity as function of the receive settings for DAGC, Sensitivity and Modulation index and Transmit Power as recorded is shown below:
What strikes is that below power=16 no signals are received at all. This is quite a steep cut-off. At P=16, already about 50% of the signals is received compared to the high power signals (P~30). At low powers (weakest signals) the best setting is DAGC enabled, Sensitivity Boosted and Low-M (Modulation index Low). However at stronger signals DAGC enabled, Sensitivity boosted and high modulation index seems to be the winner. For weaker signals enabling DAGC is a good thing. For stronger signals it does not matter that much. sensitivity boosted is always advantageous.

The leveling out at higher powers indicated a “100%”. This actually is not true. For each bar drawn, the maximum number of signals is 1830, while we se at most around 1400 counts. This means we are missing still about a quarter of the signals. That the highest power levels have virtually equal performance indicates that they can be received very reliably. However, there can be a number of reasons why signals are missed:

  • The Receiver program is switching between receiver settings, and periodically measuring RSSI and calculating statistics. This should however account to only 1% misses at most.
  • It runs on a Non-real-time Linux, and linux scheduling may interfere a lot.
  • Interferences with other signal sources such as passing trains or cars, other remotes etc may also account for some loss of detection.


DAGC enabled, Sensitivity Boost enabled, and as one has to choose: Modulation index: High-M.

Leave a Reply

Your email address will not be published. Required fields are marked *