logo elektroda
logo elektroda
X
logo elektroda

Internet radio and audio file player on ESP32-S3

MAJSTER XXL 226482 2414
ADVERTISEMENT
Treść została przetłumaczona polish » english Zobacz oryginalną wersję tematu
📢 Listen (AI):
  • #2011 21787641
    DJCheester
    Level 27  
    MAJSTER XXL wrote:
    I made a second menu, this time for the audio file player. In the settings, there are options to toggle the display of the song time from the beginning or from the end (I'm currently practising on MP3 files) and to enable/disable random playback of files from the current folder. I calculate the duration of an MP3 track with a fixed bitrate based on its size in bytes and its bitrate, which is the number of bits played per second. I first convert the file size from bytes to bits (multiplying by 8) and then divide this value by the bitrate in bits per second. The result of this operation gives the total duration of the song in seconds. The time counting code still needs to be refined, as some mp3s count incorrectly, I will collect the time for flac files using a different method, as the audio library returns the number of seconds for the loaded file.
    Below are screenshots of this menu in action, the code is available at a known location.

    Audio player screen displaying MP3 track info and playback time
    Settings menu of an audio player showing playback time and shuffle mode options


    I'm also testing no Majster cool that I can finally have my stations in Bank01.txt without worrying that it will overwrite your ;)

    PLUS ;)

    Regards...
  • ADVERTISEMENT
  • #2012 21788457
    robgold
    Level 23  
    I have uploaded Bank17.txt to GitHub for streaming.

    The radio does not download this bank automatically (unless you change the declarations in the code #define bank_nr_max 16 to 17). In this bank are ONLY FLAC streams of which from station 44 (AIDA Radio) are HiRes 24bit 1000-2500kbps. If someone would like to test for themselves, it is possible to swap in Bank 16, add to Bank 15 or make a test compilation with Bank 17. It doesn't all work perfectly yet, sometimes the library can reset the radio with such a load.
  • ADVERTISEMENT
  • #2013 21789070
    kula350
    Level 12  
    God is born, the power ... Have a blessed Christmas.
    Nativity scene with Joseph, Mary, and baby Jesus in a manger
  • #2014 21789414
    DJCheester
    Level 27  
    Welcome

    Also to all of you following and commenting on the topic, a healthy cheerful and merry Christmas.

    All the best, may the good Lord bless you all.

    Best regards...
  • #2015 21794053
    kula350
    Level 12  
    The ESP32 S3 does not get up when the power is switched off. After some time, when I switch it on again, it locks up. I have to reset with a button. Any hints are there? The radio works fine. I am satisfied, thank you to the creator.
  • #2016 21794069
    Lechuuu
    Level 13  
    >>21794053 Connect the GPIO0 pin via a 10K resistor to 3.3V and it will always boot up
  • #2017 21794071
    DJCheester
    Level 27  
    It's the ESP module's fault I have one too, after a long time after plugging in the power it goes dead, after pressing the reset button it gets up normally. I have tried replacing it and changing the capacitor at the reset button, but to no avail. Such modules do happen.

    Best regards...

    Added after 7 [minutes]:

    Lechuuu wrote:
    >>21794053 Connect the GPIO0 pin via a 10K resistor to 3.3V and it will always start


    Unfortunately this didn't help with me but what's the harm in trying.

    Regards...
  • #2018 21794083
    Lechuuu
    Level 13  
    DJCheester wrote:
    Unfortunately it didn't help with me but what's the harm in trying.


    Helps 100%, a topic rolled out dozens of times on the yoradio group on fb. It's just that ESP32-S3s have it so that after disconnecting the voltage and switching it on again they sometimes enter the programming mode. No capacitors help here, but what I wrote is checked and works
  • #2019 21794172
    DJCheester
    Level 27  
    Tomorrow I will solder again and see only I have to locate this faulty ESP. At least once I remember pulling it up with a resistor and it was fine for a while then after not using it for a week the problem returned.
    I will check it again tomorrow.

    Regards...
  • #2020 21794253
    kula350
    Level 12  
    >>21794069 Works for now. I'll see how after a night's rest, will it catch on? For now it works with a 0 to 3.3V connection.
    Here are some settings for that. I guess that's what this is about? (from the documentation)
    Table showing default configurations for GPIO0, GPIO3, GPIO45, and GPIO46 strapping pins
  • #2021 21794295
    hevet
    Level 18  
    I have two esp32s3s which did not start, I mean I had one because all I had to do was solder out the capacitor next to the boot button, that is the problem.
  • #2022 21794310
    Lechuuu
    Level 13  
    @hevet actually there is something in this, there are 100nF capacitors added to the switches and in the manufacturer's documentation these capacitors are marked as not mounted. Also removing the capacitors may help.... When I wrote about the capacitors not helping anything, I was referring to the capacitors on the ESP power supply.
  • ADVERTISEMENT
  • #2023 21794723
    kula350
    Level 12  
    >>21794310 Indeed. Same with RESET. I will desolder both and check. They only serve to prevent the contacts from vibrating. I guess pull-up resistors are a better solution though.
  • #2025 21794951
    DJCheester
    Level 27  
    Welcome ;)

    Still in the old year, I wish everyone all the best for this New Year 2026 ;) May this New Year be better than the one currently ending.

    And now the board promised to some under the version of my colleague Robgold with two encoders.

    The board is only on through-hole components and ready-made modules.
    In addition, I used a PAM8403 amplifier module on the PCB so that small speakers can be connected to the board to make, for example, a kitchen radio.

    This is how the designed PCB looks like (it is very similar to the previous one with an input for one encoder - the dimensions and mounting holes have been retained)

    Blue ESP32 Web Radio PCB with labeled pads for modules, connectors, and components
    Blue PCB with signal traces and mounting holes, viewed from solder side

    And this is the model of the assembled radio on this board.
    For this version it is possible to upload software of friend Robgold currently 3.19.53
    Additionally added output for diode on JST connector

    3D render of a PCB with ESP32 module and PAM8403 amplifier
    Bottom view of a green PCB with through-hole pads, traces, and mounting holes

    I am attaching the finished gerber file for those who would like to order from China for the tiles

    Greetings

    Moderated By Felini:

    Attachment removed at user's request, supposed to contain errors.
    Link to post with corrected attachment - https://www.elektroda.pl/rtvforum/topic4041603-2040.html#21802641

  • #2027 21795705
    DJCheester
    Level 27  
    Beautiful I'm uploading tomorrow 😀

    Greetings...
  • #2028 21795830
    pitekb
    Level 14  
    Hi
    DJCheester can you please have the file in a version for thermal transfer. Thank you in advance.
  • #2029 21795880
    DJCheester
    Level 27  
    Hello, please find brd files (Eagle CAD) and html partlist files (BOM files) and PDF files for thermal transfer attached.

    The attachment contains four versions of the boards, i.e. under Robgold and Majster software
    1. PCB for Robgold software v3 evo (up to the latest software version 3.19.53 with one encoder)
    2. Board under Robgold software v3 evo (up to the latest software version 3.19.53 with two encoders)
    3. PCB under Majstra v3 Color LCD software - works with the latest version made available by the author
    4. Experimental board under a different ESP module (specifically ESP32 S3 Uno) - running overlay on ESP module

    All projects except the last one include a PAM8403 amplifier.

    When creating single-sided PCBs by thermal transfer, you need to remember to use the jumpers marked on the PCB.
    When ordering from china boards, the jumpers are made on the top layer of the PCB so you do not need to install them.

    Regards

    Moderated By Felini:

    Attachment removed at user's request, supposed to contain errors.
    Link to post with corrected attachment - https://www.elektroda.pl/rtvforum/topic4041603-2040.html#21802641

  • #2030 21796417
    DJCheester
    Level 27  
    ejcon wrote:
    Small soft modification Added new style10 flying peak.
    Runs from setting as instant style Edit style in analyzer menu




    Hello I have a compilation error with this version of the software

    Code: Text
    Log in, to see the code


    Internet radio and audio file player on ESP32-S3

    What could be wrong ?

    Greetings ...
  • #2031 21796454
    ejcon
    Level 16  
    I don't use Ardulino but VC and Platformio and after the upgrade I'm fine

    Processing 4d_systems_esp32s3_gen4_r8n16 (platform: espressif32; board: esp32-s3-devkitc-1; framework: arduino)
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Verbose mode can be enabled via `-v, --verbose` option
    CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32-s3-devkitc-1.html
    PLATFORM: Espressif 32 (55.3.33+sha.0afa11a) > Espressif ESP32-S3-DevKitC-1-N8 (8 MB QD, No PSRAM)
    HARDWARE: ESP32S3 240MHz, 320KB RAM, 8MB Flash
    DEBUG: Current (esp-builtin) On-board (esp-builtin) External (cmsis-dap, esp-bridge, esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
    PACKAGES:
    - contrib-piohome @ 3.4.4
    - framework-arduinoespressif32 @ 3.3.3
    - framework-arduinoespressif32-libs @ 5.5.0+sha.f1a1df9b2e
    - tool-esptoolpy @ 5.1.0
    - tool-mklittlefs @ 3.2.0
    - toolchain-xtensa-esp-elf @ 14.2.0+20250730
    *** WARNING: Windows Long Path Support is disabled ***
    *** Enable it for better performance: ***
    *** 1. Run as Administrator: gpedit.msc ***
    *** 2. Navigate to: Computer Configuration > Administrative Templates > System > Filesystem ***
    *** 3. Enable 'Enable Win32 long paths' ***
    *** OR run PowerShell as Admin: ***
    *** New-ItemProperty -Path 'HKLM:\SYSTEM:CurrentControlSetFileSystem' -Name 'LongPathsEnabled' -Value 1 -PropertyType DWORD -Force ***
    *** Restart required after enabling ***
    *** Applied include path shortening for 330 framework paths ***
    *** Path length reduced from 39028 to ~13711 characters ***
    *** Estimated savings: 24750 characters ***
    LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
    LDF Modes: Finder ~ chain, Compatibility ~ soft
    Found 51 compatible libraries
    Scanning dependencies...
    Dependency Graph
    |-- ezButton @ 1.0.6
    |-- U8g2 @ 2.36.15
    |-- ESP32-audioI2S @ 3.4.2+sha.8b4bbd
    |-- WiFiManager @ 2.0.17+sha.1327b40
    |-- ESPAsyncWebServer @ 3.7.7
    |-- AsyncTCP @ 3.4.1
    |-- arduinoFFT @ 2.0.4+sha.6b3ef97
    |-- ESP32-KCX-BT-EMITTER @ 0.0.0+20240128094011.sha.4c07f9b
    |-- FS @ 3.3.3
    |-- SD @ 3.3.3
    |-- SPIFFS @ 3.3.3
    |-- SPI @ 3.3.3
    |-- EEPROM @ 3.3.3
    |-- ESPmDNS @ 3.3.3
    |-- HTTPClient @ 3.3.3
    |-- Ticker @ 3.3.3
    |-- Update @ 3.3.3
    Building in release mode
    Retrieving maximum program size .piobuild4d_systems_esp32s3_gen4_r8n16firmware.elf
    Checking size .piobuild4d_systems_esp32s3_gen4_r8n16firmware.elf
    Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
    RAM: [== ] 23.5% (used 76976 bytes from 327680 bytes)
    Flash: [==== ] 40.0% (used 2622391 bytes from 6553600 bytes)
    ========================================================================================================= [SUCCESS] Took 13.38 seconds =========================================================================================================
    * Terminal will be reused by tasks, press any key to close it.



    Settings in the platform
    [env:4d_systems_esp32s3_gen4_r8n16]
    platform = espressif32
    board = esp32-s3-devkitc-1
    framework = arduino

    build_flags =
    -D CORE_DEBUG_LEVEL=0
    -D ARDUINO_USB_CDC_ON_BOOT=0
    -D BOARD_HAS_PSRAM
    -D ASYNCWEBSERVER_REGEX
    -mfix-esp32-psram-cache-issue

    board_build.arduino.memory_type = qio_opi
    board_build.f_flash = 80000000L
    board_build.flash_mode = qio
    board_upload.flash_size = 16MB
    ; Change partitions to default if huge_app.csv does not exist
    board_build.partitions = default_16MB.csv
    board_build.mcu = esp32s3
    board_build.f_cpu = 240000000L

    ; Enable PSRAM
    board_build.psram_type = opi
    board_build.arduino.psram_size = 8MB

    monitor_speed = 115200
    upload_port = COM9






    lib_deps =
    arduinogetstarted/ezButton@^1.0.6
    olikraus/U8g2@^2.36.5
    https://github.com/schreibfaul1/ESP32-audioI2S#3.4.3
    https://github.com/tzapu/WiFiManager.git
    ESP32Async/ESPAsyncWebServer @3.7.7
    ESP32Async/AsyncTCP @3.4.1
    https://github.com/kosme/arduinoFFT
    https://github.com/schreibfaul1/ESP32-KCX-BT-EMITTER.git

    ; https://github.com/schreibfaul1/ESP32-KCX-BT-EMITTER/tree/main/src/KCX_BT_EMITTER_Library
  • ADVERTISEMENT
  • #2032 21796478
    DJCheester
    Level 27  
    Well, that's a bummer ;(

    Can you share the binary with the SPIFFS memory option?

    Screenshot of Arduino IDE highlighting code related to SD card and SPIFFS.

    I will upload at the ready ;)
  • #2034 21796487
    DJCheester
    Level 27  
    Ok and how to upload from which address? so that the files on the SPIFFS remain?
  • #2036 21796649
    pitekb
    Level 14  
    Hi
    DJCheester thanks a lot for the files. Time to get to grips with this radio. I will show off the results.
  • #2037 21797866
    saper135
    Level 11  
    Hello everyone. As I'm a layman, but I like to play, and after reading I see it's fun and even inexpensive, I have a big request. If someone who knows a bit about this, and I see you are quite good at it, could help me with the hardware for this game. I know that you need an ESP32, but the choice on the Polish market is large, and on the Chinese market infinite. I'd like to buy a good one, reasonably up-to-date and, most importantly, one for which there is freely available software and expert help, and it's not about the £30 cheaper.
    ESP32, from what I can see, there are with built-in antennas and with external antennas, newer ones on USB-C, WROOM-32U, WROOM-32, WROOM-32 38-pin with CP2102 USB-C chip, WROOM-32 30-pin with CP2102 USB-C chip. There's a whole bunch of these and I'm completely lost. Maybe also some larger LCD display, as I'm old and have poor eyesight.
    List of electronic components with ESP32 boards, LCD display, and accessories

    Shopping list with electronic components for ESP32-based project
  • #2039 21797921
    saper135
    Level 11  
    So I take it you mean exactly this model ESP32 ESP32-S3-DevKit WiFi + BLE 5.0 board
📢 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