logo elektroda
logo elektroda
X
logo elektroda

Internet radio and audio file player on ESP32-S3

MAJSTER XXL 294264 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:
  • #1951 21779922
    DJCheester
    Level 28  
    Posts: 2089
    Help: 75
    Rate: 958
    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: 2064
    Help: 164
    Rate: 429
    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
  • Menu setting to toggle GitHub station updates

    #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  
  • #1955 21781615
    hevet
    Level 18  
    Posts: 347
    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.
  • ADVERTISEMENT
  • Proposal to organize versions and link the repo

    #1956 21781671
    MAJSTER XXL
    Level 29  
    Posts: 2064
    Help: 164
    Rate: 429
    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: 347
    Rate: 47
    @MAJSTER XXL this is not my version, I gave a link to the files for FLAC version 3.3.3
  • ADVERTISEMENT
  • Using a pipe separator for station metadata

    #1958 21781795
    robgold
    Level 23  
    Posts: 726
    Help: 10
    Rate: 290
    @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
  • Use pipe-separated bank fields for easier editing

    #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 :-)
  • Radio version lineup and missing color LCD code

    #1960 21781937
    DJCheester
    Level 28  
    Posts: 2089
    Help: 75
    Rate: 958
    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 ...
  • Call for version sorting and repo links

    #1961 21782048
    bolszoy
    Level 11  
    Posts: 64
    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: 758
    Help: 94
    Rate: 288
    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 17  
    Posts: 301
    Help: 3
    Rate: 68
    Same as the original
  • Arduino build errors from mismatched Audio library API

    #1965 21782615
    simw
    Level 27  
    Posts: 758
    Help: 94
    Rate: 288
    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 17  
    Posts: 301
    Help: 3
    Rate: 68
    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
  • Platformio build may be required for this theme

    #1967 21782625
    simw
    Level 27  
    Posts: 758
    Help: 94
    Rate: 288
    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 17  
    Posts: 301
    Help: 3
    Rate: 68
    Enter gitchuba second repository
  • Header files in root still leave EVO3_MOD2 errors

    #1969 21782653
    simw
    Level 27  
    Posts: 758
    Help: 94
    Rate: 288
    I tried compiling this:
    https://github.com/Mario2054/EVO-RADIO-MOD

    This time it worked, this is the structure of the Arduino project directory

    Arduino EVO-RADIO-MOD project folder view with source files and folders


    Screenshot of the “src” folder in the EVO-RADIO-MOD Arduino project with .cpp and .h files

    As you can see the header files are in the root directory, I did the same for the https://github.com/Mario2054/EVO3_MOD2 project but still the same errors are there
  • #1970 21782662
    ejcon
    Level 17  
    Posts: 301
    Help: 3
    Rate: 68
    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: 758
    Help: 94
    Rate: 288
    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 17  
    Posts: 301
    Help: 3
    Rate: 68
    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: 347
    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 17  
    Posts: 301
    Help: 3
    Rate: 68
    Make available for download
  • #1975 21783732
    robgold
    Level 23  
    Posts: 726
    Help: 10
    Rate: 290
    >>21783682 So which version do you have at home that you didn't have www support ?
  • #1976 21783741
    ejcon
    Level 17  
    Posts: 301
    Help: 3
    Rate: 68
    I thought it was something new you had introduced
  • #1977 21783753
    simw
    Level 27  
    Posts: 758
    Help: 94
    Rate: 288
    hevet wrote:
    Web service, maybe minimalist,

    As for me very nice and chic, at the same time modern :)
  • #1978 21783757
    robgold
    Level 23  
    Posts: 726
    Help: 10
    Rate: 290
    @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: 347
    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 :) .
  • ADVERTISEMENT
  • #1980 21783848
    Anonymous
    Level 1  
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