diff --git a/PROJECT_MEMORY.md b/PROJECT_MEMORY.md index b46ec49..9a1884b 100644 --- a/PROJECT_MEMORY.md +++ b/PROJECT_MEMORY.md @@ -117,6 +117,17 @@ All compositions verified live on the panel. (The earlier "no icon found" conclusion was wrong - the icons were in f[13] bits 3/4, which the first probe had not isolated.) +### Planned status-icon behavior (for future battery + Matter work) + +- **Battery icon** (`f[13]` bit4, 0x10): to turn ON when the device battery + is **nearly empty** (low-battery warning). Requires adding a battery/gas- + gauge circuit (e.g. ADC divider on VBAT, or an I²C fuel gauge) later. +- **Bluetooth icon** (`f[13]` bit3, 0x08): to turn ON when the **Matter/ + Thread network join/connection is successful**, OFF when not connected. + Requires the Matter cluster + OpenThread bring-up (see TODO). +- Both compose with °C via OR: `f[13] = ICON_DEGC | (low_bat ? ICON_BAT : 0) | + (matter_ok ? ICON_BT : 0)` once those signals exist. + ### Verified glyph segment map (from probing) For a digit byte-pair, the **first byte** = left column + horizontal bars, the @@ -285,7 +296,8 @@ nix run .#flash - [x] **Find decimal point & % bits** — probing session mapped them: `f[4]/f[8]` bit5 = decimals, `f[10]` bit5 = % - [x] **Find Bluetooth & battery icons** — `f[13]` bit3 = Bluetooth, bit4 = battery; combos with °C work (0x0D/0x15/0x1D) - [ ] **Add humidity sensor** — wire up an external I²C sensor (SHT40, BME280, etc.) and show on display line 2 -- [ ] **Configure Matter/Thread** — enable OpenThread / Matter components in `sdkconfig` +- [ ] **Add battery + low-battery icon** — battery circuit/gauge; drive `f[13]` bit4 (battery icon) when nearly empty +- [ ] **Configure Matter/Thread** — enable OpenThread / Matter components in `sdkconfig`; drive `f[13]` bit3 (Bluetooth icon) on successful join - [ ] **Implement Matter cluster** — temperature and humidity measurement clusters - [ ] **Implement low-power operation** — deep sleep between measurements