logo elektroda
logo elektroda
X
logo elektroda

Internet radio and audio file player on ESP32-S3

MAJSTER XXL 153681 1607
ADVERTISEMENT
Treść została przetłumaczona polish » english Zobacz oryginalną wersję tematu
📢 Listen (AI):
  • #1291 21654977
    MAJSTER XXL
    Level 29  
    A small step forward, for now just the ILI9488 screen + ESP32 S3 dev module + PCM5102A + IR receiver.
    The screen is capacious, size 3.5 inches , so it holds everything. I have a little trouble with it, because I think something is not working on the SPI bus (and there is also a card reader running) and it can crash after some time and there is only white backlight.
    I haven't managed to fire this screen up with some ready-made library for it and I have all the init and control in the main sketch file under the Arduino IDE and there I'm sure I'm getting errors or missing some parameters to send. Maybe someone can throw up some battle tested code to control it?

    https://github.com/sarunia/ESP32_internet_radio_v3



    ESP32 S3 module with ILI9488 display showing internet radio interface 3.5-inch display showing internet radio interface with station and audio info 3.5-inch ILI9488 screen displaying radio track info and audio parameters. .


    3.5-inch color LCD showing internet radio interface with playback data ILI9488 display showing internet radio interface with sound and sensor data .
  • ADVERTISEMENT
  • #1292 21656180
    MAJSTER XXL
    Level 29  
    I've added a calendar card, the layout of the on-screen content is not final and I'll see what else I can add here, there will certainly be no VU metre-style water features, emoticons etc. For me the on-screen content is enough, and I have the radio on my computer desk so I often glance at it. What needs to be improved is the optimisation of the screen control code, but I'll try something next week at the weekend.

    In the meantime, this is how it looks today:



    .

    All code uploaded to github in the link above, for now only operating from the remote control the radio itself in a basic way including switching banks and volume control.
  • #1293 21656449
    DJCheester
    Level 26  
    Majster and in terms of the MP3 player, will you be modifying anything in the software ?

    I have uploaded your software on one of my radios with my changes and I miss for example the option to save to memory the number of the last song played so that after switching on the player reads from the file and plays from the same song at which it ended.

    Another cool option would be if you could set the play mode like in the old CD players, i.e. normal repeat1 repeat all random

    Greetings....
  • #1295 21656944
    DJCheester
    Level 26  
    Hi I haven't seen anywhere on the subject that anyone has used this, it looks to me like the ESP32S3 leads and power supply have been goldpinned so it should work.

    Alternatively order a PCB in China e.g. from my gerber you have everything connected and checked. This is under one encoder soft mate Robgold and OLED display 3.12 whole.

    Greetings....
  • ADVERTISEMENT
  • #1297 21657118
    DJCheester
    Level 26  
    Well now you have the necessary stuff.

    The radio itself will play with an ESP32S3, a DAC and an OLED display.

    Only you need to compile yourself Robgold's softwares in SPIFFS version and not as SD because I don't see a uSD card reader

    Regards...

    Added after 1 [minute]:

    You can use the USB type C found on the ESP module as a power supply you don't need the power supply of the one on the contact board.

    Well unless you want to plug everything into the contact board.

    Regards...
  • #1298 21657247
    pepepe1
    Level 13  
    A colleague Robgold is making .bin files available on github. I don't know if it's legit, but after uploading the file to the module (Esp flasher) the radio fired up, sees the SD card, saves banks etc.

    Second thing: the display needs to be set up under 4SPI:
    Close-up of a PCB with R5 and R8 resistor positions circled for 4SPI setting. .
  • #1299 21657376
    DJCheester
    Level 26  
    Correct the display as you write and accordingly the pcm module with jumpers underneath the module.

    DAC module with PCM5100/5101/5102 chips and pin headers .

    As for the software in bin format, of course it provides and it works, but a uSD card is required mate amrowek in the pictures of the module that the memory card slot does not have. If he uploads the bin soft the radio will not start without the card.

    In order to run the radio without the card, the user has to recompile the code by replacing the SD card with SPIFFS.

    Regards....

    Added after 3 [minutes]:

    And you are still missing an IR receiver to control from the remote, I see that you have an encoder with this you can set to change the station volume, but additional options you can not set for this you need a remote control and IR receiver.
  • #1300 21657397
    robgold
    Level 21  
    >>21654977 Hey Major,

    autumn is coming I see we are both back on topic :)
    How do you have this display connected did you solder the wires or on the godpins and those contact wires ?
    With me, even with this SSD1322 as I was using the godpins on the "contact wire" there were such situations of loss of communication. Solder this SPI to the display and see if you then have such problems.

    I ordered such an IPS 170x320 ST7789 and I am tempted to convert a new version of the radio under it with a delicate use of colours Link .
  • ADVERTISEMENT
  • #1302 21657404
    DJCheester
    Level 26  
    And you will elegantly have operation from the remote control.

    Robgold this colour display is after SCL SDA I wonder how with the refresh rate, it is about uvmeter ?

    Greetings ...

    Added after 10 [minutes]:

    As for the screen in my opinion you have refined the soft for that Oled what you bought, now wanting a colour LCD you have to choose which final soft you will load because Majster fired up the 3.5 inch one and Robgold will combine with 1.9 inch.

    Greetings...
  • #1303 21658375
    MAJSTER XXL
    Level 29  
    @robgold exactly, I'm going to do a new v3 design of my version of the radioplayer in the autumn. It's working pretty decently already, I need to solder this screen to the board, maybe actually due to these crappy cables it loses sync and crashes, because the audio plays and the control works too, only the screen goes white- as if the config has escaped it. I upload practically every change immediately to github. Unfortunately this is not an OLED, where viewing angles are practically irrelevant and the backlight comes out from behind it. But get an OLED this size and colour here....
    For the time being I'm going to polish the code so that everything works stably from the remote control, finally I'll add support from encoders as an option.
    I'm also thinking of adding a function to remember the last location of the file being played, and even a pause time to come back from that point as it goes, and a variant to play in a loop, randomly and whatever else comes to mind.
  • #1304 21658409
    DJCheester
    Level 26  
    MAJSTER XXL wrote:
    I'm also thinking of adding a function to remember the last location of the file being played, and even an interrupted playback time to come back from that point as it goes, and a variant of loop playback, random playback, and whatever else comes to mind.
    .

    I would be grateful if you could do these functions 😀.

    I, for the time being, have started to develop the player as a separate device on OLED 3.12


    Close-up of MP3 player prototype with OLED display mounted on a PCB board .
    Audio player prototype with 3.12-inch OLED displaying MP3 file information
    Audio player prototype with OLED display showing volume level .

    Player code borrowed from Major, design from Robgold and volume and eq functions.

    It is these options for playing and storing songs that I miss.
    And also the issue of full remote control, i.e. selecting the song number from the catalogue via the digits in the remote control.

    It's nice that the project didn't die (like most of the projects on the electrode) but will be developed, thanks to you guys for updating the softwares.

    Robgold, wouldn't it be better to use a LCD if you want colour?

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

    Greetings ...
  • #1305 21658663
    amrowek
    Level 12  
    So going back to uploading the software without SD ...where to download the bin file that will run this radio?
  • #1306 21658665
    DJCheester
    Level 26  
    Such a file needs to be properly compiled that the sketch through the Arduino IDE environment, someone can prepare such a file for you.

    Greetings ...
  • #1307 21658703
    robgold
    Level 21  
    @DJCheester
    As for the colour display it's actually a loose suggestion in my head. I don't know if I will go in that direction. I'd like to develop hardware to make a cool little SMD board for this radio perhaps as a "sandwich" for the OLED 1322.

    @amrowek
    On my GitHub you have the BINs. After uploading you will get a message about no SD card and the radio will boot. It will store the stations and bank number in the emulated eeprom memory. If you want full functionality using SPIFSS (Flash ESP32) memory you need to make your own compilation.
  • ADVERTISEMENT
  • #1308 21658781
    DJCheester
    Level 26  
    robgold wrote:
    @amrowek
    You have the BINs on my GitHub. After uploading, you will get a message about no SD card and the radio will boot. It will store the stations and bank number in the emulated eeprom memory. If you want full functionality using SPIFSS (Flash ESP32) memory you need to make your own compilation.
    .

    As you wish I am attaching two bins ver.3.17.xx and 3.18xx compiled as SPIFFS memory.

    But after uploading you will have the default remote control button codes that Robgold has, with the remote.txt file you can change these codes but first you need to upload the program to your ESP and connect it via Arduino IDE and using serial monitor read the buttons you have on your remote control and assign to functions by editing the remote.txt file.

    I am also attaching the contents of my memory there are files what I currently have in the radio in SPIFFS memory

    Regards ...
  • #1309 21658844
    amrowek
    Level 12  
    Paytans on a different subject a bit.... How do you rip a compilation to a bin file so that you can load it onto other boards?
    or make software updates?

    I make a compilation/verification and then save it as a bin file ?

    Added after 1 [hour] 8 [minutes]: .

    hm did i make the jumpers right, on the top side the jumper at the SCK pin
  • #1310 21658942
    DJCheester
    Level 26  
    I connected the SCK pin physically to ground so this jumper on the module was not used, make the jumper underneath as in my photo a few posts above.

    I've done bin saving on Arduino 1.x, from top menu you select Ecport compiled file, bin file is saved in folder where you have ino sketch.

    Greetings...
  • #1311 21676265
    amrowek
    Level 12  
    DJCheester wrote:
    I connected the SCK pin physically to ground so this jumper on the module I didn't use, underneath the jumper do as in my picture a few posts above.

    I've done bin saving on Arduino 1.x, from top menu you select Ecport compiled file, bin file environment saves you in folder where you have ino sketch.

    Greetings...
    .
    Unfortunately I have version 2.3.6
  • #1312 21685623
    DJCheester
    Level 26  
    In 2x I don't know search from the top menu Export compiled file so much about this AI says

    Screenshot with instructions on how to find a HEX file in Arduino IDE 2.x .
    Instruction steps for locating a HEX file in Arduino IDE shown on a smartphone screen .

    Greetings...

    Added after 15 [minutes]:

    robgold wrote:
    @DJCheester
    As for the colour display this is actually a loose suggestion in my mind. I don't know if I will go in that direction. I would like to develop the hardware to make a cool little SMD board for this radio perhaps as a "sandwich" for the OLED 1322.


    Hey kol Robgold I'm still compiling under my Schneider tuner chassis which I intend to finish by the end of the year.
    There is a space of 23mm x 78mm and I'm also looking for something that would fit there best currently the OLED 3.12 whole is nice but too big, the 2.08 on the other hand is very small and quite strange looking.

    Schneider audio tower with remote control resting on the top device .

    I've already taken steps and made a PCB design taking into account the signals going from the other blocks in the kit, i.e. the remote control and input selector signals.
    This is how it looks after rendering...

    Rendered PCB of internet radio with ESP32 module and DCS connectors

    And so far I'm at the etched PCB stage and waiting for a free moment to solder it.

    Two PCBs; etched board on top, printed circuit layout on bottom.

    This is another version of the radio this time as part of a 40 year old kit after restoration 😀

    Greetings....
  • #1315 21689187
    MAJSTER XXL
    Level 29  
    Today's job was to change the clock font to DS_DIGII35pt7b. I also added a scrolling list of stations, the scrolling list with a view of 4 stations and the currently selected one is displayed in a different colour. Changing banks is done by changing the colour of the displayed bank in the bottom line until accepted or timeout after idle. Unfortunately, I haven't managed to fully embrace the display and there are occasional lint or it gets completely whitewashed despite all the wires being soldered. Evidently it loses the config, because by adding a tft init line at the moment of switching stations the display returns.


    Color TFT screen displaying internet radio data and a digital clock .
    LCD screen with radio station list, audio data, and large digital clock .
    LCD screen interface showing radio station list, current time, and weather data .


    I have made a wiring diagram, you can try it, improved screen stability - added more commands to init.

    https://github.com/sarunia/ESP32_internet_radio_v3 .
  • #1316 21692784
    robgold
    Level 21  
    @DJCheester
    Cool that colour LCD what you recommended Link . All of these displays (well almost all of them) work over SPI. The Chinese simply call them SCL and SDA regardless of whether it's an SPI or I2C data line. Sometimes these displays have both buses for communication.

    I am observing Majster's efforts with this LCD, maybe I will make some re-port of EVO software to this display "for sport" because I have it (for yoRadio tests) but completely neither its size nor its quality appeals to me. In addition to this, the problems that Majster has with the stability of the communication. I wonder if this is an isolated incident or if these LCDs are so poorly made.

    @MAJSTER XXL can you hear any audio degradation (interference) from the display itself ? That's the only issue with the current OLED.
  • #1317 21692790
    hevet
    Level 17  
    I have this 76x284 display under Yoradio. It has only one myk, The backlight is connected to GND.
  • #1318 21692802
    DJCheester
    Level 26  
    robgold wrote:
    @DJCheester
    Cool that colour LCD what you recommended Link. All these displays (well almost all of them) work over SPI. The Chinese just call them SCL and SDA regardless of whether it's an SPI or I2C data line. Sometimes these displays have both buses for communication.
    .

    So, if we were to use what I've given (of course, if you were to convert the soft to it), would it be different to connect it to the ESP32 and by how much, because I've already made a pcb for the earlier OLEDs?

    Greetings ...
  • #1320 21693083
    MAJSTER XXL
    Level 29  
    OK, here's another version from me after a big update....
    I sat down recently and reworked my v3 to support with the latest audio library version 3.4.2, Arduino IDE also latest version 2.3.6, ESP tool version 4.6
    In addition, I introduced support for graphics via canvas to push content to the screen. By doing this, I was able to significantly improve the screen refresh rate and the whole thing looks much smoother and more aesthetically pleasing than the previous version.

    Unfortunately, I've noticed that the audio suffers with this setup - there are minor clipping in audio playback, especially during the more intense interface refresh. It looks like graphics and audio are competing for resources, so you'll need to diagnose the problem more accurately - check task prioritisation, audio caching and possibly optimise rendering so that screen refresh doesn't interfere with audio smoothness. For the moment I've commented out the calendar card and left the weather lines from the timer, but when refreshing the lines every 10s there is a slight pause in the audio, very short but it's there. Later I'll try to correlate to push the timer seconds change to the screen with the weatherman and calendar at the same time. I leave both versions on github for comparison. Overall already a very nice, smooth and stable screen. I still have some fine-tuning to do, but you can test....

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

    Maybe @robgold can you help optimise this?


    Below is a video of what it currently looks like:



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