Project_SylDa/docs/superpowers/specs/2026-08-01-hs-s43a-touch-migration-design.md

52 lines
2.9 KiB
Markdown

# Design: Touch sensor HS-S43A migratie + S3R referenties opruimen
> **Issue:** [#5](https://git.eddydevink.nl/eddy/Project_SylDa/issues/5) — Verwijder internal pullups voor touch sensors
> **Datum:** 2026-08-01
## Aanleiding
De touch sensoren zijn vervangen van JR223B (open collector/drain, heeft pullup nodig) naar **HS-S43A** (digitale output 0/1, actief = HIGH, geen pullup). Daarnaast bevat de documentatie verouderde verwijzingen naar "Atom S3R Voice" — de hardware is inmiddels **M5Stack Atom S3 Lite** (board `esp32-s3-devkitc-1`).
## Wijzigingen
### 1. Firmware: pullup verwijderen + schakellogica inverteren
Beide firmwares hebben identiek patroon, 2 regels per file:
| Bestand | Locatie | Huidig | Nieuw |
|---------|---------|--------|-------|
| `src/main.cpp` | `pinMode(TOUCH1/2_PIN, ...)` | `INPUT_PULLUP` | `INPUT` |
| `src/main.cpp` | `digitalRead(TOUCH1/2_PIN) == LOW` | `== LOW` | `== HIGH` |
| `src/client.cpp` | `pinMode(TOUCH1/2_PIN, ...)` | `INPUT_PULLUP` | `INPUT` |
| `src/client.cpp` | `digitalRead(TOUCH1/2_PIN) == LOW` | `== LOW` | `== HIGH` |
**Rationale:** JR223B met pullup → normaal HIGH, aanraking trekt naar LOW. HS-S43A → actieve digitale output, aanraking = HIGH.
Debounce (`DEBOUNCE_MS=50`) blijft ongewijzigd — HS-S43A is stabieler, bestaande debounce is ruim voldoende.
### 2. Documentatie: S3R → S3 Lite
Alle 27 verwijzingen naar "S3R", "AtomS3R", "Atom VoiceS3R", "Atom S3R Voice", "m5stack-atoms3r" in 8 bestanden:
| Bestand | Aanpassing |
|---------|------------|
| `AGENTS.md` | Board: S3R Voice → S3 Lite. Flash commando pad: `m5stack-atoms3r` → `s3lite-server`. Touch: G8+pullup → G8, G6+pullup → G6 |
| `README.md` | Board spec, serial banner, pin-doc: S3R → S3 Lite |
| `.forgejo/workflows/ci.yml` | Build output pad: `m5stack-atoms3r` → `s3lite-server` |
| `tools/copy_firmware.sh` | Build output pad: `m5stack-atoms3r` → `s3lite-server` |
| `docs/superpowers/specs/2026-07-28-esp32-pico-d4-port-design.md` | Contextuele S3R verwijzingen — doel/resultaat beschrijvingen intact laten, alleen boardnaam corrigeren |
| `docs/superpowers/plans/2025-07-31-sylda-nimble-hmac-plan.md` | 1 match: comment over S3R pinmap |
| `docs/superpowers/plans/2026-07-30-ble-ota.md` | Build output pad: `m5stack-atoms3r` → `s3lite-server` |
| `docs/superpowers/plans/2025-07-28-esp32-pico-d4-port.md` | Meerdere referenties naar S3R — historische context behouden, boardnaam corrigeren |
| `docs/superpowers/plans/2026-07-28-esp32-pico-d4-port.md` | Build output pad + serial banner referenties |
### 3. Risico's
- **Geen rollback zonder herflashen** — na flashen werkt JR223B niet meer.
- **Beide devices flashen** — server + client(s) moeten gesynchroniseerd zijn.
- **Geen runtime-switch** tussen sensortypes — YAGNI.
## Niet in scope
- Geen wijzigingen aan BLE-protocol, HMAC, OTA, of Android app.
- Geen configuratie-mechanisme voor sensortype.