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

NRF24L01+ Dynamic Payload configuration without ACK?

What are the correct PTX and PRX configuration settings for using dynamic payloads with auto ACK disabled? Can I just clear EN_AA and set EN_DPL and DYNPD for the pipe I'm using? Or do I need to set EN_AA as the datasheet states in the DYNPD register section? Then do I need to set EN_DYN_ACK and use the W_TX_PAYLOAD_NOACK to load my payloads? I've tried various ways and have only been able to get correct results if I flush the TX before each payload write and transmit.

  • Hi,

    You can set the chip into backwards-compatibility mode with former nRF24-series devices by clearing EN_AA and other registers, as described in Appendix B in the nrF24L01P datasheet. Then you must upload payloads using "W_TX_PAYLOAD".

    Or you can use W_TX_PAYLOAD_NOACK + set (on both PRX and PTX) registers:

    • DYNPD for the specific pipes
    • EN_DPL
    • EN_ACK_PAY
    • EN_DYN_ACK

    Best regards Håkon

  • You can set the chip into backwards-compatibility mode with former nRF24-series devices by clearing EN_AA and other registers, as described in Appendix B in the nrF24L01P datasheet. Then you must upload payloads using "W_TX_PAYLOAD".

    Wouldn't this be using the older packet format which doesn't have the 9 bit control field and therefore not allow dynamic payloads? I'm only using nrF24L01P parts so don't need the backwards compatibility. I just need dynamic payloads without ACKs (don't have time for the overhead and the data would be stale by then). I'm assuming the 2nd method is the one I should be using? I hadn't tried setting EN_ACK_PAY yet as I didn't think it was required to use W_TX_PAYLOAD_NOACK (datasheets just stated EN_DYN_ACK).

  • Hi,

    You are correct. Method 1 will remove the PCF from the packet. You should not need to set "EN_ACK_PAY", but it does not hurt if you want a generic "enable no-ack, and ack-payload" configuration. Note that this config must be set on both PRX and PTX.

    -H

Related