Driver FixRecommendedSound, Wi-Fi or graphics acting up? Check drivers firstFind missing or outdated drivers fast.Check DriversFall ResetAmazon USFall reset deals: check better picks before checkoutAmazon US: today's deals, useful picks and quick comparisons.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PC×
Skip to content
Blog

How to Build a Simple Wall Clock with Four Adafruit 1/4 60 NeoPixel Rings

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

Build this clock with four Adafruit 1/4 60 RGB NeoPixel rings—not one. Each quarter-ring contains 15 addressable LEDs; four sections form a complete 60-pixel circle. An Arduino-compatible controller reads time from a battery-backed DS1307 real-time clock (RTC), displaying hours in red, minutes in green and seconds in blue.

The electronics are straightforward, but a reliable finished clock also needs correctly joined data lines, a suitably rated 5 V supply and a rigid backing or enclosure. Treat it as a decorative maker-built clock rather than a precision timekeeping instrument.

What you are building

The finished clock is a 60-pixel illuminated circle. The three hands are represented by different colors:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Time component Color Pixel position
Hour Red ((hour12 % 12) * 60 + minute) / 12
Minute Green minute
Second Blue second

Where colors overlap, the LEDs mix—for example, red and green produce yellow. The hour indicator can be smoothly advanced using the minutes instead of jumping once per hour.

#1 Best Overall
DIYmall 5PCS 12 X WS2812B RGB LED Rings 12 Bits 5050 Lamp Light with Integrated Driver Full Color Lights DC 5V for Arduino Raspberry Pi
  • ▶ LED Chip: WS2812B; Communication interface: Single-wire communication
  • ▶ Voltage: DC5V, usually we use USB 5V to power it
  • ▶ Note: The led ring doesn't come with cable
  • ▶ You can set the led brightness in the arduino code, and also you can program each light individually
  • ▶ What you will get is: 5pcs 12Bits WS2812B 5050 RGB Led rings

The design follows the original Adafruit NeoPixel 60 Ring Wall Clock reference design and the 2016 Hackster project.

Parts and tools

Required electronics

  • Four Adafruit 1/4 60 RGB NeoPixel rings.
  • An Arduino Uno, Adafruit Metro or compatible 5 V controller.
  • A battery-backed DS1307 RTC breakout.
  • Breadboard, perfboard or Perma-Proto board.
  • A regulated 5 V power supply with adequate current capacity.
  • Hookup wire, solder and heat-shrink tubing.
  • A suitable RTC backup battery.
  • A rigid backing plate, enclosure or 3D-printed mount.

Useful tools and optional parts

  • Soldering iron, side cutters and a multimeter.
  • Optional 470–1,000 µF electrolytic capacitor across the ring’s 5 V and GND.
  • Optional 330–470 Ω resistor in series with the NeoPixel data wire.
  • Diffuser, translucent faceplate, hour markers and wall-mount hardware.
  • Inline power switch and strain relief.

The four RGB quarter-rings are approximately 6.2 inches (157 mm) outside diameter and 5.7 inches (145 mm) inside diameter when assembled. Each quarter section is only about 6.4 mm wide and 2 mm high, so the solder joints alone should not support the completed ring.

Important: one quarter-ring is not a complete ring

The product name is easy to misread. One purchase contains a quarter of a ring with 15 individually addressable RGB LEDs. Four sections are required for the 60-pixel clock. The sections use a one-way data path: the controller connects to the input side marked DIN, then data travels from each section’s DOUT to the next section’s DIN.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Do not substitute RGBW sections without changing the software. RGBW pixels need RGBW-aware library configuration and color handling; a normal RGB sketch may produce incorrect colors. See Adafruit’s RGBW quarter-ring information before choosing that variant.

