[Solved] TRANSCEIVER NRF24L01+

I have read people talking about the RSSI feature in it which is digital that is on/off is provided when the signal is under or equals to 48DB's , is that correct? because i have seen the datasheet of this module but could not find one

The RSSI on the nRF24L01P is actually referred to as the "RPD", or Received Power Detector. Its true when a carrier of -64dBm or greater is detected. See section 6.4 of the data sheet for full details.

Also worth noting the nRF24L01 does not have "RPD", but has a carrier detect function with different thresholds. See the nRF24L01 data sheet for complete information.

Edit: Transposed "P" and "D"

Gerg thanks man, just a bit of quick reference ,is that RDP a separate pin that can be read digitally or analog way ? Is there a code snippet that gives example on how lo do it?

No, not on a pin. All communication is via SPI. There are numerous drivers for the device and the data sheet clearly discusses communication.

Yesterday i was going by the Library for it here >> Arduino Playground - Nrf2401

and it provides the following abilities :

switching the device between receive and transmit modes
specifying a message size
specifying home and recipient addresses
sending a message
receiving a message

and ifthis has to be done manually without any reference to the library functionality then i need to figure out to do the following(from the datasheet of nfr24L01+):

Received Power Detector (RPD), located in register 09, bit 0, triggers at received power levels above -64
dBm that are present in the RF channel you receive on. If the received power is less than -64 dBm,
RDP = 0.

EDIT: How much distance is covered in the -64 DB , i mean how much near it would be to the other module if its above the -64 DB's? is it going to give only 0/1 values? that specifies above -64db's or below -64db's?

Right, so you'll tell it to read the address 0x09 and when you get the data back, you'll look at bit zero.

Excerpt from the RF24 library:

bool RF24::testRPD(void)
{
  return ( read_register(RPD) & 1 ) ;
}

Excerpt from the RF24 library:

Code:
bool RF24::testRPD(void)
{
return ( read_register(RPD) & 1 ) ;
}

By looking onto this function i can understand that it will just give me one value either 0 or 1 for being under or above -64 DB's respectively , correct? and not a analog reference type value.

That is correct. Either a signal above threshold is detected and RPD returns true, or its false. No analog or shades of gray. Very much boolean.

How much is 64DB's?? Distance?

dB is a very poor approximation of distance and requires you know something about both the RX and TX side to even be in the ball park. That's why, to do it semi accurately, you use triangulation.

traingulation, that's something GPS uses, but how can we implement it in here?

I do not believe that's an option with this radio module. You would need something with greater than 1-bit resolution and a fairly accurate timing source.

You would need something with greater than 1-bit resolution and a fairly accurate timing source.

Yes thanks , i think that's why GPS utilises this as it has that greater resolution.

Hi Gerg,

I wasn't able to find this:

Excerpt from the RF24 library:

Code:
bool RF24::testRPD(void)
{
return ( read_register(RPD) & 1 ) ;
}

Nrf2401 libraries cpp or header file, so which library were you stressing on?

that excerpt is from this library rf24and not from the one which i actually linked to.

can i get to know the exact code for getting the value of 0x09 register?

You have tacked your question onto a 6 years dead Thread that is marked "solved".

I suggest you start your own Thread and explain what you are trying to do. What is in the 0x09 register? The nRF24L01+ datasheet explains all the commands needed to interact with the device.

...R
Simple nRF24L01+ Tutorial