Ergonomic Clock (a Deliberately Vague Clock)
by NickZero in Circuits > Clocks
341 Views, 2 Favorites, 0 Comments
Ergonomic Clock (a Deliberately Vague Clock)








This is a Raspberry Pi Zero 2W powered "Ergo Clock", with 3 clock face modes, selectable colours and an alarm.
This is a fun project that is faily easy to make; soldering the power button is an optional step if you are not confident in that area.
Supplies





Raspberry Pi Zero 2W + 16GB (Minimum) SD Card, I would also recommend a small heatsink.
Can be purchased from the Pi Hut here: https://thepihut.com/products/raspberry-pi-zero-2
Waveshare 7" Zero Display (https://www.waveshare.com/zero-disp-7a.htm)
Also purchased from the Pi Hut here: https://thepihut.com/products/7-touch-display-kit-for-raspberry-pi-zero
Mini Speaker 8 Ohm 1W 20x30mm
PH 2.0mm Micro Connector 4-Pin Plug Male
6x6mm Momentary Tactile Mini Push Button Switch (5mm height)
2x short wires, electrical tape or shrink sleve
7x M2.5 screws + 3x M2.5 Nuts
3D printer + Filaments (I've used yellow and clear)
Soldering iron (optional)
USB C Power supply + (optional) USB C right angle connector
Some LRF's (little rubber feet)
All the parts are readily available on ebay or similar sites.
Pi Setup and Testing


Obtain the Raspberry Pi Imager and mount your SD Card – any card 16GB or more should be sufficient.
- Select Raspberry Pi Zero 2 W as your Device
- Select Raspberry PI OS (32bit) as your Operating System
- Select the SD Card as your Storage
On the next screen, edit the customisation settings. On the General Tab add the hostname (“ergoclock”), leave the username at the default “pi” and set the password. Configure the WiFi with your SSID and password. Set the locale time zone and keyboard layout.
On the Services tab, enable SSH and use password authentication.
Once you are happy with the settings, apply them (answer “Yes”)
Confirm that you want to erase whatever was on your SD card. If you are using Windows to write the OS, it may pop up a message asking you to format the drive – cancel this – do not format the drive.
Wait for the process to write and verify. You can now remove the card and insert it into the Pi Zero.
Connect the Pi to the screen by pushing it onto the connectors on the right side.
Connect a keyboard and mouse to one of the USB ports on the side of the screen and power up the Pi. The file system will resize and the Pi will reboot. This can take a while on the Pi Zero but you should eventually land on the desktop screen.
You should not need to do anything to configure the screen or touch but there are notes and instructions here: https://www.waveshare.com/wiki/Zero-DISP-7A if you do need to adjust anything.
You should already be connected to WiFi so no further configuration needs to be done; an “updates” icon should appear at the top of the screen – it is advisable to install all available updates. Again, this will take a while on the Pi Zero. Reboot once finished.
Setting Up the Software

The best way to copy the files to the Pi is via an SSH client eg. WinSCP. But you can also do it directly on the Pi (if you are patient!)
In the /home/pi/ folder create a new directory called ergoclock and go into it.
Copy the following files into the new folder:
Download the clockface.png file from the picture above.
Power Button Operation




(This is an optional step - skip if you are not comfortable with soldering.)
To allow the power button to shutdown the system, if held for 3 seconds, in /boot/firmware/config.txt
To edit the file, type:
and enter the following:
Solder wires to two of the button pins (on one side), then to Pi Pins 5 & 6 (GPIO 3 + Ground)
Auto Starting
To set the script to launch at system startup we need to use an autostart file.
In a terminal window, type the following:
In the Nano editor, enter the following:
Save and exit with CTRL+X, y, enter.
Once rebooted the system will automatically start the ergoclock software. (you can use ESC to exit the software)
Printing the Parts


Print the main case in the colour of your choice, I've used yellow for a funky look.
You will also need to print the stand and a few internal parts:
- Stand
- SD Card Plug
- Power button back
- Button Back
- LED Plug
Print the LED Plug in clear PLA - the rest can be any colour.
I printed everything at 20% in-fill, no supports, dynamic quality (0.16mm)
Assembly










We need to connect the speaker to the 4 pin micro connector - but given that this is only a single speaker with two wires, we only need to connect to two of the pins on the connector. See pic.
Using a very small screwdriver or point, you can pull up the clip on the connector to release the two spare wires - I used these spare wires to connect the power button.
Solder (or twist and cover with tape) the connector wires to the micro speaker connector wires. Use some shrink sleeve to cover the connection. The speaker is self adheasive so stick that to the position in the case. Connect the speaker to the main board.
Insert the button board and firmly push down the button back part to secure it in place. Do the same with the power button. Connect the button board connector to the main board.
Push in the 3 nuts into the inside of the case so that they do not fall out. (might need to tape or glue them)
Push the stand onto the back and secure in place with 3 M2.5 screws.
Insert the LED plug - this acts like a light pipe to show the power status light on the back of the case.
Now you can carefully position the screen onto the case, making sure the wires are in place, not on the heat sink or covering any holes - this can be a bit tricky, use tape to secure the wires to make things easier.
Secure the case with 4x M2.5 Screws.
Final Steps and Operation









Install the LRFs. :) ie. stick on the Little Rubber Feet to the stand and the botttom edge.
If you are using a USB C right angle connector, insert that and connect the power supply.
If all is well the Pi should boot up and launch the clock software, displaying the time in words and a date at the top.
Touching the screen will bring up the controls where you can change the colour, clock style, display the date and set the alarm. The controls will disappear afer a few seconds.
Setting the alarm: press the alarm control and you will be in alarm set mode. Adjust the hours and mins to the desired time then press set. There will be an indicator in the top left that shows that the alarm is on.
Once the alarm sounds, you can snooze it for ~5 mins by simply touching the screen and turn it off by pressing the alarm control.
Final Thoughts



This was a fun project to make, surprisingly challenging to get the clock to say the right words as naturally as possible and getting all of the controls working correctly - my programming skills are not the best so the python code could probably be improved.
Please comment if you found this project interesting and if you made it.
The speaker is kindof quiet - Dont blame me if you are late for work!!
:)