logo elektroda
logo elektroda
X
logo elektroda

Internet radio and audio file player on ESP32-S3

MAJSTER XXL 259668 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):
  • #1951 21779922
    DJCheester
    Level 27  
    Posts: 2049
    Help: 75
    Rate: 949
    robgold wrote:
    Because sometimes I ask myself but there is always something that can be improved, improved, changed.


    It is a nagging question, the answer is not there, and with time it will pass on its own (like puberty or childhood).

    I was always poor with programming in school there was no Arduino only some bat files and Turbo Pascal something there I remember, this level what is now is just learning and for now I ask everyone about everything and ask for help

    And going back to the quote, I made an amplifier for a fish in the '95s - then until 2014 it underwent bigger or smaller modifications, but here related to elemtronics and layout.

    Today it's retro stuff but I invite you to have a look 😁

    https://www.elektroda.pl/rtvforum/topic3090872.html

    Greetings...
  • ADVERTISEMENT
  • #1952 21780008
    MAJSTER XXL
    Level 29  
    Posts: 2063
    Help: 164
    Rate: 421
    This was a quick action, made up a new setting in the menu to enable station updates from github, if the setting is on OFF, stations when switching banks will be read from the stored on the SD card.

    Device screen showing settings, Update from Github option set to OFF
    Microcontroller boot log with memory info and Wi-Fi connection messages
  • #1953 21781249
    Bhpjean
    Level 14  
    Posts: 100
    Rate: 35
    MAJSTER XXL wrote:
    This was a quick action, made up a new setting in the menu to enable station updates from github, if the setting is OFF, then stations when switching banks will be read from those stored on the SD card.

    Device screen showing settings, Update from Github option set to OFF
    Microcontroller boot log with memory info and Wi-Fi connection messages



    Have you thought about something like this ?

    https://jeansoft.zapto.org/edytor/edytor_demo.html


    Screenshot of tuner memory bank editor interface with function buttons
  • #1954 21781341
    Anonymous
    Level 1  
  • ADVERTISEMENT
  • #1955 21781615
    hevet
    Level 18  
    Posts: 346
    Rate: 47
    FLAC files for core version 3.3.3
    Attachments:
    • esp32s3_IDF5_5_core3_3_3_mid.zip (1.41 MB) You must be logged in to download this attachment.
  • #1956 21781671
    MAJSTER XXL
    Level 29  
    Posts: 2063
    Help: 164
    Rate: 421
    Since so much offtopic is going on here, I'm quietly thinking that many network radio stations have gained a fair amount of new listeners, I personally like DJ Albin of Radio Italo 4 You the best.

    Now to the point, why don't we somehow sort out all our versions that have been created in this thread, make some descriptions for their versions, link the repo and maybe everyone should send it to a moderator to hook it up in the first post, because really I've been lost for a long time. I unfortunately don't have the time to edit it all.
  • #1957 21781718
    hevet
    Level 18  
    Posts: 346
    Rate: 47
    @MAJSTER XXL this is not my version, I gave a link to the files for FLAC version 3.3.3
  • #1958 21781795
    robgold
    Level 23  
    Posts: 698
    Help: 10
    Rate: 284
    @MAJSTER XXL I agree 100% I was even thinking whether to go further and whether just finishing the conversion of the Sony tuner to Evo not to create a separate topic and develop Evo there so that order would prevail. At the moment it seems to me that we have as follows:

    - Radio v1 with 128x64 display, - MajsterXXL
    - Radio v2 with 256x64 display, - MajsterXXL (core for Evo and compatibility in terms of electronics, connections)
    - Radio v3 with TFT colour display, - MajsterXXL

    - Radio Evo v2 with 256x64 display - Robogld,
    - Radio Evo v3 with 256x64 display, - Robogld,

    - Mod Evo v3 with Spectrum analyser - Ejcon

    That's how much I've counted in my head.

    As for radio stations, I discovered, for example: Academic Radio Centrum from Lublin playing completely niche rock bands from our country, Smoothjazz.com.pl was an equally good discovery. I've also started to listen to RMF Classic and Radio 90 just as often. Although the latter is from my region, it's quite difficult to pick up on FM because of its low transmitter power.

    I find Italo4You such an ideal radio for any tests. Their server always works well, they have a very large buffer set up on the Icecast server and they broadcast at 256kbps. The second such good radio is Antyradio because they do not transmit a variable streamtitle and the third is Radio Plus (no stream title) and Polskie Radio 1,2,3 - no stream title but a very extensive station string.

    Added after 26 [minutes]:

    >>21781249

    I have something like this in Evo and I have the impression that I am the only person as an author who uses it. However, the most convenient thing is to have something on the PC that allows you to edit the banks as much as you want (I have an automated format in Excel with macros in VB and export to GitHub) and then upload them to the radio remotely (although the Editor also gives you this possibility).
    I think I have to borrow the separator idea from you and use the " | " character instead of a fixed number of spaces.

    Radio station list editor interface with station names, URLs, and action buttons
  • #1959 21781861
    Bhpjean
    Level 14  
    Posts: 100
    Rate: 35
    robgold wrote:
    I have something like this in Evo and I have the impression that I am the only person as an author who uses it. However, the most convenient thing is to have something on the PC that allows you to edit the banks as much as you want (I have an automated format in Excel with macros in VB and export to GitHub) and then upload them to the radio remotely (although the Editor also gives you this possibility).
    I guess I have to borrow the separator idea from you and use the " | " character instead of the fixed number of spaces.



    Aaaa, that means you already have .... very similar :-)

    And so it goes... Man gives tools and nobody uses them :-)
  • #1960 21781937
    DJCheester
    Level 27  
    Posts: 2049
    Help: 75
    Rate: 949
    robgold wrote:
    - Radio v1 with display 128x64, - MajsterXXL
    - Radio v2 with display 256x64, - MajsterXXL (core for Evo and compatibility in terms of electronics, connections)
    - Radio v3 with TFT colour display, - MajsterXXL

    - Radio Evo v2 with 256x64 display - Robogld,
    - Radio Evo v3 with 256x64 display, - Robogld,

    - Mod Evo v3 with Spectrum analyser, - Ejcon


    Yet a colleague hever bragged about the Ala evo3 radio on a colour LCD but has not yet made the code available, a pity.

    Greetings ...
  • #1961 21782048
    bolszoy
    Level 11  
    Posts: 63
    Rate: 5
    MAJSTER XXL wrote:
    Since so much offtopic is going on here, I so quietly think that many network radio stations have gained a fair amount of new listeners, I personally like DJ Albin of Radio Italo 4 You the best.

    Now to the point, why don't we somehow sort out all our versions that have been created in this thread, make some descriptions for their versions, link the repo and maybe everyone should send it to a moderator to hook it up in the first post, because really I've been lost for a long time. I unfortunately don't have the time to edit it all.



    Yeah : ) It would make it easier to build the radio. Well, and which peaks and where to swap. Because it's not very obvious either.
  • #1963 21782579
    simw
    Level 27  
    Posts: 754
    Help: 94
    Rate: 286
    ejcon wrote:
    The final anlizer lies here:

    Which versions of the libraries, especially the audio one, are needed to compile your version? Such as the one at robgold?
  • #1964 21782603
    ejcon
    Level 16  
    Posts: 253
    Help: 3
    Rate: 54
    Same as the original
  • ADVERTISEMENT
  • #1965 21782615
    simw
    Level 27  
    Posts: 754
    Help: 94
    Rate: 286
    Hmm, the 3.19.53 soft compiles correctly for me from Robgold, but yours gives errors like the one below.
    I compile both softwares under Arduino 2.3.6, on Robgold's git there is also a version under Platformio, which also compiles correctly.

    Code: C / C++
    Log in, to see the code
    .
  • #1966 21782621
    ejcon
    Level 16  
    Posts: 253
    Help: 3
    Rate: 54
    Sorry but I'm doing it with io platform and visual code

    Added after 48 [seconds]:

    After all, you have a ready-made file to upload the fimware
  • #1967 21782625
    simw
    Level 27  
    Posts: 754
    Help: 94
    Rate: 286
    ejcon wrote:
    You have after all a ready-made file to upload the fimware

    It doesn't work with my display, because it's a different display :)

    ejcon wrote:
    Sorry but I am doing this platform io and visual code

    I compiled a version of Robgold prepared under Platformio, so I assumed it would work here too. :)
    I also compiled YoRadio, which has the same file structure as under Platformio (main.cpp etc)
    The project structure looks like the pictures, but maybe I've overcompiled the theme and without installing Platformio it won't work.


    Screenshot of the ESP32_Radio_EVO3_MOD2 Arduino project folder with four items
    Screenshot of project source folder with .cpp and .h files in Windows system
  • #1968 21782628
    ejcon
    Level 16  
    Posts: 253
    Help: 3
    Rate: 54
    Enter gitchuba second repository
  • ADVERTISEMENT
  • #1970 21782662
    ejcon
    Level 16  
    Posts: 253
    Help: 3
    Rate: 54
    Make sure I have the necessary audio files in this directory, because it seems to be a leftover from the old version
  • #1971 21782846
    simw
    Level 27  
    Posts: 754
    Help: 94
    Rate: 286
    robgold wrote:
    For the moment I think we have as follows:

    Well there goes the "first" version with a VFD display and it's quite large, 6.1 inches :)

    - Radio Evo v3 with VFD253x63 display



    Radio Evo v3 with VFD253x63 display

    Evo v3 radio module with large VFD display and visible electronic components
  • #1972 21783499
    ejcon
    Level 16  
    Posts: 253
    Help: 3
    Rate: 54
    Added 16 point equalizer with all operation from remote and encoder .
    It is possible to switch from Equalizer 3 to 16 point equalizer on the remote control 3x0 .Test how it works on FLAC and AAC because it can all cut on the analyzer itself from the previous version .
    Attachments:
    • main.cpp (416.54 KB) You must be logged in to download this attachment.
    • firmware.bin (2.24 MB) You must be logged in to download this attachment.
    • EQ16_Integration.txt (4.3 KB) You must be logged in to download this attachment.
    • EQ16_GraphicEQ.h (4.04 KB) You must be logged in to download this attachment.
    • EQ16_GraphicEQ.cpp (20.96 KB) You must be logged in to download this attachment.
    • EQ_FFTAnalyzer.h (1.39 KB) You must be logged in to download this attachment.
    • EQ_FFTAnalyzer.cpp (11.03 KB) You must be logged in to download this attachment.
    • EQ_AnalyzerDisplay.h (4.76 KB) You must be logged in to download this attachment.
    • EQ_AnalyzerDisplay.cpp (45.14 KB) You must be logged in to download this attachment.
  • #1973 21783682
    hevet
    Level 18  
    Posts: 346
    Rate: 47
    I'll brag a bit about this too, web-based operation, minimalist perhaps, but sufficient.


    Minimalist web radio player interface with Super FM station selected
  • #1974 21783693
    ejcon
    Level 16  
    Posts: 253
    Help: 3
    Rate: 54
    Make available for download
  • #1975 21783732
    robgold
    Level 23  
    Posts: 698
    Help: 10
    Rate: 284
    >>21783682 So which version do you have at home that you didn't have www support ?
  • #1976 21783741
    ejcon
    Level 16  
    Posts: 253
    Help: 3
    Rate: 54
    I thought it was something new you had introduced
  • #1977 21783753
    simw
    Level 27  
    Posts: 754
    Help: 94
    Rate: 286
    hevet wrote:
    Web service, maybe minimalist,

    As for me very nice and chic, at the same time modern :)
  • #1978 21783757
    robgold
    Level 23  
    Posts: 698
    Help: 10
    Rate: 284
    @simw @hevet It's true it looks nice. Black is always tasteful :) Upload @hevet as you can/want index.html if the rest of the "underneath" fits then you can always swap for yourself.
  • #1979 21783771
    hevet
    Level 18  
    Posts: 346
    Rate: 47
    I have the web server in a separate file and it is impossible to swap it 1:1, I have changed a lot of functions. I went through a bit of trouble to find out why the remote control works ok, but the web server often causes the screen to go white when changing stations or banks.

    @robgold A, ok it's the server for my version on ili9488, and you thought it was for SSD1322 :) .
  • #1980 21783848
    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