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







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

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






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



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




Now let’s assemble the clock face. The first thing we should do is prepare the magnets.
For this step you'll need:
- 3x8mm magnets (x3)
- Marker pen
- 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






For this step you'll need:
- 12mm long M2 screw (x1)
- M2x6mm screw (x3)
- 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










For this step you'll need:
- M3x8 bolts (x5)
- 3D Printed
- Clock Base.stl
- 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









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:
- PCB
- Motor driver IC
- Capacitor
- 12mm high pushbuttons (x2)
- 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





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






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







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





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











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


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





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