micropower micrologger [mPmL]

A set-and-forget I2C/digital datalogger. Size: 25.3x 18x 10mm incl. battery. Runtime: > 1year

Similar projects worth following
This is a spontaneous development from my first and second logger project. My idea is simple: The logger needs to be small enough to fit inside small spaces, e.g. a bee hive.
With the press off a button it starts/stops logging. The casing can be as simple as shrink tubing!

Features at a glance

  • small: only 25.3x18x8mm incl. battery holder
  • low power: runtime 2 years (with a CR1632 120mAh coin cell, 4 logs/h)
  • versatile: use I2C or digital sensors (board runs from 3.3 to 1.8V)
  • 1x temperature sensor on-board, accuracy ± 0.5°C
  • data retention > 200 years (depends on EEPROM manufacturer)
  • data transfer via standard 9600 baud serial protocol

Functional specification

The following table shows the most important features I expect from my logger. There are of course more (e.g. LED for signaling, reset button, ...) but those will make it into the final design anyway!

≤25.4x25.4mm (1 square inch)
(preferably 25x20mm)
height < 10mm

operational life
~ 1 year on a CR1225 button cell (48mAh)
> 2 years on a CR1632 button cell (120mAh)

RTCtemp. compensated RTC (DS3231MZ+)
accuracyT ± 0.5°C
ext. sensor size
small for hive "in cell" measurement
memory(timestamp + 4x temperature) * 1 year
easy data transfer
3 wire interface (RX, TX, GND)

Here's a quick jump-to to all of my log entries:

01 – choice of components
Friday, 10th, 2018
02 – data storage
03 – test placement of componentsFriday, 11th, 2018
04 – logger and sensor positionSaturday, 18th, 2018
05 – PCB finalizedSunday, 19th, 2018
06 – PCB finalized again and orderedMonday, 20th, 2018
07 – shitty TMP11x breakout boardsMonday, 20th, 2018
08 – my own deadline + thoughts on suppliersThursday, 23rd, 2018

Error corrected: D5, D6 were labeled as D9, D10. KiCAD 4.0.7 files, Gerbers, circuit diagram as PDF.

x-zip-compressed - 233.60 kB - 08/27/2018 at 13:15


  • 1 × Atmega328P-MU Microprocessors, Microcontrollers, DSPs / ARM, RISC-Based Microcontrollers
  • 1 × TMP112 0,5°C onboard temperature sensor
  • 1 × DS3231M (SOIC8 package) Clock and Timer ICs / Real-Time Clocks
  • 1 × M24M02 Memory ICs / EEPROMs, alternatives are e.g. 24LC512, 24AA512, ...
  • 1 × Keystone 3012 button cell holder for CR16XX cells

