ESP-NOW uses ACKs?!?

umisef
Posts: 2
Joined: Thu Dec 17, 2015 3:05 pm

ESP-NOW uses ACKs?!?

Postby umisef » Wed Dec 23, 2015 2:56 pm

We have an application which every 30 seconds takes a measurement, then sends it to a gateway ESP8266 using ESP-NOW, then goes back to sleep. When it receives the esp-now packet, the gateway prints its content.

Looking at the current draw profile for this application, it is clear that a single esp_now_send() sometimes results in multiple radio transmissions. Looking at the timing of those transmissions (and the timing of the gateway's serial output), it appears that
  • The very first transmission does indeed contain the esp-now data
  • Once the gateway has received and processed a transmission, it won't process any subsequent one in the same sample cycle
  • Later transmissions also contain the data, and if the gateway missed the first, it may still receive and process subsequent ones
  • Later transmissions take significantly longer, suggesting a slower data rate

This all suggests that ESP-NOW is in fact a two-way communication using acknowledgements and (a limited number of) retransmits. Testing this theory, I powered down the gateway, and indeed, now every single sample cycle on the sender resulted in a large number (around 10) of (increasingly longer) retransmissions --- as obviously the intended recipient would not reply with an acknowledgement.

Unfortunately, this is not at all what we need for out application. The power on the measurement unit has to be strictly (and predictably) managed; Sending the data out "live" via ESP-NOW is a bit of an optional luxury. It is no problem for us if some, or even most, of the esp-now packets fail to be received; It is a problem if the energy-per-sample depends on whether an ACK is received from the gateway or not.

So, a couple of questions:
  • Is there a way to configure the number of re-transmits for ESP-NOW data? And if so, can it be configured to 0?
  • As we have no interest in receiving ACKs, or anything else, during those sample cycles --- is there a way to use ESP-NOW without activating the radio for any other purpose. I.e. is there a way to disable radio RX (and save about 50mA of supply current) and still be able to use ESP-NOW for sending?
  • If not, is there some other low-level mechanism to simply transmit a single packet, no questions asked, and receive it on another ESP8266, which at the same time is joined to a Wifi network?

tvoneicken
Posts: 14
Joined: Sat Dec 19, 2015 3:43 pm

Re: ESP-NOW uses ACKs?!?

Postby tvoneicken » Wed Dec 23, 2015 4:12 pm

Given that the data rate seems to reduce I would assume that the ACKs and retransmissions are at the MAC (Wifi) layer, and not at the protocol layer. All 802.11 packets other than beacons pretty much have an ACK and I would not expect the ESP-NOW packets to be any different. Apologies if I'm telling you something you already know.

Who is online

Users browsing this forum: No registered users and 136 guests