Skip to content

AnimatedPixelClock v2.5.6

Choose a tag to compare

@NickoScope NickoScope released this 23 Sep 14:32
· 171 commits to main since this release

This release is for the Waveshare ESP32-S3-RGB-Matrix board driving a 128x64 HUB75 panel, the only board I have tested it on. Three things changed: the panel stays on the network, it writes Russian on every screen, and it stops doing work for screens nobody is looking at.

The network. On 2.5.5 the panel could still drop off the network in ordinary use. The Wi-Fi driver takes its 1,626 byte receive buffers from a small pool of internal memory. On 2.5.5 that pool had 13 to 15 KB free, and at times it went down to 172 bytes. When a buffer could not be had, the panel stopped answering for about three minutes, until the link watchdog restarted Wi-Fi. Most of that memory was held by the pages and effects themselves, so in 2.5.6 about 36 KB of their state lives in the board's 16 MB of PSRAM instead. The frame buffers stay where they were, so double buffering and colour depth are unchanged. On my panel the pool now has 30 to 50 KB free. Over a two hour run it never went below 21.5 KB and no allocation failed.

Russian on every screen. Text on the panel is now UTF-8 in both of its fonts, capitals and lowercase. That covers notifications, cards, media titles, the flight and rail boards, city and airport names, the original clock screens and Lua effects. Up to now Cyrillic worked only in Lua effects and on the world clock, and a notification in Russian came out as garbage. The Cyrillic letters come from the public-domain X11 misc-fixed fonts, sized to stand next to the Latin ones. Letters that look like Latin ones use exactly the same pixels. Anything the fonts cannot draw shows as a solid block. A Lua effect can pick the font: px.text(x, y, s, r, g, b, "5x7") or "pico"; without that it draws as before. The portal accepts Cyrillic city and airport names. It no longer turns Й into И or Ё into Е.

Work only for what is on screen. The room radar feed from the presence sensor is now received only while a page that shows it is on screen, the room radar or the aquarium. The board's temperature sensor is read only while the weather clock shows it, or when Home Assistant uses it as a room sensor. Before, both ran all the time.

Smaller things: the portal's list of pages no longer shows empty rows for unused effect slots. Lua effects and market pages are grouped under one switch each, since that is how the panel turns them on and off. For people using the tools in tools/agent, the health self-test now checks the new behaviour.

Install: for a new board, use the web flasher at https://nickoscope.github.io/AnimatedPixelClock/ or write firmware-v2.5.6-waveshare.bin at 0x0. For a board that is already running, upload OTA_ONLY_firmware-v2.5.6-waveshare.bin on the portal's firmware update page, or let the tools in tools/agent do it. Do not upload the full image as an update. The Windows PC stats companion is pc_stats_monitor_v4.exe. SHA256SUMS.txt has the checksums.