CYD

About the CYD (Cheap Yellow Display)

A complete guide to the CYD family — variations, hardware, pinout, software stack, and references.

What is a CYD?

The Cheap Yellow Display (CYD) is the popular community name for ESP32-based boards that combine a microcontroller with a colour TFT touchscreen in one unit. The best-known model is the ESP32-2432S028 (2.8″ screen, 240×320), but several variations exist — different screen sizes, touch technologies, and connectors. They share the same appeal: build dashboards, status displays, and control panels without wiring a separate screen.

Because the display and ESP32 are on one board, you can build a full GUI device (e.g. a Home Assistant monitor) by flashing firmware and connecting to Wi‑Fi — no soldering or complex wiring required. You can buy a CYD on Amazon and be up and running the same day.

CYD variations

Not all “CYD-style” boards are identical. When buying or configuring a CYD, check these aspects — they affect compatibility with cases, cables, and firmware (including this site’s config generator).

Screen size and resolution

Boards are sold in different physical sizes and resolutions. Model numbers often encode size (e.g. S028 ≈ 2.8″, S035 ≈ 3.5″). Common variants:

  • 2.4″ — Smaller, often 240×320; some use ILI9341 or ST7789.
  • 2.8″ (e.g. ESP32-2432S028) — The most common “CYD”: 240×320, usually ILI9341. This project’s config generator and HAMon are designed for this size and resolution.
  • 3.2″ / 3.5″ — Larger panels (e.g. 320×480); may use ILI9486, ILI9488, or other drivers. Pinouts and ESPHome config differ from the 2.8″ boards.

If you have a different size or resolution, you may need to adjust display dimensions and driver in ESPHome; the pinout and touch type still matter (see below).

Touch screen type

Touch is either resistive (SPI) or capacitive (I2C). The driver and GPIOs are different, so firmware must match your board:

  • XPT2046 — Resistive touch over SPI. Shares the display’s SPI bus with a separate chip-select (e.g. GPIO 33). Backlight is often on GPIO 21. This is the “SPI touch” preset in our config generator.
  • CST816 — Capacitive touch over I2C (e.g. SDA 33, SCL 32). Newer/revision boards often use this. Backlight is often on GPIO 27. This is the “I2C touch” preset in our config generator.
  • Some boards use other controllers (e.g. GT911). You’ll need the correct ESPHome touch component and pinout for your specific module.

If touch or backlight behaves oddly, confirm whether you have the SPI (XPT2046) or I2C (CST816) variant and select the matching preset or custom pins.

Display controller

Most 2.8″ CYD boards use the ILI9341 TFT controller. Other sizes may use ST7789, ILI9488, ILI9486, or similar. In ESPHome you choose the matching display platform (e.g. ili9xxx with model: ili9341). Our generator assumes ILI9341 for the 2.8″ 240×320 layout.

USB connector

Boards are sold with Micro-USB or USB-C. USB-C is preferred for new purchases: easier cabling and many 3D-printed cases (e.g. the Aura Smart Display case) are designed for the USB-C port. Adapters (e.g. 90° USB-C) help with cable routing. Our Amazon link points to the USB-C version.

What this site targets

The Config Generator and HAMon firmware on this site are aimed at 2.8″ 240×320 ILI9341 boards with either XPT2046 (SPI touch) or CST816 (I2C touch). If you have a different size or display driver, you can still use the generator as a starting point and adjust the generated YAML (display model, dimensions, touch component, and pins) to match your hardware.

Hardware Overview

The CYD integrates several components on a single PCB. The diagram below shows how the main blocks connect.

ESP32WROOM-32WiFi + BLEDual-core 240MHzTFT DisplayILI93412.8″ 240×320SPI (HSPI)TouchXPT2046 / CST816SPI or I2CRGB LEDmicroSDLDR

ESP32 drives the display over SPI (HSPI) and reads touch via SPI (XPT2046) or I2C (CST816 depending on variant). RGB LED, microSD, and LDR are optional peripherals.

Component Breakdown

ComponentDetails
BoardESP32-2432S028 (CYD). Get the USB-C version for modern cables and case compatibility.
MCUESP32-WROOM-32 (dual-core 240 MHz, WiFi 802.11 b/g/n, Bluetooth 4.2).
DisplayILI9341 2.8″ TFT, 240×320 RGB, 18-bit colour, SPI (HSPI). Backlight typically GPIO 21 or 27.
TouchXPT2046 (resistive, SPI) on most boards; some variants use CST816 (capacitive, I2C). Check your board label.
RGB LEDRed GPIO 4, Green GPIO 16, Blue GPIO 17 (active low). Can show status at a glance.
microSDOptional slot for logging or assets (e.g. fonts).
LDRLight-dependent resistor for automatic backlight dimming in software.

Pinout Reference

Pin assignments can vary slightly by manufacturer and revision. The config generator on this site offers presets for common variants (SPI touch / I2C touch). Typical values:

FunctionGPIONotes
TFT CLK14HSPI SCK
TFT MOSI13HSPI MOSI
TFT MISO12HSPI MISO (optional)
TFT CS15Chip select
TFT DC / RS2Data/command
Backlight21Or 27 on some I2C touch boards
Touch (XPT2046)—Shares HSPI; separate CS (e.g. 33)
Touch (CST816 I2C)SDA 18, SCL 19I2C touch variant
RGB LED R / G / B4, 16, 17Active low

Software Stack

With ESPHome and LVGL, the CYD can run a rich UI (clocks, sensor tiles, dashboards) and talk to Home Assistant over the native API. Data flow:

HomeAssistantEntities / APIAPIESPHomeYAML + LVGLRenders UISPI / I2CCYDDisplay + TouchHardwareSensors & state → HA → ESPHome → CYD screen

Typical Use Cases

  • Home Assistant monitor — Clock, date, and 6–8 entity tiles (doors, motion, energy, temperature) with colour-coded status. This site’s config generator targets this layout.
  • Smart home control panel — Buttons and switches to control lights, scenes, and automations via HA.
  • Weather / info dashboard — Forecast, calendar, or RSS feed displayed on the CYD.
  • Prototyping — LVGL demos, custom UIs, or learning ESP32 + display without separate wiring.

Reference Links

Official docs, community projects, and where to buy the CYD.

Ready to configure your CYD?

Use the Config Generator to build your ESPHome YAML visually — no need to edit YAML by hand. Pick sensors, GPIO presets, and copy the result into ESPHome.