nrf24l01 multiple pipe question

Hi I was planning to make a star configuration network with nrf24l01. I am planning to use one tx and three rx modules to turn on some leds simultaneously. I dont have any idea about how should I write the tx-rx pipes on the code since I couldnt find any example about this on the internet.

on the tx side I wrote

const uint64_t pipe[4] = {0xE8E8F0F0E1LL, 0xE8E8F0F0E2LL, 0xE8E8F0F0E3LL, 0xE8E8F0F0E4LL};
radio.openWritingPipe(pipe[1]);
radio.openWritingPipe(pipe[2]);
radio.openWritingPipe(pipe[3]);

on the rx side I wrote

const uint64_t pipe[4] = {0xE8E8F0F0E1LL, 0xE8E8F0F0E2LL, 0xE8E8F0F0E3LL, 0xE8E8F0F0E4LL}; 
radio.openReadingPipe(2, pipe[2]);
radio.startListening();

Is that wrong? Appreciate for any help. Thanks.

There is only one tx-pipe so

radio.openWritingPipe(pipe[1]);
radio.openWritingPipe(pipe[2]);
radio.openWritingPipe(pipe[3]);

sets it to pipe[3].

so no need the fourth pipe? and rx pipes should read 3 pipes individually right?

No and no.

You should study and understand the nrf24l01+ datasheet.

This post may help you understand the RF24.

https://forum.arduino.cc/index.php?topic=424973.0

This is the best example I have seem of the confusion caused by using the word "pipe" for the name of the array that holds the addresses of the nRF24s that you want to talk to.

IMHO those demo programs would be much easier for a newbie if they were like this

const uint64_t address[4] = {0xE8E8F0F0E1LL, 0xE8E8F0F0E2LL, 0xE8E8F0F0E3LL, 0xE8E8F0F0E4LL};
radio.openWritingPipe(address[1]);
radio.openWritingPipe(address[2]);
radio.openWritingPipe(address[3]);

Put like that the effect would, of course be no different. But what is wrong would be more obvious.

I hope my Simple nRF24L01+ Tutorial is clearer.

...R