Word Clock

Copyright Claim

Word Clock

Boost
615
1225
94
GIF

Print Profile(2)

All
X1 Carbon
P1S
P1P
X1
X1E
A1

0.2mm layer, 6 walls, 25% infill
0.2mm layer, 6 walls, 25% infill
Designer
9.8 h
3 plates
5.0(6)

Back Panel for RPi Zero, 0.2mm layer, 6 walls, 25% infill
Back Panel for RPi Zero, 0.2mm layer, 6 walls, 25% infill
3 h
1 plate
5.0(1)

Open in Bambu Studio
Boost
615
1225
94
77
379
92
Released

Description

Overview

I designed and developed the Word Clock, specifically crafted to take advantage of modern multicolor 3D printers, such as the Bambu Labs with AMS. Unlike traditional designs, this clock eliminates the need for small plastic connections that usually keep floating elements in place. It uses an addressable WS2812b LED strip and is powered by either a Raspberry Pi Zero W or an ESP32 (You need only one controller). In addition to displaying the time, it also plays cool GIFs when the hour changes.
 

Updates

  1. 21.10.2024
    1. Fully updated documentation for
      1. Building device (including step by step guide with photos)
        1. Wiring guide for Raspberry PI Zero W (including photos)
        2. Wiring guide for example ESP32 devkit 1 (including photos)
      2. Programming Raspberry PI
      3. Programming ESP32

Printing Details

The front plate, which displays the letters, is printed in place using two or three filaments:

  1. Your favorite color
  2. Transparent filament
  3. White (optional) – This acts as a diffusion layer to ensure the light on the letters remains consistent. In Bambu Studio, you can simply select the transparent filament again if you prefer.

Electronics and Programming

You can find the complete project on my GitHub, which includes the code and detailed instructions for setting up the Word Clock with your choice of controller (Raspberry Pi or ESP32).

 

Step by Step Guide

  1. Step by step Documentation
    1. Building device (including step by step guide with photos)
      1. Wiring guide for Raspberry PI Zero W (including photos)
      2. Wiring guide for example ESP32 devkit 1 (including photos)
    2. Programming Raspberry PI
    3. Programming ESP32

Required Parts

  1. 2 meters of 74 LEDs per meter WS2812b LED strip
    1. you can find it on AliExpress or other stores, e.g. Aliexpress
  2. ESP32 or Raspberry Pi Zero W (You need only one controller)
  3. 3x M3x10mm hex screws and 1x M3x40mm hex screw
  4. Soldering iron to connect LED strip segments
  5. Wires for electrical connections

Features and Contributions

I already have a few ideas to enhance the project further:

  • An electronics box to neatly hide the cables in the middle
  • Two different versions of the electronics box, tailored to fit your chosen controller

I’d love to hear your suggestions and feedback!

Legal:
The provided project, including all instructions and materials, is shared for informational purposes only and is offered without any express or implied warranties. I disclaim all liability for any damages, losses, or injuries that may occur as a result of using, modifying, or following the instructions in this project. The project is shared 'as is,' and I make no guarantees regarding its functionality or suitability for any particular purpose. Use this project at your own risk, and be aware that results may vary based on individual implementation.

Comment & Rating (94)

Please fill in your opinion
(0/5000)

