Pomodoro Timer: My Arduino based focus tool

Pomodoro Technique, a time management tool that involves splitting work tasks into 25-minute intervals, known as pomodoros, with breaks scheduled in between each interval.
Jun 20, 2025
embedded image

Time management is hard. And staying focused in a world full of distractions? Even harder. That’s why the Pomodoro Technique has become a go-to strategy for so many people (myself included) looking to get real work done without burning out.

If you’re not familiar, the Pomodoro Technique is simple: you work for 25 minutes (that’s one Pomodoro), then take a 5-minute break. After four Pomodoros, you take a longer 15-30 minute break. It’s all about maintaining sharp focus in short, powerful bursts — with rest built in to keep your brain fresh.

Now, while there are dozens of apps and timers out there that can do this, I wanted something more physical, interactive, and honestly... more fun. So I built my own Pomodoro timer — one that you can literally flip like an hourglass to start your session.

The Idea: Bring Pomodoro to Life

Instead of just tapping a screen or clicking a button, I wanted to simulate the feeling of flipping an hourglass to start your work session. That sense of intention — physically flipping something — makes a difference. It’s a subtle ritual that helps your brain say, “Okay, focus time.”

So I grabbed some components lying around — an Arduino Nano, an MPU6050 gyroscope, two MAX7219 LED matrices, and a buzzer — and got to work.

How It Works

Arduino Nano: It’s small, cheap, and perfect for prototyping. No need to go overkill with something like the ESP just yet, although that is something that I am looking forward to as I take this project even further.

MPU6050 (Gyroscope + Accelerometer): This is the brain behind the sensing. It detects the orientation of the device — so when you flip the timer, it knows. That flip starts a Pomodoro session. Flip again and it resets or pauses — depending on how we configure it.

MAX7219 LED Matrices: I used two of these, rotated at a 45° offset. This was to mimic the hourglass shape, with LED "particles" moving from one matrix to the other during a session. The result? A really cool visual effect that simulates sand falling — digital sand, of course.

Buzzer: A simple tone that lets you know when your 25-minute session (or 5-minute break) is up. Sometimes, that little beep is all you need to shake you out of a deep scroll session on social media.
### Code:

csharp
// A pomodoro timer Arduino 
#include "Arduino.h"
#include <MPU6050_tockn.h>
#include "LedControl.h"
#include "Delay.h"

// Matrix definitions
#define MATRIX_A  1
#define MATRIX_B  0

// Pin definitions
#define PIN_DATAIN 5
#define PIN_CLK 4                          
#define PIN_LOAD 6
#define PIN_BUZZER 12

// MPU6050 thresholds
#define ACC_THRESHOLD_LOW -25
#define ACC_THRESHOLD_HIGH 25