Skip to content

ESP32 Hardware Overview

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

Waveshare ESP32-S3-Touch-AMOLED-1.75 hardware detail

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 / ambient

Not “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