PomoDesk - Physical Pomodoro Timer

PomoDesk is an ESP32-S3-based physical Pomodoro timer designed to help users maintain a flow state while ensuring they take regular breaks. It uses a NeoPixel LED ring for visual feedback and features power-saving optimizations by disabling unused wireless radios.

PomoDesk - Physical Pomodoro Timer

Maintaining a “flow state” during complex tasks like PCB design or software development is a double-edged sword. While it allows for deep focus, it often leads to losing track of time and neglecting necessary breaks. PomoDesk is a hardware-based solution to this problem, offering a physical Pomodoro timer that moves the countdown away from distracting screen apps and onto a dedicated desktop device.

The Hardware Foundation

At its core, PomoDesk is built around the ESP32-S3 microcontroller. This choice provides ample processing power and GPIO flexibility for managing user inputs and visual outputs. The primary interface for the user is a NeoPixel LED ring, which serves as a circular progress bar and status indicator. By using light rather than a digital clock, the device remains unobtrusive, only drawing the user’s attention when a transition occurs.

Functionality and User Experience

The system is designed for simplicity. A single physical button allows users to cycle through different modes:

  • Focus Mode: A dedicated 45-minute work session.
  • Break Mode: A 5-minute period to rest and reset.
  • Idle Mode: The device waits for the next session.

The LED ring provides smooth color transitions to represent these states. Instead of a ticking clock, the gradual change in light offers a more organic way to sense the passage of time. This first iteration focuses on being as elegant and unobtrusive as possible, only showing visual alerts when it is time to take a break.

Firmware and Optimization

The firmware is developed using the Arduino framework, leveraging the Adafruit_NeoPixel library for lighting control. One interesting technical aspect of the project is its focus on power management. Since the ESP32-S3 is a wireless-capable chip, the firmware explicitly disables Wi-Fi and Bluetooth to reduce power consumption and heat. This makes the device more suitable for battery-powered operation or simply more efficient as a USB-powered desktop accessory.

The code handles state management and timing logic, ensuring that the transitions between work and rest are handled reliably. Future iterations aim to expand on these features, potentially incorporating API options for deeper integration into a user’s digital workflow and refining the physical enclosure for a more polished finish.