Assemble the 60-pixel ring

  1. Lay the four quarter-rings on a flat surface in a circle. Check the LED numbering and the printed DIN/DOUT labels before soldering.
  2. Join each neighboring 5V pad to 5V and each neighboring GND pad to GND.
  3. Connect the DOUT of one section to the DIN of the next section.
  4. Leave the input-side DIN and final output-side DOUT unconnected. The controller’s data wire goes to the remaining input-side DIN.
  5. Inspect every joint for bridges between adjacent pads. Use a multimeter to check for continuity and unintended shorts before applying power.
  6. Attach the completed circle to a rigid backing plate before moving or mounting it.

The electrical bridges create continuity, not structural strength. A plywood, acrylic, foam-board or 3D-printed rear plate prevents flexing and protects the delicate PCB joints.

Wire the controller and RTC

Arduino Uno reference wiring

Component Connection
NeoPixel +5V Regulated 5 V supply and controller 5 V
NeoPixel GND Controller GND and supply negative
NeoPixel DIN Arduino D3 in the Adafruit reference design
RTC +5V Arduino 5 V
RTC GND Arduino GND
RTC SDA Uno A4
RTC SCL Uno A5

The original Hackster sketch uses data pin 6 instead. Either pin can work if the code matches the wiring. The Uno mapping above follows Adafruit’s reference circuit.

On a 5 V Trinket, Adafruit identifies the NeoPixel data connection as pin 3, with I²C on pins 0 and 2. Other boards may use different I²C pins. Modern 3.3 V controllers may also require a 5 V logic-level data shifter; they are not automatic drop-in replacements.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
DIYmall 24 Bits RGB LED Rings 24 X WS2812B 5050 Lamp Light with Integrated Drivers, Addressable Full Color Lights for Arduino Raspberry Pi ESP32 (Pack of 5pcs)
  • ▶ WS2812B LEDs, same brightness, color and protocol with SK6812 LEDs
  • ▶ This RGB LED ring can work with AVR, Arduino, Raspberry Pi, PIC, mbed etc
  • ▶ Full color Programmable LED rings, 5050SMD, You can set the led brightness in the arduino code, and also you can program each light individually
  • ▶ Communication interface: Single-wire communication, LED Chip:WS2812B, Voltage:DC4-7V, usually we use USB 5V to power it, current draw at 5 V is around 1.44amps (60 mA per LED,24 X 0.6 = 1.44 amps)
  • ▶ What you will get is: 5 X 24Bits WS2812B 5050 RGB LED Ring. If you have any questions when you use our products, pls feel free to contact us

Install the Arduino libraries

Install the current versions of:

  • Adafruit_NeoPixel
  • RTClib
  • DST_RTC, if you are following the original guide’s daylight-saving-time approach

Use the Arduino IDE’s Library Manager where available, select the correct board and port, and verify the exact data pin and pixel type for your hardware. The Hackster code dates from 2016, while the Adafruit guide was last edited March 8, 2024, so do not assume old library examples are unchanged in every current installation.

Set the RTC once

The battery keeps the RTC running; it does not set the correct time automatically.

  1. Install the RTC library and upload a temporary RTC-setting sketch.
  2. Set the time from an explicit date/time value or from the sketch compilation time using DateTime(__DATE__, __TIME__).
  3. Check the serial output or clock display.
  4. Upload the normal clock sketch.
  5. Remove or disable the automatic initialization line. Otherwise, every later upload can overwrite the RTC with the sketch’s compilation time.
  6. Disconnect power briefly and verify that the clock retains time from the backup battery.

For the exact DS1307 setup process, use Adafruit’s clock code and RTC guidance.

Clock code structure

A minimal RGB configuration looks like this:

#include <Wire.h>
#include <RTClib.h>
#include <Adafruit_NeoPixel.h>

#define PIXEL_PIN 3
#define PIXEL_COUNT 60

Adafruit_NeoPixel strip(PIXEL_COUNT, PIXEL_PIN,
                        NEO_GRB + NEO_KHZ800);
RTC_DS1307 rtc;

