4.1 KiB
4.1 KiB
2.8inch ESP32-S3 Display
See this reference info. Sold under
different brand names - this is the same board as Hosyond's 2.8" ESP32-S3 display, whose
pins are already defined as ESP32S3HosyondDisplay in
arduino-audio-driver
(that header is the source of truth for the pins below).
Hardware
- MCU: ESP32-S3
- Display: 2.8", 240x320, ILI9341 (4-wire SPI)
- Touch: FT6336G capacitive, I2C (shares the codec's I2C bus)
- Audio: ES8311 codec + FM8002E speaker amp + on-board MEMS microphone
- Storage: microSD, 4-bit SDIO (not SPI)
- Other: WS2812 RGB LED (
IO42), battery voltage ADC (IO9), 4 spare GPIO pins broken out on a header
Pins
| Function | Pins |
|---|---|
| LCD SPI | CS=10, DC=46, SCK=12, MOSI=11, MISO=13, RST=shared with EN, BL=45 |
| Touch I2C (FT6336G) | SDA=16, SCL=15, RST=18, IRQ=17 |
| Codec I2C (ES8311) | SDA=16, SCL=15 (same bus as touch) |
| Codec I2S | MCLK=4, BCK=5, WS=7, DOUT=8, DIN=6 |
| PA enable (FM8002E) | IO1, active low |
| SD (4-bit SDIO) | SCK=38, CMD=40, D0=39, D1=41, D2=48, D3=47 |
Examples
All confirmed working on real hardware (2026-08-18) unless noted otherwise.
audio-out- sine wave playback through the ES8311/FM8002E speaker path, viaAudioBoardStream(ESP32S3HosyondDisplay). Confirmed audible.audio-in- reads the on-board MEMS mic through the ES8311's ADC path and prints PCM samples to Serial as CSV. Confirmed real signal.sd-test- brings up the microSD card over 4-bit SDIO (SD_MMC), writes/reads a test file and lists the root directory. Confirmed.lcd-test- TinyGPU-based RGB/greyscale color diagnostic for the ILI9341 panel, with tap-to-switch via the FT6336G touch controller. Colors confirmed correct (see the display-inversion note below). Touch confirmed working (an initial "chip ACKs but reports zero touches" symptom turned out to be the touch panel's FPC connector not being fully seated, not a code/driver issue - reseating it fixed it).led-test- cycles the single WS2812-compatible RGB LED (IO42) through red/green/blue/white/off. Confirmed working.player-sdmmc- MP3 playback straight off the microSD card (AudioSourceSDMMC+MP3DecoderHelix) through the ES8311/FM8002E speaker path. Confirmed audible.
Gotchas found while bringing these up
- This board needs
CDCOnBoot=cdc(Arduino IDE: Tools > USB CDC On Boot > Enabled). It defaults to Disabled, which mapsSerialto the UART0 header pins instead of the native USB port the board is actually plugged in through - everySerial.print/printfcall silently goes nowhere, while ESP-IDF's own[INFO]/E (...)log lines still show up (they go via the USB-Serial-JTAG peripheral regardless), which is a confusing split to debug if you don't know to look for it. - The ILI9341 panel needs display inversion enabled
(
tftDriver.writeCommand(0x21);right afterdisplay.begin()inlcd-test.ino) or every color renders as its photographic negative (RED shows as cyan, GREEN as magenta, BLUE as yellow) - a common ILI9341-clone quirk, not a wiring or driver bug.
Dependencies
- arduino-audio-tools
- arduino-audio-driver
(
audio-out,audio-in,player-sdmmc) - TinyGPU (
lcd-test) - Adafruit_NeoPixel
(
led-test) - codec-helix
(
player-sdmmc, MP3 decoding)
