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

Add Hoc communication between NRF24L01+ devices

I notice in the datasheet for the NRF24L01+ that the receive address needs to be programmed into the Receiver.

Our application receives data from another channel and supplies the address of the destination of the current packet. However, the unit receiving this packet cannot determine which device sent the packet until it has been received, we cannot program the receiver in advance.

Does this mean the receiver cannot receive add-hoc packets from unknown transmitters, or does it mean they can receive and deliver the payload but cannot send back the ack? (We were looking at using enhanced Shock Burst)

regards

David

[email protected]

  • You have to know the address that the transmitter will send on. There's no promiscuous mode that enable you to read out bit by bit on the nRF24L01+. So if you program all the transmitter to initially use one know address, you can use this to set up the connection and then generate a random address to use from there on out.

  • All transmitters will know the address of the receiver will not know the address of the transmitters in advance but the receivers will not know in advance which transmitter will attempt to connect.

    If we give all transmitters the same address then when the receiver acknowledges the transmitter, it will send to ALL transmitters.

    Our application requires several hundred transmitters that can send data to any of a hundred receivers at the site.

  • I'm sorry, I'm not sure if I understand your setup. So all your transmitters will know the address for the receivers, but the receiver will not know which of the transmitter will be sending? You can store as many addresses as you are able to and re-configure the receives to shuffle through as many addresses as you have room for.

    I didn't mean for you to give all the transmitters the same address, but to use a common address towards the receivers. Then once the transmitter has been "registered" by the receive, the receive can assign the transmitter it's own specific address or pipe if needed. So the default channel will only be used to enter new transmitters into the network seen from a receivers. After that the transmitter and receiver will use a unique address (and frequency if wanted).

  • T The Transmitters will only send a single packet of 5 bytes of data to the receiver and get ack then sleep. I do not require a session, just to be able to send the 5 bytes. The Transmitters will always have the address of the receivers before they send. What I am saying is that only 1 transmitter will be waiting for ack from a specific receiver at any time. If all transmitters have the same receive address then the receiver can always ack the transmitter sending the 5 bytes at that time.

  • As long as it's just one pair with the same addresses available at the same time, then yes, the scenario you describe would work.

Related