Introduction: Shadow Clock
Here is my design of digital LED clock which display time in analog way by shadow hands. Each clock hand has 60 steps like classic clock. It is based on Arduino Mega and most effective method of LED driving called Charlieplexing with 180 LEDs.
Clock is designed to be as simple as possible and with this instructable can be assembled by anybody who has basic soldering skills.
Step 1: Tools and Parts
Tools:
- Soldering iron
- Wire cutter
- Screwdriver
- Heat gun or lighter
- IDC crimp tool (optional)
Parts:
- All parts can be bought as DIY KIT here
Purchasing the kit will save you the time and expense of ordering from several different vendors and avoid the minimum PCB order premium. You will also be helping me develop and share other projects! - ...or you can buy parts separately:
- Arduino Mega 2560 board - if you want to program it by yourself I recommend to use original board... or you can buy programmed and tested board here
- 60 LED Charlieplexing matrix round PCB 3pcs. for 3 hands clock or 2pcs. for 2 hands clock. It is strongly recommended to use professional PCBs, well masked with proper distance between circuit paths. I don't recommend to replace it with cable wiring or homemade PCB. It is almost certain that it will not work correctly because of the ghosting effect (well known issue with big charlieplexing matrixes). But of course if you want to try anyway there will be schematic diagram of matrix in next steps.
- TinyRTC Module. I've used DS1307 RTC. You can use other arduino compatibile RTC but you have to remember to change source code libraries.
- Button switch
- 10kohm resistor
- Red 5mm LED 60pcs.
- 150ohm resistors 9pcs. (for Red LEDs from DIY KIT. If you plan to use different LEDs than these in DIY KIT, you should calculate value of resistors based on your LEDs specification.)
- Green 5mm LED 60pcs.
- 150ohm resistors 9pcs. (for Green LEDs... as above)
- Blue 5mm LED 60pcs.
- 91ohm resistors 9pcs. (for Blue LEDs... as above)
- Flat multicolour (rainbow) cable with 10 different colour wires 3pcs. around 15cm long each *
- 2x5 IDC connector 3pcs. *
- angled 2x5 goldpins 6pcs.
- heat shrink tube 3mm diameter ~100cm long
- heat shrink tube 5mm diameter ~5cm long
- USB Cable for Arduino board and USB Power source. Clock consumes very little energy so any USB port or USB power adapter can be used.
- 10mm screw sleeve spacers female-female 5pcs.
- 20mm screw sleeve spacers female-female 8pcs.
- 10mm screw sleeve spacers male-female 14pcs.
- M3 5mm bolts 13pcs.
- Arduino male female rainbow cables (optional)
* - Instead of point 12 i 13 you can buy 2pcs. of 10pin IDC-IDC ribbon rainbow cable if you don't have IDC crimp tool.
Step 2: Assemble LED Matrixes
For this step you will need:
- round LED Matrix PCBs 3pcs.
- red colour LEDs 60pcs.
- green colour LED 60pcs.
- blue colour LEDs 60pcs.
- 150ohm resistors 18pcs.
- 91ohm resistors 9pcs.
- angled 2x5 goldpins 3pcs.
- IDC connector
- Take one round PCB, 60 LEDs in one color and 9 resistors. If you use DIY KIT take 150ohm resistors for red / green leds or 91ohm for blue. If you use other diodes you have to calculate value of resistors. For eg. if diode specification says 2V, 20mA value of resistor would be R=(5V-2V)/0,02A=150ohm. If it says 3V, 25mA, it would be R=(5V-3V)/0,025A=80ohm. etc. Do not use diodes with current over 40mA. It is maximum value of current for Arduino I/O Pin.
- Solder resistors as shown on picture. Tin should be visible on both sides of the PCB
Bend 60 LEDs like on the picture (it is easier if you will use something which has 90 degree angle and has around 8-10mm long flat surface)
Solder all 60 LEDs watching polarization (longer and shorted legs) as shown on pictures
- Solder angled 2x5 goldpin like on the picture (first put it in the IDC connector of the multicolor flat cable)
Repeat this step for another 2 PCBs.
If you want to make your own PCBs use schematic diagram picture. Remember that circuit paths must be well isolated with proper distance from each other to avoid ghosting effect. Diodes must be placed firmly with place to bend them later (to calibrate light of each LED on center pin).
Step 3: Solder Cables Pins
For this step you will need:
- flat multicolour cable 3pcs. around 15cm long each
- angled 2x5 golpin 3pcs.
- 3mm heat shrink tube around 20cm
Detach each wire of cable on around 10mm length and split it into two groups like on the picture
Cut heat shrink tube to 10 pcs. around 7mm each and place them on each wire
Solder wires to proper pins as shown on the pictures
Use heat gun or lighter to shrink tubes
Repeat this step for another 2 cables.
Step 4: Prepare Button Switch
For this step you will need:
- button switch
- 10kohm resistor
- 3 wires from rainbow cable (green, blue, purple) around 10cm long + 3 goldpins.. or instead you can also use arduino male pins rainbow cables as I did
- 3mm heat shrink tube 1cm long
- 5mm heat shring tube 2cm long
- Cut around 1cm of blue wire (it should be little shorter).
- Solder resistor to blue and purple wire as on picture.
- Place 5mm heat shrink tube on soldered resistor.
- Place 3mm heat shrink tube on green wire.
- Solder blue wire to one leg of switch and purple wire with resistor to another leg.
Use lighter or heat gun to shrink tubes on switch legs.
Step 5: Connect Arduino
For this step you will need:
- programmed Arduino Mega 2560. If you want to program it yourself use attached arduino code.
- TinyRTC module
- Prepared button switch
- Assembled LED matrixes
- Assembled IDC cables
- 4 wires from rainbow cable (yellow, orange, red, brown) with 8 single goldpins... or instead you can also use arduino male pins rainbow cables as I did
- 20mm screw sleeve spacer female-female
- 10mm screw sleeve spacers female-female
- M3 5mm bolts 6pcs.
- USB power source
- Take Arduino board and screw 10mm sleeve spacers to it as shown on pictures.
- Mount TinyRTC module on Arduino board with 20mm screw sleeve.
- Connect TinyRTC module to Arduino board as shown on wiring diagram.
- Connect prepared button switch.
- Connect 3 rainbow cables to Arduino board and matrixes.
- Connect USB power to Arduino and press the button. One LED on each PCB should light up and clock should start ticking. If it is not working check wiring.
Attachments
Step 6: Calibrating LED Matrixes
For this step you will need:
- Assembled electronics from previus step
- Clock cover
others screw sleeve spacers and bolts
- Download Shadow clock cover from attached files or from my thingiverse profile here. There are two versions of cover. One for 3d printing and one for laser cutting. If you want to make your own version there are two important tips. First: clock face should have max 20cm diameter. Second: Gnomon (Center pin) should have 10mm height.
- Disconnect all LED matrixes from Arduino board.
- Take one LED matrix and mount 20mm screw sleeve spacers on bottom and 10mm on top of the board.
- Connect this board with cable to the minutes pins of Arduino board (pins from 34 to 43, if needed check diagram from previous step).
- Calibrate glowing diode by bending it like on the pictures. Light beam should be focused on center pin.
- After bending first one use switch by pushing it once and switch light to another LED. Calibrate all 60 LEDs.
- Disconnect cable from Arduino board
- Mount second PCB on first one and connect this board with cable to the minutes pins of Arduino board. Calibrate it.
- Disconnect cable from Arduino board
- Mount last PCB, connect it to minutes pins. of Arduino board and calibrate it.
- Connect all matrixes to Arduino board as on a diagram from previous step. Bottom PCB is for seconds, middle for minutes, top for hours.
Attachments
Step 7: Enjoy It!
For those who are looking for more... if you will like it in my next instructable I will present possible variations of this clock with full description of source code.
English isn't my native language so sorry if there are some language mistakes.
If you have any questions just leave a comment or message me.
This was my first instructable. If you enjoyed it please vote for me :)
Thanks!
Sebastian aka Protonik

