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

nRF24L01+ increasing range using MultiCeiver and ShockBurst …

With ShockBurst activated the PRX receives some of the packets at 7 to 8 meters, and the PTX only receives the ACK at 4 to 5 meters….

The explanation for this is that the PTX can sent up to 16 times the same packet, eventually one of the 16 packets will arrive in the PRX.. Meanwhile the PRX only send the ACK once, and thus reducing the probability of the PTX to receive this one ACK packet!

Can the PRX be configure to do ShockBurst, by blinding sending up to 16 or less the same ACK?

Best Regards … Renato

  • @renato: Which nRF24L01+ module are you testing on. The range of 4-7 meters may suggest that the boards weren't tuned properly. You should get smth with the range of 10-50m depends on the environment.

    What you request is not really feasible with the nRF24L01+. When enabled ACK-ing The PTX listens on RX for only 250us to wait for an ACK after every packet it sent. Your plan to send more ACKs from PRX won't fit in to that window.

    My suggestion is to properly tune the boards to make RF work reliably. You can create a case on our support portal to request for free tuning service from us.

    If your devices need to operate in noisy environment with lots of interference that can't be improved by tuning the board, you can think of having your own protocol, where you make the window for receiving ACK larger and you can re-transmit more ACKs on every packet received.

  • Hi Hung Bui ,

    Hi have made some changes in the nRF24L01+ that are now communicating at up to 8metters, using this module:

    www.aliexpress.com/.../32308100252.html

    This setup for the PTX:

    -> RF_CONFIG, EN_CRC_bm|PWR_UP_bm|PRIM_TX_bm, -> RF_EN_AA, ENAA_P0_bm, -> RF_EN_RXADDR, ERX_P0_bm, -> RF_SETUP_RETR, RETR_4000uS|RETR_10, -> RF_RF_SETUP, RATE_250Kb|_0DBM_bm, -> RF_STATUS, RX_DR_bm|TX_DS_bm|MAX_RT_bm, -> RF_RX_PW_P0, RF_PAYLOAD_LEN, -> RF_DYNPD, 0, -> RF_FEATURE, EN_ACK_PAY_bm

    This Setup for the PRX:

    -> RF_CONFIG, EN_CRC_bm|PWR_UP_bm|PRIM_RX_bm, -> RF_EN_AA, ENAA_P4_bm|ENAA_P3_bm|ENAA_P2_bm|ENAA_P1_bm|ENAA_P0_bm, -> RF_EN_RXADDR, ERX_P4_bm|ERX_P3_bm|ERX_P2_bm|ERX_P1_bm|ERX_P0_bm, -> RF_SETUP_RETR, RETR_500uS|RETR_10, -> RF_RF_SETUP, RATE_250Kb|_0DBM_bm, -> RF_STATUS, RX_DR_bm|TX_DS_bm|MAX_RT_bm, -> RF_RX_PW_P0, RF_PAYLOAD_LEN, -> RF_RX_PW_P1, RF_PAYLOAD_LEN -> RF_RX_PW_P2, RF_PAYLOAD_LEN, -> RF_RX_PW_P3, RF_PAYLOAD_LEN, -> RF_RX_PW_P4, RF_PAYLOAD_LEN, -> RF_DYNPD, 0, -> RF_FEATURE, EN_ACK_PAY_bm

    Changing the speed from 250K to 1M has no effect on range!

    Do you have any recommendations?

    Meanwhile we have decided that we will make the Radio in the main PCB board... So, your offered support will be welcome…

    OBS: I am using 100bF and 47uF/tant on the power input...

    With the above configuration, I am also having a major problem in the PTX...

    The PTX is sending a packet using W_TX_PAYLOAD each 100mil/sec... and the MAX_RT on the PTX side is activating about 50% of the time... Strangely if I send the packet using W_TX_PAYLOAD_NOACK the MAX_RT also activates...

    Is the PTX not receiving the ACK from the PRX? Why sending a packet W_TX_PAYLOAD_NOACK the MAX_RT activates?

    Please see the images … the PTX does not receive the ACK…!image descriptionimage description

    Tanks Renato

  • Hi, I have tested these modules and a standard thing is to set a capacitator between VCC and GND, typically 100nF to 5uF to remove ripple. I would say they communicate 10-20 meters . There are modules with amplifiers and sma antenna that might get better performance.

  • Also, what I understand is that the radiation pattern is a donoug shape for this inverted-F that is 90deg to the board, so having the bord mounted vertical would get a better distance in the horizontal plane. The ISM band is quite wide, so the antenna might work better on certain channels I would guess, here in sweden I looked up that the channel 99 is above the WLAN channels, in US etc, the outside WLAN channel is something else as some examples I seen. Anyway, I have also had a struggle to get any distance with these modules, I also guess the small power is one factor and the antenna receiver senibility etc. etc. I bought some modules with amplifier and di-pole antenna for better distance, might work with the "basestation" having better antenna.. Please let me know if you get some better performance on these modules.

  • Well... I am testing the standard module and the one that as the FX2401C (amplifier and di-pole antenna) assembled..

    And have the modules configured to works in STAR mode (Multiceiver + Auto Acknolagment + Acknolagment payload + static payload + Enhanced Shoburst) ... the main problem is that the AcK payload is not correctly received by the PTX (it works about 50% of the time) even if the RF_SETUP_RETR is set to RETR_4000uS|RETR_10 ....

    I don’t think that distance or interference is an issue (they are 20cmm apart) (I made sure to disconnect all Wi-Fi and Bluetooth devices in a 30 range!)

    PROBLEM 1: In my PTX the MAX_RT interruption is triggered in about 50% of the packets sent... The PTX does not receive ACK correctly...

    PROBLEM 2: if I setup the PTX to send TX_PAYLOAD_NOACK command, the MAX_RT (in PTX) is also triggered...

    I think that I have all the register configured correctly (according to the manual [that is not 100% correct])... meanwhile I have also tested all sorts of configurations an noting seams to overcome this MAX_RT problem, that in my view is the main problem for the short range communications in STAR mode!

Related