Arduino extreme low power consumption (crystal vs oscillator)

Hi I need to make Arduino-based deice which run on 2x AA battery (3V).
Device will be counting pulses on digital input pin (about 1-10 pulses each minute).
Device will send status each minute over 443MHz radio:

I need maximum possible battery life.

Arduino will sleep all time. Pulse input will be on interrupt pin and wake up arduino. After that arduino go to sleep again.

In datasheet I found:

Power Consumption at 1MHz, 1.8V, 25°C
̶ Active Mode: 0.2mA
̶ Power-down Mode: 0.1µA
̶ Power-save Mode: 0.75µA (Including 32kHz RTC)

Is possible to use Arduino with internal 128kHz oscillator? Is 128kHz to slow or inaccurate for 443MHz radio? Temperature will be from about 5 to 30°C.

Second choice - use external crystal 1.843MHz or 2.0MHz. How much power external crystal need vs internal oscillator?


it sounds counter-intuitive but in that situation using slow clock is not the lowest power solution. crystal at any speed is not the key either. those experienced with super low power battery operation eventually figure out internal 8mhz is because fast startup, do the job quickly, and go back to sleep, is best.

One thing that may speak in favor of using a crystal is that those 433mhz transmitters require accurate timing (since you're typically listening for the length of a pulse). The accuracy of the internal oscillator is rather poor and varies with voltage and temperature, so you may have problems communicating if you don't have a crystal, depending on how tight the tolerances are in your wireless protocol.

Also, those receivers are crap, get the yellow RXB-12 ones, they've got much better range and are still really cheap. (The cheap green transmitters are fine)

its true that those super-regen have less range than heterodyne type but even so you can go hundreds of meters, maybe km, with the cheepies using proper antenna. heterodyne do draw considerably more power and cost 4x more so depends on the application. for extreme long distance 5 cent fm mod to the cheeapie tx and ht rx up to 75 miles or more possible.

its doubtful the small inaccuracy of internal osc will be a problem if proper self clocking packet protocol is chosen. at least not in the few dozen projects using those same modules myself. dc offset issues are far more troublesome but balanced timing like manchester or simpler nrz fixes that.

Read this
Power saving techniques for microprocessors by Nick Gammon

You mentioned 2xAA (3V). Just be aware that if you power your circuit directly from batteries you should account for the battery voltage drop.

For example, an Alkaline battery known to be 1.5V, but actually it's more likely a 1.6V on it's first day and the voltage will drop down to 0.8V when it's fully discharged:

Datasheet from an Energizer AA:

In other words, if you plan to use most of the battery, 2 AA cells in series will be equal to 1.6V by the end of their life... which probably won't be enough to run your circuit properly.

Another option is to use NiMH and NI-Cd rechargeable batteries, which have a lower initial voltage (1.3V-1.2V) but have a more stable voltage while discharging... the only problem is that those rechargeable batteries have very high self-discharge rates, especially on extreme temperatures, making not ideal for projects where you expect to run for more than a few months. The Eneloop seems to be the latest technology for this kind of battery...

An efficient step-up regulator can be the solution for the power supply. It will help keeping the voltage stage along the whole battery life, using all energy available. Just don't go for the cheap stuff and those are delicate circuits and a poor quality capacitor or inductor will compromise the efficiency.

Here some example of good quality step-up, using well know manufacturer chips: Pololu - Step-Up Voltage Regulators

The final option would be to use a low-power development board, like this one: Whisper Node - AVR - Wisen, apart from the step-up regulator and other perks it also comes with built-in RFM69 module.

If you're just reading a digital input, you could use interrupt and have this board running for a few years without worrying about battery.