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

Does it make sense that Tx messages with ack fail more than messages sent with no ack?

Can the link between two devices communicating with each other via NRF24L01+ be improved by using Tx messages with no ack (W_TX_PAYLOAD_NO_ACK) instead of messages with ack (W_TX_PAYLOAD)?

In my tests more errors have occurred when Device A communicates with Device B by sending Tx messages with ack than messages with no ack. I will willing to blame the ack sent from B to A, its retries and so on, but maybe the fact that within the ack comes a payload from device B is something to be considered.

*Is the transmission via Tx message with no ack more effective in any way? *Is it expected that more errors do occur in a link using payload on ack? *An ack message is in any way different from a message sent via Tx? Does the radio handle it differently?

##Revision:

Further Data:

  • In my application nine Slaves must sent data to one Master. The Master sends a message resquesting data for a slace each 100 ms, so the read the data of the nine Slaves it is necessary 900 ms.

  • Type 1 - All slaves only sends data via payload on Ack. Them load the data to be sent on Tx Fifo beforehand, and when message 1 is received the data goes to Master within the payload.

  • Type 2 - The slaves now send data via Tx messages without ack. The Master sends a message requesting data and then waits. Each Slave, on its turn, receives the request, prepares its data and then sends it to Master. Again, on Master point of view, it reads the Rx Fifo and processes the data.

image description

Results:

  • Type 1 - I have notice a lot of erros on message 2. A lot of times message 1 is received but message 2, the auto ack from message 1, fails and is not received by Master. So from the master point of view message 1 has failed.
  • Type 2 - As last resort, after a lot of tests, we tried to send messages only via Tx without Ack and the performance was greatly improved on varios tests. There have been errors, of course, but the overall result was much better.

Question:

Is there something different in an auto ack message compared to an Tx message, with or without ack ? We came to this conclusion based on the results of the tests. For the same distance, the same number of devices, basically the same code, the message that fails more is the one sent as auto ack using the Type 1.

Related