This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nRF24l01

Hello, Greetings, in the nRF24L01 datasheet, it's mentioned that the module can work as a multiceiver using the six parallel data pepes,my question is that if it is possible for a nRF24l01 module(PRX) to communicate with more than six modules(PTX)?Or can a PRX communicate with multiple PTXs using only one data pipe? thanks

  • Yes, the multiceiver function is just for matching on 6 addresses in parallel, if you use the same address for for multiple PTX devices you can have more. However if you use the acknowledgement feature there is a risk that if two PTX devices send a packet at similar time, one packet may be received but both PTX devices may interpret the acknowledgment.

  • Hi, Janek. Thank you for your reply. Do you mean that if two or more PTX devices send packets at similar time, one packet is surely to be recevied and the others lost? Best regards zg

  • Hi zg,

    if two or more PTX devices with the same address send a packet at the same time (or with overlapping on-air times), either one or zero packets will be received by the PRX, as the PRX can only receive one packet at a time. If the PRX is set to acknowledge the packet, more than one of the PTXs may interpret the acknowledgement packet as being addressed to them, giving the illusion that their packet was received by the PRX, hence not resulting in a retransmit of this packet from this PTX and a lost packet.

    If the PTXs are using different addresses, it is still the case that one or zero packets will be received, however the acknowledgement would only be received by the PTX which sent the actually received packet, so the other PTXs can retransmit their packet.

  • Is this information 100% confirmed? Can I send data from one PTX to a lot of PRX using for this the same address on all nodes? (same pipe) I want to create a mesh network, and for this I need to send messages from all nodes to all nodes (for sure more than 6 nodes). Thanks!

  • Hi Daniel, you certainly can, assuming that the PRXs are all set to receive on the address that the PTX is transmitting on. However you won't be able to use the built-in acknowledgement feature on more than one PRX (as otherwise the acknowledgement packets would collide). Also you wouldn't be able to use the built-in address matching for more than 6 PTXs so you would need to implement your own address scheme inside of the messages you transmit.

    At this point you'd be basically using the NRF24 as a dumb transceiver pipe, more or less.

    BTW I would use the NRF51 range for a mesh network today... the radio peripheral in those has many features that make them much better suited, especially due to the very close integration between the radio peripheral and the MCU / Timers (so you can very conveniently schedule the timing of messages / responses / beacons etc). It also allows to for example receive a notification after N bytes of the message have been received, so theoretically it would be possible to set up the appropriate acknowledgement message for the TX node you are receiving from while the message is still being received, allowing for a quicker turn-around time.

Related