Introduction: O-Clock

This clock uses side glow fiber optics to tell the time in a colorful way.

Red/Green/Blue = Hour/Minute/Second.

The light comes from an LED strip that makes the fiber glow. But it also emits light at the ends and projects it on the wall.

A light sensor senses the ambient light in the room and automatically adjusts the intensity of the LEDs. The light sensor also doubles as a button where you can select which animation you want to use to display the time.

The clock is powered by an Arduino nano and it uses a ds3231 RTC to keep the time.

Step 1: Parts

  • Side glow optic fiber 3 mm, 5m
  • WS2812 RGB LED strip, 60 LED/m, 1m
  • Arduino nano
  • DS3231 Real Time Clock Module
  • Resistor 330 Ω
  • Resistor 10 KΩ
  • Photo resistor (GL5539, 10 Lux:50-100 KΩ)
  • Electrolytic Capacitor 100uf
  • 5V power cable with DC plug 5.5x2.1mm
  • Power supply 5V/2A
  • Screws and nuts M3x12mm, 12 pcs
  • Wires
  • Heat-shrink tubes
  • Hot glue

Step 2: 3D Printed Parts

Print one each of part A and B. Print 4 copies of part C.

I printed it with PETG on a textured print sheet. Each print took less than 6 hours on my Prusa MK3S.


  • Layer height: 0.3mm (first layer: 0.2mm)
  • Infill 15%

Step 3: Electronic Schematics

Step 4: Assembly

  1. Screw the 3d printed parts together.
  2. Solder wires to the LED strip. Mount the LED strip by inserting it in the slots. Since the clock is faced upside down, it should be attached counter clockwise. Start at the top. Don't remove the protective foil. Cut the LED strip to length and cover the end with electrical tape to avoid it getting in contact with the other end of the LED strip.
  3. Insert the optic fiber from the outside. Push it in so that the end is pressed to the LED. Use a small screwdriver to guide it at the bend. Cut it with pliers. Let it stick out a few millimeters.
  4. Place the photoresistor in the hole at the top.
  5. Solder all connections according to the electronic schematics and the pictures. Use heat shrink tubes to insulate.
  6. Secure the circuit boards and wires with some hot glue.

Step 5: Software

Arduino libraries:


Step 6: Operation

There are 6 modes:

  • Simple
  • Minimalistic (only hour and minute)
  • Progress
  • Sweep
  • Spectrum
  • Hysterical

To change mode, cover the light sensor with your finger for 2 seconds and then release.

Step 7: Final Thoughts

This was a really fun project and I am very happy with the result. But there is always room for improvement and further development. For example; Setting the clock using the light sensor. Adding more animations. Only the imagination sets the limits.

This was my first Instructable. I hope you liked it.

Make it Glow Contest

Participated in the
Make it Glow Contest