logo elektroda
logo elektroda
X
logo elektroda

Internet radio and audio file player on ESP32-S3

MAJSTER XXL 294330 2810

TL;DR LABEL_AI_GENERATED

  • Built an ESP32-S3 internet radio with an audio file player and OLED desk display, evolving through v1, v2, and v3.
  • Uses an ESP32-S3-WROOM-1, PCM5102A DAC, rotary encoders, and GitHub-hosted station lists split into banks of up to 100 stations.
  • The prototype uses a 2.42" 128x64px white OLED display, with a PCB made in Poland costing 130zl.
  • v3 adds a colour screen, weather, a calendar, RSS news from Polsat News Polska, and full remote control.
  • The first PCB had a pad-spacing mistake for the ESP32-S3-WROOM-1, so the module pins had to be bent slightly to fit.
AI summary based on the discussion. May contain errors.
ADVERTISEMENT
Treść została przetłumaczona polish » english Zobacz oryginalną wersję tematu
Listen:
  • Clarifying ESP32-S3 radio setup and station search

    #1801 21772492
    supsak
    Level 13  
    Posts: 81
    Rate: 5
    Hi colleagues.
    Some time ago I was interested in the Yoradio project, I bought some modules, but I didn't manage to implement it and build a radio. Now I came across another internet radio project published on this forum. I have read everything from the beginning, from V1 to V3 version of this radio, but I am completely confused.
    I have these modules, displays..., I will see if they are suitable to build this radio. I didn't understand a few things...:
    - does the radio need a computer, a laptop, on for it to work? From which it downloads some more data?
    - how is it with searching, adding WIFI networks? I only need to search once and it is still stored in the ESP32 module.
    - is there any complete schematic of the radio where there are two encoders added / one to increase volume and the other to select banks and stations? /, a couple of buttons to store stations in memory and a menu button where there could be other menus without having to use the remote for basic options.
    -How is it with updating and searching for stations? Is it possible to search for Czech and Slovak stations there?
    Thanks for your reply
    Odoslať spätnú väzbu

    Set of ESP32 modules, displays, encoders, and IR remote control on fabric
  • ADVERTISEMENT
  • Three ESP32-S3 radio versions and display compatibility

    #1802 21772518
    robgold
    Level 23  
    Posts: 726
    Help: 10
    Rate: 290
    >>21772492 Which version of the radio do you want to build ? We have three different versions of the radio discussed in this thread:

    - colleague Mastra's version XXL v2 the first one you see in the first posts
    - my version Evo v3
    These two are compatible in terms of schematics and connections, they support the OLED 256x64 SSD1322 display

    - version of my colleague Master XXL v3 with a colour display

    All are based on the ESP32-S3 module.
  • ADVERTISEMENT
  • 320x480 LCD with remote and encoder control

    #1803 21772528
    DJCheester
    Level 28  
    Posts: 2089
    Help: 75
    Rate: 958
    As a colleague above described ESP you have a different colour display supposedly there is but I don't know on what controller and resolution. Here the foreman's project is on a 320x480 LCD. A remote control and encoder might be suitable.

    No computer connection is required, just a wifi signal around the house. The Robgold version, on the other hand, has a web control interface whether on a computer or smartphone.

    Regards...
  • External antenna support preferred for better Wi-Fi reception

    #1804 21772545
    supsak
    Level 13  
    Posts: 81
    Rate: 5
    Hello.
    I have two colour displays: a 2.4" SPI24x320 and a second smaller 1.8" display. Both are on an ST7735 chip. For me, a project with just a Wi-Fi connection would be ideal, so which of these three versions could be used?
    Will I need to buy another ESP32 module? The ones I have are not suitable for this project? Can you give me a link to a suitable ESP32 module?,or perhaps a display if none of them are suitable for the project?

    Thanks.

    Added after 14 [minutes]:

    >>21772545 Larger plate would be positive? For me it's ideal as it also has the ability to connect an external Wi-Fi antenna for signal reception.
    Two ESP32-S3 development boards with prices and descriptions, top view.
  • Low-resolution display not suitable for DIY project

    #1805 21772610
    DJCheester
    Level 28  
    Posts: 2089
    Help: 75
    Rate: 958
    Hello ESP32 with antenna socket

    https://pl.aliexpress.com/item/1005009212121307.html

    Plus an antenna such as in the link below or innA

    https://pl.aliexpress.com/item/1005003055160772.html

    Plus I see the D/A converter you have if it's a PCM5102A it could be.

    Plus a 3.12" OLED display if you go for Robgold's colleague's version (Recommended)

    https://pl.aliexpress.com/item/1005008615548045.html

    For Robgold's colleague's version this will suffice.

    If for a colleague's version of V3 then you need to buy an LCD

    https://pl.aliexpress.com/item/1005003033844928.html

    For this in the Major's project you need a memory card i.e. you need to purchase a memory card module like this.

    https://pl.aliexpress.com/item/1005005302035188.html

    If anything is unclear, please ask.

    Greetings....

    Added after 1 [minute]:

    The display what you have has too little resolution. For a DIY project it will not be good.

    Greetings...
  • #1806 21772641
    supsak
    Level 13  
    Posts: 81
    Rate: 5
    Thanks for the links.
    I will order the ESP32 module. What display will I need for a version that doesn't require a computer or mobile phone for control?
    Probably a project from the Major
  • Recommend N16R8 ESP32-S3 and PCB options

    #1807 21772739
    DJCheester
    Level 28  
    Posts: 2089
    Help: 75
    Rate: 958
    Hi both radios do not require a computer (they are controlled by the NEC ir remote control) the only thing they require is a wifi signal and that is all.
    The Robgold project has additionally the possibility to control through the website but you don't have to use it. You can only use the remote control.

    Also, the difference is that Majstra downloads the banks from Github and you actually have his links, with Robgold you can add your own.

    Robgold's radio with OLED display looks like this.

    Robgold internet radio with OLED screen showing IP address and firmware version

    The Major's radio looks like this and additionally has music playback from an SD card

    Color LCD screen displaying internet radio interface with weather and time info

    At Robgold's there is only a radio.

    Greetings...

    Added after 1 [minute]:

    Order the N16R8 ESP32 S3 module. Greetings...

    Added after 5 [minutes]:

    If you plan to assemble the radio also think about the PCB, colleague Robgold on his github has gerber files and you can order PCB from china but it is a PCB containing SMD components and you need to be skilled to solder it yourself.

    I, on the other hand, have made myself a PCB with prewired components and I have both the Robgold and Majster versions.

    Now I am designing another one for the Robgold version, but including two encoders.

    Regards....
  • ESP32-S3 incompatible with the Audio library DAC code

    #1808 21772760
    Anonymous
    Level 1  
  • #1809 21772825
    DJCheester
    Level 28  
    Posts: 2089
    Help: 75
    Rate: 958
    And why are you compiling such an old version, there are now V3 and V3 Evo ?

    Greetings ...
  • #1810 21772826
    Anonymous
    Level 1  
  • V3 install guide and compatible repositories

    #1811 21772830
    DJCheester
    Level 28  
    Posts: 2089
    Help: 75
    Rate: 958
    For the V3, I recently put together step-by-step instructions in a pdf file on how to install the Arduino and all the add-ons. Look back in the subject line.

    Radio as far as I know already a dozen people have done or even dozens of software and compilation problems are not there as long as you follow these instructions

    Greetings....

    Added after 3 [minutes]:

    Robgold's fellow OLED V3 Evo

    https://github.com/dzikakuna/ESP32_radio_evo3/tree/main

    Colleague LCD v3

    https://github.com/sarunia/ESP32_internet_radio_v3

    Other libraries were needed for the older version.

    Note the Mayster and Robgold soft have different pin connections I am talking about the V3 and V3 Evo versions

    Greetings ...

    Added after 15 [minutes]:

    Here you will find the mentioned manual works under new versions on win7 64bit or newer system and Arduino 2 or above.

    https://www.elektroda.pl/rtvforum/topic4041603-1530.html#21752133

    Greetings....
  • #1812 21772845
    Anonymous
    Level 1  
  • #1813 21772868
    DJCheester
    Level 28  
    Posts: 2089
    Help: 75
    Rate: 958
    Well just set up the right tile and the file you have there is a PNG on github configuration you have to set up like in this screenshot.

    Because now you have it wrong.

    Greetings...

    Added after 1 [minute]:

    The board is an ESP32 S3 Dev Module
  • ADVERTISEMENT
  • #1814 21772876
    Anonymous
    Level 1  
  • Use ESP32-S3 core 3.2.0 for FLAC support

    #1815 21772878
    DJCheester
    Level 28  
    Posts: 2089
    Help: 75
    Rate: 958
    As I wrote, the module does have an OTG socket, but it is not used in this project.

    Two Sparkle IoT XH-S3E modules with N16R8 WiFi+BT chips on carpet

    Such modules can be with or without an antenna socket. It is important that they are N16R8.

    Greetings....

    Added after 3 [minutes]:

    Oh and at startup if you have installed other versions of the libraries and ESP board as recommended then you will have problems with FLAC files and the audio library.

    Everything you need to change where and how is in this manual. I recommend that you do everything as it is written there. For example, the core or board ESP should be version 3.2.0 and not the latest version.

    Best regards...
  • #1816 21772892
    Anonymous
    Level 1  
  • #1817 21772897
    DJCheester
    Level 28  
    Posts: 2089
    Help: 75
    Rate: 958
    Well, now connect the ESP32 chip, PCM, OLED and SD card module according to the schematic. If you have any questions.

    Greetings...
  • #1819 21773042
    efi222
    Level 22  
    Posts: 779
    Help: 12
    Rate: 1219
    amrowek wrote:
    You have to do the grease yourself to short out.

    By default there is a jumper for the PCB antenna. It needs to be removed( I think)
    The components there are terribly small....
  • #1820 21773053
    DJCheester
    Level 28  
    Posts: 2089
    Help: 75
    Rate: 958
    Yes, there is a jumper for the PCB antenna, it needs to be repositioned or removed and the marked area needs to be shorted with e.g. tin.

    Regards...
  • #1821 21773101
    dawidkosciesza
    Level 11  
    Posts: 54
    Rate: 14
    Right, there is a jumper. Good to know because I'm planning to make an external antenna. I would be annoyed that it doesn't work.
    Now the question is, if I give the tin dot too big and connect the two antennas, will it affect anything?


    Close-up of an antenna connector on a PCB with visible solder bridge
  • #1822 21773114
    DJCheester
    Level 28  
    Posts: 2089
    Help: 75
    Rate: 958
    It could be worse because antennas are nasty beasts and literally everything matters there. This can 99% result in poorer coverage. Better to get it right.

    Regards...
  • ADVERTISEMENT
  • #1823 21773116
    dawidkosciesza
    Level 11  
    Posts: 54
    Rate: 14
    I have a question, is it possible to wake up the radio by any other means than the encoder or remote control?
    I made myself a "Power" button on the ADC keypad, borrowed the code from the remote control under the corresponding button.
    The radio turns off but unfortunately there is no option to turn it on via the same button.
    Anyone have any idea how to solve this?
  • #1824 21773118
    efi222
    Level 22  
    Posts: 779
    Help: 12
    Rate: 1219
    dawidkosciesza wrote:
    or if you give too big a dot of tin

    Alternatively, you could try cutting a section of the path from the jumper to the PCB antenna and pouring tin over these three miniature pads.
  • #1825 21773145
    amrowek
    Level 13  
    Posts: 244
    Rate: 10
    Is it still necessary to scrape something? Which one, I've heard of a jumper but not of .... scraping something. I did as in this picture.
    Attachments:
    • Internet radio and audio file player on ESP32-S3 PCB.jpg (131.39 KB) You must be logged in to download this attachment.
  • #1826 21773147
    DJCheester
    Level 28  
    Posts: 2089
    Help: 75
    Rate: 958
    Sometimes on Aliexpress you can buy already with such a jumper switched to the socket.

    Greetings ...
  • Jumper removal and pad bridging instructions

    #1827 21773156
    efi222
    Level 22  
    Posts: 779
    Help: 12
    Rate: 1219
    amrowek wrote:
    Is there still a dot to be erased? Which one is it, I knew about the jumper but not about .... scraping something

    The arrow shows a jumper which needs to be removed or moved to adjacent pads.
    You can knock out this jumper and cut the path IN place of the red line. And pour tin over these three pads above. These are such small points that I can't even grasp it under a magnifying glass :) Close-up of a PCB showing a jumper and a trace marked for cutting.
  • Use GPIO17 for SW_POWER, GPIO16 for standby LED

    #1828 21773157
    robgold
    Level 23  
    Posts: 726
    Help: 10
    Rate: 290
    @dawidkosciesza Evo has preparation for relay, power button and LED from SD card. On the pins of the JOY connector that were never used you have GPIO16, GPIO17.

    On GPIO16 you have the StandBy LED, a high state appears there when the radio is switched off.
    On GPIO17 you have a "copy" of the CS signal, when you use the rear SD reader you can connect an LED there (ground control).
    Comment out the definition of "SD_LED" and use GPIO 17 as SW_POWER.

    Code: C / C++
    Log in, to see the code


    Disable the SD_LED in the definition and replace to have the SW_POWER button on pin 17

    Code: C / C++
    Log in, to see the code


    Unfortunately you still need to improve the signal definitions in the powerOFF section. This will be done in the latest sofet. And currently it doesn't work for you because the ADC reading is done in the main loop and this loop is "dead" in power off mode. This one button must be from outside the ADC matrix.

    Added after 1 [minute]:

    >>21773156 And are you sure it is a jumper ? After all, there could be a resistor there, a coil some kind of antenna matching circuit. Let's not exaggerate the size of a normal 0402 or 0201 component :)
  • #1829 21773168
    dawidkosciesza
    Level 11  
    Posts: 54
    Rate: 14
    >>21773157

    Thanks a lot for your help :) I understand that if I change the value to a low state then the LED will light up when the radio starts up because that would suit me better for the set up.
  • #1830 21773183
    robgold
    Level 23  
    Posts: 726
    Help: 10
    Rate: 290
    >>21773168 This you can already set yourself freely. You only have to change the pinMode for STANDBY_LED in 2 places. For me it was supposed to be an indicator that the radio is off but still "on", because if the clock is not on, you don't know what state it is in. That is, the classic Standby LED known from audio equipment.
Listen:

Topic summary

LABEL_AI_GENERATED
Discussion of a DIY internet radio and SD-card audio player built on an ESP32-S3 with an OLED display, rotary encoders, buttons, and a front-panel interface. The project uses Wi‑Fi to download station lists from GitHub/public stream databases, supports MP3 and later AAC/FLAC playback, displays metadata including Polish characters via a modified font table, and stores settings such as station/bank selection and volume. The thread covers PCB design in EasyEDA, ESP32-S3 module pin spacing issues, PSRAM and Arduino IDE setup, library compatibility problems, SPI/I2S wiring, SD card reader boot issues, encoder behavior, WiFiManager-based network setup, and troubleshooting of crashes, HTTP download failures, and audio initialization errors. Several improvements were added over time, including station selection by encoder, time sync, browser update support, and saving settings to card memory.
AI summary based on the discussion. May contain errors.
ADVERTISEMENT