First LoRa Node – The real power consumption

I have calculated 900 days of deep sleep. How it looks in reality, we see today!

Calculation vs. Reality

As you can read here, the first node has been in use for almost 5 months now.
In today’s post you will read what I have learned in terms of power consumption during this time.

What I had planned in May ’18

A LoRa node with Arduino Pro Mini 3.3V, a 900mAh Li-ion battery in AA format, a DHT22 and a 0.15W 5V solar cell. Back then, I only calculated the Deep Sleep with 0.04mA. I totally neglected sending. And the deep sleep also calculated wrong!
The 0.04mA I measured without sensors and roughly calculated. That should still be true.
In the Node a DHT22 is installed. This has a standby current of 45uA, so 0.045mA. Together we get on 0.085mA! More than twice as much.
I assumed that I would send on SF7 and thus I have little power consumption, but I send to SF11.

SF11 instead of SF7 thanks to OTAA, why?

When I first turned on the node, she tried to get confirmation from OTAA. At this time we did not have our own gateway, so it was only confirmed at SF11.
On 21.06.2018 we have set up our own gateway. Because the node does not send a join request again, it stays with SF11.
Good to see in the following diagram when our gateway was set up:

I will soon press the Reset button on the Arduino. Then he should again send a join and thus stay at SF7 and consume significantly less power!
We have learned here: Let the microcontroller reboot once every x months to request a join again.

Power Consumption

The Li-ion cell is a 14500 (AA) with 900mAh and 4.2V charging voltage and cut-off at 2.5V. The solar cell has 0.15W and 5V, so in about 35mA at 4.2V. The battery needs about 26h sun to fully charge.
In Germany we have an average of 4.5 hours of sun per day. So we need 6 days of sun to charge a completely dead battery.
By shutting off our Arduino at 3.3V, we can only use 80-90% of the battery. The sun is not always cloudless and at 90 degrees to the solar cell. The charge controller also consumes something. All in all, we can be happy if the battery is full after 1 week.

In this picture you can see how the voltage drops linearly.
The red arrow shows the 01.08.2018.
Today, 6 weeks later, we still have 3.53V and are smit just before the end at 3.3V.
Why did it take only 6 weeks?
1. SF11 instead of SF7, so much much slower transmission
2. DHT22 instead of BME280
3. DHT22 standby not included

Power calculation

From 4.2V to 3.5V mean about 85% capacity.
At 900mAh that means 765mAh.
At 6 weeks, about 42 days, it is about 1,000 hours.
Li-ion has about 5% self-discharge per month.
That leaves about 700mAh.
So we come to about 0.7mA consumption.
Calculated at that time were 0.04mA for Deep Sleep. So stay 0.66mA for pure transmission.
Sent every 10 minutes, so 144 times a day.
At 42 days, that’s 6,336 times.
This required 660mAh.
Means 0.1mAh per send.


The node requires 0.04mA deep sleep and 0.1mAh per send at SF11 with 6 Bytes Payload.

What happens next

I will reconnect the solar cell as soon as the Arduino has shut down. Then I’ll see how long the solar cell takes to fully recharge the battery.
I will repeat the experiment with SF7.

6 thoughts on “First LoRa Node – The real power consumption”

  1. Hi Mario

    Thanks for sharing your experiment and ideas. Always pleasure to watch or read your posts.
    I think you can easily reduce power consumption to 0.01mA in Deep sleep state.
    Why to spend so much power on DHT22 or anything similar while in Deep Sleep?
    You can solve this by just putting one P-Channel MOSFET on your board and with connecting MOSFET Gate pin to one of DO pin on Arduino Mini. MOSFET Source to 3.3V, MOSFET Drain to Vcc pin on DHT22 or similar . By controlling state of DO pin just turn OFF anything which is not useful in Deep sleep.

    Best Regards

    1. really good! I’ve always had enough sun, but I want to be as good as possible. next time I will try! Thank you 🙂

  2. Hi Mario, nice read. Good learning. What you could also do to reduce power consumption is to use an IO pin to power the DHT22 just before reading it. It saves you it’s standby consumption. And since the amount of power that an IO pin can provide is far more than the required power of most sensors, it is safe to use for low power purposes.

  3. Hi Mario,

    I enjoy reading your blog posts. I don’t know if you have heard of a battery chemistry called Lithium Thionyl Chloride but check them out. LTC batteries in the same format can provide 3.7 V @ 4.0 Ah over temps of -55C to +85 C. I use LTC batteries in GPS trackers that report location every 30 secs for almost 2 years.

    1. Hello, thank you very much for this tip. So far I didn’t know them. I am currently designing a new PCB layout and would like to use both rechargeable and normal batteries. I will take LTC’s into consideration, thanks 🙂 And thank you also for the nice words!

Comments are closed.