Time is an abstract concept, especially for toddlers who lack the intuition we adults take for granted. When I tell my toddler, "You have 5 more minutes to play," I can only imagine how meaningless that might sound to him. To bridge this gap, I designed and built a 3D-printed visual timer. This timer uses light tiles, an OLED screen, and a rotary encoder to make the passage of time more tangible and intuitive.

I also did this project as a 1-day project challenge, completed in just about 8 hours (with some extra time for 3D printing). Here's how it all came together. I really could've used a visual timer to track the 8h time for this too.

This worked better than I expected, the kid checks it from time to time and even ran to brush his teeth when he noticed the last cell went out. But I'm getting ahead of myself here, let's start from the beginning.

Concept and Goals

The idea was to create a countdown timer with a simple, child-proof interface. Here's what I envisioned:

The timer needed to be robust enough to handle a curious toddler’s tinkering but intuitive for adults to use.


Hardware

The hardware for this project is straightforward and budget-friendly:

All components are widely available, cheap and suitable for a beginner-friendly project.


Design and 3D Modeling

I started by modeling the enclosure in CAD software. To streamline the process:

The enclosure was designed to house all components securely. For the light tiles, I created compartments that matched the LED spacing, and a front panel to diffuse the light.


Firmware

The firmware controls three primary states:

  1. Off State: everything is turned off, lights, screen etc.
  2. Pause State: Time can be set using the rotary encoder and the screen
  3. Countdown State: The timer runs, LEDs go out progressively, the inputs are locked to prevent tampering, screen displays remaining time in minutes

Using the OLED display’s graphics library, I added icons for the states and selected a bold font for easy readability. The rotary encoder’s interrupts ensured smooth and precise control. Debugging the logic and edge cases was time-consuming, but it was rewarding to see the system function seamlessly.


Assembly

With the 3D-printed parts ready, assembly was straightforward. I wired everything up trying to minimize the wires slack, most importantly for the screen because the slack will go in the way of the 1st LED if too long. I'll try to fix this in the next version.

The whole assembly comes in from the front through the body, the encoder remains in the front and the screen goes out through the back.

  1. Encoder: Screwed down to the front plate
  2. LEDs: Applied to the back panel
  3. Screen: Press-fit into its designated slot
  4. Microcontroller: Mounted with epoxy putty for a firm, permanent hold

After some tweaks (reprinting the face panel for better light diffusion) everything fit together perfectly.


Wrap-up

This visual timer turned out to be a fun and functional solution for helping my toddler understand time. It’s simple, engaging, and durable enough for daily use. But this is not only useful for kids, I can still use it for myself whenever I want to set myself a deadline and be able to see where I am at a glance. Like when making this 1-day project :).