400 x 300 ST7306 black/white/red reflective touch display development board
English | 简体中文
🌐 Product · 📦 Firmware · 🧩 ESP-IDF · 🔧 Arduino · 📚 Documentation
This repository provides matching ESP-IDF and Arduino examples 01–06, plus the factory application source. The ST7306 reflective display shows black, white and red, uses 2-bit pixel encoding, and has no backlight.
| Feature | Device / interface |
|---|---|
| MCU | ESP32-S3 |
| Memory | 16 MB Flash, 8 MB OPI PSRAM |
| Display | 4.2-inch, 400 x 300, ST7306, SPI |
| Display colors / encoding | Black, white and red; 2 bits per pixel |
| Touch | CST816, I2C |
| RTC / climate sensor | PCF85063A / SHTC3 |
| Audio | ES8311, ES7210, dual-microphone recording/playback |
| Storage | microSD, SDMMC 1-bit |
The display has three colors; 2-bit encoding does not mean four grayscale levels. LVGL renders in RGB565, and the BSP converts the framebuffer to the ST7306 native format. See the display driver guide for the pixel mapping.
- Download the latest factory BIN from firmware.
- Connect the board using a USB data cable and follow the flashing instructions. Flash the complete BIN at 0x0, using ESP32-S3, 16 MB Flash, DIO, and 80 MHz.
- Restart the board, view the desktop under ambient light, and tap an app icon.
- Follow the factory application guide to set up Wi-Fi, prepare an SD card, and try each app.
Factory application source is in examples/factory. To modify the examples, choose one below and follow its README to build and flash.
| Example | Feature |
|---|---|
| 01_lvgl | LVGL touch demo |
| 02_pcf85063 | RTC clock |
| 03_shtc3 | Temperature and humidity |
| 04_sd_card_test | microSD read/write test |
| 05_mic | Dual-microphone recording |
| 06_lvgl_photos | Swipe photo gallery |
| Example | Feature |
|---|---|
| 01_lvgl | LVGL touch demo |
| 02_pcf85063 | RTC clock |
| 03_shtc3 | Temperature and humidity |
| 04_sd_card_test | microSD read/write test |
| 05_mic | Dual-microphone recording |
| 06_lvgl_photos | Swipe photo gallery |
Arduino dependencies are bundled in examples/arduino/libraries. All sketches share board_config and LVGL 9.5.0.
| Framework | Version | Examples |
|---|---|---|
| ESP-IDF | v6.0.2 | 6 |
| Arduino-ESP32 | 3.3.12 | 6 |
| LVGL | 9.5.0 | Both frameworks |
Versions and board options are recorded in .github/product.json.
- Example or repository problems: open an issue.
- Product usage and hardware questions: Waveshare support.
First-party examples use Apache License 2.0; see LICENSE. Third-party libraries and fonts retain their respective licenses.