3d Printed, Arduino, Led Digital Clock

About the project

Basically it is just a clock, simple. The goal for this project was to create a good looking, simple and accurate clock for my room. I didn't want to have to put much thought into using it. This meant no internet connection or programming once setup. Looks were important so everything had to be neat and clean.

Project info

Difficulty: Moderate

Platforms: Arduino

Estimated time: 2 weeks

License: Creative Commons Attribution CC BY version 4.0 or later (CC BY 4+)

Story

Ok I want to be 100% honest with my project. I started this project mid-2020. At the time I wanted a project that would be fun, useful for gaining engineering experience (I am an engineering student), something for a resume and something I could share with others. I had planned to document the project really well and then share the project so that others could replicate my project very simply. As I progressed, I realised that my project was not going to be as simple as I planned. Because of this I gave up on sharing the project in a how-to format. Once completing the project, I decided I would still share the result on reddit just do show what I had achieved. The response was quite positive, and I ended up being asked to share more. I will attempt to share what went well and what can be improved so that you might be able to benefit from my mistakes and possibly build your own clock.

What went well? The overall physical design of the clock turned out great. The clock is made of individual segments that have addressable LEDs inside. Each segment was sanded, filler primed, primed, painted, and clear coated. These segments were then assembled to make the clock. The resulting surface finish and build looks great.

Another positive for the design was the LEDs and diffusion. The diffusion is almost perfect with very minimal hotspots. The LEDs are also more than bright enough. With 6 LEDs per segment, the brightness can sit at no more than 50% and be visible on a bright sunny day.

What could be improved? A lot.

Firstly, while the overall physical build was amazing, the electronics area was fairly small. This was the root of many problems. If I were building this again, and wanted to simplify the build, I would try find another place to enclose the electronics. As is, the electronics fit between the two dots, this looks great, but it is a very tight space. Personally, I am happy I managed to fit everything in this small space but if you wanted a simpler build, I would try think of a new solution.

As a result of such a small electronics enclosure, I used an Attiny85. This small Arduino MCU is too limited to comfortably run 170 LEDs. The limited memory caused me to have to create some odd workarounds. This makes the code difficult to understand. While this was all great experience for a student engineer, it makes the project a little hard to understand for new programmers. If you were not comfortable trusting my code, I would suggest using a more capable controller. This could be a raspberry pi (good for internet connection) or a better MCU.

Another resulting challenge of having such a small electronics enclosure was the overall size of the PCB used. I originally tried using a DS3231 module. This worked but didn’t fit. To be able to fit everything in I needed to integrate the Attiny85 and DS3231 clock onto a single PCB, along with supporting components. This worked well and looks good but, as expected, is not as easy for new hobbyists to achieve. Not everyone wants to build PCBs and solder SMD parts.

Having said all of this, I am still very happy with the resulting clock and the experience gained. The finished product looks good and performs as I hoped. If you are keen to make a clock similar to mine, I hope you can learn from my wins and challenges and make an even better clock for yourself. I would love to see many more like mine.

As mentioned previously, I have already posted this project on reddit. As a result, a lot of people had great questions. I would strongly suggest having a look over the reddit posts I made if you have more questions or want more information. I will include the posts from different communities so you can get access to as much information as possible.

Reddit Links:

https://www.reddit.com/r/3Dprinting/comments/lvxmge/3d_printed_arduino_led_wall_clock/?utm_source=share&utm_medium=web2x&context=3

https://www.reddit.com/r/arduino/comments/lvxohk/3d_printed_arduino_led_clock_i_just_finished/?utm_source=share&utm_medium=web2x&context=3

https://www.reddit.com/r/functionalprint/comments/lvxpfd/3d_printed_led_clock_i_just_finished/?utm_source=share&utm_medium=web2x&context=3

https://www.reddit.com/r/diyelectronics/comments/lvxov1/diy_3d_printed_arduino_led_clock_i_just_finished/?utm_source=share&utm_medium=web2x&context=3

Here is some advice I gave on reddit, strongly suggest reading this if you choose to replicate my design.

SOME ADVICE:

I would not recommend starting this project without proper planning. I did not create this project with the intention of creating instructions on how to build the clock I made. You will likely find things are a bit all over the place. Almost all my designs are included so hopefully they will inspire you to build your own.

Few points that could have been improved:

The centre enclosure was too small for the electronics used. You might be able to just see in the photo included that it doesn't quite sit flush. It would be ideal to expand this chamber or shrink the electronics even further.

The code is a little odd. Due to the limited memory of the attiny85, workarounds had to be made. This meant not using the fastLED library. I had to use some more basic code I found to time the signals for the LEDS and then use a range of different arrays to reduce the memory usage of the code.

All the best if you do try to make something similar. I am happy to answer questions when possible.

Code

All Project Files

All project files are on GitHub.

Credits

Leave your feedback...