Ever since my addressable RGB LED strips (WS2812B) came from Aliexpress, I've been fascinated with LED projects. Following up on my success with my Charlieplexed LED clock, I wanted to create something with more Jazz..

While browsing google images, I came across an instructable for an Arduino Infinity Mirror and the brain cells started working in overdrive. Why shouldn't I make an infinity mirror, that's also a clock !!


  1. Works like a clock - the colours of the hands are user-programmable over bluetooth
  2. Has an IR sensor to sense if someone is coming near the mirror. Switches off the LEDs, so that this can be used as a normal mirror :-)
  3. Shows a rainbow effect every 15 minutes (time is user adjustable)
  4. Has a touch button to toggle between clock and rainbow effects
  5. Switches to night mode between midnight and 7:00 AM - can be changed in the code.
  6. Can be programmed over bluetooth - so you do not need to take it off the wall if you need to update the code
Remove these adsRemove these ads by Signing Up

Step 1: Electronics

  1. A Standalone Arduino: OR Arduino mini pro:
  2. RTC Module – DS1302:
  3. LM2596 Step Down Adjustable Power Supply Module 1.3V-35V:
  4. 1m 60LEDs/M Addressable RGB LED Strip (WS2812B):
  5. HC-05 Bluetooth module:
  6. IR Proximity Sensor: 4 IR LEDs; 1 IR LED detector:
  7. Touch Pad:
  8. 9V – 2A Adapter
  9. CP2102 USB-to-TTL (the RST pin on the CP2102 is not for resetting the arduino – you have to solder a wire to the DTR pad on the PCB – which sends a reset signal to program the arduino. This has to be connected to the DTR pin on the Arduino
1-40 of 87Next »
dushu (author) 3 months ago

New video added:

Also, have posted it in the hackaday contest:

rafam9 hours ago
So I was are both of the end wires connected to the LEDs necessary? Because If not I can just cut off the wires from the left side and it would fit perfectly.
14, 9:21 AM.jpg
Would acrylic mirror work instead of a normal mirror?
dushu (author)  rafam10 hours ago

It should - I have not tried it, but don't see why not.

rafam3 days ago
It ended up being alittle to big plus the end areas. It's possible to cut one off right?
14, 9:19 AM.jpg
dushu (author)  rafam2 days ago
You can cut one off, but you really need 60 LEDs for the clock to show up correctly. I would suggest increasing the circumference by a few mm so that the strip fits correctly.
rafam3 days ago
Thank u did u end up cutting any parts of the the LEDs?
rafam17 days ago
I'm sorry the 3.9 was from a different project. 2 quick questions. Does the LEDs go into the plate or the wood? And where can I find the 400mm glass and mirror. I been looking and can't find any.
dushu (author)  rafam3 days ago

I had the glass custom-cut from a local glass shop. Doubt if you would find it online.

The LEDs go in circuference of the inner wood piece.

the clock is very nice and i want to maike it sir can u send me the circuit diagram and the source code. i want to make it with out blutooth because i am mail id is you

dushu (author)  shashi.nair.167519 days ago

The circuit and source code are part of this instructable. You can skip the bluetooth if you want. There's no change required in the circuit or code. It's there just for convenience.

Thank u sir
rafam27 days ago
Hello. Have a quick question. The diameter of the circle is 3.9 inches. Isn't this to small for such a big piece of wood?
dushu (author)  rafam19 days ago

The radius of the inner circle is 6.25" -- which means the diameter is 12.5". Where did you see 3.9"?

clock is very nice i want to make it and i am a sir if u send me the circuit diagram and source code.i want to progarmme with out blue tooth it is possible.please help me i want to make it my project

pgupta311 month ago

With all due thanks to dushu ,I completed this clock.I used sound sensor instead of touch pad and its changing mode with a clap.I used IR sensor but getting a range of only 4 to 6 inch so will replace it with ultrasonic sensor

Can you copy the part of the code that needs to be modified for the sound sensor, thanks

no change in code just connect the pin where you plan to use touch pad I think its D2. I used sound sensor instead of touch pad. sorry for late reply

thanks for the reply, I have mine hooked up like that but I am using a Sound & Piezo but still having no luck.....well sometimes it seems to change but requires more then a clap to trigger, is the sound sensor different to the sound & piezo sensor (the brand is freetronics)

I used this

It has both analog and digital output. I used digital(DO) to connect to pin D2 . If you know programming you can use analog output and depending upon the sound level it will show different pattern each time

sound sensitivity is adjustable

If you use analog output it will dance(change patterns) when you play loud music

dushu (author)  pgupta311 month ago

Looks great - sound sensor is a good idea - I'll try that too as my touch button is giving me problems. Which sensor did you use?

You can increase the range of the IR sensor by adding more IR LEDs. I'm using 4 LEDs with one sensor - and get a range of around 1' - which is what I was looking for.

pgupta31 dushu1 month ago
I ordered sound sensor (It has only digital output)from fab to lab for Rs 175./- plus shipping. Cards are available with analog and digital output as well(Rs 200). Actually I had one IR card lying with me with on tX led and one RX led and I used the same card not individual tx and rx led.I have ordered ultrasonic sensor and it coasted Rs 144/- including shipping from has some good range say upto 15 feet though not sure.
nadlycam made it!2 months ago

Great clock! It inspired me to make this my first arduino project. I haven't completed it yet, I'm still trying to get the bluetooth to work, but I have it working using a USB to serial adapter. One thing that I found works really well is a convex mirror in the middle. I bought a 5 inch convex clock glass and painted the back with 'mirror effect' paint. It's amazing, the reflections go all the way to the middle. Thank you so much for posting this!

dushu (author)  nadlycam2 months ago

Also - it seems from the photo that you have stuck the LED strip next to one of the mirrors - hence the double LED rows in the reflections. If you stick it near the middle - the reflections would be more regular.

nadlycam dushu2 months ago

I finally finished the frame, so I was able to attach the LED strip to the side. This is how it looks now. The trickiest part was getting the inside perimeter exactly right. I used epoxy wood filler to reduce the diameter by a couple of millimeters to get that. Now I just have to find a bluetooth module that works and it will be done. Thanks again for this instructable!

SeppV nadlycam1 month ago

this looks super awesome :) what did you use in the centre of the mirror, would you be so kind to take a picture of it?

