bad range with nrf52840 as PTX and nrf24l01+ as PRX

I am using nrf52840 as PTX and nrf24l01+ as PRX. The application I am working on requires me to send 30 bytes from PTX to PRX at a 2 kHz packet rate. If both devices are near each other on my desk, it works very well. However if I pick up the transmitter and hold it far away from the receiver, I start to see a lot of packets be dropped. It completely stops working at a distance of about 1 meter.

For the transmitter I am using a Particle Boron (with the onboard chip antenna). The receiver, with the nrf24, is a custom board that is known to have about 20-30 ft range when used as PTX. It uses a big SMA antenna, so I'm not sure why this could be happening.

These are the settings on the PTX (nrf52)

  uint8_t base_addr_0[4] = {0xE7, 0xE7, 0xE7, 0xE7};
  uint8_t base_addr_1[4] = {0xC2, 0xC2, 0xC2, 0xC2};
  uint8_t addr_prefix[6] = {0xE7, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6}; // nrf24 has 6 pipes

  nrf_esb_config_t esb_cfg = NRF_ESB_LEGACY_CONFIG;
  esb_cfg.protocol = NRF_ESB_PROTOCOL_ESB_DPL;
  esb_cfg.mode = NRF_ESB_MODE_PTX;
  esb_cfg.event_handler = radio_callback;
  esb_cfg.bitrate = NRF_ESB_BITRATE_2MBPS;
  esb_cfg.crc = NRF_ESB_CRC_8BIT;
  esb_cfg.tx_output_power = NRF_ESB_TX_POWER_4DBM;
  esb_cfg.retransmit_delay = 500;
  esb_cfg.retransmit_count = 3;
  esb_cfg.tx_mode = NRF_ESB_TXMODE_MANUAL;
  esb_cfg.radio_irq_priority = 1;
  esb_cfg.event_irq_priority = 2;
  esb_cfg.payload_length = 32;
  esb_cfg.selective_auto_ack = true;

  nrf_esb_set_prefixes(addr_prefix, 6); // 6 pipes


  uint8_t pipe_mask = 1; // enable pipe 0

And I configure the settings of nrf24 at boot as so:

EN_AA: 01

I have checked the RPD register of the nrf24, and although sometimes the register returns a value of 01, more often than not the value will be 0. I have also tested the PTX by using a nrf52840 dk as PRX (with no antenna) and checking the RSSI. If the devices are close to each other on the desk, the receiver will indicate RSSI around -45 dBm, and about -86 dbM at 4 feet and already seeing dropped packets. I have tried many channels, including 2, 26, and 80, and always see the same problem. Not sure what else to try. Thank you in advance!

  • If you use nRF52 on both sides of the link, is the distance good then?

    If you use nRF24 on both sides of the link, is the distance good then?


  • if i use nrf24 on both sides, the distance is good. if i use nrf52 on both sides, the range is not good (tried it with 1 nrf52 DK and 1 particle boron which has nrf52 on it)

  • How about distance of nRF52-DK to nRF24?


  • So i thought I had tested this, but I guess I had not. Range seems to be better with my DK and my nrf24 board. I guess that suggests that the issue is with the particle boron, which seems strange to me honestly.

    Can you point me to a resource on antenna PCB layout? We are designing a board with the nr52 and hopefully it will have better range than the particle boron

  • If you are doing any layout with the nRF52 you can ask us for a layout review before shipping prototype to production, but before asking for an layout review make sure to check out:

    You can find some PCB guidelines in the nRF52840 product specifications that you should follow.

    In terms of PCB antenna, I suggest to check out the antenna for instance on the nRF52-DK (or any other 2.4GHz antenna design you may find (e.g. Wi-Fi, Bluetooth or other 2.4GHz application)). I recommend to add room for a Pi-network (as shown in chapter 4.2 here) between the RF matching network shown in the nRF52840 product specification and your PCB antenna, this will allow for tuning the antenna to 2.4GHz for best performance. If you choose to use a CHIP antenna, make sure to follow the manufacturer guidelines of placement and grounding.

    One final suggestion: Always start by placing the antenna first in the design you are doing.