Physical Pomodoro timer built as an art piece.
No apps, no sounds, no distractions.
Pomodoro Freewire Timer is a small desktop device that helps manage focus time using Pomodoro technique principles.
Main features:
- keep track of Pomodoros
- set custom duration for each timer
- unique freewire design
- truly-black OLED display
- capacitive touch controls
- smooth LED animations and visual alarm
- Wi-Fi OTA update and wireless logging
![]() |
![]() |
I wanted a physical timer, a Pomodoro tracker that doesn’t need a phone or an app. Something that just sits on the desk. While looking for inspiration, I found the freewire technique — a way of building circuits where wires form both the structure and the connection paths. This project became a mix of design experiments and tool I actually use every day.
The hardware came first. I drew the schematic in KiCad,
then modeled everything in Fusion360 to plan each wire route in 3D.
In freewire builds, every wire matter — it carries signal and also keeps the structure together.
The frame acts as both enclosure and sculpture.
| Component | Description |
|---|---|
| MCU | Wemos S2 Mini (ESP32-S2) |
| Display | 0.96" OLED (SSD1306, 128x64) |
| LEDs | 2× WS2812B ARGB |
| Input | Capacitive touch pads (washers) |
| Structure | Copper freewire frame built using 1 mm and 3 mm wire gauge |
| Power | USB 5V (onboard 3.3V regulator) |
The device has no enclosure. It runs 24/7 powered by USB.
Written in C++ with PlatformIO and Arduino framework.
The code is modular, based on timers and interrupts, no blocking loops.
Highlights:
- event-driven architecture
- OTA firmware updates
- Wi-Fi logging for debugging
- reusable modules shared with other projects
The interface is simple:
- touch the pads to set or start timer
- hold to pause or resume
- LEDs pulse when the time runs out
- set custom pomodoro duration in settings
- set custom daily pomodoro target in settings
- NTP sync to show a clock when idle
- daily and session statistics
- presets for timer values






