Arduino "Analogue" LED Clock, which gets its time from NTP instead of RTClib and renders the time using a WS2812B LED strip.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Marcus Scholz b1ae6e456d Added link to 2nd blog post in README. 4 years ago
Hardware Reordered objects to be engraved to a single sublayer of 'frontplate'. 4 years ago
LICENSE update copyright and remove fz file 6 years ago Added link to 2nd blog post in README. 4 years ago
constants.h Changed LED ring size back to sane default of 60. 4 years ago
led-ring-clock.ino Fixed disappearing hour / minute handles the dirty way. 4 years ago


An Arduino-based analog clock using an WS2812B addressable RGB LED ring as a display.

This sketch requires the FastLED library, the Wire library (built-in), the EEPROM library (built-in), and the NtpClientLib (currently requires develop branch).

3D-printable enclosure for NeoPixel Ring (24 LEDs)

Design files available on Thingiverse:

Electronics information

The LED ring is connected to digital pin 3. Momentary N/O button is connected to digital pin 5. 10K potentiometer is connected across power and ground and the wiper is connected to Analog 0. This code has been tested with WS2812B LED Strips of up to 120 LEDs, but more should be possible. With minimal changes it should work with rings using other types of RGB LEDs. The code should work on any ATmega328 based board.

Blog-Post with howto and more details (German)

Blog-Post with hardware build instructions (German)