In an earlier blog post we described how to use the ePulse dev board to send messages over ESPNow to achieve ultra long battery life. Now we wanted to test our new development board – the ePulse Feather – with a similar setup.
The ePulse Feather is the successor of the very popular ePulse development board. The new board has a built-in LiPo charger and you can attach the LiPo battery directly to the board. In addition, the board has a very low power consumption in deep sleep of only 12 – 27 uA, depending on the battery voltage. This makes it very handy for battery powered applications.
But is the ePulse Feather board only efficient in theory or also in a practical application? That is what we wanted to find out with the following experiment: the ePulse Feather powered from a 2500mAh LiPo battery wakes up from sleep and sends a message of Espressif’s proprietary ESPNow protocol. The message contains the number of boot cycles, battery voltage and the time the board was awake in the last cycle. Then the board goes back to sleep for 20 seconds before the cycle repeats.
The message will be received by our ESPGateay Duo by one of the two ESP32 modules. This ESP32 forwards the message over the internal serial line to the other ESP32 from where it will be forwarded over WiFi and MQTT to a Raspberry Pi running InfluxDB and Grafana.
This setup ran for 43 days between February 17 and April 1st (no joke!). In this time the device sent 185199 messages!
Here is the voltage measured of the LiPo battery over time:
But why is the ESPNow protocol so efficient? The reason is that messages can be sent with only very little overhead compared to WiFi. Establishing a WiFi connection takes a lot of time whereas ESPNow messages can be sent in a very short time. The following chart shows that the full duty cycle of waking up, measuring battery voltage and sending the message only takes around 200ms. Doing the same over WiFi and MQTT can easily take 5-10 seconds.
Keep in mind that a message was sent every 20 seconds. How long would the battery last if sending a message only every 15 minutes? By ignoring sleep current and battery self discharge the battery would last more than 5 years!