logo elektroda
logo elektroda
X
logo elektroda

Internet radio and audio file player on ESP32-S3

MAJSTER XXL 113355 1263
ADVERTISEMENT
Treść została przetłumaczona polish » english Zobacz oryginalną wersję tematu
📢 Listen (AI):
  • #1231 21579614
    dariuszj
    Level 20  
    Just in this project the IR pin defined to IO=15. Checked on two different modules and it is the same. I would like to temporarily, before the ordered RC-406 arrives, configure myself some remote control for educational purposes. I've run some clones based on Yoradio and there I've configured myself 2 remotes in NEC code, which work quite well. The problem is that the codes read by the Yoradio configurator or the remote control tester I have are different from the NEC standard in the project from this thread. There are differences between Yoradio as well as the tester, so I won't use one or the other.
  • ADVERTISEMENT
  • #1232 21579946
    dariuszj
    Level 20  
    Just in this project the IR pin defined to IO=15. Checked on two different modules and it is the same. I would like to temporarily, before the ordered RC-406 arrives, configure myself some remote control for educational purposes. I've run some clones based on Yoradio and there I've configured myself 2 remotes in NEC code, which work quite well. The problem is that the codes read by the Yoradio configurator or the remote control tester I have are different from the NEC standard in the project from this thread. There are differences between Yoradio as well as the tester, so I won't use one or the other.
  • #1233 21580096
    robgold
    Level 20  
    What codes are you reading in the terminal for the current remote control ? Please paste this is what you get there.
  • #1234 21581306
    dariuszj
    Level 20  
    That's the thing: I don't see any codes on the terminal. Zero response of any kind. I wanted to compile and upload an older version, but github no longer has it.
  • #1235 21581308
    hevet
    Level 16  
    Does it show you anything at all in the terminal? Connect the cable to the other usb- in esp32s3 and see then.
  • #1236 21581315
    DJCheester
    Level 26  
    I had this with Arduino 2.x and 64 bit win7 system nothing was on the terminal, it was throwing some error in yellow at the bottom on the bar, everything works on Arduino 1.8.9 and 32bit.

    Also check the baud rate.

    Regards...
  • #1237 21581321
    robgold
    Level 20  
    Generally, you should get a lot of information on start-up. The handling of the remote control does not differ at all between the versions. If you want a specific version, I can send it to you.
  • ADVERTISEMENT
  • #1238 21582216
    dariuszj
    Level 20  
    I see a mass of information in the serial monitor. What I mean is that when trying to send some command from the remote, on the monitor no message, no response.
  • ADVERTISEMENT
  • #1239 21582447
    robgold
    Level 20  
    If you don't get anything on the terminal when you press the remote control button then perhaps you have a badly connected IR receiver / a faulty receiver ?
    For a correctly received code the information looks like this:

    NEC code OK:9D62A857 MSB-LSB: EA1546B9 ADR:B9 CMD:15
    debug-- pulse 9ms:9171 4.5ms:4480 1690us:1611 690us:480

    For the erroneous one (here a Samsung remote which does not transmit in the NEC standard):
    Error - NEC remote control code is incorrect!
    debug-- pulse 9ms:9171 4.5ms:4474 1690us:1643 690us:524

    What remote.txt file do you have uploaded? Upload the one from the repository for the RC-406 remote control, never mind that the codes will not match. At most, you will get a corresponding message on the terminal
    Check the connection of the receiver again. Connect to the OUTPUT pin of the IR receiver, an LED with a 1k resistor. It should flash when receiving data from the remote control.
  • #1240 21582963
    nouki
    Level 25  
    >>21572312 Thanks for the hint I have come to that. As I wrote 10 years I wrote almost nothing I had to read:) .

    The scoop is to add Ws28xx support. But I have another odd problem.
    I often have this and not only as I read I :) that after startup nothing happens. When the power is removed and given again the radio fires up.
    In addition I recently turned the radio off and fired it up in a few days and nothing could be done dead.
    The program would load , part way through the terminal something was there and it was over. Changing the core to the other only restored the operation of the radio however there is but :) the rgb knob and sometimes the display do something different than they have .


    As for the remote control. If the receiver I had on 5V connected because initially I only had such :) it also did not work received but codes were not recognized. Changing the receiver to another and connecting it to 3V solved the problem.


    As for the almost full screen watch and moving it around the screen I sweated this out. I recall that I rusted :) Rule of thumb every full minute 5pix sideways to position xx and the other way .


    Code: Arduino
    Log in, to see the code
  • #1241 21582987
    robgold
    Level 20  
    @nouki I have not noted such problems here with our radio but I read a similar thread regarding yoRadio. The question is do you have the correct configuration in Arduino ? Which version of ESP core are you using in Arduino ? If you have electrical compatibility with my project upload the ready-made BIN from GitHub and test if it gets up correctly. But before you do that, do a full memory erase, upload via USB only then via OTA my BIN.
  • #1242 21583027
    nouki
    Level 25  
    robgold wrote:
    @nouki I haven't noticed such problems here with our radio but I read a similar thread regarding yoRadio. The question is do you have the correct configuration in Arduino ? Which version of ESP core are you using in Arduino ? If you have electrical compatibility with my project upload the ready-made BIN from GitHub and test if it gets up correctly. However before you do that do a full memory erase, upload via USB only then via OTA my BIN.
    .


    This esp what I have not only on the radio insert does not start the first time. I have played with e.g. the ready-made WS28xx program and it also does not start until reset.
  • #1244 21584233
    dariuszj
    Level 20  
    I haven't solved the problems with the received pilot code info in the serial monitor, but I am plagued by the problem of receiving the flac stream. Where specifically to replace the patch files. I've located directories with files with these names, but swapping either doesn't change anything, or causes errors in compiling the program in the Arduino IDE ( different versions), or no proper wi-fi connection.
  • #1245 21584237
    robgold
    Level 20  
    The swap files are up to core ESP 3.0.7 if you have a newer version then they will not work.
  • #1247 21585708
    dariuszj
    Level 20  
    Gentlemen, success!
    It turned out that the problem with receiving IR codes from the remote control was in the IR receiver itself. I was using a typical receiver for the Arduino. The design of this receiver has an amplifier, a secondary on a transistor, in addition to the typical IR detector itself. Perhaps the signal from this receiver has too high a level or is distorted enough to not be recognised by the ESP32 system, although it worked fine on YOradio. I connected the raw IR receiver itself, without any transistor or other additions, and it worked. Laziness. I was going to check on the oscilloscope, but didn't want to take it out of the box, as I have the workshop in suitcases temporarily.
  • #1248 21597426
    shonasz
    Level 15  
    Welcome.

    I am getting this error pop up. Can anyone help.



    c:‗UsersxxxDocumentsArduinolibrariesSDrc_diskio.cpp: In function 'bool sdcard_mount(uint8_t, const char*, uint8_t, bool)':
    C:#fpermissive/include/fatfs/src/ff.h:416:25: error: invalid conversion from 'int' to 'const MKFS_PARM*' [-fpermissive].
    416 | #define FM_ANY 0x07
    | ^~~~
    | |
    | int

    793 | res = f_mkfs(drv, FM_ANY, 0, work, sizeof(work));
    | ^~~~~~

    793 | res = f_mkfs(drv, FM_ANY, 0, work, sizeof(work));
    | ^~~~
    | |
    | BYTE* {aka unsigned char*}
    c:c:c:c:c:c:c:793:25: error: too many arguments to function 'FRESULT f_mkfs(const TCHAR*, const MKFS_PARM*, void*, UINT)'.
    793 | res = f_mkfs(drv, FM_ANY, 0, work, sizeof(work));
    | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    339 | FRESULT f_mkfs (const TCHAR* path, const MKFS_PARM* opt, void* work, UINT len); /* Create a FAT volume */.
    | ^~~~~~
  • ADVERTISEMENT
  • #1249 21604514
    grzes_dst
    Level 11  
    Hello
    I am new although I have already built a yoRadio.
    I came across an interesting topic , read the whole topic and having in mind more possibilities of ESp32_S3_N16_R8 module .
    Having the kernel ESp32_by_Espressif_Systems ver.3.2.1 on the Arduino system I tried to compile the soft @robgold and @MAJSTER XXL colleague I got such an error I do not know if there would be sound , because I read that there are problems with it with this version of the kernel.


    C:SDFS::SDFS::begin(uint8_t;, uint32_t; uint32_t; bool)' from 'void' to 'bool'.
    34 | if (!spi.begin()) {
    | ~~~~~~~~~^~
    | |
    | void

    Found multiple libraries in "SD.h"
    Used: C:C:UsersAppDataLocalArduino15packages3.2.1SDlibraries.
    Unused: C:‗UsersdgrAppDataLocalArduino15packagesesp32hardware3.2.1librariesSD'.

    On the other hand, changing ESP32_espressifnna 3.0.7 without swapping and with swapping the needed libraries in Librarry, there are many more of these errors

    "In file included from c:■Users_dgr_disko.cpp:17:
    c:C:UsersdgrOneDriveDocumentsArduino\libraries\SDsrc_diskio.cpp: In function 'bool sdcard_mount(uint8_t, const char*, uint8_t, bool)':
    C:³³³³AppData³³³ocalArduino15³³³-arduino-libs³³³-release_v5.1-632e0c2a³³³/include/fatfs/src/ff.h:408:25: error: invalid conversion from 'int' to 'const MKFS_PARM*' [-fpermissive].
    408 | #define FM_ANY 0x07
    | ^~~~
    | |
    | int

    793 | res = f_mkfs(drv, FM_ANY, 0, work, sizeof(work));
    | ^~~~~~

    793 | res = f_mkfs(drv, FM_ANY, 0, work, sizeof(work));
    | ^~~~
    | |
    | BYTE* {aka unsigned char*}
    c:c:c:c:c:c:c:793:25: error: too many arguments to function 'FRESULT f_mkfs(const TCHAR*, const MKFS_PARM*, void*, UINT)'.
    793 | res = f_mkfs(drv, FM_ANY, 0, work, sizeof(work));
    | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    331 | FRESULT f_mkfs (const TCHAR* path, const MKFS_PARM* opt, void* work, UINT len); /* Create a FAT volume */.
    | ^~~~~~ "
    I would like to ask for help , to upload the compilation to ESP32_S3_N16R8
  • #1250 21604520
    robgold
    Level 20  
    Clean up the ESP libraries manually and install the package again. Perhaps the downgrade to 3.0.7 did not overwrite your libraries from 3.2.1 and that is why you still have errors.
  • #1251 21604528
    grzes_dst
    Level 11  
    >>21604520 So best to remove everything from the libraries in the Arduino root directory on OneDrive and in AppData (Arduino15)?
  • #1252 21604540
    robgold
    Level 20  
    First delete in Arduino officially and then clean up the directories.
  • #1253 21605382
    robgold
    Level 20  
    Hello,
    I have uploaded on GitHub version Evo 3.8.12 Link What's new ?

    1. "smooth" mode has been added to the VU indicators,
    2. new look for "mode 0 and mode 2",
    3. new look for the station list,
    4. improved recovery mode response to the encoder,
    5. The web page in the configuration now shows the recommended "default" values,
    6. station name reading directly from steam - Experimental function,
    7. new font for station name display,
    8. changed the name of the ESP32 to Evo. The radio reports on the network under the name: http://evoradio.local/

    AD1.
    Now cool slowly rising and falling. The option is configurable in the menu. To make it work, you need to run it so that a new config.txt file is overwritten on the card or in SPIFFS memory.

    AD2
    there is no second hand, the colon in the clock flashes, I have reverted to displaying the full name "FLAC" instead of "FLC".

    AD3
    The header displays the current bank and separation line. Eventually I will change the stream files so that I don't keep the station number and bank in them.

    AD6
    you can enable yourself to read the station name directly from the stream for testing. Unfortunately this will incorrectly still generate station lists on the web. Also not all radios generate their name correctly in the stream. More for fun/testing I will probably remove this in future editions.
    In the case of providing the radio with a link to the stream via www (there is such an option in the stream editor), the radio will just display the above mentioned name from the stream instead of the
    the existing abbreviation on the OLED display: "URL"

    AD7
    This is a font from the same family, only slightly narrower, so that in future it will be possible to display 1-2 characters more in the station name itself.

    Compilation as usual under Arduino and Platformio. Source file and bins on GitHub. Enjoy testing.


    Evo internet radio screen displaying station names and VU meters in new smooth mode. .
    Evo internet radio display panel with a menu and radio stations list on a black background. .
    OLED display of Evo internet radio showing station list and updated user interface. .
  • #1254 21605923
    hevet
    Level 16  
    Hello everyone. New version uploaded.

    In mode 0 and 2 with the message ...No audio stream !... minute and second clock is visible, not hour and minute.
    I see some new mode == 3.

    Reading the station name directly from steam when changed in the options via the page, does not save or change the value. No such options in saveConfig and readConfig in the code.
  • #1255 21608860
    robgold
    Level 20  
    I uploaded version 3.18.13 it should be OK. Actually with the "no audio stream" message there was a problem. Thank you for pointing that out.
    Regarding mode 3, I have an idea to change the layout but it's still in the design phase at the moment.

    It is an experimental feature, plugged in for testing. There is no record. I removed it because the feature will be removed 99% of the time anyway.
    Its usefulness does not seem to make sense at the moment due to the need to distinguish between stations transmitting 'station name' and the dynamic generation of a list of stations for the web server.
  • #1256 21610948
    nouki
    Level 25  
    Welcome.


    Am I the only one who has to reset the radio when "no audio stream" appears? Is it supposed to be like this that it doesn't try to connect again after a while?

    Best regards
  • #1257 21610954
    robgold
    Level 20  
    The answer is Yes and No. The audio library itself tries to reconnect after losing a stream. If it fails it is "No audio stream" the first time. There is no mechanism in the radio itself to try to reconnect when there is a loss of stream. Good idea to implement something like this in the configuration.

    You don't need to reset. Just click OK on the remote to open the stream again.
  • #1259 21614177
    robgold
    Level 20  
    @hevet Thank you. Have you already tested on a higher kernel version these libraries ?
  • #1260 21614180
    hevet
    Level 16  
    Tomorrow I want to test, I found on the forum from yoradio, but from what they write they work well.
📢 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