Heltec HTCC-AB02a draining AA batteries

I’m using it to calculate values of 3 sensors and sending it to things stack every 15mins After the acknowledgement is received from gateway it goes to deep sleep mode. Current consumption by sensors is very low but the AA battery drained in just 48 hours. Is there are a way to make it last 15-30 days with AA battery? What am I doing wrong? Is the ADC consuming the battery while in sleep mode?

Do you know about duty cycle?

yeah, what about it?

Is the power consumption of the board normal during deep sleep?

Yes but battery consumption increases rapidly when a sensor value is majorly changed. For example if I water the plants , moisture sensor value varies but with that battery consumption increases even in sleep mode. Which then leads to battery drain.

Power consumption on this board in real world with I2C sensors sleeping is around 6-7uA, they will run for years on a single battery - we have tested here.

You have given us nothing to work on, no code, no technical details, no diagrams, no details on sensors, how can anyone help you?

Sensors used :

ADC 1 : battery Detection
ADC2, ADC3 : Capacitive Moisture sensors are connected ( https://fr.aliexpress.com/item/32965744378.html ) , 5mA operating current

GPIO1 : Soil Temperature sensor ( https://www.alibaba.com/product-detail/1-4M-Length-TPE-Cable-1_60705262028.html ) Standby current : 750nA , Active current : 1mA

GPIO2 : DHT22 ( Air Temperature Sensor)
battery : Ls14250 3.6v li-socl2 1/2 AA battery (Saft) ( https://www.saftbatteries.com/products-solutions/products/ls-lsh-lsp )

I’m using LoRaWAN’s code from examples for this node. https://github.com/HelTecAutomation/CubeCell-Arduino/blob/master/libraries/LoRa/examples/LoRaWAN/LoRaWan/LoRaWan.ino

The code connects to gateway , calculates sensor values and transmits them and then goes to sleep. Both LoRaWAN module and microcontroller on this chip go to deep sleep mode for 15mins after data acknowledgement is received from gateway.

You are right they should run for years on single battery but i’m unable to achieve that. It maximum ran for 2 days with 15 min data frequency. How can I make it last 15-30 days with AA battery? What am I doing wrong? Is the ADC consuming the battery while in sleep mode?

Suggest its NOT sleeping at all, take back the solution to just the ab02a device and the code - no sensors, ensure you have it sleeping properly, check the current is where it should be (8uA in sleep), then start to introduce sensors and test each one, the sleep state and current usage.

You have to do proper diagnosis - you have the right battery, we run these on the same saft batteries.

Hi there, it seems we are developing similar product, maybe we can share infos. I put my block diagramhttps://discord.gg/dRx5z6yM
I’m actually starting to code soil sensor and testing it (Watermark irrometer) and I want to check power consumption of my custom PCB with my new oscilloscope.

I tried to run diagnosis with dmm (that’s all I have) the current consumption was around 30mA. Then to make sure its sleeping properly I used serial monitor…nothing is displayed or no other function runs after the ab02a goes to sleep mode.

Can you guide me how to run a proper diagnosis.

Serial monitor? explain physical connection please


I have one HTCC-AB02A running with a I2C BME280 sensor running smoothly for about 45 days with a 1/2AA Saft battery with a frequency of one message(8 bytes)/minute sent to a private LoRaWAN server (with 100% duty cycle). I hope reach 90 days of autonomy with this frequency.


Eduardo Bastos

I mean Serial Monitor of Arduino IDE. I verified no print command is executed during sleep time meaning its sleeping properly

Oh I see. I am using sensors on ADC pins and sending data with frequency of 8-12 packets/messages every 15mins this could be the problem ?? Actually most of my data is in float so for single sensor value ( lets say 2.34) I have to send 2 packets in order to transfer the whole value otherwise the numbers after decimal point (.34) are not transmitted.

Hi Peter,

  1. First of all, I would try to test your HTCC-AB02A without any kind of sensors attached to it and using the basic sketch provided in the Github repository. This sketch send four bytes at each message and you could change the frequency as you wish to test the battery automony. After that, try to insert one sensor at a time to have control of your experiment. Maybe you are using sensors that are draining too much load from the battery. The question here is to use a methodology to isolate the problem.

  2. It´s not wise to send floats in “raw form” in a LoRaWAN network (maybe this method is draining your battery). Why don´t you use a function to transform floats to a coded 16 bit value between 1 and -1 ? I use the f2sflt16 function to do that. You could google for it and use it in your sketch. Below is a code snippet for coding a float temperature value to 2 bytes.

// Temperature
float currentTemp = (bme.readTemperature() / 100.0F);
appData[0] = lowByte(f2sflt16(currentTemp));
appData[1] = highByte(f2sflt16(currentTemp));


Eduardo Bastos