CircuitPython clock for a Waveshare 64x32 RGB matrix kit with Raspberry Pi Pico W, buttons, DS3231 RTC, buzzer, light sensor, Wi-Fi, NTP time sync, and weather status.
- Shows large hour/minute clock on the left side of the matrix.
- Shows day and date on the right side.
- Shows the company logo in the bottom-right corner.
- Shows Wi-Fi status next to the logo.
- Shows a simple weather icon next to the Wi-Fi symbol:
- yellow sun
- white cloud
- blue raindrop
- Shows the Jedi Dog splash image on startup and once every hour.
- Plays a short "woof woof" buzzer pattern on startup and at configured hourly bark times when beeps are enabled.
- Syncs date and time from NTP over Wi-Fi.
- Saves Wi-Fi settings across restarts.
- Gets current weather from Open-Meteo using latitude and longitude in
location_config.txt.
The clock uses three buttons:
MENU: enter/select/advanceDOWN: move backward or decrease a valueUP: move forward or increase a value- Long-press
UP: go back/exit
To return to the clock face from a menu, long-press UP until you are back at the clock.
Short-press MENU from the clock face to open the settings list.
Available settings:
TIME SET: manually set hour, minute, secondDATE SET: manually set year, month, dayBEEP SET: enable or disable button beeps and the dog barkautolight: enable or disable automatic brightnessBRIGHT: adjust display brightness from 1 to 10
Use UP and DOWN to move through the settings list. Press MENU to enter the selected setting.
In TIME SET or DATE SET:
MENU: move to the next fieldUP: increase the selected fieldDOWN: decrease the selected field- Long-press
UP: save and go back
When Wi-Fi is connected, the clock will also sync time from NTP automatically.
Wi-Fi settings are stored in:
wifi_config.txt
Example:
enabled=1
ssid=YourWiFiName
password=YourWiFiPassword
Edit this file directly from your computer to configure Wi-Fi. Wi-Fi credentials are not edited from the clock menu.
The Wi-Fi status icon on the clock face shows:
- green Wi-Fi mark: connected
- red X: not connected
If Wi-Fi is enabled but disconnected, the clock retries the connection about every 60 seconds.
Weather settings are stored in:
location_config.txt
For Sarasota, Florida:
latitude=27.3364
longitude=-82.5307
timezone_offset=-4
timezone=US/Eastern
The timezone=US/Eastern setting automatically handles daylight saving time. timezone_offset is kept as a fallback.
Weather is fetched from Open-Meteo about every 30 minutes.
Important files:
code.py: main programdisplaySubsystem.py: clock/menu display pageswifiManager.py: Wi-Fi connection and saved credentialsntpManager.py: NTP time sync and daylight saving logicweatherManager.py: weather fetch and weather-code mappingwifi_config.txt: saved Wi-Fi credentialslocation_config.txt: latitude, longitude, timezonebark_config.txt: hourly dog bark schedulebrightness_config.txt: display brightness level from 1 to 10startup.bmp: Jedi Dog startup/hourly splash imagelogo.bmp: company logoboot.py: controls whether the Pico or computer can write to the filesystem
The clock normally owns write access to the filesystem while it runs. This lets runtime files be saved reliably.
To make the CIRCUITPY drive writable from your computer:
- Unplug or reset the Pico W.
- Hold the
MENUbutton. - Plug in or reboot the Pico W while holding
MENU. - The computer should now be able to edit files on
CIRCUITPY.
If you are using Mu Editor, open the Serial console and press Ctrl+C to stop the running program and enter the REPL.
Brightness is stored in:
brightness_config.txt
Default:
level=3
Use the BRIGHT menu to adjust brightness from 1 to 10. Long-press UP to save and go back. If autolight is enabled, the light sensor can dim the display, but this brightness level is still used as the normal on-brightness.
Dog bark hours are stored in:
bark_config.txt
Default:
enabled=1
hours=12,17
Set enabled=0 to disable the dog bark. The dog image still appears on startup and hourly.
Hours use 24-hour time, so 12 is noon and 17 is 5 PM. The startup bark plays when both enabled=1 and BEEP SET is on, even if the current hour is not listed.