I use two arduino pro mini clone microprocessors to manage my solar hot water system. They communicate back and forth using NRF24L01+ modules and simple code utilizing the RF24.h and SPI headers. The communications is very simple and works perfectly until about 10:00am each morning. when the worker starts to fail to respond to the manager. The failure starts out being occasional but quickly becomes frequent. Eventually after about 15 to 30 minutes I have to restart the worker. and then communications returns to normal. There will be a return of some failures in the afternoon about 4:00pm for about 30 minutes then everything will be OK until the morning. I'm trying to work out why this happens and how to fix it.
There are two nodes, the Manager and the Worker, the manager decides when things should happen and reports on the status of things and worker has various valves and sensors connected to it and carries out the instructions issued by the manager and reports back to the manager. Everything is straight out of the box. All defaults. Both modules issue a begin then open reading and writing pipes and the worker starts listening. The manager sends a 32 byte packet and the worker receives it, stops listening stuffs new information into the received packet and then returns the packet. Meanwhile after sending the original packet the manager starts listening and uses loop of: while (!radio.available() && ! timeout) if (millis() - started_waiting_at > 500 ) / timeout = true; This is very simple but there are some issues. The worker and the manager are separated by about 20 feet with the manager inside the house. The worker is on a roof and gets very hot, its the Australian summer here so the problem could be heat related. The roof is corrugated iron so there will be reflections and we are in the city so there could be interference. I've built a scanner and virtually discounted wifi interference. The transmissions are spaced at 1500ms so there should e no load problems. But it looks like a buffer is filled and eventually overflows, stopping all further communications. But I've read all of the forums and it seems strange that it happens each day when the sky is clear but the sun is still to reach its zenith. Resetting solves the problem and although the hottest part of the day is still to come the problems don't return until the next morning.