RF24 Network and failing to Read

nRF24L01 x 4 using Addicore breakout and 10uF Tantalums across Vcc.
Arduino Nano with NR24-Network Base as 00
Arduino Nano with NR24-Network Node as 01 with DHT22
Arduino Nano with NR24-Network Node as 011 with 4 x Relay board
Arduino Nano with NR24-Network Node as 021 with 4 x Relay board

Node 01 sends Temp to Base, Base transmits to 011 and 021 which then click relays. It all works great, but randomly something causes the 011 or 021 to fail to read then it stays that way until I manually reset the Node.

When Nodes 011 and 021 are close by for testing never an error. When out in the lounge, I have tried all power RF24 settings and used both the bare nRF24L01 and the PL versions. The bare boards all work fine at the distance, but I tried the PL version just in case.

No difference between radios, but always some errors and locking up and no longer reading. The Nano stays live, it is just the reading as I can manually send stuff via the Serial to the nano and it is fine. I have included a memory display and that number is stable, so not memory leak.

I thought I had solved it by putting a 470uF Electro across the relay board Vcc which is supplied via an external wall wart, but with a common ground to the 011 and 021 Nanos. That cut down the errors a lot to around one maybe every hour. But, I still have to manually reset after the error.

void networkCheck()
{ network.update();
  while (network.available()) 
  { RF24NetworkHeader header;
    if (network.read(header,&dataIn,sizeof(dataIn)))
    { if (dataIn.To == THIS_NODE) // THIS_NODE is a constant and either 011 or 021
      { dataDisplay();
        } else
        { Serial.println(F("FAIL"));
        }
      }
    }
  }
}

I have been messing with this for two days and fresh out of ideas. I have swapped everything individually more than once and cannot get the problem to move.

I didn’t know why, but there were a problem from route 011 to 01. Address for grand of children only start at [021,031,041,051]. And the same with 02 [022,032,042,052] and so on.
Try replace your address and channel in setup. Such as code below:

Grand of children:

#include <RF24Network.h>
#include <RF24.h>
#include <SPI.h>
#include "DHT.h"

#define DHTPIN 2
#define DHTTYPE DHT11

RF24 radio(7,8);
RF24Network network(radio);

const uint16_t Grandchild = 021;
const uint16_t child = 01;
float t;
float h;

struct payload{
  float temp;
  float hum;
};

void setup(){

  SPI.begin();
  radio.begin();
  network.begin(100, Grandchild);
  dht.begin();


}

void loop() {
  // put your main code here, to run repeatedly:
  network.update();
  delay(2000);
  t = (float) dht.readTemperature();
  h = (float) dht.readHumidity();
  payload data = {t,h};
  RF24NetworkHeader header(child); 
  network.write(header,&data,sizeof(data));

}

Code for Child:

#include <RF24Network.h>
#include <RF24.h>
#include <SPI.h>


RF24 radio(7,8);
RF24Network network(radio);

const uint16_t Child = 01;
float t;
float h;

struct payload{
  float temp;
  float hum;
};


void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  Serial.println("Master receive from Children.....listening");

  SPI.begin();
  radio.begin();
  network.begin(100,Child);
void loop() {
  // put your main code here, to run repeatedly:
  network.update();

  while(network.available()){
    RF24NetworkHeader header;
    payload dataREV;
    network.read(header, &dataREV,sizeof(dataREV));
    t = dataREV.temp;
    h = dataREV.hum; 
    Serial.print("Temp: ");
    Serial.println(t);
    Serial.print("Hum: ");
    Serial.println(h);
  }

}