Introduction: Pomoduino Timer

About: UX/UI Design, Machine Learning, MLOps, Data Viz, - founder of BentoML.ai, previously @databricks, @uwmhcid

Pomodoro Technique is a popular time management method. It is based on the idea that frequent breaks can improves mental agility. And by breaking down the work into 30 intervals and separated by short breaks, one can largely improve his productivity.

Although I found it less helpful when using a pomodoro timer app, because it is simply too much distraction checking your phone frequently while you are trying to focus on getting things done. So I decided to build my self a REAL Pomodro timer!

The interface of a this timer is very simple. You got one button for starting a cycle, it will count down 30 minutes showing time left on the screen, and ring the bell when time is up.

Step 1: What Do You Need

  • Arduino board
  • TC1602 LCD or similar
  • Alarm clock from IKEA
  • Transistor/Diode/Resistor/Breadboard/wires

Step 2: Control a DC Motor With Arduino

The first step is to disassemble the IKEA clock, you should be able to find a DC motor inside the clock which drives the alarm bell. In this step, try using Arduino and one button to control this motor, where the motor runs when you press the button.

If you are not familiar with how to control a DC Motors with Arduino, take a quick look at this tutorial.

A quick explanation of the diagram above: the transistor acts like a switch to control the motor. It uses the signal from Arduino to power another circuit which has much higher voltage. The diode and capacitor in this circuit are meant to protect the circuit from noise and spikes.

Step 3: Work With a Display

The LCD display is used for showing the time left in current cycle. I found this tutorial very helpful when prototyping with this LCD screen. Make sure you can program Arduino to print some text message you want on the screen, and then move to next step.

In my version I didn't use a LCD controller because I didn't have one at the time. If you got an I2C LCD Controller, definitely use it here. It will make the wiring much easier.

Note that if you don't have a LCD screen, it's also possible to use a few LEDs for indicating how much time you have left.

Step 4: Connecting the Dots

The diagram above demonstrates how you can connect the control button, the LCD screen, and the AC motor together. Unfortunately I couldn't find the code I wrote originally for this project. Although the timer logic is relatively easy to implement with Processing. Checkout this blog which implemented a simple timer library for Arduino.

Step 5: Squeezing in Everything

Just for aesthetic purpose. If you really want to make it looks nicer and fully encapsulated:

  • Try using an Arduino nano or micro board
  • Try cut the breadboard half
  • Use a LCD controller (much less wiring and you can get rid of the breadboard in the front)
  • Soldering the wires

Step 6: Done

Have fun!