Birthday Alarm That'll Run for 50 Years!

An Arduino powered birthday reminder device that'll wish you happy birthday for 50 years on a single CR2450 coin cell.

Similar projects worth following
An Arduino powered birthday reminder device that'll wish you happy birthday for 50 years on a single CR2450 (540 mAh) coin cell. The time and birthday date can be programmed via serial console. Once set, the MCU goes to sleep. When the current RTC time matches your birthday every year, the LED will flash for a minute and print a happy birthday message. The average current consumption is around 0.6 uA.

This project is also available on my personal project website

Update : This project won runner-up prize in HaD Coin Cell Challenge 2018

Yes, you read the title correct. Have you ever forgot your birthday, that you need someone else to remind you about it ? Or what if you can gift to someone you love, a device that'll wish them on their birthday for 50 times ? I kid you not, this simple Arduino powered Birthday Alarm that runs on a single CR2450 coin cell can wish your loved ones (or yourself) a happy birthday for 50 years, before the battery run out of juice.

This is my first project on Hackaday. I was really intrigued by the Coin Cell contest here and wanted to make something awesome. This birthday alarm thing simply popped into my head and I started researching on how long we can run something on a coin cell. I've never used the sleep modes of any microcontrollers before. So I had to learn everything about making MCUs run at insanely low currents and save every bit of energy from a cell. It was a challenge really! I used ATmega168P as the microcontroller (actually I modified an Arduino Nano that has ATmega168P on it by removing all the unwanted components such as the voltage regulator, USB bridge etc.) and used Arduino IDE to develop the firmware.

The time and birthday date can be programmed via serial monitor over USB. Once the time and alarm are set, the MCU goes to sleep mode. When the current RTC time matches your birthday every year, the LED will flash for a minute and will print a happy birthday message to the serial monitor. The average current consumption is around 1.2 uAh (including self-discharge)  which makes it possible to run it for more than 50 years on a CR2450 (540mAh) Lithium coin cell.


  • Around 1.22 uAh average current consumption including cell self-discharge (608 nA without considering self-discharge, as measured by ammeter, on cell CR2450N)
  • Actual operating times on different types of Lithium coin cells are : >29 years on CR2023 (225 mAh), >50 years on CR2450N (540 mAh), and >64 years on CR2477N (950 mAh). [actual operating time depends on the battery's physical and chemical health over the period]
  • Birthday can be set and updated via any serial monitor software over USB with simple commands.
  • Dedicated time setting switch allows to set, see and update time anytime you want.
  • Software setting of time means, it can be set pretty accurately with an app running on a computer (a time setting/syncing software based on Processing is under development)
  • Open source - all design files and software codes are available to download with detailed documentation and high resolution images.

Now I'll walk you through the instructions on how to build this and show you the actual current consumption test.

1. Modifying the Arduino Nano

For this project you can use a bare microcontroller or use an Arduino Nano or Mini boards. All that is required is we must run it with internal oscillator (1MHz) and at full 1.8 - 5V operating range. The CR2450 or similar Lithium cells have a nominal voltage of 3V, and so we can run the MCU without using a voltage regulator. Chinese clones or Nano and Mini are extremely cheap that you can buy them for the chip's price! I used such a Nano clone that has CH340G as the USB to serial bridge. Below is the one I used.

Arduino Nano clone
Has CH340G

I had both ATmega168 and 328 versions. I bought the 168 versions by mistake a few years ago (now I found a use for it). In this particular board you need to remove,

  • The USB to Serial bridge IC which here is the CH340G.
  • The Schottky diode that is connected to the USB 5V.
  • Two 1K resistors connected to the TX and RX pins of the CH340G.
  • RX, TX and PWR LEDs (SMD)
  • The AMS1117 5V voltage regulator.

I used the LED on pin 13 for debugging and as the main flasher, and so I didn't remove it. The capacitors need not be removed as they'll help attenuate noise. Once the regulator is removed, you need to short the pads of the voltage regulator as shown in the image. This is due...

Read more »


Arduino Nano Clone schematic

Adobe Portable Document Format - 851.94 kB - 01/05/2018 at 12:42



CR2450N Datasheet

Adobe Portable Document Format - 72.91 kB - 01/05/2018 at 12:41



PDF version of Eagle schematic

Adobe Portable Document Format - 27.41 kB - 01/05/2018 at 12:41


  • 1 × Arduino Nano/Mini with ATmega168P
  • 1 × ISL1208 RTC
  • 1 × Perfboard
  • 1 × SPST Switch
  • 2 × 10K Resistor

View all 14 components

  • A Better RTC

    Vishnu Mohanan01/09/2018 at 17:42 0 comments

    The current RTC I'm using, the ISL1208 does a good job in all departments except the time-keeping current consumption. 400 nA is a bit high because I've seen other RTCs with standby current half of that. But none of them had month alarm feature which is a crucial requirement for our application. So searching for an RTC with lesser standby current I found two : the PCF85263A from NXP and AM0805 from Ambiq.

    PCF85263A has all the features we want; month alarm (it has two alarms), I2C, wide operating voltage (0.9 to 5.5V), interrupt output pin, and time-keeping current of only 280 nA typical. So that's better than the ISL1208. ISL1208 in the current design can be replaced with PCF85263A with a little modification in the code. This will reduce the system sleeping current to (600 nA - 120 nA) = 480 nA.

    Isn't that enough? Well then, we have the ultimatum - the Ambiq AM0805 - majestic features on a small all-in-one package. Its time-keeping current is insanely low - 14 nA at 3V. it has integrated time crystal, month alarm, countdown timer, interrupt output, external interrupt monitor, I2C etc. But unfortunately this IC is not available in India. I'll have to buy this from any foreign distributors. That's the only bummer! But if we get it, we could reduce the system current consumption to just the microcontroller sleeping current only which will improve the expected operating time to about 73 years.

View project log

  • 1
    Bug here!

    There's a bug here and it has been reported. All instructions are so in Details page.

View all instructions

Enjoy this project?



Kris Winer wrote 03/26/2018 at 06:28 point

Very cool! I love ultra-low power devices.

  Are you sure? yes | no

Vishnu Mohanan wrote 03/26/2018 at 06:39 point

Yeah, it was a fun project and I learned a bit about lowering power consumption of MCU circuits. Thanks for the comment :)

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

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