Repository navigation
v0.3 - Add GDDR6 memory temperature monitoring
Add GDDR6 memory temperature monitoring
Adds optional GDDR6 memory temperature monitoring for BC-250, based on pan-Rijovich/bc250-memory-temperature (MIT, see memory/UPSTREAM.md).
How it works: a separate root service (bc250-memory.service) patches SMU at startup and polls all 8 GDDR6 chips every 3s, writing a small snapshot file. The main apu_telemetry daemon validates and folds that snapshot into the existing /run/apu_telemetry.json / /api/telemetry output as a memory object — no JSON parser needed on the daemon side. All SMU/firmware-patching code stays isolated in the separate service; the always-privileged daemon only ever reads a plain text file.
What's included:
memory/— the SMU patch/collector service (Python, stdlib only), with platform/payload validation and a per-boot operation guard against retrying a wedged SMUmemory_telemetry.h— parses and validates the collector's snapshot (bounds-checked, degrades tounavailable/staleon any anomaly)- Installer:
--memory-temp/--no-memory-tempflags + interactive prompt, uninstall cleanup - Dashboard v2: memory panel with per-chip readings, board halos, hotspot/average, hidden entirely when the service isn't installed
- Dashboard v1 (classic): compact GDDR6 row + per-chip grid in "Other sensors"
- MangoHud / CoolerControl: hotspot + average exposed via
/run/bc250/memory_* - Tests:
tests/test_memory.py(offline, fake SMU/PCI/DMA),tests/test_v2_memory.js
Fully optional and backward-compatible: the memory field is always present in the API; when the collector isn't installed, both dashboards simply hide the panel instead of showing an empty widget.
Full Changelog: v0.2.0...v0.3