Simple nRF24L01+ 2.4GHz transceiver demo

I just wanted to take the time to thank Robin2 for creating the post in:

I had been wrestling for days tring to get my network of nRF24L01's to communicate properly and was getting nowhere fast. Google wasn't helping much - until it helped me find the original post.
Result - I now have a network of functional RF's working flawlessly.
It would be good if Robin2's tutorial could be put somewhere easily found so that others can benefit from it forever. There is nothing else like it on the web that I can find - and the documentation available for the nRF24 is GREAT but doesn't help much with trouble shooting when things aren't working like you thought they should.
The neat thing for me, although not specifically detailed in Robin2's post - is that I now understand exactly how the protocol beween sender/reciever works so I can trouble shoot my own setup now.

Apart from what I learned from the tutorial (and the documentation in the RF24 library), the key things that I also had to do to get things working were:

  • I am using the version of nRF24L01 with the aerial. It turned out to be critical that the module is foil wrapped (like suggested in the RF24 library documentation). I used heat shrink tubing around the module which I glued together rather than using heat, and put the foil neatly over that with a lip of heat shrink exposed to minimise the whorting risk.
  • This did not work properly until I grounded the foil to the earth on the circuit board.
  • I got less interference powering the Arduino through the USB than through 5V or VIN. As I have used on many projects, I simply cut a mini USB lead, connect the red and black to the 5v power supply and its ground, and plugged the usb into the Nano. Not sure why this is the case but my experimentation demonstrated that the most stable setup was powered through the USB which was not how my boards were initially set up.

The result is that my project has been running for over two weeks not with only two transmissions not passed on. I am checking this with two counters running in the "if (RSLT)" section in Robin2's code (one for count "no acknowledge received", and the other for RSLT Tx fail.

  • Lots of care with the ackData setup, and addresses for the boards.

I also found that the non-aerial version of the board is very fragile. At the end of my project I have two of the non-aerial modules that are broken, and the three areial versions are 100% functional still. I am running the nFR24L01's through the breakout board which it the "way to go" but I suspect that these are letting power spikes through that the aerial version is less sensitive to. But for me - powering with 5v through the breakout boards is better than using the Nano 3v3 pin. I feed the 5v powering the Nano direct to the nRF rather than through the Nano 5v to make sure that that nRF gets the amps it needs on each transmission startup.

My project is all about a weather monitoring. I have a BME280, TFT, relay and nRF in an outdoors aviary monitoring the temperature in particular. If the temperature drops below 5 degrees it switches on a basic PTC ceramic heating plate and fan to take the chill off the air and keep the birds alive. This unit is the "master" for the nRF network.
It transmits BME readings to two indoor units:
One is a contoller that also has a TFT screen displaying whats happening to Temperature, pressure and humidity with some basic analysis. It has LED's to indicate if the outdoor heater has been triggered and a switch to intervene if I want to turn it onn or off manually. These commands are dealt with using the ackData approach suggested in robin2's tutorial.
The other is a rather fancy "weather station" that has a TFT screen and BME monitoring indoors stuff. It has some fancy stuff (a traditioanal man/lady that come out depending on data analysis predicting what the eather is going to be like etc). As a result it has two Nano's connected through serial tx/rx to share the processing an peripheral loading. It also captures the outdoors BME data through nRF to include this in the analysis.

Quite compex - but great fun to design and build. The stumbling point was getting RF communiation to work. I had assumed that would be easy - and it was but only once I found Robin2's 2016 tutorial - so thank you Robin.

I have the three nRF's connected using the aviary board as the master getting it's instructions from the two slaves using ackData. A great innovation thank you Robin.

Happy to provide more details if anyone is interested.
But the key points of this post are to thank Robin, and to confirm that in spite of all the problematic stuff that you can find on the web about the nRF24L01's, they are very robust units that work very well once set up properly. The problems relate to the impelmentation not the product. Two weeks with no data loss transmitting about 150 metres through walls and into a wire mesh lined cage gives testimony to that.

Thanks