Internet Clock Radio

A project log for gCore (II) - a dev board for portable GUI gadgets

A high-end ESP32 development board with a 480x320 pixel capacitive touchscreen and sophisticated features.

dan-julioDan Julio 02/16/2023 at 23:030 Comments

I wanted to learn about I2S audio on the ESP32 and found a great project in github user schreibfau1's ESP32-MiniWebRadio.  He has written some amazing audio libraries and then wrapped them up in a fun project.  His code is understandable and more importantly, reasonably easy to modify so I spent a couple of days getting it running on gCore - using gCore features of course - with a cheap Sparkfun I2S breakout board for the audio out.  The port can be found here.

It connects via Wifi to a list of internet radio stations held in a file on the Micro-SD card (along with lots of graphical assets for the GUI) and can output via I2S or via SPI to the VS1053 audio decoder chip. 

It can also act as an alarm clock and playback local files in a variety of formats.  Time is normally automatically obtained from an NTP service but will fall back to gCore's battery backed RTC if necessary.

There's even a web interface!  You can select from a humungous list of internet radio stations thanks to Community Radio Browser.

MiniWebRadio really shows what the ESP32 is capable of.  It connects to the internet, provides both a GUI and web server interface, decodes a bunch of audio formats in software and decodes and displays compressed images from both the Micro-SD card and internet streams. 

Be sure to check out schreibfaul1's ESP32-audioI2S library  too.  Very, very cool.