Monolithic Digital Clock

10K15534

Intro: Monolithic Digital Clock

Easy to make, beautiful digital clock with WiFi time acquisition.

  • Monolithic structure : It consists of only one functional part (except rear cover)
  • Monolithic appearance : when power is off, it looks like a marble brick
  • Automatic time adjustment using NTP via WiFi
  • WiFi setting from your smartphone

STEP 1: Print the Monolithic Light Guide

Print the monolithic light guide using your 3D printer.

  • Print with supplied posture.
  • Support is not necessary to print.

STEP 2: Prepare LED Strip

  • Cut LED strip to 7, 7, 1, 7, 3 (correspond to 1min, 10min, colon, 1hour, 10hour respectively)
  • Re-connect LED strips each other with electric wire (5V, GND, Din / Dout)
  • Connect LED strips to ESP32 (VCC, GND and GPIO16)
  • Check all LEDs lit

STEP 3: Stick LED Strip

Stick LED strips to the main body with adhesive tapes.

STEP 4: Prepare Rear Cover (optional)

  • Print cover.stl with supplied posture. Support is not necessary.
  • Insert ESP32 board to the slot.
  • Attach rear cover with 4 tapping screws.

STEP 5: Cover With Diffusive Material

Cover the clock with thin and diffusive material.

I bought some decoration sheet at 1 dollar shop (100yen shop).

  • One is natural wooden sheet (very thin real wood sheet with adhesives).
  • The other is marble like sticker sheet. Both are sufficiently translucent and diffuse.
  • It would be nice to use your favorite photo as diffuser.
  • The other idea is to use half mirror with this clock. In this case, stick a copy paper to the whole of backside of the mirror to diffuse the light.

STEP 6: Flash Code

Flash code to ESP32 using Arduino IDE.

  • Please change the value of TIMEZONE to your living place.

STEP 7: Configure WiFi

You can configure the WiFi settings of your ESP32 via smartphone app. Use smatConfig.ino as Arduino sketch.

  • ESP32 stores SSID and password in its non-volatile memory.
  • If previous (memorized) SSID and password do not work, it automatically moves to SmartConfig mode after 30 seconds. The clock shows "SC" (meaning SmartConfig).

Please configure your WiFi using the apps at

Android: https://play.google.com/store/apps/details?id=com.khoazero123.iot_esptouch_demo&hl=ja&gl=US

iOS: https://apps.apple.com/jp/app/espressif-esptouch/id1071176700

STEP 8: (Optional) Single Digit Unit

Multi-purpose single digit and colon units (STL files) are also provided.

  • You can use them for various projects, such as 24hours clock, subscription counter or huge calculator.
  • You can connect multiple units each other with holes on both sides. Not only screws but also zip ties would work.
  • Discrete back cover is supplied. The cover for single digit is snap-fit (with hooks). You can use side notches to pass through the cables or zip ties. Back cover for the colon unit has no way to fix, so please use glue.
  • For 24hours clock, use smartConfig24H.ino to flash the code

19 Comments

Great and elegant design, thank you! I have designed a 24hour version using the single digit models supplied, and also an alternative case which allows different (photo in my case) diffusers to be slid in at will - I'm happy to share the designs if anybody is interested.

I am hitting an issue though in that the clock freezes randomly anything between 10 minutes and an hour after power up - I'm going to change the ESP32 module in case it's faulty, but I'm not sure if anybody else has seen that? The only changes to the code I made was to select timezone and change the LED display colour to white.

Either way, this is an excellent design and has taught me a lot about how light pipes and Neopixels can be used to create this kind of effect - really good work Shiura, thank you!
Thanks for trying my design. I am impressed by your frame that exploits the texture generated by the path of printing head -- so nice.

