Stargate Inspired Arduino NeoPixel 3D Printed Clock




The Stargate DHD clock will display the time using NeoPixel LED’s oriented around a simulated clock face. The clock provides an hourly and half hour chime that can be turned on and off. The hours and minutes can be set via pushbuttons located on rear of the clock base. The center crystal on the DHD clock will illuminate on the hour and half hour for one minute. The illumination of the crystal is provided via a color changing RGB LED.

The hour is represented by a NeoPixel LED changing to red, the minute is represented by a NeoPixel LED changing to green and the seconds are represented by the NeoPixel LEDs changing to a blue color as the second’s increment. Using this method, reading the clock is very intuitive. As the seconds increase, each LED will change to a blue color. The Red (Hour) LED or Green (Minute) LED will not be overwritten by the Blue seconds LEDs.

The clock is 3D printed and utilizes one Arduino Uno, four NeoPixel rings and a real time clock. The Clock is controlled by an Arduino microcontroller. The Arduino handles the interface to the NeoPixels, chime speaker, LED center crystal and the four clock management pushbuttons.

The .stl files for printing the clock parts and the Arduino Uno code are located here and can also be found at The included Arduino code also utilizes a pitches.h file that should be located in the same directory as the Arduino code.

The 3D clock dial and base are based upon the work of Techno35 at

The dhd (dial home device) dial was resized so that it can print on a Lulzbot Mini printer and the dhd (dial home device) base was resized and heavily modified to provide a housing for the electronics.

The .stl files include the dial, base, ring sections for mounting the NeoPixels, crystal LED mount/cover, base cover and the crystal lens. The entire clock was printed with HIPS filament with the exception of the crystal lens which was printed with clear ABS. The clock is painted so any color filament will suffice.

A complete parts list is provided at the end of this instructable.

Step 1: Components - Arduino Uno R3 Controller

Step 2: Components - Arduino Proto Screwshield

Step 3: Components - NeoPixel 1/4 60 Ring

Step 4: Components - DS1307 Real Time Clock

Step 5: Components - Chime Speaker

Step 6: Components - Pushbuttons

Step 7: Components - Cabochon

Step 8: Components - Cabochon LED

The cabochon is illuminated using a slow changing RGB LED. The LED will cycle between colors by just applying 5 VDC through a 200 ohm resistor on it.

The LED was purchased from

The color changing LED that is illuminated for one minute when the clock is at the hour, 15 minute, half hour or 45 minute position.

Step 9: 3D Printing - Base

The entire clock was printed using a Lulzbot Mini 3D printer. The clock pieces were scaled and sized so they could be printed on the smaller print bed of the Lulzbot Mini. I used HIPS material for printing all parts.

Step 10: 3D Printing - Dial

Step 11: 3D Printing - Dial Ring

Step 12: 3D Printing - Cabochon/LED Holder

Step 13: 3D Printing - Cabochon Lens

Step 14: 3D Printing - Base COver

Step 15: Paint

Step 16: Construction - Glue the Four Dial Rings

Step 17: Construction - Glue the Dial to the Four Dial Rings

Step 18: Construction - Prepare the Parts for Painting

Step 19: Construction - Paint the DHD Base and Dial

Step 20: Construction - Mount the Cabochon and Diffuser to the Dial

Step 21: Construction - Glue LED Holder to the Dial Ring

Step 22: Construction - Wire the LED

Step 23: Construction - Paint the Dial Back

Step 24: Construction - Install the LED

Step 25: Construction - Install Pushbuttons

Step 26: Construction - Wire the Pushbuttons

Step 27: Construction - Wire the Chime

Step 28: Construction - Install the Chime

Step 29: Construction - Wire the NeoPixels

Step 30: Construction - Place Tape on NeoPixel Ring

Step 31: Construction - Run NeoPixel Wire Through Dial Ring

Step 32: Construction - Mount Dial Assembly to Base

Step 33: Construction - Wire Power Connection

Step 34: Construction - Wire Arduino to Components

Step 35: Construction - Program Arduino and Attach Mounting Base Plate / Bumpers

Step 36: Example Display

Step 37: Parts Listing



    • Remix Contest

      Remix Contest
    • Paper Contest

      Paper Contest
    • Pocket Sized Contest

      Pocket Sized Contest

    14 Discussions


    1 year ago

    Congrats for the post.Even a beginner can DIY the same with the detailed explanation given by you.Hope more articles like this in future.Thumbs Up.


    2 years ago

    Very cool Project. I rebuilt it with an easier Case. As I use it as a Wall Clock in my Garage, I´m not so interested in the Seconds. I´d prefer to see the Minutes habit like the Seconds, so you can recognize the Minutes without really have to stare and look where they are. I tried to revise the Code in that way, but as I´m not so good in coding yet, I haven´t find a way to change this. Do you maybe have an Idea for me?

    3 replies

    Reply 2 years ago

    I added an "Alternate Display' Arduino file that will show the minutes like you asked for. The seconds are turned off unless you remove the comment '//' from line 181.


    Reply 2 years ago

    Great, that´s what I wanted! Thank You very much!
    I´ll post a picture later.
    Do You think it´s possible to loose the flashing in changing the Minutes? That would just be Fine-tuning and is not required if it´s too complicated.


    Reply 2 years ago

    I can have the flashing happen on the hour instead of the minute. I will try to get something to you within the week.


    3 years ago

    Nice project.

    But if i want to put a static led in each hour, to precise the hours, how can i do that?

    And how can i change the music?

    I want to make one :)

    thank you


    1 reply

    Reply 3 years ago

    To change music just google Arduino and Tone. You will find lots of examples of music such as Mario Brothers and Star Wars. You can buy individual NeoPixel LES and wire them up or use an Arduino Mega that has more I/O pins and control each LED by itself. I don't think the Mega will fit in the clock.


    3 years ago

    The two #4 screws to mount the dial ring to the base were 1/8" holes. The 1/16" inch holes were for the bottom cover.


    3 years ago

    Looks good. I'm making one now. Barely was able to print everything on a Printrbot Simple but I got it done. I do have one question though. In Step 31 it looks like you drilled a hole in the dial ring to run the wires through because the ring didn't print with a hole. Do you remember what size hole you drilled if that's the case? Same with the two holes that take the screws to mount to the base.

    1 reply

    Reply 3 years ago

    I used a 5/32" drill bit but you can use whatever is handy. If you want, use a 1/8" and work up if the hole is not big enough for the wire. I think I drilled a 1/16 hole for the mounting base mostly as a screw starter hole. Just use whatever size will work well with the screws you are using. You cannot hurt anything and if the hole is too large, you can always fill it in with epoxy and re drill.


    3 years ago

    Nice, try making a stargaze for the DHD, good luck :D