This wall clock shows the time on two concentric LED rings of 60 +24 NeoPixel LEDs. The inner ring shows the hours, the outer ring shows minutes and seconds. It is controlled by an ESP32 which synchronizes the time online with an NTP server.
The design is very interesting because the company M5Stack recently offers two ESP32Pico modules (ATOM-lite and ATOM-Matrix) with extremely small dimensions (24mm*24mm*10mm and 14mm).
The small size of the ATOM modules allows extremely small setups, but still allows an easy setup by using the Grove port or the two female connectors on the bottom side.
The selected module is supplied by a small switching converter with 12-24V >> 4V8. This makes it possible to work with very thin lead wires before converting to the required module voltage of max 4.8V. At the higher supply voltages of 12 to 24V, the input currents of the circuit are proportionally lower.
ATTENTION: The 4.8V module voltage results because the data signals of the neopixels must have at least 70% of the supply voltage of the pixels. Otherwise errors will occur during data transmission. The ESP32 works with 3V3 in the module. Therefore 3.3V/7*10=4.71V.The pin headers for holding and connecting the ATOM module are glued to the switching controller board
The module is located in the middle of the two rings. The LED rings are supplied with voltage and data signals via the radial wires. The data lines and the long external power supply line are made of VERO thread wire, which is hardly visible but still very stable.
Here the programming is based on a micropython script, as the ESP32Pico is unfortunately not (yet?) supported by ANNEX32.
The script first registers the module in the WLAN, then synchronizes the time with an NTP server and finaly controls in an endless loop the 60+24 neopixel LEDs on the two rings, which are all serially connected in one line to GPIO21.
Additionally the only front LED of the ATOM lite or the 5*5 front LEDs of the ATOM matrix are controlled via GPIO27.
With the button (GPIO39) at the front of the ATOM, you can switch between the CLOCK mode and a simple demo mode, which makes the clock run extremely fast to show all LED positions.
If you like this kind of clocks:
I did a similar but much more "rotating" project with an ESP8266 and published it presently only on Elektor-LABS