Close

Initial Concept

A project log for LP Mini - Low Power Dev Board

Inexpensive, Arduino Compatible Low Power Dev Board

maxkMax.K 10/28/2016 at 14:410 Comments

The goal of this project is to build a simple Arduino-compatible board with a very low power consumption. The Arduino Pro Mini is a good starting point, because it doesn't contain much more than the Atmega328 and some peripherals.

At 5 V and 16 MHz, the Pro Mini draws about 6 mA. You can reduce this by putting the Atmega into sleep mode while it's not doing anything. But even then, the board still draws 3 mA. If you take a look at the Datasheet, you will find out that the Atmega328 only needs 100 nA in deep-sleep. The other 2.9 mA are caused by the status-LED and voltage regulator. The LED is not needed and can be removed from the board entirely. The voltage regulator on the other hand is necessary if you are using sensitive devices with the board. The regular MIC5205 is not ideal when it comes to efficiency. There usually is a ground pin current of several uAs, even if the Atmega is sleeping:

A better solution is the MCP1700. This regular doesn't waste much more than 1 uA at low load currents. It is available in different output voltages. I chose 3 V, which helps to reduce the active current of the Atmega.

A good strategy for battery powered applications is to let a device work in short intervals and sleep in between. Improving the battery life then means reducing the current consumption during sleep and making the active phases as short as possible. Removing the LED and replacing the regulator already allows the device to sleep at just 1 - 2 uA. The Atmega328 can't wake itself up from sleep, so an external interrupt is necessary. For this, a cheap real time clock with a programmable alarm pin can be used. A common RTC is the Microchip MCP79410 for just 1 €. With just a few I2C commands you can set the RTC to generate an interrupt once per minute. And it can of course also be used to tell the time, which is very useful for data logging. I decided against the DS3231 which I used for my watch project, simply because it costs more than 9 € in lower quantities and the higher precision is not necessary. The MCP79410 also draws around 1 uA at 3.3 V.

To turn off external devices during sleep, the Atmega can supply power to them using the digital pins. Before entering sleep, a pin can simply switch to a low state, powering down the device. But there is one limitation: The Atmega can only supply around 20 mA on each pin. This is not much if a radio module or SD card is used. To solve this, I am including a simple mosfet (FDN340p), which is connected to pin 10.

Discussions