In this video I show how I finally got two displays working simultaneously on the M5Stack Cardputer-Adv (ESP32-S3) — the built-in 240×135 screen and an external ILI9488 480×320 display.
This turned out to be a much harder challenge than expected.
Using the same library (M5GFX) for both screens caused SPI conflicts, crashes, and the internal display would completely stop working after the external one was initialized.
The breakthrough came from a great tip by Hobby Support — thanks again!
The solution is a hybrid setup:
• TFT_eSPI for the external ILI9488 screen (SPI3_HOST/HSPI)
• M5Cardputer / M5Unified for the built-in display (SPI2_HOST/FSPI)
• Each display uses its own SPI bus (different SPI hosts prevent conflicts)
• Critical: The external display must be initialized FIRST
With this approach both screens become fully independent and can draw different content at the same time.
In my dashboard example:
• The big screen shows complex UI elements like weather, clock, or crypto widgets (LVGL)
• The small screen shows quick info like time or temperature (M5GFX)
This dual-display setup makes it possible to create much more advanced UIs, dashboards, and multi-screen layouts on the Cardputer-Adv.
---
📚 Full documentation and code examples:
https://github.com/AndyAiCardputer/zx-spectrum-cardputer-external/discussions/1https://github.com/AndyAiCardputer/zx-spectrum-cardputer-external/discussions/2 🔧 Libraries used:
- TFT_eSPI v2.5.43+
- M5Cardputer/M5Unified
- LVGL v9.4.0
#M5Stack #CardputerAdv #ESP32 #DualDisplay #ILI9488 #TFT_eSPI #LVGL #Arduino #PlatformIO