CYD Dashboard

A touchscreen macro & widget dashboard for Sunton "Cheap Yellow Display" ESP32 boards, configured entirely from a browser.

Download release View on GitHub

Chromium-based browsers only for Web Flash (Chrome, Edge). Standalone flash page →


On-device UI

Everything runs on the display — no host app required.

Macros tab
Macros
Widgets tab
Widgets
Widgets tab scrolled
Widgets (scrolled)
Virtual keyboard
Virtual keyboard
Settings
Settings

Web configuration UI

Configure macros, widgets, profiles and settings from any browser on the same network.

Web UI — Macros
Macros editor
Web UI — Widgets
Widgets editor
Web UI — Settings
Settings

Features

Everything runs on the ESP32 — browser is only needed for configuration.

⌨️

Macros

Keys, URL calls, commands, scene folders, toggles, multi-step actions — with per-button icons, colours and images.

📊

Widgets

Live tiles fed by URL polling (via browser or companion proxy) or host system metrics — grid and masonry layouts.

🗂️

Profiles & Scenes

Group macros into scenes, switch profile sets on the fly, per-scene backgrounds, auto-switch based on the active app.

🔌

HID output

BLE keyboard (NimBLE), USB HID (S3/C3), or desktop companion relay — auto-selected by priority.

🖮

Virtual keyboard

On-device LVGL keyboard sends live keypresses via the active HID backend; input-language switch button for Win / macOS / Linux.

🌐

Browser-based config

Vue 3 SPA — open cyd-dashboard.local from any device on the same network, no app install needed.

🖼️

Backgrounds & icons

Upload images from the web UI; auto-converted to device formats stored on microSD.

🔄

OTA updates

Firmware updates over the browser on 16 MB-flash boards — no cable needed after first flash.


Supported boards

Built on esp32-smartdisplay — additional boards can be added as new PlatformIO environments.

BoardChipPSRAMNotes
esp32-2432S028Rv2 ESP32 no 320×240 ILI9341; tight DRAM
JC4827W543C ESP32-S3 yes 480×272; microSD + USB-HID; 4 MB flash (no OTA)

Quick start

Flash a pre-built release from the browser above, or build from source:

From source (PlatformIO)

Clone with submodules — the boards/ submodule is required.

git clone --recurse-submodules https://github.com/ange007/CYD-Dashboard
cd CYD_Dashboard
pio run -t upload      # flash firmware
pio run -t uploadfs    # build web bundle + LittleFS

On first boot configure Wi-Fi from the on-screen prompt or serial, then open:

http://cyd-dashboard.local/

Companion app

Desktop app (Go + Wails) — recommended HID backend on machines where BLE is unreliable or unavailable.
github.com/ange007/CYD-Dashboard-Companion

HID relay Injects keypresses & text into the host PC via SendInput (Windows).
Fetch proxy Performs HTTP requests on the device's behalf — no CORS, no 64 KB limit.
System metrics Supplies CPU, memory, disk, network and temperature data to CYD widgets.
Profile switching Auto-switches macro profiles based on the active application window.
Auto-discovery Finds the device via mDNS or a fixed URL.
System tray daemon Persists as a tray icon with optional start-at-login.
PlatformHID relayFetch proxySystem metricsFocus rules
Windows✅ Full✅ Full
macOS⚠️ App name only
Linux (X11 / Hyprland)⚠️ X11 + Hyprland
Linux (GNOME/Wayland)