CYD ESP32-2432S028
by Sunton
ESP32 board with 2.8" LCD display - perfect for small dashboards, IoT terminals, and HMI projects.

On this page
CYD ESP32-2432S028 Pinout
29 pins| Pin | GPIO | Labels | Status | Capabilities | Notes |
|---|---|---|---|---|---|
| 1 | - | VIN5V | power | - | On P1 serial connector; 5V from USB |
| 2 | - | 3V33.3V | power | - | On CN1 connector; 3.3V output |
| 3 | - | GND | ground | - | Ground; present on the P1, P3 and CN1 connectors |
| 4 | 1 | IO1GPIO1TX | uart | uart | On P1 serial connector; U0TXD wired to the CH340 USB-serial chip (repurposing disables USB serial) |
| 5 | 3 | IO3GPIO3RX | uart | uart | On P1 serial connector; U0RXD wired to the CH340 USB-serial chip |
| 6 | 21 | IO21GPIO21 | safe | i2c · pwm | On P3 connector; also drives the TFT backlight (held high while the backlight is on) |
| 7 | 22 | IO22GPIO22 | safe | i2c · pwm | On both P3 and CN1 connectors; the one fully-free general-purpose GPIO |
| 8 | 35 | IO35GPIO35 | strapping | adc | On P3 connector; input-only (ADC1), no output and no internal pull-ups |
| 9 | 27 | IO27GPIO27 | safe | adc · touch · i2c · pwm | On CN1 connector; free GPIO, commonly paired with GPIO22 for I2C |
| 10 | 0 | IO0GPIO0BOOT | control | adc · touch | BOOT button (GPIO0); strapping pin, usable as an input |
| 11 | 2 | strapping | - | TFT data/command (RS) on the ILI9341 display; not free | |
| 12 | 12 | strapping | - | TFT MISO (HSPI) on the ILI9341 display; not free, and a strapping pin | |
| 13 | 13 | strapping | - | TFT MOSI (HSPI) on the ILI9341 display; not free | |
| 14 | 14 | strapping | - | TFT SCK (HSPI) on the ILI9341 display; not free | |
| 15 | 15 | strapping | - | TFT chip select on the ILI9341 display; not free, and a strapping pin | |
| 16 | 25 | safe | - | Touch clock on the XPT2046 controller; not free | |
| 17 | 32 | safe | - | Touch MOSI on the XPT2046 controller; not free | |
| 18 | 33 | safe | - | Touch chip select on the XPT2046 controller; not free | |
| 19 | 36 | strapping | - | Touch interrupt (IRQ) on the XPT2046 controller; input-only, not free | |
| 20 | 39 | strapping | - | Touch MISO on the XPT2046 controller; input-only, not free | |
| 21 | 5 | strapping | - | microSD chip select (VSPI); free only when the card slot is unused, and a strapping pin | |
| 22 | 18 | safe | - | microSD clock (VSPI); free only when the card slot is unused | |
| 23 | 19 | safe | - | microSD MISO (VSPI); free only when the card slot is unused | |
| 24 | 23 | safe | - | microSD MOSI (VSPI); free only when the card slot is unused | |
| 25 | 4 | safe | - | Red leg of the onboard RGB LED; drives it LOW (common anode) | |
| 26 | 16 | safe | - | Green leg of the onboard RGB LED; drives it LOW (common anode) | |
| 27 | 17 | safe | - | Blue leg of the onboard RGB LED; drives it LOW (common anode) | |
| 28 | 26 | safe | - | Speaker output; drives the 8002A amplifier feeding the P4 socket (DAC2) | |
| 29 | 34 | strapping | - | LDR light sensor; input-only (ADC1) |
Start with these
3 pins with no boot or system involvementFreely assignable - no strapping, flash, USB or JTAG duties. Ideal first picks for buttons, sensors and LEDs.
Fine - with a little care
13 pins · 8 things to knowIO1 Default UART0 TX pin for USB-serial programming and console. UART
Connected to on-board USB-UART for uploading and logs; drives serial output at boot, so using as GPIO can disrupt programming or console.
IO3 Default UART0 RX pin for USB-serial programming (console input). UART
Used for receiving data from USB-UART (programming); also pulled HIGH at boot for console communication, so using as GPIO can disrupt uploads.
IO35 Input-only GPIO (no output driver); ADC1 channel 7. Other
Cannot be used as output; only suitable for input.
IO0 Bootstrapping pin (enter bootloader when low); internal pull-up. Strapping
Must be HIGH during boot for normal startup; if held LOW on reset, forces flash programming mode.
GPIO5GPIO18GPIO19GPIO23 Used by the microSD card slot onboard hardware
Wired to the microSD card slot on this board. The pin is yours if you give that up, but nothing else can share it.
- microSD chip select (VSPI); free only when the card slot is unused, and a strapping pin
- microSD clock (VSPI); free only when the card slot is unused
- microSD MISO (VSPI); free only when the card slot is unused
- microSD MOSI (VSPI); free only when the card slot is unused
GPIO4GPIO16GPIO17 Used by the onboard RGB LED onboard hardware
Wired to the onboard RGB LED on this board. The pin is yours if you give that up, but nothing else can share it.
- Red leg of the onboard RGB LED; drives it LOW (common anode)
- Green leg of the onboard RGB LED; drives it LOW (common anode)
- Blue leg of the onboard RGB LED; drives it LOW (common anode)
GPIO26 Speaker output; drives the 8002A amplifier feeding the P4 socket (DAC2) onboard hardware
Wired to the speaker amplifier on this board. The pin is yours if you give that up, but nothing else can share it.
GPIO34 LDR light sensor; input-only (ADC1) onboard hardware
Wired to the LDR light sensor on this board. The pin is yours if you give that up, but nothing else can share it.
Only if you know the tricks
10 pins · 2 things to knowGPIO2GPIO12GPIO13GPIO14GPIO15 Used by Display (ILI9341) onboard hardware
Wired to Display (ILI9341) on this board, which is soldered down. Driving it from your own code breaks that function.
- TFT data/command (RS) on the ILI9341 display; not free
- TFT MISO (HSPI) on the ILI9341 display; not free, and a strapping pin
- TFT MOSI (HSPI) on the ILI9341 display; not free
- TFT SCK (HSPI) on the ILI9341 display; not free
- TFT chip select on the ILI9341 display; not free, and a strapping pin
GPIO25GPIO32GPIO33GPIO36GPIO39 Used by the touch controller (XPT2046) onboard hardware
Wired to the touch controller (XPT2046) on this board, which is soldered down. Driving it from your own code breaks that function.
- Touch clock on the XPT2046 controller; not free
- Touch MOSI on the XPT2046 controller; not free
- Touch chip select on the XPT2046 controller; not free
- Touch interrupt (IRQ) on the XPT2046 controller; input-only, not free
- Touch MISO on the XPT2046 controller; input-only, not free
The CYD ESP32-2432S028 breaks out 29 pins in total: 25 GPIO for your project, with VIN, 3V3 and GND handling power.
Peripheral wiring is straightforward: TX/RX on GPIO1 and GPIO3 cover serial logging and flashing.
Beyond plain digital I/O you get 2 ADC-capable pins for sensors and battery monitoring, PWM on 3 pins and 1 capacitive-touch inputs.
13 of the exposed pins carry boot-time or system duties on the ESP32 (IO1, IO3, IO35 and 10 more) - check the guidance above before wiring anything to them. IO21, IO22 and IO27 are free of any such role - the safest first picks.
Getting started
flash your first firmware in ~2 minutesBoard: ESP32 Dev Module Flash Size: 4MB (32Mb) Flash Mode: DIO Partition Scheme: Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS) Upload Speed: 921600
// toggle GPIO21 - wire an LED and resistor to it
void setup() {
pinMode(21, OUTPUT);
}
void loop() {
digitalWrite(21, HIGH); delay(500);
digitalWrite(21, LOW); delay(500);
}[env:cyd-esp32-2432s028]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
upload_speed = 921600esp32dev - or type it after board =.esp32:
board: esp32dev
variant: esp32
framework:
type: esp-idf
# blink - GPIO21
output:
- platform: gpio
pin: 21
id: led_out
light:
- platform: binary
name: "LED"
output: led_outesp32dev (same ids as PlatformIO).esptool.py --chip esp32 --port /dev/ttyACM0 \
--baud 921600 write_flash 0x1000 firmware.bin--port = your /dev/tty* (macOS/Linux) or COMx (Windows).Downloads
Free for non-commercial use, credit espboards.dev · LicenseBoard illustration
The bare CYD ESP32-2432S028 board drawn to scale at 86 × 50 mm, with no pin labels on it. Made for slide decks, wiring diagrams and project write-ups where a photo is too busy. Take the scalable SVG for print or editing, the high-resolution PNG to drop straight in, or the transparent PNG when you need it with no background behind it.
Pinout diagram
Every pin on both sides of the board with its functions, drawn by ESPboards from the ESP32 Series Datasheet v5.3 - the same sheet shown at the top of this page. The PNG is a high-resolution image for screens, the SVG is vector so it stays sharp at any size, and the PDF is laid out to print on A4 or Letter.
Yours to use, share and adapt for non-commercial work, as long as you credit espboards.dev - the full terms and ready-made credit lines are here.
Specifications
ESP32 · 86 × 50 mm · vs other ESP32 chips →Dimensions

About this board
Inside sits the ESP32 - a dual-core Xtensa with both Bluetooth Classic and BLE. Sibling CYD boards cover the ESP32-S3 and ESP32-C3, so you can change radios or horsepower without changing the footprint.
At $10.49 it's cheaper than most CYD boards, which usually run around $22.
Around the module: a TFT 2.8" 240x320 display with touch, a microSD slot, a speaker connector, an ambient-light sensor and Reset/Boot buttons.
- ILI9341 TFT driver on most units; some later batches ship with an ST7789
- Discrete active-low RGB LED (GPIO4 red, GPIO16 green, GPIO17 blue) - not addressable
- Onboard SC8002B audio amplifier with a 2-pin JST speaker connector on GPIO26
- LDR ambient-light sensor on GPIO34
- TFT backlight control on GPIO21
- Original revision has a single Micro-USB port; the newer CYD2USB revision adds a USB-C port (both via CH340)
Where to buy
prices are typical street prices
Resources
Similar boards
All Cyd boards →




