MaTouch ESP32-S3 1.28-inch Rotary Display: GC9A01 Arduino Setup
Set up the MaTouch 1.28-inch rotary screen, use the correct GC9A01 SPI demo and troubleshoot touch, encoder and microSD.
On this page
Confirm the exact rotary displayPrepare a recoverable first setupUse the matching manufacturer demoCheck the hardware mappingTest the four functions separatelyMove to LVGL and a custom interfaceTroubleshootingDownloads, references and validationCompatible product and related tutorials
Confirm the exact rotary display
This guide covers the MaTouch ESP32-S3 1.28-inch rotary display. Begin with the printed model, not just “round ESP32 screen.” The 2.1-inch rotary model uses a different display path and firmware configuration. Uploading its example can leave a perfectly powered screen blank.
| Item | Documented hardware |
|---|---|
| Panel | 240 × 240 GC9A01 over SPI |
| Memory | 16 MB flash / 8 MB PSRAM |
| Inputs | Capacitive touch, rotary encoder and press action |
| USB | Native USB-C; begin with 5 V USB power |
| Storage | MicroSD slot; card capacity/inclusion depends on package |
Prepare a recoverable first setup
Use a data-capable USB-C cable and the board alone. Save existing custom firmware/source before replacing it. The screen, encoder and touch panel are connected on the PCB; no external sensor wiring is needed. If the application prevents normal USB detection, use the board’s FLASH/RESET sequence to enter download mode and then select the boot port.
Use the matching manufacturer demo
- Download the 1.28-inch GC9A01 manufacturer repository and keep the whole
example/fw_testfolder, including its local headers. - Use the manufacturer’s documented legacy baseline: ESP32 core 2.0.8/2.0.10, GFX Library for Arduino 1.3.1 and JPEGDEC 1.2.8. SD, FS, SPI and Wire come from the board package. Keep this in a separate environment from newer core projects.
- Select ESP32S3 Dev Module, 16 MB flash, OPI PSRAM and the native USB upload port/settings used by the example.
- Prepare a compatible FAT-formatted microSD card and copy
logo_240240.jpgfrom the example to the root. Insert it with power removed. - Open
fw_test.ino, compile, upload, then reset. The manufacturer test stops at an SD error if it cannot mount the card.
Check the hardware mapping
| Signal / resource | Check |
|---|---|
| LCD CS / DC / clock | GPIO15 / 21 / 14 |
| LCD MOSI / MISO / reset / backlight | GPIO13 / 12 / 11 / 7 |
| Encoder A / B and press | GPIO9 / 10 and GPIO6 |
| Touch SDA / SCL | GPIO38 / 39 |
These details belong to the linked manufacturer example, not every round display sold under an ESP32-S3 name. Keep the repository’s touch source with the sketch and check the PCB revision before changing driver settings.
Test the four functions separately
- Display: verify a full colour/image test without missing areas.
- Touch: test the centre and edges; note whether coordinates follow screen rotation.
- Encoder: rotate slowly in each direction and verify the expected count or progress change.
- Press: press and release once, checking that it produces one intended state change.
Record which functions pass before editing your user interface. A successful upload message only establishes a software transfer; it does not establish that touch and display drivers match the board.
Move to LVGL and a custom interface
Once the SPI factory demo works, choose an LVGL example that explicitly targets the 240 × 240 GC9A01 rotary board. Set the LVGL major version, display rotation and input handlers to match that example. A SquareLine export alone does not supply a correct hardware driver.
The manufacturer demos use older ESP32/GFX APIs. A current 3.x core or a different GFX release may require a port; changing every dependency at once makes errors hard to isolate. Preserve a working legacy environment while testing that migration.
Troubleshooting
| Symptom | Next check |
|---|---|
| Blank screen after upload | Correct model, panel driver, backlight setup and USB power |
| SD ERROR | FAT card, file path and SD wiring from the example |
| GFX constructor does not match | The example and installed GFX library API versions |
| Touch/encoder fails independently | Matching local headers, PCB version and input configuration |
Downloads, references and validation
Use the manufacturer source package linked below; firmware must match the model and PCB revision.
Reviewed 21 October 2026. The setup workflow was checked against manufacturer documentation; the display or radio firmware has not been built or bench-tested for this article.
Compatible product and related tutorials
Share the product link, hardware revision, software version and any error messages.
Contact ESP32S support →