Is there a ESP32 LoRaWAN board for battery operation?

I am searching for an ESP32 board which is really suitable for battery operation?

My application should measure the voltage of an solar powered 12V car battery. The voltage value should be sent once per hour via the TTN network. After measurement and transmitting the board should fall into deep sleeping. A SSD1306 display should display the measured value for the time when the ESP is wake up and afterwards it should get switched off.

I have tried several boards like TTGO V 2.1_V1.6, Wemos D1 mini and TTGO T-Beam T22_V07. But each one consumes current in mA range while in deep sleep. I am searching a board which uses uA’s while in deep sleep mode.

The only opportunity I found is the new TTGO T-Beam T22_V10. I don’t need GPS so it is a little bit oversized for the use case. But because I cannot find any alternative and assume that it should suitable for the requirement I ordered one.

While waiting for the delivery I want to find out if there are some alternatives?

Can anyone recommend an alternative ESP32/LoRaWAN board with moderate deep sleep current and display?

1 Like

Do you know the timer module „adafruit tpl5110“? This module does the timerpart between the battery and the board. In „deepsleep“ the board is switched off and the timer uses some 35nA from the battery.

If you want very low power consumption during deep sleep (in the uA range), then most of the current ESP32 LoRa boards will not be suitable for that (at all).

You may try a Heltec Wireless Stick Lite.
It has an advertised deep sleep current of 30 uA. (I don’t have personal experience with this board.)

Another possible option may be the TTGO T-Beam V1.0 (the most recent version). It uses a special power management chip that can enable/disable power for parts of the board. I am not aware of its lowest possible current during deep-sleep though. If you do not need the GPS then this board is relatively expensive.

Why an ESP32 LoRa board?

You may also try a Heltec CubeCell board (HTCC-AB01).
It uses only 8.5 uA during deep sleep (when powered by a LiPo or Li-ion battery via the battery connector), or 3.5 uA when directly powered to the 3.3V pin (e.g. powered by LiFeP04 battery).
This board is based on the ASR6501 chip which combines an ARM MCU with SX1262 LoRa tranceiver in a single chip and it supports development with the Arduino framework. Documentation is still sparse but code examples are available. I have not yet tried a SSD1306 display with the board yet.

I have a CubeCell board running for test. Powered by a 1200 mAh LiPo battery (true capacity is probably around 1000 mAh). It has transmitted already more than 59000 (3-byte) uplink messages on a single charge (and flashes the onboatd RGB LED during each transmit). I am not monitoring battery voltage so am unaware how much battery charge is still left.

@jsail Thanks for your interesting idea. Unfortunately i my case the deep sleep interval should be dynamic - depending on the measured values. As I saw by using the „adafruit tpl5110“ the interval has to be set manually using a trim poti. This does not meet my requirement.

@ViktorRees How about Pycom’s LoPy4 module? It is based on ESP32 and you can program it with Micropython, quite handy. The deep sleep current for that is around 18-20 μΑ.

Have you thought about the grasshopper board?

grasshopper board on tindie

The Lopy4 does what you want. The only Lora board based on the esp32 with a low deep sleep current that I know of. It uses around 18.5μA while in deep sleep.

Hi all,
thanks for your suggestions of battery powered Lora-Boards.

Here are my additional requirements/preferences/wishes:

  • want to use PlatformIO and C/C++ programming language
  • want to use the ULP Coprocessor of ESP32 for voltage measurement while in Deep sleep
  • ideally hardware schema is public available (open source)

LoPy4:

  • not PlatformIO, C/C++. It took me a lot of free time to learn this development environment. I am quiet sure that MicroPython is interessing and powerful. But at this time I want to concentrate on my project. Maybe I will try that in future …

Grasshopper board

  • not an ESP32 / ULP Processor, see above

CubeCell board

  • not an ESP32 / ULP Processor, see above

TTGO T-Beam V1.0:

  • I ordered one. Waiting for delivery

Wireless Stick Lite

  • Due to Andreas Spiess’s Video I was a little aversed against early Heltec boards and antennas. Maybe these children’s illness are fixed now.
    So it seems to be suitable to my needs. I will give it a try.

