Caustic Clock
This project is a remix of the Hollow Clock by shiura using a caustic lens to project a clock face onto the wall.
I recently stumbled upon caustic lenses through this video by Steve Mould and immediately knew that I had to integrate these into a project. Naturally, this would be another clock and I had different concepts in mind. I already knew about the wonderful hollow clocks by shiura and thought pairing these with a caustic lens would be a perfect match. Originally, I just wanted to put the clock next to the window and have sunlight passing through the lens but I ended up making a small projector using an RGB LED that can be put in front of the clock so that you can also see the image at night.
Supplies
Materials
The parts list for the clock is similar to that of the Hollow Clock V
- 28BYJ-48 5V stepper motor
- RP2040-zero microcontroller
- 3pcs 8x3mm Nd magnet
For the LED projector I used parts that I still had lying around
- WS2812B LED strip
- 30° plastic lens for 5050 SMD LED
- Arduino Nano
- 3V to 5V boost converter
- slide switch
- TP4056 charger module
- 500mAh LiPo battery
Tools
- 3D printer
- soldering iron
The lens was made by SLA printing but I used an online printing service
Caustic Lens Design
Calculating the surface of a caustic lens that will project a random image is a non-trivial task. Probably the most sophisticated algorithm for this comes from researchers at EPFL. Luckily, I found this github repo by Matt Ferraro that also does the job using a slightly different algorithm. I made some minor modifications to his code (see my github) in order to be able to try out different focal lengths and refractive indices. The code generates an obj file which was then edited in Fusion360 in order to make a round lens instead of a square one and the file was exported as stl.
How do you know that the lens you created is really projecting the image that you want? To test this I used the LuxCore Render in Blender to make a ray tracing simulation. It was really satisfying to see the correctly projected image in the ray tracing simulation.
Caustic Lens Manufacturing
Most caustic lenses I found were manufactured by precision CNC machining from clear acrylic but I wanted to try SLA printing. I used an online printing service for that and the first lenses I got were nicely transparent but the projected image was not recognizable. I figured that the changes in surface height were to small for the resolution of the SLA printer so I wanted to switch to CNC machining. Unfortunately, I was not able to generate a step file out of the obj file that could be used by any online CNC service. The reason is probably the large amount of facets in the obj file. So I did some more iterations with SLA printing gradually lowering the focal length as this increases the differences in surface height of the caustic lens. I also reduced the detail of the image from initially twelve numbers to having only four larger numbers on the clock face. Finally, after spending hundreds of Euros on 3D printing I got a working lens that I ordered from Wenext and was made from Somos® WaterShed XC 1112. The design focal length of this lens is only 3cm so you have to be quite close to the wall to get a clear image although the real focal length turns out to be more on the order of 10cm. It should be possible to get lenses with larger focal lengths using CNC machining. The advantage of the SLA printing is that there is little post processing needed. As far as I know the parts are only spray coated while a CNC machined lens would have to be polished by hand in multiple steps.
3D Printed Clock Parts
I had to modify the stl files of the hollow clock a bit in order to incorporate the lens which is just added to the back of the clock. All files can be found on my github. When printing the files follow the original instructions by shiura regarding the color changes.
Assembling the Clock
Again, I just follwed the thorough instructions by shiura on how to assemble the clock, connect the electronics and upload the code to the microcontroller.
Building the LED Projector (optional)
As mentioned I decided to build a small RGB lamp to illuminate the clock after I was finished. The use of parts here is based on what I had lying around and can probably be build easier. Especially the choice of microcontroller is not optimal if I had to do it from scratch I would go for an Adafruit ItsyBitsy with LiPo backpack. There are also cycling 5mm RGB LEDs where you would not need any MCU but I found their brightness is too low.
For my projector I soldered together a single WS2812B LED from a strip, an Arduino Nano, a 3V to 5V boost converter, a TP4056 charger module and a slide switch. Power was provided by a small 500mAh LiPo battery. On top of the LED I put a 30° plastic lens. I then designed and 3D printed a small housing (stl files on my github) and mounted everything inside using hot glue.
Closing Remarks
Thank you to shiura for publishing his hollow clock and granting people the license to remix it.
Caustic lenses are fun and I have some more ideas for possible future projects. However, I first need to figure out some cheap an reliable way to manufacture them, especially with larger focal lengths.