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 74Next »
dushu (author) 3 months ago

New video added:

Also, have posted it in the hackaday contest:

rafam5 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?
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 dushu29 days 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)  nadlycam1 month 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 dushu1 month 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 nadlycam16 days 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 SeppV15 days 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 nadlycam15 days 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 SeppV15 days 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)  nadlycam1 month 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.

pgupta3120 days 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)  pgupta3119 days 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)

Jamesbt9223 days 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

843mao27 days 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 843mao20 days 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)  843mao27 days ago
There is just one row of LEDs - in the circumference of the circle. Rest all are reflections.
adnos791 month ago

Hi, great project and thanks for taking the time to share, i am just in the process of building one myself, and seem to be having a few troubles, the first is a similar trouble to yourself with the touch button as i am getting no feedback when i ground the sensor but have discovered it seems to work every time by hovering/touching the reset on the unit almost like it's grounding through my touch?. Did you happen to figure out the issue with the sensor.

Also with the rainbow patterns I haven't been able to figure out how to control which rainbow pattern will be displayed, ie the all leds blending from colour to colour or the led colours chasing each other? Any advice or tips for either.

dushu (author)  adnos791 month ago

Try using a sound sensor instead - I still haven't been able to test it another place. For rainbow patterns - you can get more information at

Let me know if you need any more information.

adnos79 dushu1 month ago

that was what i was going to aim for with a clap on/off type setup, but thought i would try getting it working correctly as per your instructions before i started modded things as at least I would have a base point for reference. Will let you know how I go. Only just in the early stages of learning this. thanks for the reply dushu

dushu (author)  adnos791 month ago

you can get more information on controlling the patterns:

pgupta311 month ago

Hi, I have almost made it. But one issue observed by me is that there is no difference between multi and rainbow. would love it if more effects can be put in program for multi .

dushu (author)  pgupta311 month ago
You can try different effects from the net - should be easy to do - once you understand the code.
dushu (author)  dushu1 month ago

You can get more information at:

pgupta311 month ago

I used two plywood 12 mm and cut the diameter 17.5 inches and inside dia 12.52 and sandwiched a Ethafoam STPE200 sheet (2 inch thick) and hide all the electronics including power supply inside the 2 inch border .this sheet is easy to cut and hide electronics . put 2 inch spacer between the plywood and screwed them together with 2.5 inch screws.


pgupta312 months ago

will the sketch work with ds1307 or I need to modify

dushu (author)  pgupta312 months ago

The sketch is for DS1307. No changes required

Sukethot2 months ago
rafam2 months ago
Okie; thanks.
1-40 of 74Next »