This is a dual-display Pomodoro timer using ESP32 with a 16x2 LCD and 0.96” OLED on the same I2C bus. The OLED shows time, the LCD shows mode, and a potentiometer lets you set custom durations. LEDs track progress ! This Project is simple, effective, and perfect for focus!
ESP 32 Dev Board
OLED display 0.96" I2C
LCD display 16x2 I2C
10k Ohm Potentiometer
Push Button x2
LEDs (Red x1, Blue x1, Green x1)
330 Ohm resistors
Jumper Wires
Breadboard x2
This project is a dual-display Pomodoro timer powered by an ESP32 microcontroller, developed to support improved time management and productivity using the well-known Pomodoro Technique. It integrates multiple hardware components into a single, cohesive system that delivers both functionality and interactivity:
A 16x2 I2C LCD displays the current session mode: either "STUDY MODE" or "BREAK MODE".
A 0.96” OLED display, also running on the I2C bus, functions as a live countdown timer.
Three status LEDs (Red, Blue, and Green) provide clear visual feedback, dynamically indicating session progress.
Two push buttons: one for toggling pause/resume, and the other for reset or user confirmation during setup.
A potentiometer used to define user-configured durations for focus and break sessions (from 0 to 60 minutes).
Both displays operate on the same I2C bus, demonstrating efficient communication without requiring multiple serial interfaces.
As a student often navigating challenges with distraction and study fatigue, I wanted to create a physical, self-made tool that would help reinforce structured study sessions with regular breaks—the core idea of the Pomodoro Technique.
This was also an opportunity to work with the ESP32 for the first time and explore how different modules like an LCD, OLED, potentiometer, LEDs, and push buttons could be combined in a practical embedded system project. It served not only as a productivity tool but as a hands-on exercise in real-time logic, hardware interfacing, and user interaction design.
Initialization Phase:
Upon startup, the LCD prompts the user to set a focus (study) duration using the potentiometer.
A press of the reset button confirms the value and proceeds to prompt for break duration configuration using the same method.
After confirming both values, the system enters the timer phase in a paused state.
Running Phase:
The OLED shows a live countdown.
The LCD indicates the current mode: either "STUDY MODE" or "BREAK MODE".
LED indicators reflect the progress:
At the start: all three LEDs (Green, Blue, Red) are on.
Midway: only Blue and Red are on.
Near the end: only Red remains on.
During break sessions: the Red LED blinks repeatedly to signify the difference.
Pause/Resume button toggles the countdown.
Reset button returns the system to the initialization phase, allowing the user to input new durations for focus and break sessions.
This project represents a compact, user-friendly Pomodoro assistant built entirely from scratch using accessible components. It merges practical timekeeping with real-world embedded system learning, making it suitable as both a personal productivity tool and an educational showcase.