In setup(), initialize the strip and RTC. In loop(), read rtc.now(), clear the pixels, calculate the three positions and call strip.show().

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
DateTime now = rtc.now();
int hour12 = now.hour() % 12;
int hourPixel = (hour12 * 60 + now.minute()) / 12;
int minutePixel = now.minute();
int secondPixel = now.second();

strip.clear();
strip.setPixelColor(hourPixel,   strip.Color(80, 0, 0));
strip.setPixelColor(minutePixel,  strip.Color(0, 80, 0));
strip.setPixelColor(secondPixel,  strip.Color(0, 0, 80));
strip.show();
delay(250);

The color order NEO_GRB is appropriate for the referenced RGB ring, but confirm the order printed in the documentation for your exact product. If the colors are swapped, the pixel type or color order is probably wrong.

If you want the hour hand to occupy a position between hour marks, use the interpolated formula shown above. A simpler sketch may use only (hour12 * 5), causing the hour indicator to jump in five-pixel steps.

Power the clock safely

Power is the most important reliability issue. Adafruit reports that its reference clock produced strange RTC readings when the NeoPixels were powered from USB. That does not mean every USB setup is unsafe, but it does mean USB alone should not be assumed sufficient.

Rank #3
DIYmall 7Bits 12Bits 16Bits 24Bits RGB LED Ring WS2812B SK6812 5050 Lamp Light with Integrated Drivers Individually Addressable for Arduino Raspberry Pi
  • Each pixel is individually addressable
  • Voltage: DC5V, LED Chip: WS2812B
  • Communication interface: Single-wire communication
  • Full color Programmable LED Strip, You can set the led brightness in the arduino-code, This RGB LED ring can work with AVR, Arduino, Raspberry Pi, PIC, mbed etc
  • What you will get: 1 X 7 Bits WS2812 RGB LED Ring + 1 X 12 bits WS2812 5050 RGB LED + 1 X 16 bits WS2812 5050 RGB LED + 1 X 24 bits WS2812 5050 RGB LED

Adafruit specifies approximately 18 mA per pixel. A conservative full-white estimate is:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
60 pixels × 0.018 A ≈ 1.08 A

This is a theoretical LED-current estimate, not a measurement of the completed clock. Use a regulated 5 V supply with useful headroom, connect the controller and ring grounds together, and avoid routing the entire load through a thin USB cable or a single fragile PCB bridge.

  • Never apply more than the ring’s rated 5 V input.
  • Connect the external supply ground to the controller ground.
  • Keep brightness below maximum for normal wall-clock use.
  • Place the optional bulk capacitor close to the ring’s power input.
  • Use a short, secure data wire and the optional series resistor near the controller.
  • Provide strain relief and an inline switch for a permanent installation.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Control brightness

A wall clock rarely needs maximum brightness. Lower brightness reduces glare, power demand and stress on the supply, and makes the display more comfortable at night.

The Adafruit reference design uses parameters named DAYBRIGHTNESS, NIGHTBRIGHTNESS, MORNINGCUTOFF and NIGHTCUTOFF. Brightness values run from 0 to 255, although zero makes the display invisible. You can begin with modest values such as 30–80 and adjust them for the room. A light sensor can be added later for automatic dimming.

Build the enclosure and wall mount

Prototype backing

For testing, attach the ring to cardboard, acrylic, plywood or foam board. Keep the controller and wiring on the rear, and do not let the backing press against the LED packages.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

3D-printed enclosure

The original Hackster project includes custom 3D-printed clock parts. A practical enclosure should include:

  • A rigid rear plate supporting the entire ring.
  • Openings or channels for power and data cables.
  • Clearance around LED packages and solder joints.
  • Access to the RTC battery and programming connector.
  • Space for the controller, power wiring and optional switch.
  • A wall-mount keyhole, bracket or other rated fixing method.

Finished wall clock

