Shadow Clock - Projecting Time With 3D Printing and ESP's

by DIY Machines in Circuits > Clocks

540 Views, 10 Favorites, 0 Comments

Shadow Clock - Projecting Time With 3D Printing and ESP's

Instructables Cover Card.png
Intro.gif
Screenshot 2025-06-03 at 16.50.57.png
Screenshot 2025-06-03 at 16.50.50.png
Screenshot 2025-06-03 at 16.50.43.png
Screenshot 2025-06-03 at 16.50.35.png
Screenshot 2025-06-03 at 16.50.25.png

Meet the Hollow Shadow Clock, a desktop sized clock you may think you already know with it’s captivating magically moving hands, though this one has an additional trick…. at the press of a button - you can also project a larger then life clock face onto any surface using this small high powered LED.

Not only can you control the projections brightness and colour with the discreet buttons here at the rear of the clock, it’s in built web server provides a simple web-interface allowing you to easily program scheduled scenes depending on the time of day and day of the week. Have it come on to wake you up in the morning or set a cosy atmosphere for the evening.

And changing the size of the projection is as simple as moving the clock back and forth. :)

This project is based on the original Hollow Clock design by the amazing maker Shiura ‘shee-oo-rah’ who gave me permission to adapt their design into this project. I’ve linked to their original designs here: https://www.instructables.com/member/shiura/

Video of Instructions

How I made this amazing PROJECTING HOLLOW CLOCK! - DIY Project Guide

As with all my projects I have also created an Instructional Video. I highly recommend taking a look - especially as the intro will give you a quick overview of the process as well as a preview of how it works. Don't worry if you want to read the instructions, this Instructable contains all the information from the video.

Things You'll Need

Screenshot 2025-06-03 at 16.55.24.png
Screenshot 2025-06-03 at 16.55.17.png
Screenshot 2025-06-03 at 16.55.05.png
Screenshot 2025-06-03 at 16.54.53.png
PCB.gif
Circuit Design - Hollow Shadow Clock.jpeg

You'll need a few components and a 3D printer (or know someone/somewhere with one) to be able to recreate this project.

You can freely download the needed 3D Printing files here: https://www.printables.com/model/1063081-hollow-shadow-clock

I'll also add the STL files needed to each of the relevant steps in this Instructable.


List of items used in this project and where to find them separately:

  1. M3 Nuts (x3): https://geni.us/M3Bolts
  2. M3x8 Bolts (x6): https://geni.us/M3Bolts
  3. LED 3W WS2811(x1): https://geni.us/3wWS2811LED
  4. ULN2003 (x1): https://geni.us/ULN2003
  5. Ceramic Capacitor - 10nF (x1): https://geni.us/CeramicCapacitors
  6. Stepper Motor (x1): https://geni.us/28BYJ-48-StepperMotor
  7. 12mm Tactile Button (x2): https://geni.us/12mmTallTactile
  8. DC Female Barrel Connector (x1): https://geni.us/HighAmpDCBarrel
  9. Slide Switch (x1): https://geni.us/SlideSwitchSPDT
  10. ESP8266 Dev Board: https://geni.us/wemosD1
  11. 3x8mm Magnets (x3): https://geni.us/3x8mmMagnets
  12. Self Tapping Screw M2x6mm (x3): https://geni.us/2mmSelfTappingScrews
  13. Self Tapping Screw M2x12mm (1): https://geni.us/2mmSelfTappingScrews
  14. Projects PCB (x1) https://diymachines.etsy.com/uk/listing/1806341362/hollow-shadow-clock-pcb-only
  15. Power Supply 5v (x1) https://geni.us/5vPowerSupply5a

I’ve also designed a little custom PCB with the help of PCBWay to help make connecting everything together in the right place super easy. https://diymachines.etsy.com/uk/listing/1806341362/hollow-shadow-clock-pcb-only

I highly recommend it - but I’ve also created A wiring diagram which you'll find attached to this step if you would prefer to use that instead of a PCB. :)

