logo elektroda
logo elektroda
X
logo elektroda

Internet radio and audio file player on ESP32-S3

MAJSTER XXL 214008 2285
ADVERTISEMENT
Treść została przetłumaczona polish » english Zobacz oryginalną wersję tematu
📢 Listen (AI):
  • #2251 21834949
    grzes_dst
    Level 11  
    I've updated all the Libraries to those versions what was in the description of the 3.19.70 software.
    Out of curiosity I will move the file to the second computer, where I still have the Arduino version with the Libraries that were required almost a year ago, I uploaded version 3.18.13 then and I wonder if it will compile there.
    Unfortunately, for some time I do not know why I do not read the SD card on this old sofet and now I see on 3.19.70 also does not read, the reader is working and the SD card also, connected to the radio with software @MAJSTER XXL reads without a problem.
  • ADVERTISEMENT
  • #2252 21835314
    robgold
    Level 22  
    In version 3.17.70 which was on GitHub there was indeed a bug. It is related to the AUTOSTORAGE function. Until now, in the absence of an SD card the radio was forbidden to execute read/write commands by setting the noSDcard flag. Now that we have auto card detection and switching to littleFS it no longer matters. As I test the Evo always with the Kenwood remote I did not catch this in the case of no remote control command assignment. The fix is already on GitHub - 3.17.70b.

    As far as the libraries are concerned, remember to delete the contents of your pre-compiled sketch (this is a folder mixed somewhere in such a location: C:\Users\UZYTKOWNIK\AppData\Local\arduino\sketches\81E27BE4BC53B9ECDB189A378BBC358C" - this last folder (81E27BE4BC53B9ECDB189A378BBC358C) you need to check yourself because each program/sketch has its own)

    Arudino unfortunately doesn't have something like a real compiler which is called "make clean" and is responsible for clearing the compilation folder of everything that has been recompiled so far and if you manually change the libraries, Arduino doesn't know about it. So it ignores such an update, thinking that since it already has a recompiled library, e.g.: audio, it skips it and "goes on". Which then causes various problems such as audio not working.
    Such is the charm of Arduino. The creators assume that no one changes the libraries themselves and the machine always works perfectly.

    In Evo, I use my own partition scheme, because both Arduino and Platformio are flawed in this respect and impose some ready-made solutions, not allowing full use of the 16N8 module space. If you upload a BIN file and have previously compiled on settings other than "custom", it simply won't work for you. There is a file on GitHub called "partitions.csv" - put it in the sketch folder (where the ino file or the Platformio project folder) and in the Arduino additionally select Partition Scheme: "Custom". If you program the module with this scheme once, then the OTA works flawlessly afterwards.

    Have a nice reception !
  • #2253 21835323
    DJCheester
    Level 27  
    I will upload the revised version tomorrow and test it.

    Best regards and thanks 😀

    Added after 10 [hours] 45 [minutes]:

    >>21833304

    Hello, for the radio with BT option by colleague ejcon I prepared a PCB, I did not test or order these boards, the radio itself was run on a previous version of the board with two encoders - and this PCB I extended with a second ESP32 BT module.

    3D render of a green PCB labeled for ESP32 modules, audio, USB, SD, and encoder connectors
    Bottom side of a green PCB with visible traces and through-holes on a blue background

    The jumper on the 3v3 and 5v PCB is the type of power connection to the second ESP32 BT module
    Ejcon as far as I know has a 3v3 connected power supply and I connected it to the radio via 5v - of course you only choose one connection either 5v or 3v3

    This is what the PCB looks like after soldering

    PCB with ESP32 modules, RCA audio jacks, OLED header, and mounted electronic components
    Bottom side of a green PCB with many traces and solder points, plus four standoffs at the corners

    Please find attached the necessary design and gerber files to order from china.

    Connections on the PCB between the ESP modules

    ESP32 S3 BCLK (GPIO12) - ESP32 BT GPIO26
    ESP32 S3 WS/LRCLK (GPIO14) - ESP32 BT GPIO25
    ESP32 S3 DATA (GPIO13) - ESP32 BT GPIO22
    ESP32 S3 - ESP32 BT GND

    ESP32 S3 TX (GPIO20) - ESP32 BT RX2 (GPIO16)
    ESP32 S3 RX (GPIO19) - ESP32 BT TX2 (GPIO17)

    @ejcon can you check the RX / TX connections between the modules as you have on the softy made available as I wrote above because it is so on the PCB or vice versa ?

    ejcon wrote:
    The RX and TX connections may be swapped I don't remember how I programmed 19 and 20 ESP32S3 N16R8



    Greetings ...
  • #2255 21835642
    robgold
    Level 22  
    I would be cautious about using these pins: ESP32 S3 TX (GPIO20), ESP32 S3 RX (GPIO19)
    ESP has USB on them. It's not the happiest solution to plug a UART in there.
  • ADVERTISEMENT
  • #2256 21835675
    DJCheester
    Level 27  
    Robgold version 70b remote control and save config work ;)
    I am just testing 70b

    Greetings ...

    Added after 1 [hours] 4 [minutes]:

    >>21835323

    For the version of Ejcon-MOD (v.3.19.53.BT) I attach the version that is currently on the ejcon server - after my changes it compiles on the Arduino IDE

    Screenshot of Arduino IDE 2.1.1 showing Ejcon-MOD/ESP32 code and build output with memory usage

    Regards ...
  • #2257 21835750
    ejcon
    Level 15  
    >>21835642
    I know it's not the luckiest circuit, but on other pins the uart didn't work
    Besides
  • #2258 21835775
    robgold
    Level 22  
    >>21835750 How does it not work, did you do the assignment correctly ?

    https://docs.espressif.com/projects/esp-idf/e...e/esp32s3/api-reference/peripherals/uart.html

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


    In the ESP32-S3 you have the GPIO Matrix you can assign this to yourself almost freely. Just because the "by default" configuration from ESP-IDF assigns something doesn't mean it has to be that way.
    The fact is, such a simple radio and you basically use all GPIO pins ;)
  • #2259 21836112
    hevet
    Level 18  
    @robgold when compiling in Platformio, surely it uses your partition layout? From what I gather this should be declared in platformio.ini

    board_build.partitions = partitions.csv

    you are missing this

    New audio library commits came out yesterday, I don't recommend it for now. After uploading you have to change some things in the code to make the equalizer work. Also, the sound is much quieter, the eq ranges have also changed and on my eq settings I've used so far, the sound is less clear, more muffled, I can't set it to suit me now. I'll stick with the old version for now, and for "fun" I'll check out the newer versions.
  • #2260 21836155
    robgold
    Level 22  
    >>21836112 There seems to be an old platformio.ini shared on GitHub. I rebuilt the project recently and cleaned it up but I don't seem to have uploaded the ini to the gtihub folder. Thanks for catching that. I usually do ctr+c, ctr+v to main.cpp and check if it compiles ;)

    As for the library, I saw that Wolle and very much wants to introduce this new equalizer based on ESP-DSP from the Espressif package. It's not even that bad, it's just that the lack of documentation on what to change where is annoying. While for the old stuff there are examples, for the new stuff you have to look in the library for what has changed and what to set.

    In addition, the vuMeter has changed, it has exactly what I added to the Evo i.e. "fast attack" and slow "release" values.
    Code: C / C++
    Log in, to see the code


    Still the new Equalizer as you wrote:
    Code: C / C++
    Log in, to see the code


    There will be what to do and what to change to bring it all to work. Feels that this is the moment for Evo 3.20.00 to not mess up these libraries ;)
  • #2261 21836379
    krzychokup
    Level 10  
    A very cool project and all the time "alive" it is gratifying. Thanks to the author.
  • ADVERTISEMENT
  • #2263 21836720
    supsak
    Level 12  
    Hi.
    I am testing Robgold 3.17.70b verziju with two encoders. It works vsicko OK.
    I would like to ask, if I hold down the station and bank switch button longer, does the radio switch off?
    I assumed that it only turns off with the button that adjusts the volume and does a "Mute" of the audio signal.
    The volume control encoder works in such a way that turning it adjusts the volume, pressing the-Mute button after a while shows me the currently used bank, and if I hold it down even longer, the radio goes into standby mode. Does it work this way for you too?
    Greetings.
  • #2265 21837161
    pipikupi1979
    Level 10  
    Hello, sorry to barge in here like this but I would like to ask a few questions if possible. If I am simply ignored as a newcomer who is bothering you, then I fully understand. The first is congratulations on the latest soft. One thing I have noticed, however, is that when, especially in bank 17, I hit a 24 bit stream that has no audio "at the moment ", a message to that effect appears on the screen and then there is an automatic restart and sometimes audio appears on the same address after the restart. And coming to the point, I wanted to ask about the design of the board that included the i2c keyboard on pins 8 and 9. Is this something that is in the development plans for future versions or just this ADC keyboard on pin 9 ? The second question is about the joystick on pins 16, 17, 18 is there any code development option here or is this just an initial assumption that will not be developed. Greetings and congratulations again on the code as the project is amazing.
  • #2266 21837291
    robgold
    Level 22  
    >>21837161

    Bank 17 and 24-bit streams are added experimentally. The audio library has been supporting them since December 2025 and sometimes it happens that trying to switch the stream ends with a Core1 problem and an ESP reset. Therefore, this is an additional Bank 17 for testing/playing.

    Originally as the PCB was being built the ADC keyboard was not yet fully tested and I left options for a possible dedicated i2c controller for it. Today I know that the ADC keyboard works very well and up to these say 20 buttons it handles perfectly. Certainly the i2c itself will remain because it will be needed to support any new converters or amplifiers in the TAS series so there could be both keyboard and amplifier configuration on these pins in the future. At the moment there is no keyboard support over i2c in the code. The ADC keyboard will most likely be moved to pin GPIO7 in future versions (must be on ADC1)

    Joy connector design was added to maintain compatibility with @MAJSTER XXL software . However, this piece of code was never added in Evo. I went a different route - I transferred the full operation to a single encoder and it stayed that way. Today, this connector is used to connect the Standby LED and possibly a dedicated Power button. It is so convenient that on GPIO17 and GPIO18 you can also have UART1 if you need it.

    @supsak
    This is how it is supposed to work. When you add encoder 1 (additional) some functions from encoder 2 are transferred to encoder 1 but those that are hidden in the long and super long press remain. Just as the PowerOn/PowerOff function remains

    ENC1 - Station list / Bank list
    ENC2 (basic) - Configure for Volume options and pressing it mutes, long pressing enters the Bank menu and super long pressing enters PowerOff.
  • ADVERTISEMENT
  • #2267 21837441
    pipikupi1979
    Level 10  
    Thank you very much for your reply. These 24 bit streams work, as an experiment, very well. i jumped to the latest version 3 days ago, having previously been on the previous version for a while, which I was very happy with for stability and responsiveness. A few days ago I started a project with a Technics tuner I had unearthed in the attic, unfortunately there is no numeric keypad for the channels, but the 17 buttons are there, so some functions can be output. The original was a 3 line matrix keypad, but I've cut it up and want to splice one ADC line. Just wondering whether to go with resistors or helitrims and tune the resistance to get fairly even spacing for stability. This is my project somewhere around half way to completion
    Technics ST-X302L tuner with lit display, on a shelf above Harman/Kardon audio components

    My question is, are you considering an SD card file player? I've tested a mod that does this and it's generally cool, only the graphical changes in that design compared to your style convention however dictate that I stay on your version as it's closer to my preferences. Best regards and thanks again for the information.
  • #2268 21837707
    robgold
    Level 22  
    >>21837441 I don't rule out the possibility of introducing a player but that would take a lot of time and refining the subject to perfection. Throwing in just so will lower the quality in which I would like to keep the Evo soft. So it will either be reasonably well implemented but not at all.
  • #2269 21837800
    pipikupi1979
    Level 10  
    I fully agree with this. That is why you Evo and not something else. My adventure with the radios I started a few years ago with the project Edzelf from github on vs1053 but I gave up because the quality was very poor then somewhere by accident a few months ago I found yoradio and all in all cool and about a month ago I found on the yoradio group on Facebook that starts a group Evo radio out of curiosity I went in, downloaded, fired up and that would be enough to say because I liked the project so much that there is nothing to say. Once again, best regards and I will not bother you again
  • #2270 21837989
    JohnNagy
    Level 3  
    >>21835675 Dziękuję, udało mi się to skompilować, ale dwa ESP nie łączą się. Tego właśnie potrzebuję do ESP32, prawda?:
    EVO_WROOM_A2DP_TX_VOL100_USB_DEBUG.ino.bootloader.bin
  • #2272 21838124
    amrowek
    Level 13  
    Eh... so i read i....utknocked but , i have the following question
    1 Can the SSD 1322 display be replaced by an LCD 20x4 2004 with an IIC/I2C IIC serial interface adapter?
    2 Can the encoders be replaced with switches?


    after the competition

    is anyone going to order the boards from the Chinese, because I've failed... I would like to join the order

    What is the difference between the Evo and the Majster software apart from the displays?
  • #2273 21838140
    DJCheester
    Level 27  
    Hello softy has evolved a lot since the early days.

    Theoretically everything can be done, but the replacement of 2x20 display is not supported and if someone would be tempted to change it would involve rewriting a lot of code and accepting the loss of a lot of information that is available in the case of graphic display. My first beginnings with this radio looked like this.

    LCD module showing “Internet Radio” and “Connecting to network” on a table, with a laptop in the background.

    As they say, nothing is impossible, but I would rather add a display like the one in the project than try anything else. Besides, I saw somewhere a project for 2004 internet radio.

    Encoders cannot be easily replaced by switches, and Robgold's colleague has an ADC keyboard implementation and it works for buttons with a resistor ladder, but typically replacing an encoder or encoders with switches without interfering with the code and functions is not possible.

    PCBs I have made available on the forum cost 5pc boards under different versions of Robgold's colleague's radio 2-encoder ¹-enkkder or Majsta without encoders I have made available you need to search for an attachment called ZIP Thermotransfers.

    The cost of buying 5pcs boards is about 40PLN so an acceptable amount.

    Also, on github kol Robgold's github there is a ready-made gerber file that is a PCB to order from china so the PCB version contains SMD components. My shared in the topic are on the elements przewlekanych (I already have my years and eyesight not what it used to be).

    Recently I made available another version of PCB under the modification of colleague Ejcona it is a modification of Robgold's software but the modification adds the possibility of transmitting via Bluetooth for this version two ESP modules are used.

    Differences between Majster's and Robgold's software
    The Majster has an MP3 player from an SD card
    Operation only with remote control
    Colour LCD 320x480

    Robgold's colleague
    OLED display
    Operation via web page
    Remote control and two encoders or one configurable in software
    No MP3 player (for the moment)
    Possibility to operate the radio without SD card



    Greetings ...
  • #2274 21838150
    amrowek
    Level 13  
    @DJCheester

    thanks for the reply...
    As far as the board is concerned, I relented when communicating with the Chinese on their site
    I also prefer a threaded one because I'm also a man hm already old school.
    The colour display is not a priority for me, I prefer better sound quality.
    An MP3 player is not necessarily for me. This begs the question

    What about the hardware, would it be a problem to split the EVO software into 2 SD cards?
    https://allegro.pl/oferta/342-mini-odtwarzacz...-0pODWD_z0tB96aoijO7xAiHqGcLAQmRoCW14QAvD_BwE
  • #2275 21838172
    pipikupi1979
    Level 10  
    Hello, I have a question on the previous version of my favourite station smoothjazz.com.pl in flac1500 was playing like crazy now after the update after an average of 20-50min it freezes and silence again selecting the same station with the encoder starts playing normally. When the audio is frozen the radio is not available through the web panel. Generally I have not made any changes to the parameter configuration I have the latest version on 2 ESP32 S3 and they behave similarly. To eliminate the issues that this could be a problem with my network I fired up 3.19.53 on mobile internet from my phone and on wifi 3.19.70 after about 30 minutes 3.19.53 continued to play with 70 no longer. I then swapped networks ie 70 went on mobile and 53 on wifi and the response was the same. So it is not a network issue. All in all I am wondering what I can try to do or change to eliminate this. Just in case, I swapped ESPs in both boards meaning as each worked with each the effect was the same. I loaded both radios from a bin file just in case to make sure I didn't mess with the libraries. Regards
  • #2276 21838205
    CodeBoy
    Level 33  
    amrowek wrote:
    @DJCheester

    thanks for the reply...
    As far as the board is concerned I have relented when communicating with the Chinese on their site


    With which Chinese? Everything is in English, step by step, even in chrome you can translate the page into Polish.
    Seriously, if this is too much for you, then let it go, because then you will fail and only throw money down the drain.
  • #2277 21838287
    amrowek
    Level 13  
    CodeBoy wrote:
    Seriously, if this is too much for you to handle, then let it go, because then you'll just end up throwing money down the drain.

    But on what, a radio with ESP or ordering from a Chinese?
  • #2278 21838289
    robgold
    Level 22  
    @krzychokup
    This thread was once raised, then forgotten. Just now there are changes to the audio library, so maybe there will be an opportunity to add balance adjustment.

    @amrowek
    The Evo project is based on a single 256x64 OLED display type on some twin drivers (there is inside code in the latest version support for 128x64, but only in 1 mode).

    @pipikupi1979
    The problem with smoothjazz.com.pl is known to me, I even started a topic with the author of the audio library, because the problem is ONLY with this stream. So far I've managed as a solution to use a WiFi bandwidth limitation of only 20 MHz and then everything is fine. I think when I tested 3.19.53, it didn't play as well. It's good that you've checked this, in which case the suspicion falls on the autostorage function, the SPIFFS change to littleFS or the OLED reset pin assignment, as these are such visible changes.

    I turned on 3.19.70b today for testing with autostorage disabled and the router in a 20/40/Ce configuration. We'll see how much it plays. BTW. Smoothjazz.com.co.uk is not transmitting 1500 kbps, recently after a conversation with Mr. Peter (station owner) he corrected this and we now have a true real reading with VBR at ~1 Mbps.
  • #2279 21838293
    ArturAVS
    Moderator
    robgold wrote:
    real reading with VBR at ~1 Mbps.


    What is this for?
    robgold wrote:
    For now, I have managed as a solution to use WiFi bandwidth limitation of only 20 MHz


    After all, the WiFi bandwidth limitation does not (should not) have any effect on this.
  • #2280 21838317
    CodeBoy
    Level 33  
    amrowek wrote:
    CodeBoy wrote:
    Seriously, if this is too much for you, then let it go, because then you will fail and just throw money down the drain.

    But on what, a radio with ESP or an order from a Chinese?


    If the problem for you is uploading the PCB file on the website, what do you want to do next?

    These are the basics of computer operation, and this radio then requires an environment to upload the rest, i.e. software, libraries etc.
📢 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.
Summary generated by the language model.
ADVERTISEMENT