mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-08-22 02:48:15 +00:00
Self-review catch. The heartbeat added in this PR compared wall-clock timestamps, which is the defect CodeRabbit flagged on the metrics throttle and which I had already fixed there: these devices have no RTC, so the clock jumps by however wrong boot time was when NTP first syncs. A backward jump would suppress the heartbeat, a forward one fire it early. The same value also divides the frame count to produce the frame rate, so a jump corrupted the reported fps as well -- a pre-existing problem this makes worth fixing rather than working around. last_fps_log_time was seeded from start_time, which is wall clock and is used further down to report the iteration duration. Switching only the reads would have made every delta hugely negative and silenced frame-rate reporting completely, so the seed moves to time.monotonic() and start_time is left alone for the duration reporting it exists for. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01STMbQE4YctTacQXfbYqKuW
assets/
Static assets bundled with LEDMatrix. Do not delete these directories — several look unused from core code alone but are resolved at runtime by installed store plugins.
| Directory | Used by |
|---|---|
fonts/ |
Core (FontManager, DisplayManager) and most plugins |
sports/ |
Core logo tooling (src/logo_downloader.py) and the sports scoreboard plugins; team logos are downloaded here on demand |
stocks/ |
ledmatrix-stocks plugin (crypto_icons/, ticker_icons/) |
weather/ |
ledmatrix-weather plugin (weather icons) |
news_logos/ |
news plugin |
broadcast_logos/ |
news and odds-ticker plugins |
static_images/ |
Legacy examples referenced in the static-image plugin's docs; the plugin itself stores uploads under assets/plugins/<plugin-id>/uploads/ |
plugins/ |
Per-plugin uploaded files (assets/plugins/<plugin-id>/uploads/), served by the web interface |
Plugins resolve these paths relative to the LEDMatrix install directory, so the directories are part of the de-facto plugin API even where no file in this repo references them. New plugins should bundle their own assets or use the per-plugin upload directory instead of adding top-level directories here.