I have been using the nRF24L01+ modules for many different kinds of projects. From RC drones, RC boats, and the forklift, to a temperature and humidity sensor system. During the time that I have been using these modules, I have come across several problems with them. This post is mainly for listing the problems for my own personal reference, as well as anyone else who might stumble across the same problems (which is very likely to happen).
The following list is problems that I have had. This does not mean that all of them will apply to your particular module.
nRF24L01+ checklist (including the most obvious mistakes one can make):
- Use 3.3v! NOT 5v. The module will indeed get really hot, and will most likely not work correctly ever after. It is also clever to measure the output of the Vcc pin of the Arduino (if you use for example an Arduino Pro Mini). I have experienced that it delivers 5v instead of 3.3v even when I bought it as a 3.3v module. Not sure what that’s about.
- Use common ground between your Arduino and your nRF module if you use two different power sources. I know it’s basic, but sometimes one may forget about it.
- Measure the current draw of the module. There are lots of Chinese copies which draws an overwhelmingly high amount of power, which can cause the module to not work at all.
- Make sure the pins are set up correct from your Arduino to your nRF module.
- Make sure the CE and CSN pins you have written in you Arduino sketch matches your wiring. If you don’t know what I’m talking about, have a look at the image down below.
- I have found the nRF’s to be more reliable when adding a capacitor between Vcc and Gnd. People seem to argue over if this actually makes a difference, but it have sometimes solved problems with inconsistent signals as of my experience. Especially with high powered modules. Also I think different copies will act differently here. I use 100µF, anyways.
- Lastly, I have been using maniacbug’s RF24 library for a long time, but gcopeland‘s fork (which has solved some delay/timing issues) have by far been the most reliable library, ever, and I would highly recommend it.
- The AMS1117 3.3v regulator seems to solve a lot of issues with these modules. I always use one of these to provide 3.3v to the module, and so far it seems to be working everytime. I have been using these ones: eBay