Skip to content

nemerecentauri/retrodio

 
 

Repository files navigation

Retrodio

A retro-style internet radio for ESP32 with touchscreen interface.

IMG_1735_VSCO

Overview

Retrodio is an ESP32-based internet radio player featuring a graphical user interface for browsing and playing streaming radio stations. Built for the WT32-SC01 Plus development board with integrated touchscreen display.

Features

  • Stream internet radio stations over WiFi
  • Touchscreen GUI for easy station selection
  • Add, edit, and delete radio stations
  • Volume control with visual feedback
  • OTA (Over-The-Air) firmware updates
  • Web server for remote management
  • Persistent station storage

Hardware Requirements

  • Board: WT32-SC01 Plus (ESP32-S3, 16MB Flash, 2MB PSRAM)
  • Display: 480x320 touchscreen (integrated on WT32-SC01 Plus)
  • Audio: I2S DAC (connected via I2S interface)

Software Dependencies

Building and Flashing

Prerequisites

  1. Install PlatformIO
  2. Clone this repository

Build

# Build for USB upload
pio run -e usb

# Build for OTA update
pio run -e ota

Upload

# Upload via USB
pio run -e usb -t upload

# Upload via OTA (requires device on network)
pio run -e ota -t upload

Monitor Serial Output

pio device monitor -b 115200

Configuration

WiFi credentials and radio stations are configured through the touchscreen interface on first boot.

Project Structure

src/
├── main.cpp              - Main application entry
├── RadioWindow.*         - Main radio interface
├── WifiWindow.*          - WiFi configuration
├── AddStationWindow.*    - Add/edit stations
├── StationManager.*      - Station list management
├── AudioHandlers.*       - Audio streaming handlers
├── NetworkHandlers.*     - WiFi/network management
├── WebServer.*           - Web interface
├── OTAHandler.*          - OTA update handling
└── GlobalState.h         - Shared application state

License

This project is licensed under CC BY-NC-SA 4.0 (Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International).

For personal/educational use only. Commercial use requires permission. See LICENSE for details.

Author

felangga - GitHub

Acknowledgments

  • ESP32 community
  • LovyanGFX graphics library
  • ESP32-audioI2S audio library

About

A Retro Radio

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 79.7%
  • C 20.2%
  • CMake 0.1%