Search › A-Z › E › ESP32-S3 Round AMOLED Emulator
ESP32-S3 Round AMOLED Emulator
This is an original emulator for the Waveshare ESP32-S3-Touch-AMOLED-1.75C, a round 1.75 inch AMOLED on an ESP32-S3, written from scratch in C. It runs the board's real firmware binary unchanged: the same image you flash to the device, booted from the chip's reset vector through the mask ROM and the second-stage bootloader into the app, with the picture it draws coming out on a canvas.
The interesting part is the display. The panel is a CO5300 with its own frame memory, driven over QSPI, so the emulator follows the pixels all the way through the chip: it walks the SPI2 peripheral's DMA descriptor chain, decodes the CO5300 command set (the column and row window, then the RGB565 pixels of a write-memory command) and writes them into a 466x466 frame buffer that is the panel's memory. The two Xtensa LX7 cores, the register windows, the memory map, the flash controller and the system timer are all modelled, so the firmware boots exactly as on silicon.
For comparison, the same binary also boots under the Espressif fork of QEMU, which models the chip and the PSRAM but has no CO5300 or QSPI display, so it reaches the app and then stops at the first panel command with no picture. The full write-up, with the CPU registers, the boot, the screen and the storage, is on lewpen.com.
Runs on: macOS. A clock written for the board also runs in your browser ↗, drawing through the same CO5300 panel model.