Several years ago, I designed a project using the nRF24L01 wireless module. I recall struggling greatly to get this to work, but eventually I did succeed and the results were excellent.
Well... I'm now at it again, and once again I'm stuck with issues getting the nRF modules to communicate.
I came across this excellent tutorial on the Arduino forum: "Simple nRF24L01+ 2.4GHz transceiver demo" by Robin2.
I have been attempting to follow it, but I am now stuck and looking for advice. After uploading the transmitting and receiving sketches described in the first post in the aforementioned tutorial, I power on my 'receiver' module but don't seem to be getting anything. My serial monitor only shows: "SimpleRX Starting". Nothing comes after that, so it seems I am not receiving anything from the 'transmitter' unit.
To help diagnose the issue, I tried running the sketch given by Robin2 at the end of his tutorial (post #29). When I run this sketch on both the transmitting and receiving units, I get the following output:
CheckConnection Starting
FIRST WITH THE DEFAULT ADDRESSES after power on
Note that RF24 does NOT reset when Arduino resets - only when power is removed
If the numbers are mostly 0x00 or 0xff it means that the Arduino is not
communicating with the nRF24
I believe the above results mean the units are communicating properly with the Arduinos. Is this correct?
Is it OK to have both units powered by my computer USBs when trying to get them to communicate, or should they be power by different devices? I have tried powering one of the units with a 9V battery but it didn't seem to help.
Any other suggestions on how to get these two units to communicate?
It is OK to power both the Rx and Tx Arduinos from USB but they must each be using a different COM port so you need 2 separate instances of the IDE running.
What do you see in the Serial monitor of the Tx Arduino ?
Thank for taking the trouble to provide a comprehensive description of your suggestion. It is a nice contrast the the very common "it won't work".
Your results certainly suggest that the Arduinos are communicating with their attached nRF24 modules. However that test does not check whether the wireless part works.
You have not said what type of Arduinos you are using and whether it is a genuine Arduino or a clone. And you have not said if you are using the high power nRF24 modules (with external antenna) or the low power modules (with pcb antenna).
A common problem is an inadequate 3.3v power supply for the nRF24. I have some Mega clones that cannot power a low-power nRF24 from their 3.3v pin and I don't think any type of Arduino could power a high-power nRF24 from its 3.3v pin.
Try powering the nRF24s from a pair of AA alkaline cells (3v) with the battery GND connected to the Arduino GND.
If none of this helps please post diagrams showing exactly how you have everything connected. See this Simple Image Guide
The Tx arduino serial monitor is repeatedly printing the following:
Data Sent Message 0 Tx failed
Robin2, thank you for your answers. I had not considered that the nRF24 module may not be getting enough power. I am currently using:
Rx: Genuine Arduino Uno
Tx: Cloned Pro-mini
nRF24 module: high power with external antenna
Based on what you have said, I guess this is likely my problem. Although, I have to say I am a bit surprised. I previously used this same configuration quite successfully, as I detailed in an earlier post on this forum:
Wireless (nrf24l01) altimeter for RC plane (completed project with code)
I will find an external power supply for the nRF24 units and see if this helps. As an interesting side note, I have recently moved to China for a job opportunity. Previously, I had purchased nearly all of my electronic components from China, and thus when considering the move to China, believed that one 'perk' would be rapid access to these cheap electronics. Surprisingly (and confusingly) it is actually harder (and more expensive) for me to purchase the same electronics I used to get off of ebay now that I am physically located in China. To make matters worse, when located in North America, I always received free shipping when I purchased from China. Now that I'm in China, I have to pay for shipping! Anyway, I will go this weekend to the electronics market in Shenzhen. I should be able to pick up some basic supplies, and will report back if a better power supply allows the nRF24 units start communicating properly.