Participated in the
First Time Author Contest
14 Comments
1 year ago
Hi Sebastian..nice design .. I love it.
I'm planned to make it by copying your design with little bit of change , as to avoid many soldering :) .. im not that good on that.
1. I will use rgb strip leds - make 3 strips @ 60 leds , to made same as yours , 3 rings led
2. put fibre optic side glow 3mm diamm.( PMMA fibre for led light decorative ) on each led rings - it would a lot of fibre optic to use - 3 layers - each layer for Second hand, minute hand and hour hand. my intention using this fibre optic for made "real effects" of clock hands as straight Line pointing the time. easy to see as looks like the old days analog clock.
my question and needs your helps is :
1. do I have to made changing on the coding of arduino mega ? - as your design is opposite led lighting for creating shadows , and my plan is using direct lighting led spot light, if so , pls kindly help me which code that I have to change.
2. wire connection of led strip - can I exactly follow your instructions ? as I assume it would be the same cmiiw ..
Thank you for your share ..sorry for my bad english .. cheers.
Reply 1 year ago
Hi,
If you mean simple rgb led strip with common power supply or strip with addressable rgb leds they wont work with this kind of code.
If you want to use original code or its modification you need to use separate single color leds without any drivers. If know any basics of arduino it shouldn't be much of a problem. All you need to do is turn whole clock upside down, physically (pcbs) or by changing leds numbers in main table of the code.
Cool idea with fibre optic thing. You can also check out my Futur O’clock version at my homepage. There are free stl for cover at thingiverse for it.
Your english is fine.
Cheers.
Reply 1 year ago
Hi Protonik / Sebastian,
Thanks for quick reply and nice advise.
Yes I saw your Futur O'clock design.. its nice too ( this one that I am intend to do ) ..do you plan to made instructables as well for it ? much appreciated.
Cheers.
Reply 1 year ago
Hi,
I don't plan to make a instructable for it now, but it's almost the same project as Shadow Clock. If you make this one you should have no problems to make Futur O'clock as well.
5 years ago
Nicely done. This is a very well constructed instructable. Voted and Favored.
Reply 5 years ago
Thanks :)
5 years ago
Great design! Voted!
Reply 5 years ago
Thanks!
5 years ago
Very unique Idea. I voted!
Reply 5 years ago
Thank you! :)
5 years ago
Very impressive. Nice work!
Reply 5 years ago
Thanks :)
5 years ago
That's a really neat design! Fantastic first Instructable! :)
Reply 5 years ago
Thanks! :)