To help you find all the required parts - You can also find a small kit with everything you need for this project on my internationally shipping Etsy store. https://diymachines.etsy.com/uk/listing/1805326144/hollow-shadow-clock-electronics-kit

Each purchase from there also helps fund my next project so if you do. Thank you.

3D Printing the Parts

Screenshot 2025-06-03 at 17.35.26.png
Printing Base.gif
Printing Rotor.gif

Let’s get started with 3D printing the parts required.

As mentioned earlier, all the 3D printing files can be download here https://www.printables.com/model/1063081-hollow-shadow-clock and also attached to this step of the Instructable.

I’ve printed my parts using a combination of 3D Jakes PETG filaments, however if your clock won’t be left in direct sunlight you would do just fine with PLA.

A 0.2mm layer height was used for all the parts and none of them require support structures when printed in the supplied orientations.

For some additional interest I printed some parts in two colours such as the clock face and hour hand by manually swapping the filament on my 3D printer at different layer heights.


Preparing the Magnets

Magnets.gif
Screenshot 2025-06-03 at 17.38.41.png
Marking magnets.gif
Screenshot 2025-06-03 at 17.41.526.png

Now let’s assemble the clock face. The first thing we should do is prepare the magnets.

For this step you'll need:

  1. 3x8mm magnets (x3)
  2. Marker pen
  3. Glue (I used hot melt)

The magical hour hand is in fact held in position by an arrangement of three magnets. We need to organise their north and south poles to make best use of the magnetic field they generate.

To help ensure you orientate them correctly mark one with a permanent pen, then placing another onto of this mark and then marking this new one, and repeat for the third.

Now they need to be inserted into the parts as shown in the attached image. The arrows in the image show which way the dotted faces of the magnets should be facing.

Use some hot melt glue added to the top and then carefully smoothed flat into the recess.

Assembling the Clock Face

Screenshot 2025-06-03 at 17.42.04.png
Screenshot 2025-06-03 at 17.42.15.png
Screenshot 2025-06-03 at 17.42.20.png
Screenshot 2025-06-03 at 17.42.29.png
Screenshot 2025-06-03 at 17.42.34.png
Screenshot 2025-06-03 at 17.53.56.png

For this step you'll need:

  1. 12mm long M2 screw (x1)
  2. M2x6mm screw (x3)
  3. Your 3D prints.

The next few parts are layered one on top of the the other.

The hour hand is attached to the minute rotor with your 12mm long m2 screw which is tightened and then loosened slightly again so that the hand can rotate freely without to much wobble.

This is then placed inside the front face, followed by the hour rotor with its magnets facing you and finally the rear cover.

To hold this sub-assembly together use a m2x6mm screw at the top and if later, you find you need it, you can optionally add two more at the base.

We can then test this by turning the teeth at the bottom of the clock by hand, one will move the minute hand and the other the hour hand.

Set this aside and we’ll start installing the electronics in the base of the clock.

Electronics - LED

Screenshot 2025-06-03 at 17.55.47.png
Screenshot 2025-06-03 at 17.55.26.png
Screenshot 2025-06-03 at 17.55.40.png
Screenshot 2025-06-03 at 17.56.04.png
Screenshot 2025-06-03 at 17.55.57.png
Screenshot 2025-06-03 at 17.56.13.png
Screenshot 2025-06-03 at 17.56.25.png
Screenshot 2025-06-03 at 17.56.32.png
Screenshot 2025-06-03 at 17.56.37.png
Screenshot 2025-06-03 at 17.56.52.png

For this step you'll need:

  1. M3x8 bolts (x5)
  2. 3D Printed
  3. Clock Base.stl
  4. Light-cone.stl

Our LED board has wires pre-attached to both its incoming and outgoing sides. Cut of the wire from the outgoing side (as shown in the images) and save it. We’ll need it later.

The remaining wires can then be threaded through the hole of the base print and then the board is bolted in place using your two M3x8 bolts.

We then need to insert three nuts into the clock base around the LED in the three locations show by the black arrows in the images. They are simply pushed into place and once installed we can use them to attach the 3D printed light cone with your remaining three bolts.