Hi All, I thought I'd share my experience with this project. First off, thanks to Johniak for publishing his word clock. As soon as I saw it, I had to make it. In my haste I ordered a 60 LED/meter strip instead of 74/meter by mistake. To compensate, I printed the clock scaled to 123.33%. It gave me issues laying out the plate, specifically with the prime tower location. I moved the clock as far to the edge as the slicer would let me and visually there was a gap between the clock and the tower, but when printed they were joined. I just cut it off so not a big deal. With the print scaled, it now needs M4 bolts instead of M3. The back cover had one alignment bar missing. My LED strip had a few joins in it where I assume dead LEDs had been removed during manufacture. I just clipped the wall down a little on the affected cells to allow for the solder. Note that the LED strip orientation alternates with each row when you're connecting the strips. I used a Pi Zero 2 W for the build running a clean install of the latest version of the Raspberry Pi OS (64bit). Not the quickest thing in desktop mode but once I've finished playing I'll ditch the desktop and just have the python scripts running as a service. I had a few issues with the setup instructions in the github README.md The git clone command complained about the fingerprint so I used: git clone https://github.com/johniak/word-clock.git I rarely use python and wasn't familiar with pip and the following command didn't work: pip3 install -r requirements.txt It gave an externally managed environment error. Google told me to add --break-system-packages which worked but it did still complain about a jpeg library however by this point I had gone around adding packages individually and the clock was working so I ignored it. pip3 install --break-system-packages -r requirements.txt The run command needed a tweak from: sudo python3 src/wordclock/main.py --pin D12 --brightness 0.5 --gif ../../heart-art.gif to sudo python3 src/wordclock/main.py --pin D12 --brightness 0.5 --gif heart_art_small.gif otherwise it would kill the python script when it tried to open the gif with a file not found error. The photos don't really do it justice but it does look good sitting on my desk. My print wasn't perfect but that's probably down to my inexperience or me scaling it by 123%. I've got a few 'pin prick' holes letting light bleed through around a couple of letters. The corner that was joined to the prime tower due to the scaling is slightly warped but it's not apparent from the front. I think it might also benefit from another bolt at the mid point on each side (Or a clip as part of the print) as there is a slight bowing of the back plate when assembled. I used Elegoo Black, White and Clear PLA Plus filament on my P1S with AMS.
The designer has replied
5
Reply
Boosted
i am looking forward to a version that supports led matrix like 8x16 that would be awesome and time saving
1
Reply
Thank you for taking the time to share. I have decided to try the 123.33 scaling as I have a bunch of 60/m LEDS. I'm going to try the ES32 route. I'll share my results :)
2
Reply
I will look into all problems. thanks for your input :)
0
Reply
Wow looks great maybe you could ad multilingual support... or different lingual versions... pm me if i can help for translations...😉
The designer has replied
7
Reply
Would like that! I can do the german part :)
6
Reply
Replying to @gbomacfly :
Hi thanks for the input, I will look into German version of this clock
8
Reply
Replying to @johniak :
Let me know if i can be of any help...
1
Reply
Firstly, thank you to Johniak for the amazing work here. I’ve enjoyed giving it a go. Also, thanks to @user_3747234665 for the great sharing here on his work with the scaled up version. I too have some 60LED/M LED strips so decided to also scale the print up by 123.33. It printed pretty well on my A1 and I also had the tower merge a little to the print. Easily remedied by cutting that off when the print had finished. There was a slight lifting on one edge that was close to the plate edge. The printing was the easy part…. My soldering skills are a mess with my shaky hands and poor eyesight 😊 but I’m pleased to say after some hair pulling and finger burning, I got it to a working state. It’s a shame the A1 is just a few mm smaller than the 60/M LEDs need. I used a very old ESP32 board I had laying around. That worked very well after I got the PlaformIO stuff added to VS Code. The github page is not clear on what pin to use for the data (or I don’t know where to look) – it’s pin 13 if anyone else has an ESP32 Devkit board.  Now of course I see that it is shown in the config.h file as LED_PIN… not really hidden, I know. I have left the board loose for now while I think how to attach and power it. I’d like to find a way to add it to a stand I think. Very happy with it.
The designer has replied
1
Reply
I ordered 60/m led strip, so I will scale it in cad software. :)
0
Reply
I updated documentation, I added all urls in project description.
0
Reply
pardon my ignorance, but when I'm trying to upload I am getting these errors:
The designer has replied
0
Reply
you have to put in your wifi name, password and which pin you connected the LEDs to. those variables are probably empty
0
Reply
@7oM_ I updated documentation, there was a missing step with copying configuration.
0
Reply
I updated documentation, I added all urls in project description.
0
Reply
thank you, nice work.
0
Reply
Boosted
incredible
0
Reply
Hi, with the new description everything went fine. It is a real eye cacher. Thank you for the great design.
0
Reply
Boosted
Print Profile
0.2mm layer, 6 walls, 25% infill
Very nice. Waiting for the LED strip so I can put it together
0
Reply
Boosted
Print Profile
Back Panel for RPi Zero, 0.2mm layer, 6 walls, 25% infill
Great design, fits perfectly
0
Reply
This is such a great project. I've built everything (hopefully wired correctly) using a Raspberry Pi Zero, and have found that when I execute the command "sudo python3 src/wordclock/main.py --pin D12 --brightness 0.5 --gif heart_art_small.gif", i get the following error.... Traceback (most recent call last): File "/home/andy/word-clock/raspberry-pi/src/wordclock/main.py", line 3, in <module> from clock_display_hal import ClockDisplayHAL File "/home/andy/word-clock/raspberry-pi/src/wordclock/clock_display_hal.py", line 1, in <module> import board ModuleNotFoundError: No module named 'board' I have looked all over and can't find a file named 'board' in any of my directories, or anywhere in your git repository. Any help getting past this would be appreciated. Thanks.
(Edited)
The designer has replied
0
Reply
you can find the anwser in this user's replay:@user_3747234665 use this command: sudo pip3 install -break-system-packages -r requirements.txt
0
Reply
Replying to @dagezidavid :
Thanks, It worked. BTW,... That command didn't work when I ran it from @user_3747234665's Post. Can you spot his error?
0
Reply
by far, this is my favorite project. Thanks for a cool clock.
0
Reply