Page 1 of 1

I want to know the way to reduce power consumption more and ensure ESP-NOW communication.

Posted: Fri Oct 18, 2019 2:00 am
by omomom
  1. I have questions about ESP-NOW utilization.
  2. Background :
  3. I want to make a system that several battery-powered sensor modules, i.e., master, from ESP32 , and  a slave that receive data from all sensor modules of ESP32 , of which communication is by esp-now.
  4. The sensor modules should have batteries  so we would like to reduce active times as much as possible for reducing power consumption.
  5. Data is sent from each master to the slave once every 10 minutes.
  6. Therefore, we plan to deep sleep during this period.
  7. Question :
  8. There are concerns about radio interference.
  9. We know that the number of ESP-NOW connections is limited to six for encrypted communications and up to 20 for both encrypted and unencrypted communications.
  10. Does it means that if there are no devices using Wifi channels other than the ESP32 involved in this system,  data transmitting from the master to the slave is done without any fail ?
  11. Questions related to Question 1.
  12. If only one channel is used for communication by ESP-NOW between the master group and the slave, radio waves tend to interfere with each other.
  13. I think that the more a number of master is increased,  the heigher frequency of failed data transmissions is , but how many master can be handled by one channel in the first place?
  14. The assumption here is that more than one master will transmit at the same time.
  15. Questions related to Question 2.
  16. If there are restrictions on the number of master that can be handled by a single channel, if we can allocate a master group to each channel and receive ESP-NOW communications from all channels on the slave side, we think that the number of channels that can be handled will increase, but can we implement the slave side in ESP-IDF?
  17. If possible, please tell us how to write code specifically.
  18. Questions related to Question ①.
  19. In order to reliably deliver data from the master to the slave, only a method such as the CSMA/CA method is considered to be successful.
  20. Does the esp-now originally include CSMA/CA functions from the beginning, as in normal wifi communications?
  21. I don't know, so please tell me.
  22. If we can reduce the frequency of failed transmissions as much as possible, as described in Question 3, we believe that this will reduce the master's active times and, consequently, further reduce power consumption.
  23.  
  24. Please tell us if you have a way to reduce power consumption more and ensure ESP-NOW communication.
  25. thank you.
  26.  

Re: I want to know the way to reduce power consumption more and ensure ESP-NOW communication.

Posted: Wed Apr 01, 2020 10:53 am
by liuzhifu
Hi @omomom,

For power consumption:

If only the slaves are battery-powered, then we can:
1>. Configure the slaves into deep sleep mode
2>. The master always in waked state and send the packets to slave periodically

If all ESP-NOW devices are battery-powered, currently we don't have good solution for it. Maybe the application can implement it. For example:

1. All slaves sync it's local time to the master
2. All devices wake up periodically from deep sleep and send/receive the packets.

For your other questions:

1. If there are no other devices using WiFi, the failure rate should be relatively lower. ESP-NOW is not reliable connection, the reliability need to be assured by the application. To be detailed, the application can get the sending result by checking the sending status in TX callback, the status ESP_NOW_SEND_SUCCESS indicates that the peer has successfully received the packet, otherwise, the peer may fail to receive it. If the status fail, the application can choose to retransmit it. The application can also implement more complicate way to make the connection reliability.

2. The application don't need to care about the interfere because it's totally handled by WiFi CSMA-CA. ESP-NOW is based on WiFi driver and WiFi hardware, the WiFi driver and WiFi hardware will handle the interfere. For unicast packets, WiFi driver will retransmit the packets if it fails to transmit the packet because of interfere. The maximum retransmit counter is 31; For multicast packets, WiFi driver only transmit the packets once no matter whether they are sent out successfully or NOT.

3. Not suggest to support multiple channels.

4. Yes. it's based on WiFi driver and WiFi hardware