First screw them all the way through the light cone, then screw this onto the base. Don’t fully tighten them yet, just bring the cone flush with the base for now. We’ll be using these later to correct the angle of the light being projected towards the clock face so that we get a clean and crisp projection.

Electronics - Assembling the Brain

Screenshot 2025-06-03 at 20.23.19.png
Screenshot 2025-06-03 at 20.23.27.png
Screenshot 2025-06-03 at 20.23.38.png
Screenshot 2025-06-03 at 20.23.43.png
Screenshot 2025-06-03 at 20.24.00.png
Screenshot 2025-06-03 at 20.24.07.png
Screenshot 2025-06-03 at 20.24.21.png
Screenshot 2025-06-03 at 20.24.27.png
Circuit Design - Hollow Shadow Clock.jpeg

Assembling the brains is next, and using the PCB makes it super easy to know where everything goes. I'll step you through assembling the PCB now. I have also attached a wiring diagram if you would like to assemble it your own way.

For this step you will need:

  1. PCB
  2. Motor driver IC
  3. Capacitor
  4. 12mm high pushbuttons (x2)
  5. Slide switch

For the motor driver board look for the semi circle notch on the housing and match this up with the drawing on the PCB. Pop the legs through and then solder on the reverse side.

The Capacitor goes through the holes at the top and is soldered on the reverse also.

Our two push buttons are popped into place on the reverse of the PCB and this time are soldered from the front side of the PCB.

The slide switch is added to the edge along the top. Use plenty of solder to help hold it into position.

Programming the Microcontroller

Screenshot 2025-06-03 at 20.37.22.png
Screenshot 2025-06-03 at 20.37.48.png
Screenshot 2025-06-03 at 20.37.58.png
Screenshot 2025-06-03 at 20.38.21.png
Screenshot 2025-06-03 at 20.39.03.png

Now, before we solder the microcontroller (which is the brains of the operation) we need to upload our code onto it. You can download this from my Github page https://github.com/DIY-Machines/Hollow-Shadow-Clock and open it in the Arduino IDE.

Connect your board to your computer via USB and then select the board in the Arduino IDE.

If you would like to use the web interface to program scheduled events for the projection, then update lines 9 and 10 with your Wifi username and password. You can then press upload.

By default, if no wifi network is detected or it fails to connect it will try 10 times before defaulting to running the clock and allowing manual control of the projection using the physical buttons at the rear of your clock base.

If you did enter WiFi details take note of the devices IP address shown in the serial monitor after upload and save it for later. We'll need this when I show you how to use the web interface to programme scheduled projection activations and changes.

Electronics - Soldering the Microcontroller & LED Connection

Screenshot 2025-06-03 at 20.42.13.png
Screenshot 2025-06-03 at 20.42.18.png
Screenshot 2025-06-03 at 20.42.24.png
Screenshot 2025-06-03 at 20.42.31.png
Screenshot 2025-06-03 at 20.42.38.png
Screenshot 2025-06-03 at 20.42.46.png

Once the microcontroller is programmed it is soldered onto the PCB. The controller is mounted on the front side and soldered from the back.

We can also now take the LED cable we cut-off and set aside earlier. First shorten it to about 6cm in length and strip the three wires - these are soldered onto the PCB in the three labelled positions.

Electronics - Soldering Stepper Motor and Dc Barrel

Screenshot 2025-06-03 at 20.43.01.png
Screenshot 2025-06-03 at 20.43.16.png
Screenshot 2025-06-03 at 20.43.09.png
Screenshot 2025-06-03 at 20.47.51.png
Screenshot 2025-06-03 at 20.47.57.png
Screenshot 2025-06-03 at 20.48.05.png
Screenshot 2025-06-03 at 20.48.11.png

In a similar fashion to the LED wires, cut the plug of the stepper motor wires leaving about 5cm of wire attached to the stepper motor. Strip the ends and then solder onto the PCB paying attention to the colours as marked.

Fit DC barrel to print after also shortening its wires to about 5cm in length and then solder this to the PCB at its marked terminals paying attention to the marked polarity. PLEASE MAKE SURE YOU ALREADY INSTALLED IT INTO THE PRINT BEFORE SOLDERING! 😂

