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

nrf24l01 to nrf52832 esb with dpl noack flag is the wrong way around

I have nrf52832 radios communicating with each other 100%. I have a nrf24l01p that is the 'gateway' to which the nrf52832 sends dump data. I can communicate with nrf24 and nrf52, only problem is that when I W_TX_PAYLOAD_NOACK on the nrf24 the nrf52 shows that noack flag of the received packet is 0. And if i W_TX_PAYLOAD the nrf52 shows the noack flag as 1. So the flag is the wrong way around. Has anyone come across the same issue? Is there a fix? Perhaps software related in the nrf52 esb library? The nrf24 boards are Chinese breakout boards. So I cannot guarantee authenticity. Could this be the problem? Any advise would be appreciated. 

Parents
  • Hi 

    The nRF24L01 and nRF24L01+ has a small implementation bug where the NOACK bit is inverted when you enable dynamic ACK. In other words it acts as an ACK-bit rather than a NOACK bit. When the bit is set the PRX will return an ACK, and if the bit is cleared no ACK will be sent.

    When dynamic ACK is disabled this bit will always be 0, as expected. 

    The nrf_esb library for the nRF52 series is designed with this bug in mind and will behave in the same way, in order to retain compatibility with the older nRF24L devices, but it is important that you enable the selective_auto_ack field when you configure the library:

    nrf_esb_config.selective_auto_ack = true;

    There are many counterfeit nRF24L01 clones out there, and we have seen examples of counterfeit devices that implement the NOACK bit as it was originally intended (and documented), rather than how it actually works in the genuine devices. 

    To see if this is the case for you you can get a genuine nRF24L01+ module from a reliable vendor and compare it to the modules you already got:
    https://www.sparkfun.com/products/691

    Best regards
    Torbjørn

  • Thanks,

    I bought original chipsets from Digikey and this solved the problem. Everything now working as expected

Reply Children
Related