NRF24L01 - is it possible to change RPD value?

According to Nordic Product Specification (, the RPD is the feature to detect signal on the wireless medium. The RPD will return "true" when the received power is above -64dBm. Otherwise, it will return "false".

I´m trying to develop a kind of a Spectrum Analyzer, something like the ones seen in the Internet, but I would like to detect signal presence in other power levels as welll (-70, -75, -80). Is it possible to change power received threshold used by the RPD function to other than -64dBm?

Is there someother wireless radio sensor that allows me to do so, if nRF24L01 doesn´t?

What do you mean by 'signal' ?

There are ways to see if there is any transmission occurring on designated channels. But if you are trying to analyze the spectrum to locate the noise floor for example, I do not believe the capability is there.

I have had issues with generic NRFs not auto acking etc, just a heads up if you get odd behavior

Rest assured there are thousands of 2.4 ghz signals in what ever area you live. WIFI uses that frequency area.
A SDR dongle connected to your PC with free software will allow you to hear and see all the signals you want, and likely will indicate relative signal strength on the waterfall display. Lots of them on Ebay.

What I mean by "to detect signal presence" is what the "carrier sense" itself is used for.

The spectrum anayzer sketchs available in internet using NRF24L01 do this just by checkimg the RPD (true/false). In other words, if there's something been received by the nRF24 with the power strenght >= -64 dBms, it will print something in serial line using waterfall graph. What it really does is to print true or false for the result of the RFD method.

However, what I'm planning to do is to plot the power strength detected on the wireless channels, whatever the power strength value is (-50dBs, -60dBm, -73dBs etc)

I need it to be programable, so it won't work a solution that I couldnt integrate with Arduino.

Yes, to locate the noise floor is one example. I need not only to detect the carrier but also to check how strong it is.

I understand the analyzer programs, what I am saying is that bool value being true or false if its above -65dbm is not a value that can be read like an analog value. Maybe I am not understanding completely

Have you taken a look into libraries out there? There are keywords that may be of interest to you. I'm not sure of your coding level

I need to print in a LCD screen something like I can do with, for example, the Chanalyzer. Yes, the logic boolean for >=-64 doesnt do what I need. If there's something been received with -70dBm in the local Im probing the Wifi signal, it will not be shown in the display.

The document you linked to also states the RPD setting is part of the logic when a VALID nRF24 message is received. So the RPD is only useful when another nRF24 is sending the message, not a general purpose scanner of the frequency range.

Paul, it works accordinly when you get the nRF24 near to a Microwave ovens, for example. I had a look at the document now, in the section 6.4, and I haven't found what you mentioned. However, for the purposes of detecting any kind of ISM signal above -64dBm, it is working properly. The only problem is that I can't find a way to change this threshold (-64dBm) to something else.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.