← Back to projects

Automatic Habit Tracker

What it is

Designed and built a dedicated hardware habit-tracking device aimed at reducing the friction associated with digital habit tracking. The system provides a simple physical interface that allows users to quickly log daily habits and receive visual feedback on their progress.

The device displays habits using iconography on a TFT screen and provides an intuitive input system through a rotary encoder. A row of NeoPixel LEDs visualizes habit streaks, allowing users to quickly see their consistency over multiple days.

Video

How it works

The system is powered by an ESP32 microcontroller connected to a TFT display, a rotary encoder for navigation, and NeoPixel LEDs for visual streak feedback. Each habit is represented on the screen using an icon. By default habits appear in red, indicating that they have not yet been completed for the day. Pressing the encoder marks the habit as completed and updates the icon to green.

Users can rotate the encoder to navigate between different habits. The NeoPixel LEDs at the bottom of the device display historical completion data, visually representing streaks across previous days. Completed days appear in green, while missed days appear in red.

The device synchronizes time with an internet server to determine daily resets. At the start of each new day the system automatically resets habit statuses.

To ensure reliability, the system stores habit data locally using ESP32 Preferences (non-volatile storage). This allows the device to retain habit history even if power is lost or the system is disconnected from the internet.

Tech used

GitHub

View Repository