logo elektroda
logo elektroda
X
logo elektroda

Internet radio and audio file player on ESP32-S3

MAJSTER XXL 152976 1601
ADVERTISEMENT
Treść została przetłumaczona polish » english Zobacz oryginalną wersję tematu
📢 Listen (AI):
  • #1561 21752266
    ejcon
    Level 14  
    Does anyone have the remote code for this remote control?
    BS 1Set infrared remote control module kit - HX1838 wireless IR receiver! Ideal for DIY projects with Arduino


    I have done something like this the radio does not respond .

    // ############### HERE IS THE DEFINITION FOR THE NEC standard IR PILOT ############### //
    // first byte address, second byte command (B914 - example: address B9 command 14) //
    rcCmdVolumeUp 0xFF18E7; // volume +
    rcCmdVolumeDown 0xFF4AB5; // Volume -
    rcCmdArrowRight 0xFF5AA5; // right arrow - next station
    rcCmdArrowLeft 0xFF10EF; // arrow to the left - previous station
    rcCmdArrowUp 0xB987; // up arrow - station list step up
    rcCmdArrowDown 0xB986; // down arrow - station list step down
    rcCmdBack 0xFF6897; // return button
    rcCmdOk 0xFF38C7; // Ent button - station validation
    rcCmdSrc 0xB913; // Switching source radio, player
    rcCmdMute 0xB916; // Sound mute
    rcCmdAud 0xFFB04F; // Audio equalizer
    rcCmdDirect 0xB90F; // Screen brightness, two modes 1/16 or full brightness
    rcCmdBankMinus 0xB90C; // Promotes bank selection
    rcCmdBankPlus 0xB90D; // Sets bank selection
    rcCmdRed 0xB988; // Experimental function 1
    rcCmdGreen 0xB992; // Experimental function 2 (VU mode 1, VU mode 2)
    rcCmdKey0 0xFF9867; // Button "0"
    rcCmdKey1 0xFFA25D; // Button "1"
    rcCmdKey2 0xFF629D; // Button "2"
    rcCmdKey3 0xFFE21D; // Button "3"
    rcCmdKey4 0xFF22DD; // Button "4"
    rcCmdKey5 0xFF02FD; // Button "5"
    rcCmdKey6 0xFFC23D; // Button "6"
    rcCmdKey7 0xFFE01F; // Button "7"
    rcCmdKey8 0xFFA857; // Button "8"
    rcCmdKey9 0xFF906F; // Button "9"
  • ADVERTISEMENT
  • #1562 21752268
    bolszoy
    Level 10  
    DJCheester wrote:
    Dude @bolszoy below I have described the installation procedure from scratch

    https://www.elektroda.pl/rtvforum/viewtopic.php?p=21748612#21748612

    These libraries given there are for the Robgold software

    If you want to load the Mayster software, you also need to have the libraries listed above and for this 3 libraries

    Adafruit BusIO by Adafruit 1.17.4
    Adafruit GFX Library by Adafruit 1.12.3
    Arduinojson by Benoit Blanchon. 7.4.2

    You have it all nicely in the pdf manual what I attached above.

    Greetings....




    Thank you. As for the description above it will certainly be useful not only to me.
  • #1563 21752321
    hevet
    Level 17  
    @robgold I think I have found the solution to my problem. I have changed:

    esp_sleep_enable_ext1_wakeup((1ULL << SW_POWER) | (1ULL << recv_pin),ESP_EXT1_WAKEUP_ANY_LOW);

    back as in version 3.19.19 on

    esp_sleep_enable_gpio_wakeup();
    gpio_wakeup_enable((gpio_num_t)recv_pin, GPIO_INTR_LOW_LEVEL);

    As chatgpt explained, I don't know if he's right or not, but the problem might be my IR pin 4. I used the board from Miniwebradio, and there IR on gpio 4. I have the sensor permanently soldered on for now I won't solder it and check another pin.

    Quote from chatgpt:

    EXT1 wake-up - important facts (not many people know this!)
    1️⃣ EXT1 works ONLY on the RTC-GPIO pins!

    If SW_POWER or recv_pin are NOT RTC-capable →
    📌 It will work unstable or not at all.

    For the ESP32-S3 the RTC IO is e.g.:
    GPIOS: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21
    👉 If your pin is not in this list → EXT1 can disable peripherals and spoil audio operation!

    2️⃣ EXT1 completely switches the pin under RTC control

    GPIO goes into RTC mode - the normal pinMode() function DOES NOT work until you do:

    rtc_gpio_deinit((gpio_num_t)pin);

    You have this in your code - OK.
    3️⃣ EXT1 can "kill" pinmux dependent peripherals

    Because the RTC takes over the pins, and you need to restore them after the wake - badly restored GPIOs are the most common cause:

    ❌ no audio
    ❌ no I²S signal
    ❌ DMA/I2S hangs up
    ❌ Wi-Fi problems

    In your case: after going to sleep EXT1 legal. stops part of the signal configuration.

    In the old version of the radio this was not there → because you used esp_sleep_enable_gpio_wakeup(), which does not mess with the RTC GPIO.

    You have an IR receiver on GPIO4, and this is key information.
    And right away: GPIO4 CANNOT act as an EXT1 wakeup!
    That's why EXT1 crashes your peripherals and dies after the audio wakeup.

    The solution (and why it worked for you):

    esp_sleep_enable_gpio_wakeup();
    gpio_wakeup_enable((gpio_num_t)recv_pin, GPIO_INTR_LOW_LEVEL);

    This uses the GPIO wake mechanism - NOT EXT1 wake
    ➡ does not start RTC
    ➡ does not switch pinmux
    ➡ does not block I²S
    ➡ audio works after wake up

    So you have chosen the right solution! 🎉

    📌 Is it worth going back to EXT1?

    No.
    EXT1 only makes sense if you TRY to have a wake-up any pin low, but:

    ✔ requires EXT1-safe RTC pins
    ✔ is much more intrusive
    ✔ is sometimes problematic on ESP32-S3
    ✔ messes up peripherals if pin is unsupported

    In your case - IR is a fast signal, so GPIO wake is ideal.

    🔧 Final conclusion:

    Leave esp_sleep_enable_gpio_wakeup() - it's correct, stable and the only working solution for your configuration.

    EXT1 simply DOES NOT work properly with GPIO4 → that's why the audio died after wakeup.

    For now the audio works, after each wakeup, testing continues.
  • #1564 21752368
    DJCheester
    Level 26  
    bolszoy wrote:
    I would be very grateful. And by the way, looking at GitHub, and the pix that need to be uploaded /depending on the version/, I guess there are some inconsistencies?
    Because, for example, I don't know which libraries and how edited to use for which version. And the V1 is probably already completely wrong - unless I'm mistaken.
    I wonder if anyone else has problems like me?


    This instruction of mine relates to the software of my colleague Robgold (OLED display) version 3.19 i.e. the latest softy.
    V3 Evo version link
    https://github.com/dzikakuna/ESP32_radio_evo3/tree/main/src/ESP32_radio_evo3.19


    And Majstra's software also new version with colour LCD v3. Link
    https://github.com/sarunia/ESP32_internet_radio_v3/tree/main/ESP32_radio_v3_ILI9488_canvas

    Version v2 and v1 (if there was one) are not affected.

    Uploading the Major's v3 soft (colour LCD are different connections - a different schematic to the colleague Robgold's V3 Evo)

    There used to be a version of Majstra's mate v2 it was with two encoders and it too should be able to compile with this set of files what are in the manual.
    Majstra v2 link
    https://github.com/sarunia/ESP32_radio_player_v2
    This is the version with MP3 player, radio and two encoders, there is a diagram on github.

    Regards...
  • #1565 21752375
    robgold
    Level 21  
    @hevet all nice and beautiful but chatGPT or any other AI something is screwing up because according to the ESP32 datasheet I followed both pins 15 and 4 can be used for this. The GPIO4 you have in your software has full RTC_GPIO support. Unless I am not seeing something here.

    RTC_ GPIO:
    ESP32-S3 datasheet table showing GPIO functions, GPIO4 and GPIO15 highlighted


    second case:
    esp_sleep_enable_ext1_wakeup function documentation with example code

    I will build your configuration tomorrow because my curiosity about the subject will "eat me up" :D
  • #1566 21752382
    hevet
    Level 17  
    That's why I wrote that I don't know if he's telling the truth 😉 but so far I don't have a problem with the sound, the clock in standby works, switching on only with the power on button works too.
  • #1567 21752388
    robgold
    Level 21  
    @DJCheester The @MAJSTER XXL version of radio v2 juz probably won't compile with the settings to Evo.
    This is due to using a different audio library callback. The author of the Wolle library has changed a lot in it and v2 is based on core 3.0.7 and audio 3.0.13

    Evo up to version 3.18.xx (the latest is 21) IS compatible with v2 by Majster.
    Evo from 3.19.00 to the current 39 (you still have 33) is based on the new libraries and core ESP

    Added after 1 [minute]:

    @hevet often speaks well and the truth but sometimes he is delirious and even when there is a problem with something it takes AI to think very soberly and certainly can complicate the same piece of code to a "premium complication" :D

    Take a peek in the terminal to see if the ESP correctly goes through a reset or if it's a reset from a "Crash" because it will behave the same for you but with the GPIO wakup I often had crashes. Chodz I think turning off the UART, BT and WiFi later helped.
  • ADVERTISEMENT
  • #1568 21752407
    DJCheester
    Level 26  
    The fact core is older. It will probably be as you say.

    Well I don't know about that, I haven't checked because I still have Arduino 1.8.19 configured on Win7 32bit and there I have just the version as you wrote.

    And that's where I compiled the version of Majster v2 and your v3.18.
    But at the moment I am only dealing with the new version.

    I used to run this soft with two Majstra encoders but compared to the Robgold version it has very few features.

    Maybe my colleague Robgold will add a second encoder in the future 😀
    He recently mentioned something about it to me.

    Greetings....
  • #1569 21752428
    robgold
    Level 21  
    @DJCheester work is already underway...patience ;)
  • ADVERTISEMENT
  • #1570 21752446
    hevet
    Level 17  
    @robgold yes it is with sleep

    debug IR -> NEC code OK:9D6211EE MSB-LSB: 778846B9 ADR:B9 CMD:88
    debug IR -> pulse 9ms:9004 4.5ms:4446 1690us:1635 560us:525
    21
    info: ....... Closing web file "http://195.150.20.7/rmf_fm"
    info: ....... MP3Decoder has been destroyed
    debug power -> I put ESP to sleep, power off
  • #1571 21752506
    DJCheester
    Level 26  
    robgold wrote:
    @DJCheester work is already underway...patience ;)


    A colleague mentioned putting in old receivers, I mean housings with two knobs ie volume, tuning.

    I dealt with the restoration of old radios (also tube radios) and I can say that some old radios are worth saving in their original condition, because there are fewer and fewer of them.

    I think that removing the guts from a 1960s wooden radio just to install an internet radio in it is, unfortunately, destroying retro equipment. This is my personal opinion.

    I don't currently use encoders at all anyway because I have a remote 😀 I would be more interested in revisiting the MP3 music player project. Knowing my colleague Robgold how this function will return one day it will be unrecognisable and integrated that the UV indicators.

    Greetings....

    Added after 38 [minutes]:

    bolszoy wrote:
    DJCheester you are great. It went like clockwork and I think you helped more than just me.


    I've only now noticed, as I guess it managed to compile and run. I'm glad.

    However, it is not me who should be applauded and applauded, I was also learning before I figured it out and I am still learning. I owe my help to my colleagues (especially my colleague Robgold), they taught me everything.

    I'm old enough (I remember tubes in TV sets). If I hadn't tried my hand at Arduino, I wouldn't be doing anything with electronics today, but it's my hobby and I've been enjoying it for well over a quarter of a century. It always surprises and that is the coolest thing about it.

    Coming back to the project, for me it is like the next level I have climbed.

    Greetings and thank you esteemed colleagues for your contribution to the topic and support....
  • #1572 21752604
    bolszoy
    Level 10  
    DJCheester wrote:
    bolszoy wrote:
    I would be very grateful. And by the way, looking at GitHub, and the pix that need to be uploaded /depending on the version/, I guess there are some inconsistencies?
    Because, for example, I don't know which libraries and how edited to use for which version. And V1 is probably already completely wrong - unless I'm mistaken.
    I wonder if anyone else has problems like me?


    This instruction of mine relates to the software of my colleague Robgold (OLED display) version 3.19 i.e. the latest softy.
    V3 Evo version link
    https://github.com/dzikakuna/ESP32_radio_evo3/tree/main/src/ESP32_radio_evo3.19


    This is how I arrived at it. I'm basing some of it on the code. You can see where what is used, but it takes some digging.
    But any info is worth its weight in gold. If not for me then to someone. For which I am grateful.

    And Majster's software also new version with colour LCD v3. Link
    https://github.com/sarunia/ESP32_internet_radio_v3/tree/main/ESP32_radio_v3_ILI9488_canvas

    Version v2 and v1 (if there was one) are not affected.

    Uploading the Major's v3 soft (colour LCD are different connections - a different schematic to the colleague Robgold's V3 Evo)

    There used to be a version of Majstra's mate v2 it was with two encoders and it too should be able to compile with this set of files what are in the manual.
    Majstra v2 link
    https://github.com/sarunia/ESP32_radio_player_v2
    This is the version with MP3 player, radio and two encoders, there is a diagram on github.

    Greetings...




    This is how I got to this point. I'm relying a bit on the code. You can see where what is used. Nevertheless, any information is worth a lot.
    When it comes to old radios, I also think it's a shame to disassemble. But those that are no longer repairable /disassembled inside, or incomplete / better to rework than to throw away.
  • #1574 21753273
    MAJSTER XXL
    Level 29  
    Another new feature, sure to make quite a splash. Namely, I've managed to figure out a function to record the currently playing radio station. I am currently testing it on a couple of stations that stream in mp3 (e.g. Pure Classix Radio). I had to use the MEMORY button on the remote control, the first press starts the recording which you can see by the REC text appearing to the right of the file type on the screen, the second press of MEMORY stops the recording. The whole thing still needs fine-tuning, but the main idea of recording is successful.

    Recording on the fly involves the ESP32 opening an HTTP connection to a web station at the address stored in the stationUrl variable and downloading the MP3 stream in real time. When the MEMORY button is pressed, the startRecording() function is called, which creates a new file in the /Recorded folder on the SD card. If the folder does not exist, the ESP32 automatically creates it using SD.mkdir("/Recorded"). The file name is generated dynamically in the getRecordTimestamp() function, based on the current time, e.g. rec_test_2025_11_16_16_20.mp3.

    Once the connection is established, the ESP32 sends an HTTP GET request to the station server. Then, in a loop, the handleRecording() function checks if there is data available in the stream and immediately writes it to a file on the SD card. This ensures that the entire MP3 stream is recorded in real time, without having to buffer the entire file in ESP32 memory.

    Recording continues until the user interrupts it with a button or a timeout occurs, which is implemented by checking when the last byte was written (lastRecordRead). If a certain amount of time (e.g. 5 seconds) has passed since the last read, the recording is automatically stopped and the file is closed. When recording is complete, the stopRecording() function closes the file and terminates the connection to the station.

    The result is a full-fledged MP3 file stored on the SD card in the /Recorded folder, which can be played on any player. Recording runs in parallel with radio playback, and the ESP32 saves the stream without decoding it, allowing stable recording at any bitrate and length of broadcast.

    https://github.com/sarunia/ESP32_internet_radio_v3/tree/main/ESP32_radio_v3_ILI9488_canvas

    by the way, I have updated the esp32 board manager to version 3.3.3 and do not replace these files libesp_netif.a and liblwip.a because this makes my v3 version take a very long time or not at all to connect to the stream after a power restart, the ESP32-audioI2S audio library also with me in the latest version 3.4.2


    ESP32 device screen displaying information about a recorded MP3 file.
    ESP32 screen displaying radio stream info and active MP3 recording indicator
    Screenshot of Arduino IDE showing logs from ESP32 recording an MP3 stream
    Screenshot of Arduino IDE showing ESP32 logging MP3 recording and playback process.
  • #1575 21753528
    gaborbalint919
    Level 1  
    Hello. I would like to ask for help. Radio evo3.19.19. Uploaded without error. It doesn't show only 0.0KHz in the marked part. What could be the problem. Also how can I load the equalizer. I am not a programming expert. Thank you for any help.Radio screen showing 0.0 kHz, highlighted with an orange outline
  • ADVERTISEMENT
  • #1576 21753544
    DJCheester
    Level 26  
    Write something more, is this the case at every station ?
    Write a log from the terminal ?

    Greetings ...
  • #1577 21753556
    robgold
    Level 21  
    @gaborbalint919 and why did you upload such an old version, there have been some tweaks since then with the audio callback function which is responsible for providing this information.
  • #1578 21753568
    simw
    Level 27  
    MAJSTER XXL wrote:
    Another new feature, sure to make quite a frenzy. Namely, I managed to figure out a function to record the currently playing radio station.

    Not bad, on the other hand, you might want to think about logging what was played.
    Or maybe under some "Add to favourites" button. I mean the name of the song and the artist.
    We have a huge capacity on SD, you could use....
  • #1579 21753577
    DJCheester
    Level 26  
    MAJSTER XXL wrote:
    by the way I have updated my esp32 board manager to version 3.3.3 and I don't swap those libesp_netif.a and liblwip.a files because it makes my v3 version take a very long time or not at all to connect to the stream after a power restart, the ESP32-audioI2S audio library also with me in the latest version 3.4.2


    Well it's like that with me, I was about to ask if it's because I jam core 3.2.0 and audioI2S with a swap from Github by colleague Robgold.

    So everything works as in the author.
    And tell me if you plan to do something about it so that you don't have to wait for connection sometimes several minutes ?

    The record function as an addition 😀
    It might be useful.
    I will look it up in the code.

    Greetings....
  • #1580 21753620
    robgold
    Level 21  
    @MAJSTER XXL I recommend swapping the audio library to 3.4.3 (it's as src, it's not in the official release) only you have to manually change its revision in the library description (it's still 3.4.2) and DEFINITELY delete the pre-compiled files in the arduino in the temporary sketch and core folder otherwise the compiler won't notice the swap. Version 3.4.2 has a lot of bugs, problems with FLAC files.

    By changing Core ESP to 3.3.3 do you play the FLAC stations correctly ?
  • #1581 21753631
    MAJSTER XXL
    Level 29  
    @robgold those stations that worked well in flac from the beginning of my project do work and now work well, i.e. Radio Paradise and its other channels, Dance Wave, Dance Wave Retro and probably a few more, the vast majority of them croak as we wrote. The important thing is that the flac player has been doing well overall since the beginning of my project - only the bitrates need to be improved, as it sometimes shows silly things.

    but isn't it enough to swap these files from the flac decoder?

    Project view of ESP32-audioI2S showing flac_decoder folder and version tag 3.4.3
  • #1582 21753641
    bolszoy
    Level 10  
    I am trying to compile the ESP32_radio_v3_ILI9488_canvas MAJSTRA file under the ILI9488 display, but I am getting an error that the value should not be constant.


    128 | unsigned long DISPLAY_TIMEOUT = 12000; // Idle time after which the prprogram returns to displaying the radio or playing file
    | ^~~~~~~~~~~~~~~


    92 | extern const unsigned long DISPLAY_TIMEOUT;
    | ^~~~~~~~~~~~~~~

    C:³³³³³³³³DocumentsArduino³ESP32_radio_v3_ILI9488_canvas³ESP32_radio_v3_ILI9488_canvas.ino:2550:23: error: assignment of read-only variable 'DISPLAY_TIMEOUT'
    2550 | DISPLAY_TIMEOUT = 20000;
    | ~~~~~~~~~~~~~~~~^~~~~~~

    C:C:³³³³³³³³DocumentsArduino³ESP32_radio_v3_ILI9488_canvas³ESP32_radio_v3_ILI9488_canvas.ino:3503:21: error: assignment of read-only variable 'DISPLAY_TIMEOUT'
    3503 | DISPLAY_TIMEOUT = 12000;
    | ~~~~~~~~~~~~~~~~^~~~~~~
    exit status 1

    Compilation error: conflicting declaration 'long unsigned int DISPLAY_TIMEOUT'

    What could this be from? Because I don't think it's a bug in the code?


    I'm just not sure - maybe it's about this line?
    --2550 | DISPLAY_TIMEOUT = 20000;
  • #1583 21753651
    MAJSTER XXL
    Level 29  
    in the .ino file is to be:
    Code: C / C++
    Log in, to see the code


    in FilePlayer.h file should be:
    Code: C / C++
    Log in, to see the code
  • #1584 21753687
    bolszoy
    Level 10  
    I have done according to the guidelines and still get this error:

    C:³³³³BolszoyDocumentsArduino³ESP32_radio_v3_ILI9488_canvas³ESP32_radio_v3_ILI9488_canvas.ino:128:15: error: conflicting declaration 'long unsigned int DISPLAY_TIMEOUT'
    128 | unsigned long DISPLAY_TIMEOUT = 12000; // Idle time after which the prprogram returns to displaying the radio or playing file
    | ^~~~~~~~~~~~~~~


    92 | extern const unsigned long DISPLAY_TIMEOUT;
    | ^~~~~~~~~~~~~~~

    C:³³³³³³³³DocumentsArduino³ESP32_radio_v3_ILI9488_canvas³ESP32_radio_v3_ILI9488_canvas.ino:2550:23: error: assignment of read-only variable 'DISPLAY_TIMEOUT'
    2550 | DISPLAY_TIMEOUT = 12000;
    | ~~~~~~~~~~~~~~~~^~~~~~~

    C:C:³³³³³³³³DocumentsArduino³ESP32_radio_v3_ILI9488_canvas³ESP32_radio_v3_ILI9488_canvas.ino:3503:21: error: assignment of read-only variable 'DISPLAY_TIMEOUT'
    3503 | DISPLAY_TIMEOUT = 12000;
    | ~~~~~~~~~~~~~~~~^~~~~~~
    exit status 1

    Compilation error: conflicting declaration 'long unsigned int DISPLAY_TIMEOUT'
  • #1585 21753699
    MAJSTER XXL
    Level 29  
    @bolszoy copy the exact contents of the files or the lines needed, as the "const" has been left, I had const before, but nevertheless to display the news from the RSS feed you need to extend the read time to 20 seconds, then it goes back to 12 seconds.
  • #1586 21753744
    robgold
    Level 21  
    @MAJSTER XXL There have been quite a few changes in all codecs and PSRAM handling. Since the last commit, the "MaxBlockSize" variable we used to use is no longer there at all.
    I've made my own "copy" of the library via GitHub and check from time to time what changes have been made, read reported problems, sometimes report something myself. With stations in FLAC format, the problem is not in the audio library, but in core ESP and WiFi bandwidth. That is why replacing the recompiled ESP library responsible for the network helps.
  • #1587 21753754
    bolszoy
    Level 10  
    Thank you but it did not help. I downloaded a new ini file from github, and filePlayer.h. Still the same error I don't understand. I deliberately changed from 20000 to 12000 in the linetype, but now it is as designed.

    C:³³³³³³³³DocumentsArduino³ESP32_radio_v3_ILI9488_canvas.ino³ESP32_radio_v3_ILI9488_canvas.ino:128:15: error: conflicting declaration 'long unsigned int DISPLAY_TIMEOUT'
    128 | unsigned long DISPLAY_TIMEOUT = 12000; // Idle time, after which the prprogram returns to displaying the radio or playing a file
    | ^~~~~~~~~~~~~~~


    92 | extern const unsigned long DISPLAY_TIMEOUT;
    | ^~~~~~~~~~~~~~~

    C:³³³³BolszoyDocumentsArduinoESP32_radio_v3_ILI9488_canvas.inoESP32_radio_v3_ILI9488_canvas.ino:2534:23: error: assignment of read-only variable 'DISPLAY_TIMEOUT'
    2534 | DISPLAY_TIMEOUT = 12000;
    | ~~~~~~~~~~~~~~~~^~~~~~~

    C:³³³³DocumentsArduinoESP32_radio_v3_ILI9488_canvas.inoESP32_radio_v3_ILI9488_canvas.ino:3321:21: error: assignment of read-only variable 'DISPLAY_TIMEOUT'
    3321 | DISPLAY_TIMEOUT = 12000;
    | ~~~~~~~~~~~~~~~~^~~~~~~
    exit status 1

    Compilation error: conflicting declaration 'long unsigned int DISPLAY_TIMEOUT'

    I understand that it does not match lines: 92, 128, 2534, 3321. There is a lot of const when editing the ini file.

    Added after 4 [minutes]:

    robgold wrote:
    @MAJSTER XXL There have been quite a few changes in all codecs and PSRAM support. Since the last commit, the "MaxBlockSize" variable we used to use is no longer there at all.
    I've made my own "copy" of the library via GitHub and check from time to time what changes have been made, read reported problems, sometimes report something myself. With stations in FLAC format, the problem is not in the audio library, but in core ESP and WiFi bandwidth. That is why replacing the recompiled ESP library responsible for the network helps.


    But this has to do with my compilation? I also keep reading your feedback, comments and corrections.

    Added after 5 [minutes]:

    MAJSTER XXL wrote:
    @robgold those stations that worked well in flac from the start of my project do work and work well now, i.e. Radio Paradise and its other channels, Dance Wave, Dance Wave Retro and probably a few more, the vast majority of them croak as we wrote. The important thing is that the flac player has been doing well overall since the beginning of my project - only the bitrates need to be improved, as it sometimes shows silly things.

    but isn't it enough to swap these files from the flac decoder?

    Project view of ESP32-audioI2S showing flac_decoder folder and version tag 3.4.3




    My gaff :) about this.
  • #1588 21753775
    robgold
    Level 21  
    @bolszoy No, this is a discussion about the CoreESP upgrade to 3.3.3 and problems with FLAC files. Nothing regarding compiling it you are doing.
  • #1589 21753781
    bolszoy
    Level 10  
    As I have already written I have noticed. : )
    But it's really hard to keep up with you guys because things keep changing.
    Of course, this is not a criticism.
  • #1590 21754050
    DJCheester
    Level 26  
    bolszoy wrote:
    Thanks but it didn't help. I downloaded a new ini file from github, and filePlayer.h. Still the same error I don't understand. I intentionally changed from 20000 to 12000 in the linetype, but now it is as designed.

    C:³³³³³³³³DocumentsArduino³ESP32_radio_v3_ILI9488_canvas.ino³ESP32_radio_v3_ILI9488_canvas.ino:128:15: error: conflicting declaration 'long unsigned int DISPLAY_TIMEOUT'
    128 | unsigned long DISPLAY_TIMEOUT = 12000; // Idle time, after which the prprogram returns to displaying the radio or playing a file
    | ^~~~~~~~~~~~~~~


    92 | extern const unsigned long DISPLAY_TIMEOUT;
    | ^~~~~~~~~~~~~~~

    C:³³³³BolszoyDocumentsArduinoESP32_radio_v3_ILI9488_canvas.inoESP32_radio_v3_ILI9488_canvas.ino:2534:23: error: assignment of read-only variable 'DISPLAY_TIMEOUT'
    2534 | DISPLAY_TIMEOUT = 12000;
    | ~~~~~~~~~~~~~~~~^~~~~~~

    C:³³³³DocumentsArduinoESP32_radio_v3_ILI9488_canvas.inoESP32_radio_v3_ILI9488_canvas.ino:3321:21: error: assignment of read-only variable 'DISPLAY_TIMEOUT'
    3321 | DISPLAY_TIMEOUT = 12000;
    | ~~~~~~~~~~~~~~~~^~~~~~~
    exit status 1

    Compilation error: conflicting declaration 'long unsigned int DISPLAY_TIMEOUT'



    I found the reason, the new version is already compiling, I have just uploaded and am testing.


    Screenshot of Arduino IDE showing selected code section and successful upload output

    You have to change here as in the screenshot.
    I still changed 20000 to 12000 in the main file but this is unlikely to affect correct operation.

    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