This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nRF24 transmission range

Hi,

I'm trying using a setup with transmitter based on nRF24L01P and receiver with nRF24LU1P using Enhached Shock Burst.

The problem is the transmission lock (three failed attemps on TX side) if the receiver is placed more than 1.5m away from the transmitter. I'm using the nRF2726 board from the development kit as receiver and a SPI module with nRF24L01P and PCB antenna from a local supplier as transmitter.
The transmission is 4byte every 10ms. The setup is in a home environment in the same room.

What is the reasonable distance of transmission?

Can be the PCB printed antenna not strong enought?

Is the limit of 3 attemps in TX too low?

Are the receiver and transmitter intended to remain in a fixed position during activity?

Thanks.

Parents
  • 1.5 m is extremely short, you should get 40+ meters easily. Try another frequency in case there's something that disturbs the channel. Same channel on both sides of course. Use the default address

  • Hi, so far I tried 3 different channels, 0, 54 and 70. But the problem is still there.

    We have the development kit nRF6804 rev.1.2 2019.12 and 3 unbranded modules equipped with nRF24L01+.

    To avoid any issue with the 3 modules, I used the nRF2726 as a transmitter and the nRF24LU1+ USB dongle as a receiver both from your development kit.

    The transmission is fine within 1.5m away. Between 1.5-2m only if devices are in a fixed position. If someone is moving between them or one device is moved (a gently movement like rotating the pcb) the transmission slows down and/or lose packets. Trying the system with TX and RX at 8m of distance the reception never begins using nRFgo development kit PCBs. But with 2 of the 3 unbranded nRF24L01+ modules as transmitter and the USB dongle from the development kit as receiver, the reception works more or less fine even at 8m distance.

    The firmwares on the devices were developed from your SDK material using the enhanced shockburst examples of PTX and PRX integrated with the bootloader example to manage the USB part. I attach keil projects and .hex files.

    Where I'm testing there is a WiFi network.

    What can I do? Try other channels? Select a 1Mbps bitrate instead of 2Mbps?

    Using the nRF2727 module with a physical antenna instead of a PCB antenna can bring some benefits? We didn't try it yet because we don't have a physical antenna compatible with the connector.

    Thanks.

    TX_nRF24LU1P.zipRX_nRF24LU1P.zip

  • Hi,

    Any news on the phenomenon?

    I'm still doing some tests. Here is the setup. The transmitter is sending 3 byte every 10ms (each byte is an increment from the same counter i.e. 0 1 2, 3 4 5, 6 7 8, etc). On the receiver side sometimes there are record like 3 7 8.

    Is it guaranteed that the checksum system on the ESB with AA receives only correct data? And so the problem is in my firmware of nRF24LU1+ which is moving data from radio to USB and not proper managed for interrupts from radio and USB?

    Thanks.

  • You will always have packet losses with a radio link. So your protocol must take this into account. ESB is a simple protocol that can re-transmit the packet a number of times. But even this may not be able to get all the packets through. So you might have to have an additional layer on top to handle that. But at this short range, you shouldn't loose more than one occasional packet. 

    When you use the nRF24LU1+ as the receiver, it this plugged into a USB3.0 port? If so, the noise from the USB traffic may affect the reception. Try using an extension cable. 

    What address are you using here, the default address? This should be fine. The only address that does not work is 0x55,55.. and 0xAA,AA.. as this is a continuation of the preamble and will cause false address match in the receiver. 

    The CRC is calculated for the whole packet, including the address. If the CRC fails, the packet will be discarded. 

    You have set the output power to 0 dBm?

    The PCB antennas on the modules should be good enough.

Reply
  • You will always have packet losses with a radio link. So your protocol must take this into account. ESB is a simple protocol that can re-transmit the packet a number of times. But even this may not be able to get all the packets through. So you might have to have an additional layer on top to handle that. But at this short range, you shouldn't loose more than one occasional packet. 

    When you use the nRF24LU1+ as the receiver, it this plugged into a USB3.0 port? If so, the noise from the USB traffic may affect the reception. Try using an extension cable. 

    What address are you using here, the default address? This should be fine. The only address that does not work is 0x55,55.. and 0xAA,AA.. as this is a continuation of the preamble and will cause false address match in the receiver. 

    The CRC is calculated for the whole packet, including the address. If the CRC fails, the packet will be discarded. 

    You have set the output power to 0 dBm?

    The PCB antennas on the modules should be good enough.

Children
  • Hi,

    for the USB port I used many of them, directy into USB3 on PC, with USB2 1,5m extension cord, in an USB2 hub but with a not appreciable difference. With the extension cord it seems to be a little more stable.
    For the addresses I'm using E7,01,01,01,01 for pipe0 and E7,01,01,01,02 for pipe1.
    The ouput power is 0dBm (as default).
    Are new devices of nRF52 series based on the exact same system or they were tuned to be more stable? (uising the same technology live ESB or Gazell).

    Thanks

  • Ok, so you can rule out USB3.0 noise then. It's puzzling why you see this short range. You should have no problems getting a range of 30+ m at 2 Mbps and more at 1 Mbps. 

    The radio in all nRF51 series are the same as the nRF24L01+, but the nRF52 series radio is very different. The shockburst HW part is now done entirely in SW to make it more flexible. The sensitivity is somewhat better as well so range will be higher. But since you're only seeing a range is a few meters, there's something wrong, probably in SW. Try using all default register values and see it that does it better.

  • Can you post a picture of your setup please? If you're using stock, unchanged modules and have not changed any of the register values, there's no reason for this short range.

    The unbranded modules, unless you have bought them from a distributor of Nordic devices, most probably have fake chips and can't be trusted. 

  • We had post both firmwares used in TX and RX devices some weeks ago. The TX side was the Nordic nRF2726 PCB and the RX side was the Nordic USB dongle both from development Kit nRF24LU1P-FxxQ32-DK as said above. Both devices exchange data over USB.
    We leaved the unbranded modules.

    Are you able to give us a solution based on material we'd sent in within few days? Otherwise we need  to change supplier and ask to NS or your reseller to refound our money...

  • I've taken a look at the code and there's no obvious errors that I can see.

    Can you post a picture of your setup please? There's something seriously wrong with your setup that causes this. 

Related