DIY ESP32-S3 Internet radio features Winamp-styled user interface

Volos Projects recently showcased an easy-to-reproduce, inexpensive DIY ESP32-S3 Internet radio based on a Waveshare ESP32-S3-LCD-1.54 development board and an Arduino sketch with a Winamp-styled user interface.

As its name implies, the hardware is based on the ESP32-S3 WiFi and Bluetooth SoC, connected to a 1.54-inch 240×240 color display and a speaker that delivers better-than-expected audio quality, according to Volos Projects.

DIY ESP32-S3 Internet Radio

Waveshare ESP32-S3-LCD-1.54 specifications:

  • SoC – Espressif ESP32-S3R8
    • CPU – Dual-core Tensilica LX7 microcontroller up to 240 MHz with vector instructions for AI acceleration
    • Memory – 512KB SRAM, 8MB PSRAM
    • Wireless – WiFi 4 and Bluetooth 5.0 LE + Mesh connectivity
  • Storage
    • 16MB NOR flash
    • MicroSD card slot
  • Display
    • 1.54-inch IPS display with 240×240 resolution, 262K colors
    • 4-wire SPI ST7789 driver
    • Optional CST816 capacitive touch controller (not used by the DIY Radio project)
  • Audio
    • Speaker
    • 2x microphones
    • NS4150B audio amplifier
    • ES8311 low-power audio codec
    • ES7210 AEC (acoustic echo cancellation) chip
  • USB – USB Type-C port for power and programming
  • Sensor – QMI8658 6-axis IMU with gyroscope and accelerometer
  • Misc
    • Power, Boot, and “PLUS” user buttons
    • Ceramic antenna
  • Power Supply
    • 5V via USB Type-C port
    • 2-pin connector for a 3.7V lithium battery; supports charging and discharging
  • Dimensions – 46 x 46 x 22.5 mm

Waveshare ESP32-S3-LCD-1.54
Waveshare ESP32-S3-LCD-1.54
ESP32-S3-LCD-1.54 board
ESP32-S3-LCD-1.54 board

Waveshare provides basic instructions and a few code samples to use the device with the Arduino IDE and the ESP-IDF framework.  Companies like Waveshare and LILYGO offer plenty of low-cost MCU boards with a range of interesting features, but those should be considered development kits, since users need to develop their own firmware.

What’s interesting for the ESP32-S3-LCD-1.54 is that we now have a ready-to-use Arduino sketch to easily convert the kit into an Internet radio with a retro, Winamp-like user interface. You’d just need to modify the code to add your own WiFi credentials and the array with your list of radio stations:


Required libraries: esp32-audio-I2S-master 3.4.0, GFX Library for Arduino 1.6.0, LovyanGFX 1.2.19, and Arduino WiFiMulti 1.0.0.

You can check what the DIY ESP32-S3 internet radio looks like in action in the video below.

YouTube video player

The ESP32-S3-LCD-1.54 sells for just $14.99 on the Waveshare store without a battery, or $15.99 with a battery. The devkit can also be purchased on Amazon ($27.99) and AliExpress (~$16). In theory, the DIY radio project should also work on other ESP32 platforms with a display and ES8311 audio codec, such as the M5Stack CardPuter-Adv, Waveshare ESP32-C6-Touch-AMOLED-1.8, Espressif EchoEar, and so on, but you’d need to modify the pins for the codec and display, as well as the whole UI if the resolution is not 240×240, since everything is hardcoded.

Via XDA Developers

Share this:
FacebookTwitterHacker NewsSlashdotRedditLinkedInPinterestFlipboardMeWeLineEmailShare

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress. We also use affiliate links in articles to earn commissions if you make a purchase after clicking on those links.

Radxa Orion O6 Armv9 mini-ITX motherboard

5 Replies to “DIY ESP32-S3 Internet radio features Winamp-styled user interface”

      1. Yes, DAB DIY exists: Check out PE5VB SI4684 on Github. He made a wonderful open source repro for a DAB Radio.
        I made a forge for roudn displays with smaller size.

  1. I have a Xiaozhi AI chatbot device, looks an awful lot like this one does, physically, just lacking a SD card slot. It’s not terribly useful as a chatbot. Do you think I can load this onto it, to turn it into an internet radio? It won’t do local files, I assume, but maybe radio stations over the internet?

    1. It might work. The important thing is that the display resolution is the same (240×240). I tried to load it on an ESP32-S3 board with a 240×135 display, but it was a mess, and it’s not easy to change the code since the UI is hard-coded. You may also have to look at the schematics and the pin numbers connected to the display and audio codec.

Leave a Reply

Your email address will not be published. Required fields are marked *

Boardcon MINI1126B-P AI vision system-on-module wit Rockchip RV1126B-P SoC
Boardcon MINI1126B-P AI vision system-on-module wit Rockchip RV1126B-P SoC