nadlycam SeppV1 month ago

I found a convex 'clock glass' on eBay. It's about 5-3/4 inches in diameter and about an inch tall in the middle ('high rise'.) By using some mirror paint (I used stuff called Mirror Effect, there are others) on the back it became a convex mirror. I think that any frame-less convex mirror of about that diameter should work. I considered a 12-1/2 inch convex glass that would have replaced the flat mirror, but I'd have lost the straight tunnel effect around the outside.

SeppV nadlycam1 month ago

thank you for your reply and for the picture that clears things out a little bit. But I hope I understood this right, the bigger mirror in the back is flat and the small one in the middle is the 5-3/4 inch convex mirror

nadlycam SeppV1 month ago

Right. The flat mirror gives you a straight tunnel effect around the outside edge, and the convex mirror reflects the LEDs in a repeating conical shape that gives you radiating lines into the middle.

dushu (author)  nadlycam1 month ago

Wow - that looks amazing. I could see you've used metal clips to hold the mirror. If you've made a frame around it like me (I can't see from the images) - you can simply stick it using N45 silicon glue. It would look better.

Amazing, nevertheless - glad I helped.

dushu (author)  nadlycam2 months ago

That looks amazing. Great idea on the convex glass.

I'm glad you liked this enough to make one. Let me know if you have any problems and I can help out.

pgupta311 month ago

Hi, I want to know exact command syntex for time setting if I set time it get disturbed then again I have to run ds1307 sketch to set it. like TIME -----------

dushu (author)  pgupta311 month ago

You can use rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));

The format for __DATE__ is Mmm dd yyyy (Nov 07 2014)

The format for __TIME__ is hh:mm:ss (21:06:19)

Jamesbt921 month ago

Looks awesome, trying to make one myself! Out of interest, what's the point in you having the CP2102? I understand the need for one for initially programming the ATmega, did you remove it after that? Based on my very limited knowledge of serial communication, I didn't think that you could connect both the Bluetooth module and the CP2102 to the Tx and Rx pins on the Arduino. Just trying to clarify, thanks!

yes you can use one only ,if you use arduino nano or uno you do not need it. later you can push sketch by bluetooth

843mao1 month ago

I feel like I may have missed something... but I did not see any LEDs in the materials besides the strip which would act as the watch's clock/center?

pgupta31 843mao1 month ago

I have used 5 inch convex lens in the centre no additional can make this using arduino nano, ds1307 sound sensor/touch pad, power supply 5 v and one ultrasonic sensor fell free to contact me .

dushu (author)  843mao1 month ago
There is just one row of LEDs - in the circumference of the circle. Rest all are reflections.
1-40 of 87Next »