logo elektroda
logo elektroda
X
logo elektroda

Internet radio and audio file player on ESP32-S3

MAJSTER XXL 259440 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):
  • #2371 21845582
    DJCheester
    Level 27  
    Posts: 2049
    Help: 75
    Rate: 949
    robgold wrote:
    As a flesh-and-blood electronics engineer, however, hardware has always been closer to me than software.


    Like me, I have 30 years of electronics behind me and as soon as there was an opportunity to avoid software I went into it, but software today is everywhere and systems such as ESP greatly expand the possibilities of electronics. The beginnings were difficult just uploading ready made bin hex batches with time Arduino. But software and open code has always bugged me a lot lately as it has been over a year with this radio it has taught me a lot, which I owe to everyone here.

    I can't get into someone else's code and I don't know if I ever will, but with open code I can learn piece by piece how the functions work and I can change things for my own needs.

    Greetings and thanks from my side are due to everyone on this topic. Thanks to the fact that we are writing there is interest, the topic is alive and well.

    And of course to the Master as the creator of the first version of the radio on this channel.

    Col Suspak I wonder if if he put it in the car and made noise whether it would rip the streaming, hotspot from the phone.

    Regards...
  • ADVERTISEMENT
  • #2372 21845789
    pipikupi1979
    Level 10  
    Posts: 15
    I am also an electronics technician so for me wiring soldering and hardware organisation is my element soft is a bit weaker especially at this level as in Evo but it is very good motivation for development and education. So a big thank you for this project my wife after fully firing up my Evo technics said I finally made something fully functional. Robgold a can I "buy you a coffee" ? If you haven't already then maybe you should think about it. Regards
  • #2373 21848464
    DJCheester
    Level 27  
    Posts: 2049
    Help: 75
    Rate: 949
    For those who like Spectrum Analyser-type indicators.


    LCD module showing a green spectrum analyzer bar graph on an electronic circuit board on a desk


    Robgold's soft running on LittleFS 3.19.70 with added analyser views 5 and 6

    Greetings ...
    Attachments:
    • Analizator-3.19.70b.zip (107.92 KB) You must be logged in to download this attachment.
  • #2374 21849020
    JohnNagy
    Level 5  
    Posts: 14
    Rate: 3
    It works very well. Thank you.

    Added after 2 [hours] 18 [minutes]:

    >>21848464 There is one problem. You cannot manually set the screen mode to larger than 4 in the menu. Only with the remote control.
  • #2376 21850255
    robgold
    Level 23  
    Posts: 698
    Help: 10
    Rate: 284
    Welcome,


    FLAC logo: white “flac” on black background with colored square grid on the left

    The moment finally came when I sat down with the Espressif environment and recompiled my own set of lwIP (TCP) stack settings for FLAC stations
    I uploaded the files to GitHub - compilation based on IDF 5.5.2, Arduino core 3.3.7

    There are two versions:
    esp32s3_5.5.2 libs core 3.3.7.zip
    esp32s3_5.5.2 libs core 3.3.7_settings2.zip

    The basic version only increases the RX buffer. It works 99% on FLAC stations. Settings2, on the other hand, has additionally changed a few other settings.
    On settings2 - Smoothjazz.com.pl - it played for 24 hours without jamming, while AIDA 24bit can sometimes lose wifi.

    Link here: Link

    For the uninitiated, these are two files: libesp_netif.a, liblwip.a which, when swapped in the pre-compiled Arduino libraries, allow us to increase the WiFi receive buffer settings of the FreeRTOS system running inside the ESP32 chip so we can listen to stations broadcasting in the FLAC standard.

    Test it, I'll know which settings to do recompile the libraries with in the future.
  • #2379 21850329
    RonAd
    Level 10  
    Posts: 26
    Rate: 1
    >>21850326

    I didn't link it, I was confused by that initial numbering!
    Thank you very much.

    Added after 21 [minutes]:

    robgold wrote:
    There are two versions:
    esp32s3_5.5.2 libs core 3.3.7.zip
    esp32s3_5.5.2 libs core 3.3.7_settings2.zip


    And let me add, settings2 is only available for versions 3.05 to 3.07
    i do not see it for version 3.37, there is only the standard for it.

    Budapest Rock and Juventus FLAC has already dealt with the tagging of songs ;)
  • ADVERTISEMENT
  • #2380 21850361
    robgold
    Level 23  
    Posts: 698
    Help: 10
    Rate: 284
    >>21850329 An error crept in on GitHub, it should be OK now. I changed the file names already on the very folder that syncs with GitHub and of course replaced the wrong file :)

    Informatively, the basic version has also already "played through" for a few hours and I have not noted any hang-ups of the FLAC stream.
  • #2381 21851263
    DJCheester
    Level 27  
    Posts: 2049
    Help: 75
    Rate: 949
    >>21849020

    I.e. manually, how?
    From the remote control, because I only use the remote control, all modes work, i.e. 5 and 6 as far as the analyser is concerned.

    Greetings ...
  • #2382 21851305
    robgold
    Level 23  
    Posts: 698
    Help: 10
    Rate: 284
    >>21850329 I haven't noticed Budapest Rock not having tags before. In FLAC they always had (I think so, or rather I would have paid attention to it)

    @DJCheester probably the issue is that on the settings web page there is a limitation to 4 modes and when you added the new ones someone didn't correct there the so called maximum value for the cell which makes it impossible to write above the value 4. Correct and recompile or manually in the settings file write yourself "5" or "6". When reading, the radio does not check this value if it is within the allowed range of the settings form. It checks the global limit of the variable and this I assume is correct.
  • #2383 21851327
    DJCheester
    Level 27  
    Posts: 2049
    Help: 75
    Rate: 949
    I sat that 3h and "fine-tuned" the analyser code for version 70b, a lot of it made me muse, that is, you are saying that the limitation is in the HTML code in settings max 4 and it should be 6. And it probably is, although the HTML I edited here I could have left out.

    I'm a bit ill at the moment so I probably won't be in the workshop for a while, the code is provided so this fix can be done by anyone for the time being.

    All in all, with the help of ChatGPT, this implementation worked, I didn't really believe I could do it with my knowledge.

    Best regards...
  • #2384 21851388
    JohnNagy
    Level 5  
    Posts: 14
    Rate: 3
    >>21851327 Thank you! I already managed to do it with ChatGtp. In the web part, a maximum of 4 was display. Get well soon!
  • #2385 21851397
    hevet
    Level 18  
    Posts: 346
    Rate: 47
    @robgold can you write what parameters you changed in the files to FLAC, in either version?
  • ADVERTISEMENT
  • #2386 21852241
    DJCheester
    Level 27  
    Posts: 2049
    Help: 75
    Rate: 949
    >>21849020

    As far as this is concerned, I have corrected

    Screenshot of “Evo Web Radio - Settings” with “OLED Display Mode” highlighted and set to 4

    It is now like this

    Screenshot of “Evo Web Radio - Settings” with “OLED Display Mode” highlighted and set to 6

    Greetings...
    Attachments:
    • Analizator-3.19.70bfix.zip (107.94 KB) You must be logged in to download this attachment.
  • #2387 21853645
    supsak
    Level 13  
    Posts: 81
    Rate: 5
    Hi guys, I would like to ask you which version of the radio "Robgold" ....soft 3.19.70
    I just noticed one more thing: the display is supposed to dim after 10 seconds /abo jag go ustavje v menu setting"/. Everything works, but when I give the command, press the remote, make the change, the display does not brighten up. It is still dark. Sometimes it doesn't brighten even after turning the encoder, changing the volume, switching banks.... Is it like this? Or is there a bug in the software?
    Thank you for vyjasznenje.
  • #2388 21853716
    robgold
    Level 23  
    Posts: 698
    Help: 10
    Rate: 284
    >>21853645 Not all buttons and operations from the remote control or encoder, brighten the display. If you have a specific case, please write. I'll get over the flu and take a look.
  • #2389 21853737
    supsak
    Level 13  
    Posts: 81
    Rate: 5
    No it would be good as vybjerasz bank, stancije, zatvjerdzascz cosz, czi volume... that would sze displaj rozjasznil, and then again extinguish.
  • #2390 21853744
    robgold
    Level 23  
    Posts: 698
    Help: 10
    Rate: 284
    >>21853737 It should brighten to the movements of the encoders but not react when you change something from the remote control. This was the assumption. Since some version the dimmer is on the system timer number 4. Maybe some reaction is to be checked.
  • #2391 21853745
    Anonymous
    Level 1  
  • #2392 21853751
    supsak
    Level 13  
    Posts: 81
    Rate: 5
    Nevjem, jaksz to u mne dzivne dzala, chyba że mosze dzialacz bialy vysvjetlacz...
    And what else would be good if there was in the menu-setting a LINE OUT... signal for power amplifier.
    In my case there is a very awake PAM8403.I had to make an Ateunator, because the radio already at 2 stupnu very drowsy... The same as when I added it to home cinema.PCM5102 dava for me enough... audio signal

    Added after 5 [minutes]:

    Cool radio "KULA350"
    O to moj dalej projekt Robgolda, white vyswjetlacz, housing from satellite box....

    Prototype radio device with exposed electronics, display, and a large control knob
    Open audio device case showing circuit boards, wiring, front display, and a large control knob


  • ADVERTISEMENT
  • #2393 21853769
    Anonymous
    Level 1  
  • #2394 21854298
    DJCheester
    Level 27  
    Posts: 2049
    Help: 75
    Rate: 949
    >>21853745

    Cool this mod congratulations Kula350 😀

    Question did you keep the connections like MAJSTER XXL ?
    Do you still have the MP3 player ?

    Col. Suspak I see that another radio is already there 👍

    Greetings....
  • #2395 21854306
    ArturAVS
    Moderator
    Posts: 26012
    Help: 2295
    Rate: 7713
    @kula350 Bravo! Finally someone who has taken advantage of the graphic capabilities of the TFT. In my SDR, It looks like the following. The whole (touch) screen is interactive;
    Touchscreen SDR radio UI showing 88.50 MHz with on-screen buttons MUTE, VOL, AGC, MODE
  • #2396 21854322
    Slawek K.
    Level 35  
    Posts: 3015
    Help: 259
    Rate: 1299
    It's a matter of taste, of course, but in my opinion it looks terribly indulgent.

    Cheers
  • #2397 21854376
    Anonymous
    Level 1  
  • #2398 21854383
    hevet
    Level 18  
    Posts: 346
    Rate: 47
    I have transplanted a vumeter for tests to my version on the tft 9488, unfortunately on most FLAC stations, it causes the stream to rip, on mp3 or aac it works tolerably ;) . I, unfortunately, am not a fan of flying bars if they spoil what should work without objection.
  • #2399 21854386
    MAJSTER XXL
    Level 29  
    Posts: 2063
    Help: 164
    Rate: 421
    @kula350 Beautiful work, when I find time I'll go through the code, I'll probably steal something. I was already thinking my v3 had gone into oblivion, yet it has such a cool player. State what type of display it is exactly, as I think you have some better contrast than mine, you can see as if it's in a soft gloss, in mine it's matte.
  • #2400 21854391
    Anonymous
    Level 1  
📢 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