ESP32 Hardware Overview
The target is the Waveshare ESP32-S3-Touch-AMOLED-1.75 product family.

Final hardware/software stack
- MCU
- ESP32-S3R8Dual-core 240 MHz; physical board rev 0.2
- PSRAM
- 8 MiB Octal80 MHz; dual canvases and runtime assets
- Flash
- 16 MiB QIO80 MHz; 8 MiB factory-app partition
- AMOLED
- CO53001.75-inch, 466×466, QSPI, RGB565
- Touch
- CST9217466×466 single-pointer path with dedicated INT / RST
- IMU
- QMI8658Six-axis, I²C 0x6B, 33 ms sampling
- RTC
- PCF85063I²C 0x51, backup power and trusted offline time
- PMIC
- AXP2101I²C 0x34, fuel gauge and software shutdown
- Audio
- ES8311 + NS4150B22.05 kHz mono; external speaker
- USB
- Native Serial/JTAGD-/D+ = GPIO19/20, flashing and debugging
- Storage
- microSD1-bit SDMMC; deliberately unmounted in this phase
- Framework
- ESP-IDF 5.5.4Waveshare BSP 3.0.1 + LVGL 9.4.0
Migration result
- Native three-page game, economy, saves, offline rewards, circular layout and single-pointer gestures.
- v6 packed 111 frames/sprites and 358 glyphs into 602,708 bytes; v7 grew to 125 non-font frames and 710,740 bytes.
- Two 466×466 RGB565 PSRAM canvases consume 868,624 bytes and separate rendering from display submission.
- Six fixed v6 states achieved 100% palette-pixel agreement between browser Canvas and C++ output.
- v6 idle measured 29.6–29.8 FPS; v7 ordinary QA measured 29.2–29.3 FPS, while the current complex save measures 26.2–26.7 FPS.
- RTC/NVS, QMI8658, CST9217, AXP2101, ES8311/PA and PWR all have on-device evidence.
Firmware architecture
text
Board services
├─ CO5300 / LVGL display flush
├─ CST9217 touch IRQ
├─ QMI8658 IMU task
├─ PCF85063 trusted clock
├─ AXP2101 + TCA9554 PWR
└─ ES8311 / I2S / NS4150B
Game application
├─ GameCore pure state + economy
├─ InteractionContract pointer transactions
├─ GameRenderer 466×466 RGB565
├─ GameEffects authored FX + particles
├─ Persistence schema + primary/backup
└─ PresentationPolicy full / reduced / ambientNot “the website flashed onto a board”
The ESP32 does not run HTML, TypeScript, Canvas or WebGL. The web prototype is a behavioral and pixel golden reference. Firmware reimplements the same pure logic, geometry thresholds, assets and output with FreeRTOS, PSRAM, NVS, I²C and a native display driver.
Module navigation
Interactive hardware mapExplore display, PWR, IMU, PMIC, RTC and other hotspots.Migration processFrom hardware lock and bring-up to visual and device sign-off.Display pipelineRGB565, dual canvases, dirty regions and LVGL flush.Frame-rate optimizationThe evidence chain from 18 FPS to nearly 30 FPS.Power & PWRBattery, standby, synchronous save and safe shutdown.Validation boundaryAutomation, device logs and what still requires eyes and hands.
