logo elektroda
logo elektroda
X
logo elektroda

Internet radio and audio file player on ESP32-S3

MAJSTER XXL 259707 2638

TL;DR

  • 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.
Generated by the language model.
ADVERTISEMENT
Treść została przetłumaczona polish » english Zobacz oryginalną wersję tematu
📢 Listen (AI):
  • #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
  • #1802 21772518
    robgold
    Level 23  
    Posts: 698
    Help: 10
    Rate: 284
    >>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.
  • #1803 21772528
    DJCheester
    Level 27  
    Posts: 2049
    Help: 75
    Rate: 949
    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...
  • #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.
  • #1805 21772610
    DJCheester
    Level 27  
    Posts: 2049
    Help: 75
    Rate: 949
    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
  • #1807 21772739
    DJCheester
    Level 27  
    Posts: 2049
    Help: 75
    Rate: 949
    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....
  • #1808 21772760
    Anonymous
    Level 1  
  • ADVERTISEMENT
  • #1809 21772825
    DJCheester
    Level 27  
    Posts: 2049
    Help: 75
    Rate: 949
    And why are you compiling such an old version, there are now V3 and V3 Evo ?

    Greetings ...
  • #1810 21772826
    Anonymous
    Level 1  
  • #1811 21772830
    DJCheester
    Level 27  
    Posts: 2049
    Help: 75
    Rate: 949
    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 27  
    Posts: 2049
    Help: 75
    Rate: 949
    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
  • #1814 21772876
    Anonymous
    Level 1  
  • #1815 21772878
    DJCheester
    Level 27  
    Posts: 2049
    Help: 75
    Rate: 949
    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...
  • ADVERTISEMENT
  • #1816 21772892
    Anonymous
    Level 1  
  • #1817 21772897
    DJCheester
    Level 27  
    Posts: 2049
    Help: 75
    Rate: 949
    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 21  
    Posts: 655
    Help: 12
    Rate: 1057
    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 27  
    Posts: 2049
    Help: 75
    Rate: 949
    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 27  
    Posts: 2049
    Help: 75
    Rate: 949
    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...
  • #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 21  
    Posts: 655
    Help: 12
    Rate: 1057
    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: 239
    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.
  • ADVERTISEMENT
  • #1826 21773147
    DJCheester
    Level 27  
    Posts: 2049
    Help: 75
    Rate: 949
    Sometimes on Aliexpress you can buy already with such a jumper switched to the socket.

    Greetings ...
  • #1827 21773156
    efi222
    Level 21  
    Posts: 655
    Help: 12
    Rate: 1057
    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.
  • #1828 21773157
    robgold
    Level 23  
    Posts: 698
    Help: 10
    Rate: 284
    @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: 698
    Help: 10
    Rate: 284
    >>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 (AI):

Topic summary

✨ The discussion centers on the development of an internet radio and audio file player based on the ESP32-S3-WROOM-1 module, featuring a custom-designed prototype PCB with OLED display and user controls including rotary encoders and buttons. Key challenges addressed include pin spacing discrepancies in the ESP32-S3 module footprint, integration of Wi-Fi connectivity with dynamic station list updates, and handling of Polish character encoding on the OLED display. The project uses Arduino IDE (version 2.3.2) with ESP-IDF support and requires enabling PSRAM. Audio playback supports MP3, AAC, and FLAC streams, with the ESP32-audioI2S library recommended over the incompatible Audio library. Users reported issues with SPI MISO pin assignment causing bootloader conflicts, resolved by reassigning MISO to pin 35. The project incorporates WiFiManager for network configuration, EEPROM and SD card storage for saving last played station and settings, and includes plans for tone control via an external KA2107 equalizer and a CS8673 amplifier module. Problems with encoder input stability and memory limitations for Bluetooth A2DP on ESP32-S3 were noted. The community suggested alternatives like KaRadio and ESP32-MiniWebRadio projects. Debugging tips include serial terminal logs for HTTP errors and flash memory erasure to resolve boot loops. The project is open-source on GitHub, encouraging forks and modifications. Additional features under development include browser-based updates, directory navigation, and potential audio recording to SD card.
Generated by the language model.
ADVERTISEMENT