wordclock is a clock that shows the current time as words such as “five past eight” or “quarter to three”. The clock is approximately 400 mm x 400 mm square and uses RGB LEDs to light up the words.
Find a file
2024-03-03 11:18:14 +01:00
hw wordclock: add the copyrights everywhere 2020-12-01 21:15:19 +01:00
iptime wordclock: add the copyrights everywhere 2020-12-01 21:15:19 +01:00
src wordclock: finish implementing mqtt dimming support 2024-03-03 11:18:14 +01:00
third_party wordclock: tidy up the Makefile and compile the modules 2024-02-29 21:39:00 +01:00
.gitignore wordclock: rename secrets to local_secrets to prevent colliding with the stdlib 2024-03-03 10:29:54 +01:00
.gitmodules wordclock: tidy up the Makefile and compile the modules 2024-02-29 21:39:00 +01:00
CONTRIBUTING.md Added a license and basic readme. 2019-03-10 20:35:33 +01:00
gen.py wordclock: add the copyrights everywhere 2020-12-01 21:15:19 +01:00
LICENSE Added a license and basic readme. 2019-03-10 20:35:33 +01:00
README.md Added a license and basic readme. 2019-03-10 20:35:33 +01:00
setup.py wordclock: add the copyrights everywhere 2020-12-01 21:15:19 +01:00

wordclock - a word clock

mlhx@google.com / michaelh@juju.nz

wordclock is a clock that shows the current time as words such as "five past eight" or "quarter to three". The clock is approximately 400 mm x 400 mm square and uses RGB LEDs to light up the words. The LEDs are driven by a ESP8266 and the time and time zone is asutomatically fetched from the Internet.

Mechanics

See The hardware is made up of four layers of 4 mm laser cut plywood. The default design cuts this from 8 A3 sheets which are then overlapped, although it should be easy to modify if your laser cutter has a 400 x 400 mm work area.

The layers are:

  • A backing layer
  • The LED layer which has a snake pattern for laying the LEDs in
  • The mask layer, which has a cut out for each LED
  • The word layer

Normal laser printer paper is sandwiched between the mask and word layers as a diffuser.

The layers are held together using 8x M4 bolts.

Electronics

The electronics consists of a 5 m strip of WS2812B LEDs driven by an ESP8266. A 5 V 3 A supply feeds the ESP8266 and a 1N5401 between the 5 V supply and the LEDs drops the supply enough so the 3.3 V output from the ESP8266 can reliably drive the LEDs.

The LEDs are the 30 LED/m model arranged in a 11 wide by 10 high grid. The LEDs snake through the hardware with the first LED being in the bottom right.

Firmware

The firmware uses CircuitPython 3.0, periodically reads the local time from a custom time server, and fades from one set of words to the next when the words change.

Services

A small API returns the local time of the caller by looking up the timezone based on the IPv4 address.

License

Copyright 2019 Google LLC

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Disclaimer

This is not an official Google product.