I want to make a network with arduinos and nrf24l01 chips. The network will be like this:
- 1 master arduino
- multiple (no specific number) slave nodes
I want all nodes to have the same receiving and the same transmitting address and the master arduino to understand which one send the message from the message itself. For example:
Master: Receiving: 0xABCDABCD71 Transmitting: 0xABCDABCD01
Slave 1 Receiving: 0xABCDABCD01 Transmitting: 0xABCDABCD71
Slave 2 Receiving: 0xABCDABCD01 Transmitting: 0xABCDABCD71
Slave 3 Receiving: 0xABCDABCD01 Transmitting: 0xABCDABCD71
Slave 4 Receiving: 0xABCDABCD01 Transmitting: 0xABCDABCD71
When master send a message, all nodes will receive it. What I want to ask is :
- Is that possible?
- Will there be any problems?
- Is there any other way so I can add more nodes in the future without changing the code?
-
1That will work. The only possible problem would be collisions, if the nodes send a lot of data (having different re-transmit intervals might help here).Gerben– Gerben2015年05月23日 18:51:13 +00:00Commented May 23, 2015 at 18:51
-
Generally, having same RX address on all slave nodes is a bad idea except when the slaves are receive only. If you want to receive data from a specific node, then they should have different addresses, use ACK_PAYLOAD and you poll each one in turn.MichaelT– MichaelT2018年08月12日 13:46:59 +00:00Commented Aug 12, 2018 at 13:46
-
Can we do it for only multiple slaves to single data receiver? I want to get 13 IMUs( gy9250) data on single nrf24lo1 receiver is it possible?Wajhee uddin– Wajhee uddin2018年11月13日 16:36:46 +00:00Commented Nov 13, 2018 at 16:36
1 Answer 1
as well as comment #1 the other thing will be the ack packets that the slaves will send back to the master to confirm message recieved. with all slaves sending back a ack at about the same time there will be no way for master to tell which ack is from which client, and thus who needs a retransmit. a way around this is to turn off ack for the clients and make the master transmit max times regardless. there is a rf24 fork that has broadcast mode, the makes it more easy to specify not to wait for ack before retransmitting