Installing PCB

Positioning PCB.gif
Screenshot 2025-06-03 at 20.56.19.png
Screenshot 2025-06-03 at 20.56.27.png
Screenshot 2025-06-03 at 20.56.41.png
Screenshot 2025-06-03 at 20.57.04.png

The PCB is then fitted by sliding the right hand end of the PCB down the slot inside your printed base, align the two buttons with their holes you should be able to swing it into place whilst being careful of the two buttons.

Now thread the LED wire through the base and connect it to the LED’s wire.

Secure the PCB with an M3x8mm bolt.

Finally, position the stepper motor as shown so that its output shaft is cradled in the 3D print.

Final Assembly

Screenshot 2025-06-03 at 21.01.55.png
Screenshot 2025-06-03 at 21.03.09.png
Screenshot 2025-06-03 at 21.03.13.png
Screenshot 2025-06-03 at 21.03.01.png
Screenshot 2025-06-03 at 21.03.22.png
Screenshot 2025-06-03 at 21.03.28.png
Screenshot 2025-06-03 at 21.04.03.png
Screenshot 2025-06-03 at 21.04.10.png
Screenshot 2025-06-03 at 21.03.41.png
Screenshot 2025-06-03 at 21.03.47.png
Screenshot 2025-06-03 at 21.03.58.png

OK. Almost there, let's assemble the gears to connect the motors output to our clock rings.

The Mini Drive Gear is slipped around its printed axis and then both of these also go into the enclosure.

The bevel gear comes in two different mounting sizes to help you fit it snuggly on the end of the worm gear. You simply push fit it on and then, push fit this to the shaft of the motor. This can then be nestled into place inside the enclosure.

We can then take the clock face and add the decorative overlay onto the minute hand. Hot melt glue will do the trick. Then manually rotate its two rotors to show the current time before dropping it into place, placing the rear lid on the base and then connect everything to a 5v power supply.

Eh voila! The two buttons on the rear control the brightness of the LED and the colour. This will override any scheduled setting currently playing. When a new scheduled scene starts - it will release the manual setting set with the buttons and carry on with its automated scheduling.

The Web Interface

Screenshot 2025-06-03 at 21.11.38.png
Screenshot 2025-06-03 at 21.11.59.png

To access the web interface, enter the IP address you noted down earlier into a web browser connected to the same network.

Here you can update the time zone if required and create a schedule by entering a name, time to start and stop, setting the colour and brightness followed by which days of the week this should apply.

You can create several schedules and they will all be displayed down below - you can delete one if you need to.

If at any point you have taken manual control of the projection using the buttons on the rear a banner will automatically show letting you know what’s going on. When the next scheduled event starts, or at midnight, the manual control is forgotten and everything carries on as scheduled.

If you need to adjust the projection alignment, use the three screws situated around the light cone to get a nice crisp edge on the projected image.

I’ve added the simple web interface for you, but if your clever and can add in Matter compatible control of the LED I would love to see that and apply your code to my clock. If you do manage this, let me know in the comments and I’ll add your GitHub repo for others to see and use as well.

Project Complete

Screenshot 2025-06-03 at 16.50.57.png
Screenshot 2025-06-03 at 16.50.50.png
Screenshot 2025-06-03 at 16.50.43.png
Screenshot 2025-06-03 at 16.50.35.png
Screenshot 2025-06-03 at 16.50.25.png

That’s it for this project.

If you enjoyed reading and maybe even learned a thing or two, please consider giving this instructables a thumbs up down in the comments. It really helps out a lot! And if you haven’t already, go ahead and hit that follow button (or subscribe on Youtube). Every like, comment, and subscription goes a long way in supporting the projects and I have plenty more projects coming your way, and you won’t want to miss them!

Don't forget to share this projects with any friends who might want to make their own (or who you want to make some for you!)

Thank you so much for reading all the way to the end. I’ll see you in the next project, until then, do some good and ciao for now.

Lewis