In many areas of science, Arduino based data loggers have become common enabling instruments because of their low cost and ease of use. However, battery life is commonly the limiting factor - particularly in respect of writing data to embedded SD cards. In this paper, various methods by which to optimise an SD card based data logger using an Arduino UNO, Atmega328P at 5 V at 16 MHz and the Atmega328P at 3.3 V at 8 MHz is explored. With the bare Atmega328P chip in sleep mode, the lifetime of a 2400 mAH battery can theoretically exceed 10 years, although this is reduced to only 3 months following the introduction of an SD card. The exact power consumption of an Arduino/SD card during saving events is analysed for the first time and is found to take up to 200 ms with current spikes up to 80 mA for every initialisation and saving event dramatically increasing the average current consumption of fast data loggers. Through the use of a power control MOSFET with proper initialisation and timing of SD saving events, it is found that the Atmega328P can be set up to measure data once every two seconds whilst also ensuring a battery lifetime of one year. With the novel techniques presented here, a new method for maximising the lifetime of Atmega328P microcontroller circuits for environmental data logging applications has been achieved; allowing researchers to record data using a cheap and reproducible system.
Read full abstract