One possibility of random resetting is the voltage drop caused by the large current for the LEDs. Maximum current of a single WS2812B full color LED unit is around 50mA. If 20 LEDs lit, it use around 1000mA. Although depending on the power source you used, all white / full power LED setting might exceed the capacity of the power source. Please try to decrease the brightness of LEDs and watch it changes or not. If so, one solution is to use separate power source for LEDs (GND should be common to LEDs and micro controller, but other 5V power source is connected for 5V in of LED strip)
Thanks! You were absolutely correct - I moved from a 1 amp to a 2.5 amp supply and it's now rock steady. Thanks!
The time shows up incorrectly for my time zone. What code lines do I need to alter to adjust it. I live in the central time zone in USA. The readout is 12:18:13 and it is actually 9:18:13. Other than that it looks like a solid project. I have not completed it yet but will submit a picture when completed
Sorry- my bad, I looked at the code again and see the TIMEZONE variable. I changed it to -6 and the time is now correct. I will continue with the build
Thanks for your feedback, I have added a comment on TIMEZONE in step 6.
Brilliant design!! Talk about a clever way to keep the LED strips linear while illuminating the elements of the 7-segment display! I am a big fan of military time because it is unambiguous and, given my erratic schedule and room with blackout curtains, I find it very useful. I’m a rote beginner to electronics but at first blush, it seems one could modify this design to display military time by mirroring the two 7-segment modules to the right of the colon, using the same number of LEDs to the left of the colon as with the right, and modify the code to accommodate a 24-hour time instead of 12 hours. Do you think doing so would be relatively straightforward? Any suggestions from anyone on how I should proceed? Thank you for sharing this design with everyone. The maker community is full of brilliant, kind people who often counteract the cynicism the news on any given day often conspires to worsen.
One reason why I designed this clock with 12-hours scheme is to keep the size within 20cm x 20cm (typical size of consumer 3D printers). Actually the other person also requested me to make 24-hours version, I have designed individual digit and colon units. It is now available at Step 8. Enjoy!
I like your design, but monolith literally means "single stone" and refers to upright single stone objects. This design has nothing to do with monoliths.
I am not a native English speaker but recognize that the word "monolithic" is used for not only upright but also horizontally flat object, such as "monolithic integrated circuit". This word is also used for software such as "monolithic kernel". I did not intend to mean "monolith" of "2001: A Space Odyssey" or obelisks.
https://en.wikipedia.org/wiki/Monolith_(disambiguation)
I stand corrected. I apologize for my ignorance. Thank you for the link regarding 'monolithic'.
Really nice! Would be even nicer to have the possibility to have each led segment in a different color and maybe random
Thanks, yes it is possible to give different or animated color for each segment by changing the software. However, I would like to keep the things including software as simple as possible.
shiura, I really like how you designed the LEDs to funnel thru a tapered tunnel to direct the light. I've built some LED-based gizmos, but they never had the elegance and simplicity of your design. Just curious, do you think the color of the filament makes a difference on the LED brightness? Your clock looks sufficiently bright, but this made me wonder (I have not used it) if something like REFLECT-o-LAY Reflective Filament would make the clock even brighter by having the tapered tunnel be reflective to make the clock even brighter thru a photo or wood front in bright environments. One other comment for those willing to spend a bit more money to make this build and reduce the complexity a bit, for those that find it difficult to get the time from wifi, you can consider swapping the ESP32 for a wifi-enabled, arduino-like device from Particle.io. Particle has a Time class and can return the current time easily in code (see https://docs.particle.io/cards/firmware/time/time/).
Thanks for your positive comment. As you pointed out, the color of the filament affects to the brightness and uniformity of the segment. However, light color material tends to be translucent and the contrast also degrades. Actually I made another unit with white material but the result is not satisfactory, as shown in the attached picture. Of course it depends on the material and density (infill rate), but for certain success I recommended dark color material. It would be ideal to paint the inner surface.

I am also interested in the cheaper micro controller with WiFi. The module I currently use is sold around 5USD at AliExpress, but I found some quality issue. Now I am thinking to switch to M5stamp C3 or C3U (5.90 - 6.00 USD) and already confirmed that same code works including NTP and smartConfig.

https://shop.m5stack.com/products/m5stamp-c3u-mate...
https://shop.m5stack.com/products/m5stamp-c3-mate-...

The other important issue in Japan is compliance. In Japan, exclusive certificate on WiFi and BT is necessary (aka TELEC). I think one of the cheapest WiFi module is ESP8266 based one (Wemos D1 mini compatible, below 3USD). However, they are not TELEC compliant. Actually no one had been prosecuted by such a minor issue, however, some persistent watcher (civilian) criticizes when they find that. Fortunately Particle Photon is TELEC compliant, but I can not find cheap modules around 5-6 USD.
Tell me more about how I can connect to WiFI using the smartConfig and my cell phone. I'm going to do a build. Very nice design.

Thanks,

Theron Wierenga
1. Install app to your smartPhone,
2. Run app and confirm that your phone is connecting to 2.4GHz WiFi station,
3. Power on your printed clock and wait for showing SC,
4. Enter password of your WiFi station,
5. Press CONFIRM button at bottom of your screen
6. Wait for a while (around 30 seconds). The app shows whether it is successful or not.

If the app fails, please retry 2-6.
Muito legal, adoraria fazer , infelizmente no Brazil os valores dos componentes inviabilizam o projeto, muito caro , assim como uma impressão 3d já que não possuo a impressora....quem sabe um dia não volto pra contar que consegui fazer...sucesso