Chat freely about anything...

User avatar
By xytsrm
#96389 I have a project that uses several ERSP8266 devices that communicate to an ESP32 using ESPNow. All the ESP8266 devices communicate using the same protocol; they send a message, if the "Send" returns not having received an "Ack", the message is resent up to 2 additional times at one second intervals.

What I've noticed for the most distant device occasionally the receiver receives two messages. This means the receiver actually received the first message, but the sender did not receive the "Ack".
Is it more likely that the sender simply did not receive an "Ack", verses the receiver not sending an "Ack"?

X.
User avatar
By rooppoorali
#96399 The distance between the ESP8266 device and the ESP32 can affect the reliability of the ESPNow communication. If the most distant device is significantly further away from the ESP32 than the other devices, it may be more prone to communication errors or interference that could cause the sender to not receive the "Ack".

If the sender did not receive the "Ack", it may be because the message was lost or corrupted during transmission, or because the "Ack" message was lost or corrupted on its way back to the sender.

If the receiver did not send an "Ack", it may be because the receiver did not receive the message, or because the "Ack" message was lost or corrupted on its way back to the sender.
You can use a different communication protocol that provides more reliable message delivery, such as MQTT or TCP/IP.
User avatar
By XiangXo
#96498 When using ESPNow communication between an ESP8266 device and an ESP32, the distance between the devices can indeed impact reliability. If one device is significantly farther away from the ESP32 than the others, it may experience more communication errors or interference, leading to a failure in receiving the "Ack" message.

If the sender did not receive the "Ack", it could be due to various factors. The message might have been lost or corrupted during transmission, or the "Ack" message itself might have encountered issues during its journey back to the sender.

Similarly, if the receiver did not send an "Ack", it could be because it did not receive the message correctly or the "Ack" message encountered problems during its return to the sender.

To enhance message delivery reliability, you can consider using alternative communication protocols like MQTT or TCP/IP. These protocols are designed to provide more robust and dependable message transmission, offering features such as guaranteed delivery and error detection. Implementing such protocols could potentially improve the overall reliability of your communication system.

It's worth noting that the specific implementation and environment may introduce additional factors that influence communication reliability. It's recommended to thoroughly test and evaluate your setup to identify any potential issues and ensure optimal performance.