Audio, Touch & Peripherals
Audio chain
GameEvent
→ presentation policy
→ bounded audio queue
→ PCM cue @ 22.05 kHz mono 16-bit
→ I2S TX
→ ES8311 codec
→ NS4150B PA (GPIO46)
→ MX1.25 2Pin external speakerAudio runs in a separate queue so PCM cannot block UI. Policy can silence cues in ambient and constrain device sequences; volume 0–100 maps to legal register steps.
Software evidence covers codec open, I²S, volume register, PA latch/OE and PCM write. The operator separately confirmed sound after the fix because logs alone cannot prove acoustic pressure.
Touch
CST9217 checkcode 0x204ECACA, ProjectID 0x5734 and 466×466 range were read on hardware. The game only needs a single pointer, so the BSP IRQ path is sufficient.
Captured evidence covers center down/up, exactly one CORE_ACTION, cancellation after 12 px and an r≈232 edge down. Long-hold, SHOP orbit and STAR confirmation feel remain continuous-play human checks.
USB Serial/JTAG
- esptool auto-reset and 460800-baud flash.
- Bootloader, partition and app hash verification.
- Serial markers for hardware, save, FPS and fault evidence.
- OpenOCD halt/resume.
microSD and microphone
1-bit SDMMC and ES7210 microphone capability exist, but the game does not mount or consume them. BOM capability is not claimed as delivered behavior.
No vibration motor
The web can call navigator.vibrate; the device has no motor and does not fake one. Critical feedback always has visual/text equivalents, with sound and haptics only enhancements.