Add a diffuser or translucent faceplate only after confirming that the three colors remain easy to distinguish. Printed hour indices around the circumference make the unusual color-based display easier to read. Do not fully seal a warm power supply or controller in a tight enclosure; leave suitable space for heat dissipation.

Quick Recap

Bestseller No. 1
DIYmall 5PCS 12 X WS2812B RGB LED Rings 12 Bits 5050 Lamp Light with Integrated Driver Full Color Lights DC 5V for Arduino Raspberry Pi
DIYmall 5PCS 12 X WS2812B RGB LED Rings 12 Bits 5050 Lamp Light with Integrated Driver Full Color Lights DC 5V for Arduino Raspberry Pi
▶ LED Chip: WS2812B; Communication interface: Single-wire communication; ▶ Voltage: DC5V, usually we use USB 5V to power it
$16.59
Bestseller No. 2
DIYmall 24 Bits RGB LED Rings 24 X WS2812B 5050 Lamp Light with Integrated Drivers, Addressable Full Color Lights for Arduino Raspberry Pi ESP32 (Pack of 5pcs)
DIYmall 24 Bits RGB LED Rings 24 X WS2812B 5050 Lamp Light with Integrated Drivers, Addressable Full Color Lights for Arduino Raspberry Pi ESP32 (Pack of 5pcs)
▶ WS2812B LEDs, same brightness, color and protocol with SK6812 LEDs; ▶ This RGB LED ring can work with AVR, Arduino, Raspberry Pi, PIC, mbed etc
$23.99
Bestseller No. 3
DIYmall 7Bits 12Bits 16Bits 24Bits RGB LED Ring WS2812B SK6812 5050 Lamp Light with Integrated Drivers Individually Addressable for Arduino Raspberry Pi
DIYmall 7Bits 12Bits 16Bits 24Bits RGB LED Ring WS2812B SK6812 5050 Lamp Light with Integrated Drivers Individually Addressable for Arduino Raspberry Pi
Each pixel is individually addressable; Voltage: DC5V, LED Chip: WS2812B; Communication interface: Single-wire communication
$15.99

Troubleshooting

Symptom Likely causes
Only one quarter lights Reversed DIN/DOUT, missing power bridge, wrong input end or bad solder joint.
Random colors or flicker Insufficient power, missing common ground, long data wire, incorrect pixel order or 3.3 V logic without level shifting.
No LEDs light No 5 V supply, reversed power connection, wrong data pin or a shorted solder bridge.
RTC resets or shows nonsense Weak power, USB voltage drop, missing battery, incorrect I²C wiring or repeated time initialization.
Clock is one hour wrong Daylight-saving setting, timezone assumption or a fixed offset in the sketch.
Hour hand jumps The code uses a coarse hour position instead of including the minutes in the calculation.
Ring breaks during installation The solder joints are carrying mechanical load. Reinforce the circle with a backing plate.

Possible upgrades

  • DS3231 RTC: a practical upgrade when long-term time accuracy matters more than reproducing the original DS1307 design. Confirm library and pin compatibility.
  • Automatic brightness: add a light sensor and reduce brightness after dark.
  • Time-setting controls: add buttons, a rotary encoder, Bluetooth or Wi-Fi rather than reprogramming the board.
  • RGBW lighting: useful for decorative white illumination, but it requires RGBW-compatible code and color handling.
  • Network time: a Wi-Fi controller can synchronize time, but it adds software, power and network dependencies.

Final installation checklist

  • Four quarter-rings are present and aligned.
  • All neighboring 5 V and GND pads are connected.
  • Every data connection runs from DOUT to the next DIN.
  • The controller connects to the input-side DIN.
  • Controller, RTC and NeoPixel grounds are common.
  • The RTC battery is installed and the time has been set once.
  • Automatic RTC reset code has been disabled.
  • The external 5 V supply has adequate capacity.
  • The ring is attached to a rigid backing.
  • Brightness is comfortable for the room.
  • The enclosure leaves access to the battery and programming port.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.