Q on RF24 library for nRF24L01+

Last week I posted on successful testing with new RF24 library for nRF24L01+:

I did test with two Arduino Dues and one Arduino Nano, and all was fine. All the tests were done with this NRF24L01+ 2.4GHz Antenna Modules:
http://www.aliexpress.com/item/1pcs-Wireless-Transceiver-For-Arduino-NRF24L01-2-4GHz-Antenna-Module-For-Microcontroll-DropShipping/1941326317.html

Today I did test with these 1100-meter long-distance NRF24L01+PA+LNA wireless modules (with antenna) as well:

I just used two Arduino Dues and had problems with the long distance modules. I did test with GettingStarted example and got these results:

  • normal - normal, works in both directions
  • normal -> long distance, see "failed" on normal, "Sent response 4094875" messages on long distance
  • long distance -> normal/long distance, see "failed" on long distance, nothing on normal/long distance

So it seems that long distance modules (both show same behavior coupled with normal) are able to receive fine, but not to send. That would explain the experiment results.

I thought I can just plugin long distance module as if it was a normal nRF24L01+ module, is that right?
Or is something needed to make the long distance modules work (send)?

Hermann.

With two PA/LNA close together, you can easily suffer from receiver overload. The TX is about 20dB higher and the RX is about 20dB more sensitive. Separate the two units by 50m or more and try again.

Also, the power supply has to be capable of about 100mA surges. The onboard Arduino 3v3 is usually not sufficient. There are adapters available on eBay which do the job nicely. Be sure to get the 8-pin version and NOT the 10-pin.

At 1100m, you are really pushing the rubber duck antenna performance. You will likely have to invest in directional higher gain antennas at both ends of the link. Putting a metal reflector 6cm behind the duck will help by about 3dB. Reducing your data rate to 250Kbps will also help.

Thanks for the answer.

Before trying with 50m distance I need some clarification wrt. powering the module:

Also, the power supply has to be capable of about 100mA surges.
The onboard Arduino 3v3 is usually not sufficient.

I agree for an Arduino Uno, that provides only 50mA on 3.3V pin:

But I do use two Arduino Due, and they provide 800mA on 3.3V pin:

Shouldnt that be sufficient for the 100mA surges?

Hermann.

That should cover the current problem quite well. However, it's in the form of a short burst or current spike. It's been found on many occasions that the filtering at the Vcc/Gnd terminals on the RF board is inadequate as the wire leads to the board act as a series inductor. The problem is solved by adding a 10uF capacitor as close to the board as possible. If you're good at soldering then put one on top of the board right at the Vcc and Gnd pins. Also, I've tried a capacitor with both leads coming out one end and stuffing the leads down into the jumpers that attach to the board pins. A more permanent solution is to use one of the adapter boards found here. The adapter has the advantage of having a 3v3 regulator and filtering. You can then use your 5v supply or somewhat higher to power the adapter. You might also try setting the power level in the setup() to the minimum. This well help during short range testing.

Thanks again for all the guidance!

Arctic_Eddie:
A more permanent solution is to use one of the adapter boards found here. The adapter has the advantage of having a 3v3 regulator and filtering. You can then use your 5v supply or somewhat higher to power the adapter. You might also try setting the power level in the setup() to the minimum. This well help during short range testing.

Immediately after reading last night I ordered 3 at Amazon (1.82$/pc with less than 30 day free shipping):

Arctic_Eddie:
That should cover the current problem quite well.

Thanks for the confirmation, I started based on that. Placed a bare Arduino Due with long distance module and GettingStarted demo in Transmitter mode flashed powered via power jack outside of window of 1st floor of our house. Then I went with laptop, 2nd Arduino Due and long distance module to my_garden_office in 9m distance of the other long distance module. And GettingStarted demo in Receiver mode worked fine!

Next I went to yellow street, with 50m free sight distance to window and still GettingStarted worked flawless.

Then I walked quite some time to a place 508.5m meter distant from window and quite some meters above sea level higher with free sight to long distance module (less distance in that direction was not possible because trees blocking free sight):

Not a single received packet there, and I tried everything with antenna and restarted Arduino.

On the way back at a little creek near our house I found another spot with free sight and successfully got packets with GettingStarted demo. At home I measured the distance as 153.3m which I find impressive compared to normal WLAN and 2.4GHz modules:

Arctic_Eddie:
However, it's in the form of a short burst or current spike. It's been found on many occasions that the filtering at the Vcc/Gnd terminals on the RF board is inadequate as the wire leads to the board act as a series inductor. The problem is solved by adding a 10uF capacitor as close to the board as possible. If you're good at soldering then put one on top of the board right at the Vcc and Gnd pins.

I am not good at soldering but will do exactly that as next step. I found an unused 10uF capacitor and remembered where I did put the 2nd. I cannibalized my 2nd USB 3.3V cable and will begin soldering now :wink:

Hermann.

With directional high gain antennas, you will get a much longer link. Be sure the antennas are oriented in the same plane and aiming at each other. WiFi Yagi antennas work fine.