Boards / All-in-one boards

RockBase IoT NM-CYD-C5 (ESP32-C5 "Cheap Yellow Display")

The Cheap Yellow Display with an ESP32-C5: 2.8" 240x320 ST7789 with XPT2046 resistive touch, SD card and touch all on the panel's SPI bus, an AHT20 temperature and humidity sensor, a WS2812 LED, a speaker amplifier and dual-band Wi-Fi 6. Sa

RockBase IoT NM-CYD-C5: a 240 by 320 panel, drawn from the preset
Drawn from the preset - no vendor photograph of this board was published.

Building for it

A project is made for one toolchain, picked when you start it. For this board you can use three of the four:

Toolchain
Arduino (C++)Every board, every widget and every peripheral here. The most control, and the most to set up. Start a project
MicroPythonThe MicroPython export has not been built for this chip yet. It is written for the ESP32, S2, S3, C3 and C6.
ESPHomeNo compiler to install, and the panel can join Home Assistant as real entities. Start a project
ESP-IDF (C)Espressif's own framework: esp_lcd, the component registry and idf.py, with nothing of Arduino in it. Start a project

At a glance

PartDetail
MakerRockBase IoT
MCUESP32-C5
RISC-V @ 240 MHz, dual-band Wi-Fi 6, 384 KB SRAM, quad PSRAM on some modules
DisplaySitronix ST7789, 240 x 320 px, SPI (4-wire serial), 16-bit colour
TouchXPTek XPT2046 (resistive, SPI)
BacklightGPIO 25, dimmable (PWM)
Memory16 MB flash, 8 MB quad PSRAM (N16R8)
Graphics libraryGFX Library for Arduino

Display pins

ST7789 on SPI (4-wire serial): SPI clock 20 MHz, host SPI2_HOST, BGR colour order, inversion off.

SignalPin
SCK / CLKGPIO 6
MOSI / SDAGPIO 7
MISO / SDOGPIO 2
CSGPIO 23
DC / RSGPIO 24
RESETnot connected
BacklightGPIO 25

Touch pins

XPT2046: 2500 kHz, shares the display bus.

SignalPin
SCKGPIO 6
MOSIGPIO 7
MISOGPIO 2
CSGPIO 1

Also on the board

The preset adds these to the Hardware tab with the board, so a sensor can go straight onto the connector.

Check your revision. Compiled, never run on a board. Pins are from RockBase IoT's wiki, their demo setups (gitee.com/Rockbase-iot/nm-cyd-c5) and the v1.0 schematic. Their Arduino demo uses a TFT_eSPI patched for the C5; this preset drives the same ST7789 with GFX Library for Arduino, the library's own start-up, at their 20 MHz. Colour order BGR and inversion off are their setting: if the picture is a negative turn Invert on, if red and blue are swapped set RGB. The display's reset is the board's EN line. Touch (XPT2046, CS 1) shares the panel's SPI bus and is read without its interrupt, as their code does (the schematic wires it to GPIO 3); it calibrates on first boot. The TF card (CS 10) shares that bus too and arrives switched off. The AHT20 and the CN1 header are on I2C, SDA 9 and SCL 8. The speaker amplifier is on GPIO 26: the C5 has no DAC, so it plays Beep tones, not audio files. Free for your own use: the GPS port P5 (GPIO 4 RX, 5 TX) and P1 (GPIO 4, 8, 26). The log is on the C5's own USB-C port (USB CDC On Boot); the other port is a CH340 on UART0.

Designing for it in LCD Wizard

The parts

ST7789. Excellent colour and tolerates 80 MHz SPI. Many modules have no CS pin - tie it low and set CS to -1.

XPT2046. The classic 4-wire resistive controller. Needs calibration. Can share the display SPI bus with its own CS.

ESP32-C5. SPI displays. Quad PSRAM on the -R4/-R8 modules takes GPIO15.

GFX Library for Arduino. Moshi Liu's library. Best QSPI/AMOLED and RGB coverage. Configured in code.

The pinout on one page

Every pin above, laid out to print and keep beside the bench. Generated from this preset, so it says exactly what the designer writes into lcd_pins.h.

Download the pinout (PNG)Open it as SVG

The same pins as data - board.json and pins.csv - are in the open pinout dataset on GitHub, free to reuse under CC BY 4.0.

Designs for this board

Nobody has published a design for this board yet. Publish yours from the designer and it appears here and in the gallery.

Waveshare ESP32-C5-LCD-1.471.47" 172x320 TFT (ST7789, SPI), TF card.ESP32-C5 · ST7789 172 x 320 · no touchPurchase this board
Waveshare ESP32-C5-Touch-LCD-1.691.69" 240x280 IPS LCD (ST7789V2, SPI), CST816T touch, ES8311 audio, QMI8658, PCF85063A.ESP32-C5 · ST7789 240 x 280 · CST816S touchPurchase this board
Waveshare ESP32-C5-Touch-LCD-2.82.8" 240x320 IPS LCD (ST7789 (docs link the ST7789V2 datasheet), SPI), CST3530 touch, ES8311 audio, TF card, QMI8658, PCF85063A.ESP32-C5 · ST7789 240 x 320 · CST3530 touchPurchase this board
Waveshare ESP32-C3-LCD-1.471.47" 180x320 IPS LCD (ST7789T (driven by Waveshare's 'Vernon_ST7789T' esp_lcd component; docs spec table says 'ST7798', a typo), SPI), TF card, QMI8658.ESP32-C3 · ST7789 180 x 320 · no touchPurchase this board
Waveshare ESP32-C5-LCD-2.732.73" 320x320 IPS LCD (ILI9488, SPI), TF card, QMI8658, PCF85063.ESP32-C5 · ILI9488 320 x 320 · no touchPurchase this board
Waveshare ESP32-C5-Touch-LCD-3.53.5" 320x480 IPS LCD (ST7796, SPI), FT6336 touch, ES8311 speaker and microphone, TF card, AXP2101, QMI8658, PCF85063.ESP32-C5 · ST7796 / ST7796S 320 x 480 · FT6236 / FT6336U touch

Next