[nRF24L01+] How to use Auto Acknowledge

Hello all,

1. I have a transmitter (Arduino Pro Mini 5V) connected to a nRF24L01+. I use the following code to set up the radio.

    radio.begin();
    radio.setChannel(125);
    radio.setPALevel(RF24_PA_LOW);
    radio.setDataRate(RF24_1MBPS);
    radio.setAddressWidth(5);
    radio.setAutoAck(true);
    radio.setRetries(5, 3);
    radio.setPayloadSize(sizeof(radio_data));
    radio.openWritingPipe(address);
    radio.stopListening();

2. I have a receiver (ESP32) coonecter to a nRF24L01+. I use the following code to set up the radio.

    radio.begin();
    radio.setChannel(125);
    radio.setPALevel(RF24_PA_LOW);
    radio.setDataRate(RF24_1MBPS);
    radio.setAddressWidth(5);
    radio.setAutoAck(true);
    radio.setRetries(5, 3);
    radio.setPayloadSize(sizeof(radio_data));
    radio.openReadingPipe(0, address);
    radio.startListening();

3. When I want to transmit data, I call the function write.

The return of the call to the function write is always false, meaning that auto acknowledgement goes wrong.

Have you any idea of what I did wrong ?

Thanks for your help.

Parents Reply Children
  • Hi 

    Thanks, I was now able to access the file. 

    I can't really see any obvious issues with the code, but if you can share the corresponding trace for the PRX also that would be interesting. 

    If you can, please include the IRQ  and CE lines in the trace as well. 

    One odd thing is that there seems to be two configuration phases, about 5ms apart, but possibly this is just how the library is designed. 

    If the PRX trace doesn't show anything interesting either I will try to hook up some nRF24L01+ modules here and see if I can reproduce the issue. 

    Best regards
    Torbjørn

  • Hello,

    I've added 2 trace files in my drive for which I granted you access with a message. One for the TX with the CE from the start, one for the RX with the CE from the start.

    Could you also provide me with some manufacturers.

    I found the manufacturer Wellman and the product WPI322. Is it worth to buy 2 devices?

    Best regards,

    Pascal

  • Hi Pascal

    Do you have a link to the WPI322 module? 

    Sparkfun made a module called WRL-00691 which can be had from mouser (and maybe others), and there is also the official Nordic module which can be found some places (such as here). 

    I was able to download your traces. I need some more time to look into it, but will do my best to provide an update by the end of the week. 

    Best regards
    Torbjørn

  • Hello,

    I bought the official Nordic module (NRF24L01P-MODULE-PCB).

    I got the same result : no ACK received by the transmitter from the receiver, and receiver losing frames.

    Best regards,

    Pascal

  • Hi Pascal

    Do you have the capability to send raw SPI commands to the module, bypassing the L01+ library? 

    It should be possible to enable the module and send packets with ACK using only a handful of SPI commands. If you are able to bypass the library and control the SPI and GPIO directly I can suggest a short test sequence that can verify that the hardware is OK. Then we have to figure out what is different when using the library, and (ideally) how to make the library work correctly. 

    Best regards
    Torbjørn

Related