Thanks fore your ideas

1 Like

Arduino or ESP-IDF framework?

While Pycom does not support C++ development for their boards (so you will hardly/not find any information for that on their site) the Lopy4 board is supported in both PlatformIO and Arduino IDE. In PlatformIO both the Arduino and ESP-IDF frameworks are supported.
(I have no personal experiemce with development for Lopy4 in C++ yet).

Note: The Lopy4 can only be powered via Vin with 3.5 - 5.5V. It’s 3.3V pin is output only so it is not possible to power the Lopy4 directly with 3.3V.

Hi,

I use a ESP32 WROOM32 with a LDO (MCP1700 [Vin <6V]) on my solar powerd projects with a 18650 battery.
The power consumption in DeepSleep is round about 14 uA for the ESP32 + LDO.
For 12V you need another LDO or a DC-DC converter (Like Pololu D36V6F3).

And thats a reasonable combination.

The MCP1702 is also a direct replacement that will handle 13.2V Vin or the MCP1703 for 16V Vin.

However, if you want to use the WiFi on the ESP32, the MCP170x does not have the current handling really and the ESP32 can reset when the WiFi starts up …

1 Like

Using a standard module instead of a development board is a good suggestion because it allows full control over power usage.

A minor disadvantage is that a module is not breadboard friendly so if needed one needs to add a suitable bare bones adapter (one that does not draw power) or design a custom PCB.

Like @LoRaTracker already mentioned you will have to find/use an efficient LDO that can deliver sufficient power for the module. LDO’s for larger currents usually also have higher quescient current which is exactly what you want to minimize for minimal deep-sleep current.

Having a shortlist of suitable LDO’s would be nice.

LiFePO4

When using LiFePO4 cells it is possible to directly power an ESP32 module from the battery, without using an LDO.

Lowering clock speed

When use of WiFi and Bluetooth is not needed, the ESP32’s clock speed can be lowered to as low as 10MHz which minimizes power usage when not in deep sleep. The minimum for WiFi and Bluetooth is 80MHz. See: ESP32 power consumption at different CPU speeds.

LDO search list:

Just want to add my 2 cents cause I used to have the same issue some months ago and when together with my friend Benjamin we discussed what to used as a battery powered node.
We started with Heltec WIresless Stick as a prototype base with the result: several hours on 4xAA battery pack (no optimization though)
Once we used single 18650 Li-ION battery (it’s Chineese label said 5000mAh :wink: ) and introduced deep sleep cycle to the firmware (measurement every 15minutes) the node worked for more than 3 weeks, which is good enough for me to start.

Our next step is 2 x 18650 bat - currently under tests - expecting at least 5 weeks.
The next next step - Wireless Stick Lite - still waiting for the package. Once it arrives, I’ll let you know the results of the field tests.

1 Like

Two I have found that survive the ESP32 WiFi turn on spike, so far, are;

IFX1763 Iq typical 30uA
HT7833 Iq typical 4uA

I have not fully experiemented on what size capacitor you need across VCC, but a surface mount 1000uF is not that large.

1 Like

It would be interesting to see measured deep sleep current for your Wireless Stick.

1 Like

Quick and dirty measurement shows 2.7mA in deepsleep with Vext off :scream:
I’m not sure the declared by the producer 0.8mA can be easily reached but I can see some potential to optimize the software to half the DS consumption.

Another option I was considering was an external DS3231 with the alarm function used to turn on the power for the microcontroller = 0 consumption in the “deep sleep” (between the measurements), but it got too complicated and it seems the Wireless Stick Lite will be the target implementation

I would add that whilst the popular LDO the MCP1700, at 2uA sleep current, is fine for a LoRa based ESP32 node that doe not use the ESP32 WiFi.

I’ve just slightly modified soft on my Heltec Wireless Stiick: added adc_power_off(); before esp_deep_sleep_start(); and the consumption during the deep sleep went down to 0.92mA.
3 times lower than before :smile:

2 Likes