indigou:
That address was my last try. Previously I did also try with 30000 and 40000 and it did not work.
I don't believe that. Given that pipe 1 contains an address of the form followed by "0000".
And I have reason to do so, see the following example:
Tx
#include <RF24.h>
RF24 radio(9, 10);
const byte addresses[] = "10000" "20000" "30000" "40000" "50000" "60000";
struct Pack {
byte number;
unsigned long tStamp;
} Data;
byte currentTarget;
void setup() {
Serial.begin(250000);
radio.begin();
radio.enableDynamicPayloads();
radio.setDataRate(RF24_2MBPS);
}
void loop() {
static unsigned long lastSend;
unsigned long topLoop = millis();
if (topLoop - lastSend >= 1000) {
lastSend = topLoop;
Data.number++;
Data.tStamp = topLoop;
radio.openWritingPipe(addresses + 5 * currentTarget);
if (!radio.write(&Data, sizeof(Data))) {
Serial.print(F("Failed for #"));
Serial.print(currentTarget);
Serial.print(F(" \""));
for (byte idx = 0; idx < 5; idx++) {
Serial.write(addresses[5 * currentTarget + idx]);
}
Serial.write('"');
Serial.println();
}
if (++currentTarget > 5) {
currentTarget = 0;
}
}
}
Rx
#include <RF24.h>
RF24 radio(9, 10);
const byte addresses[] = "10000" "20000" "30000" "40000" "50000" "60000";
struct Pack {
byte number;
unsigned long tStamp;
} Data;
void setup() {
Serial.begin(250000);
radio.begin();
radio.enableDynamicPayloads();
radio.setDataRate(RF24_2MBPS);
radio.openReadingPipe(0, addresses);
radio.openReadingPipe(1, addresses + 5);
radio.openReadingPipe(2, addresses + 10);
radio.openReadingPipe(3, addresses + 15);
radio.openReadingPipe(4, addresses + 20);
radio.openReadingPipe(5, addresses + 25);
radio.startListening();
}
void loop() {
static unsigned long lastRx;
unsigned long topLoop = millis();
byte fromPipe;
if (radio.available(&fromPipe)) {
lastRx = topLoop;
Serial.print(F("received a packet on pipe "));
Serial.print(fromPipe);
radio.read(&Data, radio.getDynamicPayloadSize());
Serial.print(F(" # "));
Serial.print(Data.number);
Serial.print(F(" tStamp "));
Serial.println(Data.tStamp);
}
if (topLoop - lastRx >= 10000) {
Serial.println(F("10 seconds silence"));
lastRx = topLoop;
}
}
Rx output
received a packet on pipe 0 # 51 tStamp 1075000
received a packet on pipe 1 # 52 tStamp 1076000
received a packet on pipe 2 # 53 tStamp 1077000
received a packet on pipe 3 # 54 tStamp 1078000
received a packet on pipe 4 # 55 tStamp 1079000
received a packet on pipe 5 # 56 tStamp 1080000
received a packet on pipe 0 # 57 tStamp 1081000
received a packet on pipe 1 # 58 tStamp 1082000
received a packet on pipe 2 # 59 tStamp 1083000
received a packet on pipe 3 # 60 tStamp 1084000
received a packet on pipe 4 # 61 tStamp 1085000
received a packet on pipe 5 # 62 tStamp 1086000
received a packet on pipe 0 # 63 tStamp 1087000
received a packet on pipe 1 # 64 tStamp 1088000
received a packet on pipe 2 # 65 tStamp 1089000
P.S. Note that the address used for pipe 0 can be any address, I just made it part of the address group,
so any address can be used in any register, but that's merely convenience.