Once the data was received in PRX, Is there a way forward (or modify) to PTX the same data and deliver it together with ACK payload in the same transaction?
PTX send "0x05" ----> PRX (0x05 + 1 = 0x06)
PTX receive "0x06" <--- PRX (responds along with ACK PAYLOAD)
In my tests PTX receive "0x06" when send a second packet but I need to receive in the first ack payload.
How do i do it?
Hello, I'm sorry but all our nRF24L01 resources are currently on vacation, and will not be back until next week. I will forward your question as soon as possible, and expect an answer within next week.
Ok, thank you for reply.
Apparently the ACK + payload must be loaded on the W_ACK_PAYLOAD command before the package arrives to PRX but I don't sure.
In order to use ACK payloads, you should give the PRX device sufficient time to actually transfer the payload to the FIFO.
I suggest that you setup a scenario like this:
* PTX sends a "Prepare ACK payload"-cmd over-the-air
* PRX receives payload on-air
* PRX transfers ACK-Payload to FIFO
* PTX sends a "dummy payload" to fetch ACK-payload.
In my algorithm, PTX sends the same packet (0x05 value) 2 times to PRX (2 transactions), PRX add 1 to 0x05 value but PTX gets the valid response (0x06 value) in the second transaction.
So you confirm to me that in the same transaction it is impossible for PRX to respond to PTX?
Is there no way that PRX will just receive the value 0x05 increment it to 0x06 and immediately forward it to PTX? (in the same transaction).
eznrf said:but PTX gets the valid response (0x06 value) in the second transaction.
This is the expected scenario. Usually due to the fact that there is not enough time for the PRX device to read the payload, handle any processing, write the payload back; before the radio has automatically turned from RX -> TX to send the ACK.
eznrf said:Is there no way that PRX will just receive the value 0x05 increment it to 0x06 and immediately forward it to PTX? (in the same transaction).
You can, but it's not always reliable; you will run into the scenario where you receive it on the next payload.
I understand, thanks for your comment.