Bottle Cap Clock

I have a strange habit of saving PET bottle caps, and decided to make a clock out of it like the ones that are used on scoreboards - big fat pixels. The first version was made using RGB strips and a bunch of hotglue wired into spacers. After a while I decided to make something brighter and more clean - so I designed PCBs and improved the model.

Four-digit clock made from bottle caps, lit green and pink

A four-digit display made from illuminated bottle caps.

A Wi-Fi clock made from 65 bottle caps, 195 addressable LEDs and a custom ESP32-S3 board.

Each PET cap covers three WS2812 LEDs. Sixty caps make four 5 × 3 digits; five more make the colon. The cap shape diffuses the cap edge shadows, the custom holders and board keep the grid aligned and prevent light bleeds.

Bottle-cap holders and the LED board during assembly

The cap holders and LED board that make up the display.

ESPHome runs on a custom ESP32-S3 board (one for driving WS2812 pixels), keeps time with SNTP, and is configurable with Home Assistant (via ESPHome). There are several color and animation modes. An optional ambient-light sensor adjusts brightness to the room level. Thanks to ESPHome/Improve, the setup is easy after the first flash, without editing YAML - it just appears in your "New Devices" dashboard.

The tricky part was making it dim enough for a dark room. ESPHome's normal brightness scaling can erase very low LED values, so the dimming uses a mapped display effect. At the lowest levels, the clock lights only one or two of the LEDs per cap.