logo elektroda
logo elektroda
X
logo elektroda

Internet radio and audio file player on ESP32-S3

MAJSTER XXL 106179 1246
ADVERTISEMENT
Treść została przetłumaczona polish » english Zobacz oryginalną wersję tematu
  • #181 21208624
    miroskop
    Level 23  
    Try in Arduino to roll back the version "Esp32 by Espressif" to version 2.0.11.
    Then you have to change the settings from scratch in "Tools", because they will reset.
  • ADVERTISEMENT
  • #183 21211842
    hevet
    Level 16  
    If anyone wants to try my version I add it to the download.
    After uploading my version and entering the IP address of the radio /update you can do updates via the browser.
    E.g. 192.168.1.55/update or wifi_radio.local/update
  • #184 21212006
    bolszoy
    Level 9  
    Hi. Fellow Hevet your file started without a stutter.
    My colleague futek's file unfortunately does not work for me - even the second one. I do not understand why this is happening.

    Nice project. Thank you all.
  • ADVERTISEMENT
  • ADVERTISEMENT
  • #187 21219694
    Andrzej Ch.
    Level 33  
    @hevet

    Is your version of the software fully compatible with the Author's design on the hardware side, are any modifications to the radio required?
  • #188 21219801
    hevet
    Level 16  
    @Andrzej Ch. in one of the earlier posts it said, in the left encoder I swapped pin 1 for pin 46.
  • #189 21219981
    bolszoy
    Level 9  
    My ssd1309 display didn't want to cooperate for anything so the ssd reset and esp had to be connected. Encoders have no pcb, so all pins on gnd (those going to 3.3V).
    Display pins SDA, SCL pulled up via two resistors to 3.3V.
    Power supply to ssd1309 also 3.3.
    SD card (actually an adapter), soldered directly. The batch of the colleague Hevet, because others did not connect to my Wifi. But I am curious if other batches will work for you.
    The design is really cool and I've been looking for something like this for a long time, as I won't hide that I'm only now going to get into the arduino IDE.
    The power switch (first key on the left), is a bistable button soldered into the original switch, and glued in with hot glue. 12V after the relay zaps the 3W amplifier, from the esp power board and the rest ( 5V relay). Removed key fastener plate and used original switches.
    External 12V power supply.
    The eyelet is a lens and a white LED.
    I didn't install the original mesh ( although it's really simple) out of laziness.
    And a small note of caution the wires and board must be done reliably because ESP is terribly sensitive to interference. In my case the wires to the encoders and SSD1309 are shielded.
    So thank you all once again for your help and for making the project available.
    Best regards.
  • #190 21220161
    szeryf3
    Level 29  
    @bolszoy #186 could you please show off the video?
  • #191 21220164
    bolszoy
    Level 9  
    If you tell how to insert it because it certainly takes a lot.
  • #192 21220182
    hevet
    Level 16  
    @bolszoy insert e.g. on youtube, google drive and share the link.
  • #194 21222200
    miroskop
    Level 23  
    A little advice: in order for the encoders to work without strange "jumping", their lines should be blocked to ground with capacitors.
    It is about CLK and DT outputs. For me, 33nF capacitors worked, but I have ordinary "bare" encoders with the outputs pulled up to plus via 10k resistors.
  • #195 21222387
    hevet
    Level 16  
    In my case, uploading a newer version of the I2S audio library helped.
  • #196 21222434
    bolszoy
    Level 9  
    At my place there are also bare encoders but from the minus. They don't jump but instead the screen gently introduces hum....
    Probably the inverter sows interference. Probably a separate power supply for the display would help, but once a station is playing the noise disappears, so it doesn't bother me[/td].
  • #197 21276075
    alexa2005
    Level 2  
    Hello,
    I am trying to built an internet radio like yours but i want to add a feature like playing from an DLNA device from network. Of course it is to be done an interface like a menu for navigate between radio/sd play/DLNA somehow. I see some projects witch also include an web management interface for adding or modifying radio URL`s. Somebody think about these ideas? What library must be added?
    Thanks!
  • ADVERTISEMENT
  • #198 21283792
    gangliu2018
    Level 7  
    Użyłem bibliotek na githubie bez powodzenia.

    Czy jakiś ekspert może podać wersję Arduino i wersję esp32?
    Czy możesz podać nazwy i wersje różnych wymaganych bibliotek?

    Hinzugefügt nach 6 [Stunden] 9 [Minuten]:

    >>21188713
    hello Futek2,
    , I admire the bin file you uploaded. I can use this bin file. I have many problems compiling the source code.
    Could you please tell me the Arduino version you use. The version number of eps32. And the name and version of the library. It is convenient for us to compile it ourselves.Thank you very much!

    Witaj Futek2, podziwiam przesłany plik w formacie bin. Mogę użyć tego pliku bin. Miałem wiele problemów z kompilacją z kodu źródłowego.
    Czy możesz mi powiedzieć, jakiej wersji arduino używasz. Numer wersji eps32. Również nazwa i wersja biblioteki. Wygodnie jest nam skompilować go samodzielnie. Bardzo dziękuję
  • #199 21286436
    MAJSTER XXL
    Level 29  
    @gangliu2018 All the data needed to build this radio is detailed in this topic. Today I decided to update the Arduino IDE to version 2.3.3 - everything compiled normally.
    In addition I updated the package of libraries needed on my github, not all of them, but the most important ones.
    Show some screenshots of what you have a problem with.

    The files for ESP32 support in the Arduino IDE are best installed with the online installer - the first one from above for Windows:
    https://dl.espressif.com/dl/esp-idf/
  • #200 21287735
    gangliu2018
    Level 7  
    >>21286436
    Thank you very much for MAJSTER XXL's reply.
    I first installed Arduino 2.3.3 at (https://www.arduino.cc/en/software).
    Then I installed the ESP32S3 development board in the Arduino IDE, and then installed the corresponding library files.
    We have not installed ESP IDF, so let's try to install it now.
    Thank you very much.

    My system is Windows 11. I installed esp-idf-tools-setup-online-2.3.1.exe (https://dl.espressif.com/dl/esp-idf/)
    Then the Arduino version is 2.3.3
    Cleared the library and copied the library file downloaded from https://github.com/sarunia/ESP32_radio_player to the Arduino library.
    Then open the ESP32_radio_player.ino downloaded from github.

    Compile error
    In file included from \ESP32_radio_player-main\ESP32_radio_player\ESP32_radio_player.ino:7:
    c:\Users\Liu\Documents\Arduino\libraries\Adafruit_SH110X/Adafruit_SH110X.h:27:10: fatal error: Adafruit_GrayOLED.h: No such file or directory
    27 | #include <Adafruit_GrayOLED.h>
    | ^~~~~~~~~~~~~~~~~~~~~~
    compilation terminated.
    exit status 1
  • #201 21288589
    simw
    Level 27  
    gangliu2018 wrote:
    Thank you very much for your reply MAJSTER XXL.
    I first installed Arduino 2.3.3 on (https://www.arduino.cc/en/software).
    .
    Yesterday I walked the path to the correct "from scratch" compilation.
    You must first look here:
    https://github.com/sarunia/ESP32_radio_player/tree/main/Libraries
    You have there listed the libraries that take part in the compilation, with name and number and its creator.
    Each of these parameters is important, because there are different ones in the repository, from different developers, and it is easy to upload a bad one. However, recent updates to the latest libraries also compile.
    In the library.properties files you have the library data.
    As for the board, you should install the ESP32S3 Dev Module, not esp32s3 itself. This can be seen in the screenshots in this thread.

    In the screenshot I add to the post you have what you need to install for the project.
    Except that one of them ESP32-audioI2S-master you don't install as built-in, you have to download the ZIP and install as external. You download the zip file from:
    https://github.com/schreibfaul1/ESP32-audioI2S

    For the WiFiMAnager library by tzapu you need to edit the WifiManager.h file and line:
    Code: C / C++
    Log in, to see the code
    .
    replace with
    Code: C / C++
    Log in, to see the code
    .


    Screenshot of library folders, including ESP32-audioI2S-master. .

    To summarise.
    1. you install the Arduinio 2.3.3 IDE you do a full update.
    Menu Help->Check for Arduino IDE Updates
    2. you select the ESP32S3 Dev Module board
    3. you install the internal libraries:
    (a) ezButton by ArduinoGetStarted.com
    b) WiFiMAnager by tzapu
    c) Adafruit SH110X by Adafruit
    4. you install the external zip file: ESP32-audioI2S-master
    5. edit the WiFiManager.h file

    The rest of the bilbliotek is probably downloaded from the ESP Dev Module.
    Such a sketch already compiles, but is too big for 4MB memory.
    Here you have to search in the thread what the solution was, around the one in the screenshot:
    Screenshot of Arduino project settings for the ESP32S3 module. .
  • #202 21288811
    gangliu2018
    Level 7  
    >>21288589
    Thank you very much for your help, I will study your message carefully.
    Dziękuję bardzo za pomoc, dokładnie przestudiuję Twoją wiadomość.

    Hinzugefügt nach 1 [Stunden]:

    Dzisiaj korzystałem z innego komputera i postępowałem zgodnie z instrukcjami simw.
    1. Zainstaluj Arduino 2.3.3
    2. Zainstaluj płytkę rozwojową esp32 3.0.7 w Arduino
    3. Skopiuj pliki biblioteki z https://github.com/sarunia/ESP32_radio_player do katalogu plików biblioteki Arduino. (ESP32-audioI2S-master nie jest dołączony)
    4. Pobierz plik zip ESP32-audioI2S-master i użyj Arduino, aby bezpośrednio otworzyć plik zip, aby zainstalować bibliotekę.
    5. (a) ezButton autorstwa ArduinoGetStarted.com 1.0.6
    b) WiFiMANager od tzapu 2.0.17
    c) Adafruit SH110X firmy Adafruit 2.1.11
    6. Zmodyfikowano WiFiManager.h pobrany z https://github.com/sarunia/ESP32_radio_player. Żadne dalsze zmiany nie są potrzebne.
    7. Anzhao zmodyfikował rozmiar Flash i schemat partycji na zrzucie ekranu.

    Hinzugefügt nach 2 [Minuten]:

    >>21288811 Screenshot of ESP32S3 board settings in Arduino IDE. List of Arduino library folders showing examples of some installed libraries.

    Otrzymałem ten sam komunikat o błędzie co wczoraj.


    In file included from c:Arduino\libraries\SD\src\sd_diskio.cpp:17:
    \Arduino\libraries\SD\src\sd_diskio.cpp: In function 'bool sdcard_mount(uint8_t, const char*, uint8_t, bool)':


    Wielkie dzięki dla simw i MAJSTER XXL za pomoc.
    Udało mi się to skompilować. Plików bibliotek SD i SPI nie można kopiować bezpośrednio do Arduino z githuba. Musisz samodzielnie pobrać pliki bibliotek w formacie ZIP i zainstalować je z Arduino.

    Jeszcze raz dziękuję, w następnej kolejności spróbuję zmienić na inny 12864LCD.
    ---------------
    Rozwiązanie błędu
    ---------------
    Zgodnie z komunikatem o błędzie, który zamieściłem wcześniej, proszę samodzielnie pobrać bibliotekę SD. Atrybut zip można zainstalować za pomocą Arduino. Jeśli w przyszłości będziemy potrzebować podpowiedzi o błędach SPI, możemy sobie z nimi poradzić w ten sposób.
  • #203 21289387
    MAJSTER XXL
    Level 29  
    My current settings are as follows:

    Screenshot showing settings in Arduino IDE 2.0.3 for an ESP32 project. .
  • #204 21291273
    gangliu2018
    Level 7  
    Eksperymentowałem i odkryłem, że nie mogę modyfikować stacji radiowej w łączu, modyfikując program. Czy jest jakiś dobry sposób na odtwarzanie niestandardowych stacji radiowych?
  • #205 21300290
    stratis63
    Level 1  
    >>21044972 This is exactly what i wanted to do ,
    Can you please supply a list of all materials and sw needed,
    and where you print the case!!
  • #206 21300975
    gangliu2018
    Level 7  
    >>21300290
    I am also making this radio.
    If esp32s3 and a digital amplifier are the minimum configuration, you can directly flash the bin file provided by the expert.
    To fully make it, you need two rotary encoders, 4 buttons, an i2c 12864 LCD. and a TF card holder. Of course, the speaker is always needed.

    The difficulty of this project lies in writing the program. If you want to replace the LCD, it is also possible, but you still need to write the program.

    This program has a Polish interface. And Polish song information.

    After reading nearly two thousand lines of program, I admire the author.

    Hinzugefügt nach 6 [Stunden] 41 [Minuten]:

    >>20998118

    MAJSTER XXL ,Thank you very much for your great creation!

    I am copying it.

    I have a few suggestions.

    1. Can you add time display? Remove the bit rate displayed on the screen, etc. We usually only care about the name of the radio station and the information of the song.

    2. Can you customize the radio station URL? I often get stuck when connecting to many preset radio stations, and I lose interest all of a sudden.

    3. Can you make an English version of the interface program? This way more people who don't speak Polish can join.

    4. Can it be adapted to other screens? After all, a screen is more expensive, and the screens we have are often not suitable. I have a 12864 screen with SPI of a 7565 chip, and I have been trying it.
  • #207 21303293
    MAJSTER XXL
    Level 29  
    @stratis63 Everything you need to build a radio is described here, just go back to the first post.

    @gangliu2018 Changes to the banks and stations in them are best done by forking the repository to your profile on github and modifying it there as you wish, then you need to swap in the source code links to those banks on your github.
  • #208 21303346
    hevet
    Level 16  
    The SH1106 1.3-inch display also works without modification.
  • #209 21303827
    gangliu2018
    Level 7  
    >>21303293
    Thanks for your help, I have not used it on GitHub. I will try it. If it does not work, I may ask you for help.

    Hinzugefügt nach 44 [Minuten]:

    >>21303293
    @Majster XXL,
    Thank you very much for your help.
    I have edited the radio station list on github.
    The only problem now is that our radio has no screen. This is the only inconvenience.
    In the past, u8g2 was used to drive the 12864 LCD. It seems that it takes a certain amount of time to modify the LCD. Especially the menu change and local refresh problems.
  • #210 21328231
    tytka
    Level 22  
    @Majster XXL you have posted an interesting and inspiring project.
    I've been thinking about making something similar myself for a while, And this as an alternative to the Vilumio player on the RPi, which has much greater capabilities but is definitely slower to get up and running.
    Your project interested me mainly because, in addition to the radio, it also offers playback of audio files from an SD card.

    I made myself a test circuit according to your project and I have a few remarks. Some from my point of view.

    MAJSTER XXL wrote:
    Modifying the banks and stations in them is best done by forking the repository to your profile on github and modifying it there at will, then you have to replace in the source code the links to those banks on your github.

    Terribly tedious and impractical. It would be nice if such station lists could be entered/ordered from the browser, possibly loaded from a card.
    And anyway, why so many memory banks holding 100 stations each? For me, honestly, one would be enough (and buttons to change banks would be unnecessary). I prefer quality over quantity :) And I have noticed that some stations from the automatic banks are probably inactive, and when selecting one, the radio can get "hanged".

    As for me, a Play/Pause button would definitely be useful. In general, I think that when changing from the radio to the file player, pause should be on automatically, and yes, the first folder is played automatically, and changing the folder is on another keypad. Have to admit that this is annoying.
    As for the file player. I have noticed that titles are not always displayed, in which case the relevant boxes on the display show the previous texts.
    It seems that there are sometimes problems reading some VBR files.

    And is it possible to add support for double nested files?

    And another question about the menu item: Bank List, What is it for? What should it do? At my place it is in the list, but supposedly dead.

    Sorry for such a bullet point, but frankly programming is not my forte and I am hoping for some hints in achieving my ideas.


    Oh, and one more thing.
    It seems that someone reported problems with such a card reader module:
    SD card reader module on a blue circuit board with visible connectors. .
    Such a module works correctly with this project, but it needs to be powered from +5V

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