Arduino-LMIC library with low power mode

In this post I try to make my Arduino based TTN Nodes more power efficient.

Try to save energy

An Arduino Pro Mini with 3.3V consumes power. However, many do not know that you can already save a lot of electricity here!

Today I try to drastically reduce power consumption.

How to basically reduce power consumption, can be found under “Arduino Pro Mini 3.3V Low Power” at Google. I have already done everything. So unsolder LED and Regulator.

From 5mA normal you can reduce a lot:

  • 1mA through the LED
  • 0.5mA through the power regulator

Now we still have 3.5mA. This is too much.
Through the LowPower library we can put the Arduino into deep sleep, which is really impressive!
Theoretically we come down to 5uA, so 0.005mA!


Today my new multimeter arrived 🙂
UNI-T UT61E, really nice!

So let me take the first measurement.
First I tried to use the built-in measurement with uAmA. However, it only show me errors and I quickly dodged on the already more accurate shunt method. For this one, take a resistance between battery and consumer.
So that the consumer still gets enough electricity, take as small as possible. If one takes too small, however, the voltage drop is too low and the multimeter gets only fractions of mV, which are then also inaccurate.

I first tried 10 ohms. However, the node was then in a permanent reset.
I then turned four 10 ohm resistors together so that I get to 2.5 ohms, in my case 2.6 ohms. Now it works fine!

If we measure 100mV, we divide it by 2.6 ohms. So 38mA.

Without LowPower-Mode

Without the LowPower library, the result is not so good:

9.88mV / 2.6 Ohm = 3.8mA

With LowPower-Mode

0.1mV / 2.6 Ohm = 0.038mA = 38uA 

We saved 100 times alone with this step:

As you can see in the code, the LowPower function was used with 8s deep sleep. Very easy, very successful!
But are 38uA good? As you can read here, I expected 10uA and thought that would be generous. 

So, what’s the problem? Or do we have a problem at all?

3200mA / 0.01mAh = 320.000h = 36 years!!
That was the original calculation for deep sleep without sending and without self-discharge. Let’s adjust the value:
3200mA / 0.038mAh = 84.210h = 9.6 years!
Before using the LowPower library:
3200mA / 3.8mAh = 35 days!


I would say we have no problem. We learned in the already linked article that 5% self-discharge is a bigger problem.
So all right!
Very satisfied 🙂

LowPower Test Node Code:


8 thoughts on “Arduino-LMIC library with low power mode”

  1. Luciano Picchioni

    Hi Mario, great article!
    How did you connect the battery to the Arduino Pro mini 3.3v?
    The battery, full charge, has 4.6V, removing the regulator
    do you risk damaging the RFM95 module?

    1. I hava a LDO (MCP1700-330) between BAT out of Protection Circuit and Arduino, so i have perfect 3.3V. This LDO has only 1 uA Current instead of the Original Converter from the Arduino RAW Pin!
      Nice day!

  2. Luciano Picchioni

    Thanks for the reply
    but I still have a doubt …
    also in your article “My first own TTN node with self designed PCB”,
    in the components list there is “MCP1700-330 LDO (1.6uA, 250mAh max, 2.3-6V input)”, but in the “Affiliate links” it does not appear

    sorry, but I do not know the component well
    looking on the internet, I find the component in the TO-92-3 format
    use the component individually, have you bought a small card that contains it?

    do you have a reference link?

  3. Hello.
    Thank a lot for that great tuto. It’s exactely what I need as I work with Arduino-lmci and a Feather MO Adaloger
    Howerver,I sadly can not make it working.
    When I compile my code, I got the following error:
    ‘class LowPowerClass’ has no member named ‘powerDown’

    I double checked your example and I can not where is my error.
    No object need to be ceated for LowPower?

    I also read the following:
    ####Notes: External interrupt during standby on ATSAMD21G18A requires a patch to the Arduino SAMD Core in order for it to work.

    This is not really clear for me as you have not specify it. Did you imported via the Board Manager and did nothing else??

    Many thank

Leave a Comment

Your email address will not be published. Required fields are marked *