Hi everyone!
I wanted to share a project I've been working on for several months — the CYD-GOLD, a fully custom internet radio, MP3 player and alarm clock built around an ESP32-S3 CYD board with a 2.8" capacitive touchscreen.
Everything was designed from scratch — firmware, UI and enclosure.
FEATURES
- Web radio streaming over WiFi with scrollable station list and custom logos
- MP3 player from SD card with shuffle mode and progress bar
- Alarm clock with 3 modes: Radio / MP3 / Buzzer fallback (stored in Flash)
- DS3231 RTC + NTP sync + 33 world timezones
- WS2812B LED strip (7 LEDs) with 4 animation modes
- 6 visual themes + 6 languages (FR/EN/ES/IT/DE/PT)
- Password-protected web manager to add stations and upload MP3s
- Deep sleep via slide switch (~10µA)
- LiPo battery with ADC level reading
TECHNICAL HIGHLIGHTS
- LVGL 8 with display buffer allocated in PSRAM (40 rows ~25KB freed vs SRAM)
- Hardware esp_timer for the 1ms LVGL tick — independent of loop load
- Full i18n system: one LangStrings struct, one pointer swap per language
- Stream watchdog that auto-reconnects on silent stream failure
- RTC stores UTC, localtime_r() converts via stored POSIX TZ string
- WiFi auto-reconnect across all saved networks (up to 5)
HARDWARE
- ESP32-S3 CYD 2.8" (ILI9341 + FT6336 touch + ES8311 audio codec onboard)
- DS3231 RTC
- 3W 4Ohm 50mm speaker
- WS2812B x7 LED strip
- 3.7V 2000mAh LiPo battery
- Panel-mount USB-C connector
- Micro SD extension with FPC cable
THE ENCLOSURE
8 parts printed in black PLA + Wood PLA slats for the vintage look.
The back panel has an integrated acoustic chamber behind the speaker.
Total print time ~12 hours.
LINKS
Source code (free / MIT):
3D files + full assembly guide on Cults3D:
Happy to answer any questions about the firmware or the enclosure!
C-R Teck
