Pipes problem of NRF24L01


I know what does pipes mean, however, how do we know the address of the pipes?I mean I checked on the image below which lists all 6 different pipes that this module, but when i'm doing a tutorial the pipes they use are :

const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL };

These codes are not in the list from the image.


The nRF24 can listen on multiple pipes at the same time. The device that is sending the message must use an "address" and the pipe that is listening for that message must know that address.

Think of the pipes as a bunch of post-boxes for an apartment building. Each post box has the name of the apartment occupier (or the apartment number) and when I send a letter I must put the appropriate name or number on the envelope.

If, however, you just want a Master nRF24 to communicate with several Slaves it may be sufficient to use one listening pipe and call each Slave in turn. That way you can have many more slaves than there are pipes.

And if you just need to get a small amount of data from a slave there is no need for listening at all. The slave can incorporate the data in the acknowledgment of the message from the master. This is illustrated in the pair of programs in this link. Note that they assume you are using the TMRh20 version of the RF24 library