This is an implementation of an Orienteering Clock in Micropython. It displays a clock with a countdown every minute to provide timing for orienteering events or any event requiring starts at minute intervals. Optionally a buzzer can sound. Timing is supplied using an RTC module which can be set manually or, preferably using an internet NTP server.
SEEED XIAO ESP32 C6 module if PCB is used or other WiFi capable module with modified configuration etc.
8 x 32 Neopixel LED display. DS3231 RTC Module including battery
These are fairly standard modules, readily available from Amazon etc.
3000mAh Lithium Rechargeable Battery, provides at least 6 hrs of use with buzzer working, 12 hrs silent running.
2 Push Buttons
Buzzer
PCB
A KICad files are available in the PCB directory for using the SEEED XIAO ESP32 C6 module.
Install latest version of micropython.
Download files and directories from GitHub.
Linux users navigate to directory, make builder_XIAO_C6 executable and then run it. Otherwise use mpremote to copy contents of build and web directories to the mcu.
On powering on the display will show 'Ready'. The 'Show' button will initiate the clock display, subsequent presses toggles the display. If time is showing the 'Buzz' button toggles buzzer on or of. If time is not showing the 'Buzz' button activates the web interface. This will be required to set the DS3231 time accurately, once set it should only need resetting occasionally.
Whenever a USB cable is connected to the XIAO module and the battery is connected the battery will charge. It's not a fast charger but if display is off the setup will do little but charge the battery.