Complete icon map: Bluetooth (f13 bit3) and battery (f13 bit4) with °C composition
- probed f[13] on blank panel: bit3=Bluetooth, bit4=battery icon, 0x05=°C, 0x06=°F, bits5-7 unused - combos verified live: 0x0D (°C+BT), 0x15 (°C+bat), 0x1D (°C+BT+bat) - add ICON_* constants to temphummon.c; restore as active build - update PROJECT_MEMORY.md with complete f[13] icon table
This commit is contained in:
parent
d9bac7cf28
commit
b5cf59b39a
3 changed files with 77 additions and 58 deletions
|
|
@ -93,19 +93,29 @@ All three are **bit 5 (0x20) of the SECOND byte of the pair**, matching the manu
|
|||
| **Decimal point (bottom)** | `f[8]` | bit 5 (0x20) | after bottom-line **ones** → `88.8` |
|
||||
| **% sign (humidity)** | `f[10]` | bit 5 (0x20) | after bottom-line **tenths** → `88.8%` |
|
||||
|
||||
### Bluetooth / power icons (probed — NOT found, likely multi-bit or unpopulated)
|
||||
### Bluetooth / power icons (FOUND! 🎯 — in f[13], not a special byte)
|
||||
|
||||
A single-bit probe of the remaining frame bytes (0 bits5-7, 4/8/10 bits 4/6/7,
|
||||
14 all) found **no standalone Bluetooth or battery/power icon**. Bits found:
|
||||
- byte 0 bit7 → a cross-wired glyph dot (top-ones region)
|
||||
- byte 4 bit7 → a cross-wired glyph dot (bottom-ones region)
|
||||
- byte 8 bit4 → caused an **I²C hardware timeout**
|
||||
- most other candidate bits → blank
|
||||
All status icons live in **`f[13]`**, the same byte as the °C/°F letter. The
|
||||
manual's "3rd and 4th position on the 13th bit" = bits 3 and 4 of `f[13]`.
|
||||
Probing on a blank panel confirmed each bit, and combos compose cleanly.
|
||||
|
||||
The Waveshare reference code does NOT drive any Bluetooth/power icon, and the
|
||||
IST7134 datasheet doesn't name one either. Conclusion: if the icons exist on
|
||||
the glass they are **multi-bit patterns** (like °C = 0x05), not a simple single
|
||||
bit reachable by a bare frame write — not worth more bench time. Cosmetic only.
|
||||
| f[13] value | Bits | Displays |
|
||||
|:---|:---|:---|
|
||||
| `0x01` | bit0 | part of C letter (standalone = black-control risk) |
|
||||
| `0x02` | bit1 | degree sign ° line |
|
||||
| `0x04` | bit2 | C/F letter strokes |
|
||||
| **`0x05`** | bits0+2 | **°C** (degree + C) |
|
||||
| **`0x06`** | bits1+2 | **°F** (per manual) |
|
||||
| **`0x08`** | bit3 | **Bluetooth icon** |
|
||||
| **`0x10`** | bit4 | **Battery/power icon** |
|
||||
| **`0x0D`** | 0x05+0x08 | °C + Bluetooth |
|
||||
| **`0x15`** | 0x05+0x10 | °C + battery |
|
||||
| **`0x1D`** | 0x05+0x08+0x10 | **°C + Bluetooth + battery** |
|
||||
| bits 5-7 | — | unused |
|
||||
|
||||
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.)
|
||||
|
||||
### Verified glyph segment map (from probing)
|
||||
|
||||
|
|
@ -273,7 +283,7 @@ nix run .#flash
|
|||
- [x] **Port Waveshare digit lookup table** — all 10 digits (0–9) verified working on the display
|
||||
- [x] **Internal temperature sensor** — reads ESP32-H2 internal temp sensor, shows on display line 1, updates every 1s
|
||||
- [x] **Find decimal point & % bits** — probing session mapped them: `f[4]/f[8]` bit5 = decimals, `f[10]` bit5 = %
|
||||
- [~] **Power/Bluetooth icons** — single-bit probe found no standalone icon bits; likely multi-bit patterns or unpopulated (cosmetic, deprioritized)
|
||||
- [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`
|
||||
- [ ] **Implement Matter cluster** — temperature and humidity measurement clusters
|
||||
|
|
|
|||
Loading…
Reference in a new issue