logo elektroda
logo elektroda
X
logo elektroda

Internet radio and audio file player on ESP32-S3

MAJSTER XXL 197145 2147
ADVERTISEMENT
Treść została przetłumaczona polish » english Zobacz oryginalną wersję tematu
📢 Listen (AI):
  • #1591 21754427
    dawidkosciesza
    Level 8  
    Hello.
    I would like to build a radio according to the EVO3 project. I would like to mount it in the housing of a Diora AS502 radio, such a gift for my Father-in-law.
    I have a few questions:
    Is there a list available of all the components needed to order and have everything needed to solder into the PCB. I have not found such a list on GitHub.
    I would like to omit the encoder from my project and replace it with regular buttons (right, left, enter). Will this be very cumbersome?
    I wonder if it would also be possible to assign 8 additional buttons as memory for 16 favourite stations (one button remembers two stations, short press/long press).
    I don't have much experience with writing programs unfortunately, but I'm trying to develop ;)
  • ADVERTISEMENT
  • #1592 21754434
    DJCheester
    Level 27  
    Hello, referring to the above message, the evo3 radio is prepared to work without an encoder, but with the possibility of adding and assigning a keypad.

    More about this in a moment, because I myself am preparing a version with a keyboard.

    Greetings....
  • #1593 21754449
    robgold
    Level 22  
    @dawidkosciesza The Evo has built-in keyboard support based on a resistive ladder and ADC. There are plans to replace the ADC with a PCF-based keyboard chip. At the moment, there is no 'Favourite' station option. Perhaps one day I will add it.

    You are left with the option to add this piece of code yourself or, alternatively, you can program the 16 favourite stations in a specific way, e.g. in Bank 1:

    1 - under 1,
    2 - under 2,
    ...and so on up to 8,
    8 - under 8,
    and then another 8 as:
    11 - 9 station
    22 - 10 station
    ...etc. to
    88 - 16 station,

    simply the buttons 1-8 from such a tuner can be connected to the numeric keypad code.
  • ADVERTISEMENT
  • #1594 21754490
    DJCheester
    Level 27  
    Welcome.

    For some time now I have been creating another "block" for my Schneider tower. The tower is now about 40 years old, I have renovated this equipment, and added a CD player integrating function and interoperability with the whole set, that is, operation of a common remote control, input selector and recording to cassette from cd.
    The equipment has full compatibility.
    Especially from here I would like to thank my colleague @gps79 for developing the software for the CD player, if it wasn't for him it wouldn't be compatible with the rest of the set, it was he who wrote the remote control reception in ITT standard and the input selector support.
    My warmest greetings to him from this place.
    Someday I will describe in detail how we have been struggling with this construction, but I would like to do it right and, as you know, you need time to do it, which is still lacking.

    1980s Schneider Hi-Fi stack with multiple black audio components on a carpet

    As the equipment is modular I intend to add another block consisting of this radio from the Robgold evo3 version of the coll.

    There is already a PCB version without encoders but with keyboard and remote control operation.

    PCB for my version of the radio.

    Two Schneider DCS8070WR PCB boards lying on a patterned carpet Two PCBs with electronic components placed on a beige carpet

    The whole thing will be mounted in the tuner like this.

    Schneider hi-fi module with a custom PCB board mounted on top of the unit Disassembled radio module on top of a Schneider Hi-Fi tower with visible PCB Modular Schneider Hi-Fi tower with open tuner and visible circuit board Radio module on open Schneider Hi-Fi unit with visible custom PCB Mounted PCB inside audio tuner case with visible electronics and connectors

    I still don't want to get on with it yet because what I feel like sitting down to make changes to the code Col. Robgold gives a new update and new features (for which I thank him)

    Someday, however, the project of a mini Hi-Fi tower from the 1980s in Germany will have to be completed

    Greetings ...
  • #1595 21755433
    bolszoy
    Level 11  
    dawidkosciesza wrote:
    Hello.
    I would like to build a radio according to the EVO3 project. I would like to mount it in the housing of a Diora AS502 radio, such a gift for my Father-in-law.
    I have a few questions:
    Is there a list available of all the components needed to order and have everything needed to solder into the PCB. I have not found such a list on GitHub.
    I would like to omit the encoder from my project and replace it with regular buttons (right, left, enter). Will this be very cumbersome?
    I wonder if it would also be possible to assign 8 additional buttons as memory for 16 favourite stations (one button remembers two stations, short press/long press).
    I don't have much experience with writing programs unfortunately, but I'm trying to develop ;)



    Hello, there is no list of components. On the other hand, there are schematics on GitHub and on them it is described what type of display. But you have to read, sometimes several times, because you can actually get lost. Even someone asked about the type of display, if I remember correctly.
  • #1596 21755482
    bolszoy
    Level 11  
    DJCheester- Towje solution helped but now I have another error?


    C:/Users/Bolszoy/AppData/Local/Arduino15/packages/esp32/tools/esp-x32/2507/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.exe: C:\Users\Bolszoy\AppData\Local\arduino\sketches\60E76002371B55718EB2E4873B120729\sketch\ESP32_radio_v3_ILI9488_canvas.ino.ino.cpp.o:( .literal._Z13processIRCodev$part$0+0x80): undefined reference to `displayFolders()'
    C:/Users/Bolshoy/AppData/Local/Arduino15/packages/esp32/tools/esp-x32/2507/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.exe: C:\Users\Bolszoy\AppData\Local\arduino\sketches\60E76002371B55718EB2E4873B120729\sketch\ESP32_radio_v3_ILI9488_canvas.ino.ino.cpp.o:( .literal._Z13processIRCodev$part$0+0x84): undefined reference to `displayFiles()'
    C:/Users/Bolszoy/AppData/Local/Arduino15/packages/esp32/tools/esp-x32/2507/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.exe: C:\Users\Bolszoy\AppData\Local\arduino\sketches\60E76002371B55718EB2E4873B120729\sketch\ESP32_radio_v3_ILI9488_canvas.ino.ino.cpp.o:( .literal._Z13my_audio_infoN5Audio4_msgE+0xe0): undefined reference to `displayPlayer()'
    C:/Users/Bolszoy/AppData/Local/Arduino15/packages/esp32/tools/esp-x32/2507/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.exe: C:\Users\Bolszoy\AppData\Local\arduino\sketches\60E76002371B55718EB2E4873B120729\sketch\ESP32_radio_v3_ILI9488_canvas.ino.ino.cpp.o:( .literal._Z4loopv+0x44): undefined reference to `scrollDownFolders()'
    C:/Users/Bolshoy/AppData/Local/Arduino15/packages/esp32/tools/esp-x32/2507/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.exe: C:\Users\Bolszoy\AppData\Local\arduino\sketches\60E76002371B55718EB2E4873B120729\sketch\ESP32_radio_v3_ILI9488_canvas.ino.ino.cpp.o:( .literal._Z4loopv+0x48): undefined reference to `scrollUpFolders()'
    C:/Users/Bolshoy/AppData/Local/Arduino15/packages/esp32/tools/esp-x32/2507/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.exe: C:\Users\Bolszoy\AppData\Local\arduino\sketches\60E76002371B55718EB2E4873B120729\sketch\ESP32_radio_v3_ILI9488_canvas.ino.ino.cpp.o:( .literal._Z4loopv+0x4c): undefined reference to `playFromSelectedFolder()'
    C:/Users/Bolshoy/AppData/Local/Arduino15/packages/esp32/tools/esp-x32/2507/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.exe: C:\Users\Bolszoy\AppData\Local\arduino\sketches\60E76002371B55718EB2E4873B120729\sketch\ESP32_radio_v3_ILI9488_canvas.ino.ino.cpp.o:( .literal._Z4loopv+0x50): undefined reference to `listDirectories(char const*)'
    C:/Users/Bolszoy/AppData/Local/Arduino15/packages/esp32/tools/esp-x32/2507/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.exe: C:\Users\Bolszoy\AppData\Local\arduino\sketches\60E76002371B55718EB2E4873B120729\sketch\ESP32_radio_v3_ILI9488_canvas.ino.ino.cpp.o:( .literal._Z5setupv+0x94): undefined reference to `loadFileAndFolderIndexes()'
    C:/Users/Bolszoy/AppData/Local/Arduino15/packages/esp32/tools/esp-x32/2507/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.
    C:\Users\Bolszoy\Documents\Arduino\ESP32_radio_v3_ILI9488_canvas\ESP32_radio_v3_ILI9488_canvas.ino/ESP32_radio_v3_ILI9488_canvas.ino:521:( .text._Z13processIRCodev$part$0+0x356): undefined reference to `displayFolders()'
    C:/Users/Bolszoy/AppData/Local/Arduino15/packages/esp32/tools/esp-x32/2507/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../.../..../xtensa-esp-elf/bin/ld.exe: C:/lib/gcc/extensa-esp-elf/bin/ld.exe: C:/lib/gcc/extensa-esp-elf/bin/ld.exe: C:/lib/gcc/extensa-esp-elf/bin/ld.exe: C:/lib/gcc/extensa-esp-elf/bin/ld.exe: C:/lib/gcc/xtensa-esp-elf/bin/ld.exe: C:/lib/gcc/xtensa-esp-elf/bin/ld.exe.ino/ESP32_radio_v3_ILI9488_canvas.ino.ino:532:( .text._Z13processIRCodev$part$0+0x393): undefined reference to `displayFiles()'
    C:/Users/Bolszoy/AppData/Local/Arduino15/packages/esp32/tools/esp-x32/2507/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.
    C:\Users\Bolszoy\Documents\Arduino\ESP32_radio_v3_ILI9488_canvas\ESP32_radio_v3_ILI9488_canvas.ino/ESP32_radio_v3_ILI9488_canvas.ino.ino:2570:( .text._Z13my_audio_infoN5Audio4_msgE+0xfc): undefined reference to `displayPlayer()'
    C:/Users/Bolszoy/AppData/Local/Arduino15/packages/esp32/tools/esp-x32/2507/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../.../..../xtensa-esp-elf/bin/ld.exe: C:/lib/gcc/extensa-esp-elf/bin/ld.exe: C:/lib/gcc/extensa-esp-elf/bin/ld.exe: C:/lib/gcc/extensa-esp-elf/bin/ld.exe: C:/lib/gcc/extensa-esp-elf/bin/ld.exe: C:/lib/gcc/xtensa-esp-elf/bin/ld.exe: C:/lib/gcc/xtensa-esp-elf/bin/ld.exe.ino/ESP32_radio_v3_ILI9488_canvas.ino.ino:2708:( .text._Z13my_audio_infoN5Audio4_msgE+0xcf5): undefined reference to `displayPlayer()'
    C:/Users/Bolshoy/AppData/Local/Arduino15/packages/esp32/tools/esp-x32/2507/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.exe: C:\Users\Bolszoy\AppData\Local\arduino\sketches\60E76002371B55718EB2E4873B120729\sketch\ESP32_radio_v3_ILI9488_canvas.ino.ino.cpp.o: in function `loop()':
    C:\Users\Bolszoy\Documents\Arduino\ESP32_radio_v3_ILI9488_canvas\ESP32_radio_v3_ILI9488_canvas.ino/ESP32_radio_v3_ILI9488_canvas.ino.ino:3280:( .text._Z4loopv+0x3f4): undefined reference to `scrollDownFolders()'
    C:/Users/Bolszoy/AppData/Local/Arduino15/packages/esp32/tools/esp-x32/2507/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.exe: C:\Users\Bolszoy\Documents\Arduino\ESP32_radio_v3_ILI9488_canvas\ESP32_radio_v3_ILI9488_canvas.ino/ESP32_radio_v3_ILI9488_canvas.ino.ino:3254:( .text._Z4loopv+0x444): undefined reference to `scrollUpFolders()'
    C:/Users/Bolshoy/AppData/Local/Arduino15/packages/esp32/tools/esp-x32/2507/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld.exe: C:\Users\Bolszoy\Documents\Arduino\ESP32_radio_v3_ILI9488_canvas\ESP32_radio_v3_ILI9488_canvas.ino/ESP32_radio_v3_ILI9488_canvas.ino.ino:3178:( .text._Z4loopv+0x4c1): undefined reference to `playFromSelectedFolder()'
    C:/Users/Bolshoy/AppData/Local/Arduino15/packages/esp32/tools/esp-x32/2507/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../.../..../xtensa-esp-elf/bin/ld.exe: C:/lib/gcc/extensa-esp-elf/bin/ld.exe: C:/lib/gcc/extensa-esp-elf/bin/ld.exe: C:/lib/gcc/extensa-esp-elf/bin/ld.exe: C:/lib/gcc/extensa-esp-elf/bin/ld.exe: C:/lib/gcc/xtensa-esp-elf/bin/ld.exe: C:/lib/gcc/xtensa-esp-elf/bin/ld.exe.ino/ESP32_radio_v3_ILI9488_canvas.ino.ino:3165:( .text._Z4loopv+0x68d): undefined reference to `listDirectories(char const*)'
    C:/Users/Bolshoy/AppData/Local/Arduino15/packages/esp32/tools/esp-x32/2507/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../.../..../xtensa-esp-elf/bin/ld.exe: C:\Users\Bolszoy\AppData\Local\arduino\sketches\60E76002371B55718EB2E4873B120729\sketch\ESP32_radio_v3_ILI9488_canvas.ino.ino.cpp.o: in function `setup()':
    C:\Users\Bolszoy\Documents\Arduino\ESP32_radio_v3_ILI9488_canvas\ESP32_radio_v3_ILI9488_canvas.ino/ESP32_radio_v3_ILI9488_canvas.ino.ino:3024:( .text._Z5setupv+0x217): undefined reference to `loadFileAndFolderIndexes()'
    collect2.exe: error: ld returned 1 exit status
    exit status 1

    Compilation error: exit status 1


    I understand that the issue is:

    Screenshot of a compilation error in Arduino IDE in ESP32_radio_v3_ILI9488_canvas.ino file

    As for the attachment above /file.h/, I don't know by what miracle it attached and how to remove it.
  • #1597 21755484
    DJCheester
    Level 27  
    Well I was also wondering why you attached this file.

    The question is what windows do you have and is it 32 or 64 bit ?

    Greetings ...
  • #1598 21755501
    bolszoy
    Level 11  
    Win 11 64 bit.


    There is an empty /.ino/ on line 3024, and I think this is about the link. I will try again tomorrow.
  • #1599 21755507
    DJCheester
    Level 27  
    If it's blank then nothing is probably about the line above, but the code is good because it compiles at my place.

    Looking through the log I am concerned about esp32-x32 it looks like it wants to run on 32bit.

    And what version of core do you have ?

    Greetings ...
  • #1600 21755513
    bolszoy
    Level 11  
    Kitchen 3 something ... I think the latest one is 5.
    I'm looking for that link, and will install again. I've reinstalled Arduino and may have knocked out....
  • #1601 21755514
    DJCheester
    Level 27  
    I have 3.2.0 installed

    Maybe there is a problem here somewhere, because with me on 3.2.0 it compiles correctly.

    Maybe try an older core install.

    Unless other colleagues have any more insight from the league.

    Regards...
  • #1603 21755874
    DJCheester
    Level 27  
    I don't see an audio converter here, so it's out.

    If anything, it's something like this:

    https://pl.aliexpress.com/item/1005008709461693.html

    Here's the converter, but you'd have to redo the whole sketch because this LCD has a different resolution and controller.

    So ready-made boards that you can upload the software to without changes, I haven't seen.

    Greetings...
  • #1604 21756070
    Mis
    Level 14  
    A DAC can always be added externally. The question of adapting the software remains.
    But yoRadio, for example, will go on both boards quoted here.
  • ADVERTISEMENT
  • #1605 21756199
    DJCheester
    Level 27  
    Of course the pcm can be doped, but I guess the idea is to have everything on one PCB. So it would be better to use the yellow one.

    And then there is the issue of resolution and the display driver.

    Because the Evo3 is a software for OLED, only the master software could be tried. I prefer to assemble everything myself on the PCB as in the project.

    But whatever you prefer...

    Greetings....
  • ADVERTISEMENT
  • #1606 21756429
    Mis
    Level 14  
    Take a close look at the yellow one. There's audio on it, only that it's a simple mono amplifier controlled from the ESP's built-in 8-bit DAC. So poorly, and very much so. On top of that, it's a regular ESP32 and not an S3, so there's no PSRAM.
  • #1607 21756444
    DJCheester
    Level 27  
    Well, that's a bummer, but thanks for writing.

    I still think I should get my PCB made even at a china shop

    If necessary, I will make gerberas available for the radio of coll. Majster (LCD) and coll. Robgold (OLED)

    If something I will upload in a moment. 5pcs PCB about 25zl with free shipping of course JLCPCB.

    Greetings...
  • #1608 21756513
    gaborbalint919
    Level 3  


    The success of the attempt. This is what I wanted to achieve. A very good project.Screen with “Hits 1 Ibiza” text and blue sound equalizer barsPlayer screen displaying “Clubbing Party” by DJ Kris VALOIS on Hits 1 Ibiza playlist
  • #1609 21756637
    QALAB
    Level 11  
    I would like to thank all the authors who contributed to the Evo3 internet radio project for sharing it as open source.















  • #1610 21756726
    ArturAVS
    Moderator
    Mis wrote:
    from the ESP's built-in 8-bit DAC.

    None of the ESP32 versions have ever had a built-in DAC. A software (PWM) one, is as possible to implement.
    Mis wrote:
    This is a regular ESP32 and not an S3, so there is no PSRAM.

    PSRAM can be added to any version.
  • #1611 21756774
    DJCheester
    Level 27  
    Hello did I miss something, is there already a version of evo3 with spectrum analyser ?

    Greetings ...
  • #1613 21756807
    ArturAVS
    Moderator
    Slawek K. wrote:
    Surely ?

    This does not change the fact that it is implemented programmatically. Typically hardware-based is missing.
  • #1614 21756815
    Anonymous
    Level 1  
  • #1615 21756964
    robgold
    Level 22  
    @khoam I don't think you put it very precisely in ESP32-S3 you have PDM but no LPF. You have to build that yourself. Ordinary digital output.
  • #1616 21757015
    Anonymous
    Level 1  
  • #1617 21757079
    Sharki38
    Level 9  
    Hi, I am new to the topic of internet radio, but after reading your posts I would like to make a version of Evo3 - Robgold for example - myself. And my question: where to start? Probably by ordering components e.g. from Aliexpress and making myself a board from a Chinese? I don't think I will have any problems with the electronics, but I do with the software and the casing. Please tell me how your adventure started and what were your steps, hmm? Is my thinking correct for someone just starting out? Please give some advice, thank you very much in advance and best regards.
  • #1618 21757595
    DJCheester
    Level 27  
    Hello I started by buying modules on Ali .... and designing the PCB, as for how to install the Arduino and the needed libraries I recently provided a step by step instruction in pdf. It's in the subject line. On github my colleague Robgold has a gerber for his PCB you can order yourself from a Chinese. From what I remember there are SMD components. If you want, I for the version of colleague Robgold's Evo3 have designed a board on through-hole components and modules.

    This is how it presents itself. I already shared the gerber in the topic. But at the moment I have a little modified and if something I will win the gerber for the theme.

    Render of ESP32 Web Radio PCB with through-hole and modular components.

    ESP32 Web Radio PCB with labeled audio, USB, SD, and OLED component slots

    Bottom view of a green PCB with mounting holes and through-hole traces

    Soft of course by a colleague of Robgold.
    It can also be done on a contactor but this is an unstable design.

    Greetings....
  • #1619 21757603
    Anonymous
    Level 1  
  • #1620 21757609
    DJCheester
    Level 27  
    The ESP is on 18mm goldpins and plays fine without an external antenna, these are Gh frequencies not long wave.

    2cm from the board is totally sufficient, wi-fi level 5 dashes 😁

    I wrote project proven because it works for me.

    Greetings....
📢 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