View all 10 components

  • 09 – it's alive!

    Jan08/27/2018 at 14:11 0 comments

    My boards arrived from the US just a few days after I sent the files. 

    They look fabulous, quality is really good. They're 1.6mm instead of 0.8 as I mentioned in a log before, but that's not a problem at all. 

    One stupid mistake is that I labeled D5 and D6 as D9 and D10. But other than the wrong silkscreen there's no downside to it... 

    I soldered just the Atmega and a LED, flashed the chip to use the internal resonator and uploaded the blink sketch which I set to 100ms because I drive the LED directly with no resistor. 

    Works like a charm, even after reflowing the chip 3 times @230°C because it didn't settle on it's pads correctly.

    Can't solder the other stuff yet because I need to solder the TMP112 first and it has not arrived yet. 

    Stay tuned :) 

  • 08 – my own deadline + thoughts on suppliers

    Jan08/23/2018 at 06:30 0 comments

    Update 01.09.2018 – Project halted for two weeks

    Fortunately, the deadline has been pushed to October. This is great news, as I won't find any time working on it the next two weeks. After that I'll complete it and present my fully populated board. It's just soldering the EEPROM, RTC and a few passives anyway.

    Read more »

  • 07 – shitty TMP11x breakout boards

    Jan08/20/2018 at 20:38 0 comments

    As I need to try and connect up to four TMP112 sensors to my logger, I decided to make some breakout boards for them. Individual board will be around 6.5x3.5mm.

    Address can be changed to one of 4 hex-values by a multi-solder bridge. I did not do fancy panelizing, instead I just chose 0.8mm board and added silkscreen lines where I need to cut the boards with a Dremel or knife:

    [+/-/C/D] are the I2C connections, [1/2/3/4] is the address select solder bridge (connect one of them to the longer middle pad) and on the other side is the SOT563 pad with longer pads for easier hand soldering. I'll use a hot air station anyway.
    There's space around the lines so I can use up to 1mm cutting disks without damaging the traces.

  • 06 – PCB finalized again and ordered

    Jan08/20/2018 at 18:53 0 comments

    So, even "final" PCBs are never finished. Just slept over it a night and added this and that, removed this and that as well.

    I ordered them at @oshpark today. Material will be 0.8mm thick, with 2oz copper.

    I couldn't find a free to download model of the keystone 3012 battery holder, so I made one myself. This was quicker than registering somewhere and downloading it :)

    It's not 100% to spec, but the outer dimensions are correct, that's what I wanted.

  • 05 – PCB finalized

    Jan08/18/2018 at 13:53 0 comments

    Update 19.08.2018 – PCB is done

    Read more »

  • 04 – logger and sensor position

    Jan08/12/2018 at 13:23 0 comments

    The micrologger has that name for a reason :) It is so small, that it can be placed right in the frames which are put in the bee hives! Here you see a frame with a wax foundation:

    wax foundation

    The top "bar" is 20mm wide, that's why I decided to shrink the logger to 25x20mm. I use very thin battery-pack heat shrink tubing to protect the circuit.

    here goes the logger

    It will be glued in the space you see outlined.

    To not disturb the bees while building the cells, I can't use normal multi stranded wire to connect the sensors. So I chose enameled copper wire of 0.15mm diameter.

    0.15mm enamelled copper wire

    4 strands are first color coded and then twisted with a hand drill. The finished wire is 0.4mm in diameter, which can easily be routed on the pre-made wax foundation plates. It is quite durable, so you can bend it a few times without breaking the insulation.

    The next picture shows two different packages:

    TO-92, left and SOT-23 next to it. I just ordered my TMP112 sensors which are even smaller than the SOT-23 package seen here. Will be quite the hassle soldering wires directly to it but let's see how/if it works.
    I want to add it directly into the cell bottom!

  • 03 – test placement of components

    Jan08/11/2018 at 08:18 0 comments

    Edit August 15th, 2018: Parts ordered.

    All parts are ordered and are expected to arrive in around two weeks from china. I hope to finish my board this weekend to send it to the fab as well, so I can start my first assembly.

    The final design will look quite different from the mock-up...

    Read more »

  • 01 – choice of components

    Jan08/09/2018 at 10:32 0 comments

      This log is all about the why, not the how...

      Space is the limiting factor in this project. I've got a full top PCB pane of 25.4x25.4mm and around 1/3 of that on the bottom side to put parts on. The rest of the bottom side is occupied by the coin cell holder.

      As I intend to put the PCB directly into the brood comb, I need to save as much space (especially in height) as possible.

      The PCB

      1,6mm is standard FR4 for most board houses. I chose 0.8mm and 2oz copper to keep the height down. Board house will be @oshpark.


      There's not much to choose from here. A 2032 cell is too large and occupies the whole bottom of my board. A CR1225 fits perfectly, but has only around 48mAh capacity, so I need to do super power saving stuff to get my 1 year of up time. I'll do my calculations with 35mAh to be safe.. The battery holder will be the Renata SMTM1225 SMD coin cell holder.

      For my calculations I like to use the Oregon Embedded Battery Life Calculator, which has proven to be quite accurate.

      With my setup I expect around 380 days of run time with a sleep current of 0.003mA, 4 wake-ups per hour, each 1s long and a current consumption of 0.2mA during logging.

      The microcontroller

      Atmega328P-MU, any questions? Jokes aside, I have two of them sitting in my shelf and didn't solder the small HVQN32 package yet. TIME!

      It will be clocked at 1Mhz internal to keep the coin cell from draining too fast. Current consumption is expected to be around 0.2mA when running/collecting data and 0.1µA when in power down mode.

      Of course the other parts will add to that but will be powered off in sleep mode anyway...


      DS3231 in a 8 pin package. Easy to use, drifts a few seconds a year, easy to control + has alarms, which are essential for precise wake/sleep cycles. It uses around 0.002mA when in battery backup mode.


      Unfortunately using an micro SD is not possible with such a weak coin cell. It would be like a short circuit drawing 100mA peak from it.

      I'll go with the pretty standard 24LC512, 24LC1026 or 24M02. They all work quite the same + pinout is the same!

      Temperature sensors

      It really breaks my heart, but my beloved DS18B20 sensors aren't too happy working below 3V. As I don't want to use a boost converter I had to switch to other sensors. Requirements:

      1. accuracy of +- 0.5°C
      2. more than one sensor at a bus
      3. small package (<TO92)

      A quick search on gave me 3 options:

      1. Microchip Tech MCP9808-E/MS
        1. size: 4.9x3mm, height 1.1mm
        2. accuracy 0.5°C
        3. 2.7V to 5.5V
      2. TI TMP275
        1. size: 3x3mm, height 1.1mm
        2. accuracy 0.5°C
        3. 2.7V to 5.5V
      3. TI TMP112AIDRLR
        1. size: 1.6x1.6mm, height 0.6mm
        2. accuracy 0.5°C
        3. 1.4V to 3.6V

      I chose number 3, as it seems just solder-able by hot air (0.5mm pitch) and is super small. In a lot of 10 its under 0.8€/piece, so that's alright with me. 4 of them can be used on one bus: nice!

      Power consumption is 10μA active (maximum), 1µA Shutdown (maximum). They won't need turning them on/off to save power. For external sensors I will use 0.1mm diameter enameled copper wire. Don't know yet if I solder the wires directly to the sensors or if I create small break out boards... Hope one of these methods works.

      Bottom line

      Those components will all fit onto my board. I'll add an LED and rest/user button as well in the final layout.

      The Atmega328P-MU and TMP112 are packages I have no experience soldering so I guess I'll learn something on my way too!

View all 8 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates