logo elektroda
logo elektroda
X
logo elektroda

Internet radio and audio file player on ESP32-S3

MAJSTER XXL 278535 2772

TL;DR

  • Built an ESP32-S3 internet radio with an audio file player and OLED desk display, evolving through v1, v2, and v3.
  • Uses an ESP32-S3-WROOM-1, PCM5102A DAC, rotary encoders, and GitHub-hosted station lists split into banks of up to 100 stations.
  • The prototype uses a 2.42" 128x64px white OLED display, with a PCB made in Poland costing 130zl.
  • v3 adds a colour screen, weather, a calendar, RSS news from Polsat News Polska, and full remote control.
  • The first PCB had a pad-spacing mistake for the ESP32-S3-WROOM-1, so the module pins had to be bent slightly to fit.
Generated by the language model.
ADVERTISEMENT
This content has been translated flag-pl » flag-en View the original version here
📢 Listen (AI):
  • #2641 21899954
    ejcon
    Level 17  
    Posts: 288
    Help: 3
    Rate: 63
    New software version EVO3 MOD KOL .There is still a lot of room for improvement but you have a look for yourself . Version on Panel ILI9488 connections as before. Enjoy testing.

    The visual side looks like this
    Screenshot grid of 20 radio player UI panels with visualizers, clock, info pages, and menus.
    Attachments:
    • EVO_Radio_Arduino_ILI9488_V7_WLASCIWY_META_AUDIO_LEVEL_COMPILE_FIX.zip (1.05 MB) You must be logged in to download this attachment.
  • ADVERTISEMENT
  • #2642 21900299
    ejcon
    Level 17  
    Posts: 288
    Help: 3
    Rate: 63



    NEW TOOLING EVO3 MOD COLOUR

    Internet radio and audio file player on ESP32-S3 Internet radio and audio file player on ESP32-S3 Internet radio and audio file player on ESP32-S3 Internet radio and audio file player on ESP32-S3 Internet radio and audio file player on ESP32-S3




    Internet radio and audio file player on ESP32-S3
    EVO_Radio_Arduino_ILI9488_V7_BT_ICON_ORIGINAL_SHAPE_FIX4 This option is already there

    WORKS ON PANELS ILI9488 AND ST7796 you have to change the rotation in the code because the image is rotated 180 degrees
    Attachments:
    • EVO_Radio_Arduino_ILI9488_V7_FULL_ADOPTED.ino.merged.bin (16 MB) You must be logged in to download this attachment.
    • EVO_Radio_Arduino_ILI9488_V7_BT_ICON_ORIGINAL_SHAPE_FIX4.zip (1.07 MB) You must be logged in to download this attachment.
    • EVO_Radio_Arduino_ILI9488_V7_INFO_WEATHER_DANE_DEGREE_FIX.zip (1.07 MB) You must be logged in to download this attachment.
  • #2643 21900341
    efi222
    Level 22  
    Posts: 760
    Help: 12
    Rate: 1198
    And what kind of graphics? In terms of libraries?
  • #2644 21900347
    ejcon
    Level 17  
    Posts: 288
    Help: 3
    Rate: 63
    >>21900341
    LovyanGFX 1.2.21
    Audio Version 3.4.6

    Arduino IDE Library Manager showing “LovyanGFX” with version 1.2.21 marked as installed. LovyanGFX 1.2 audio version 3.4
  • #2645 21900357
    markon7
    Level 12  
    Posts: 13
    Rate: 3
    >>21900347 Hi, can you please upload the file, .bin, thanks
  • #2646 21900366
    ejcon
    Level 17  
    Posts: 288
    Help: 3
    Rate: 63
    >>21900357
    I added the bin in the post test don't forget the connections

    Connection to ESP32 S3 N16 R8 // -------------- OLED Display - pin definition -------------- #define SPI_MOSI_OLED 39 // MOSI pin (Master Out Slave In) for SPI OLED interface #define SPI_MISO_OLED -1 // no MISO for TFT display #define SPI_SCK_OLED 38 // SCK (Serial Clock) pin for SPI OLED interface #define CS_OLED -1 // CS residual screen to GND - dice on ILI9488 #define DC_OLED 40 // DC/RS screen on ILI9488 #define RESET_OLED 41 // RST screen on ILI9488 ST7796
  • #2647 21900476
    DJCheester
    Level 28  
    Posts: 2081
    Help: 75
    Rate: 954
    Hello Robgold, thanks for the new soft version. I have a question, did you add, besides the flag, any pin dedicated for the STANDBY/MUTE type amplifier ?

    Ejcon, a question, are you planning to control some LCD backlight pin for Power Off ? Well and the question of adjusting the edibility with the same pin you could PWM control the MOSFET for the LCD backlight.
    Do you have Bluetooth RX/TX in this version ?
    The idea is to implement audio transmission on the second ESP32 as you had in the previous mod on the OLED ?

    Greetings....
  • ADVERTISEMENT
  • #2648 21900496
    markon7
    Level 12  
    Posts: 13
    Rate: 3
    >>21900366 well it looks nice, but .bin is for ILI9488 and I have st7796 and have a mirror image
  • #2649 21900541
    ejcon
    Level 17  
    Posts: 288
    Help: 3
    Rate: 63
    In the web setting you have a rotation setting of 180 degrees, select it and update it, it works fine
    Web settings screenshot showing “TFT image rotation 180 degrees” and a “Weather location” field.

    Added after 7 [minutes]:

    >>21900476
    Yes in the softy is the BT control as before all is transferred from the Evo3 mod only on a new panel and here are the changes because everything is not yet completed but the work is in progress just like the previous softy should be the same functions.

    The new firmware will include the following connections:
    TFT SCK -> ESP32 GPIO38
    TFT MOSI -> ESP32 GPIO39
    TFT CS -> ESP32 GPIO42
    TFT DC -> ESP32 GPIO40
    TFT RST -> ESP32 GPIO41
    TFT GND -> ESP32 GND
    TFT VCC -> ESP32 3V3 or 5V according to the module
    TFT BL ->ESP32 GOPIO8
  • ADVERTISEMENT
  • #2650 21900551
    markon7
    Level 12  
    Posts: 13
    Rate: 3
    >>21900541 yes, I know this rotation works up/down but I also have left/right
  • #2651 21900560
    ejcon
    Level 17  
    Posts: 288
    Help: 3
    Rate: 63
    >>21900551
    A correction must be made in codzie .
  • #2652 21900866
    robgold
    Level 23  
    Posts: 724
    Help: 10
    Rate: 290
    >>21900476 The backlight and amplifier control option is already in code 3.20.14.

    Code: C / C++
    Log in, to see the code

    Clock synchronisation has also been improved in 3.20.14. Now in sleep mode when we have the clock displayed it should show the time correctly. ESP wakes up every 3h and does a re-sync of the clock. I forgot to add this to the list of changes and it is one of the most important things that has also changed.
  • #2653 21901130
    MAJSTER XXL
    Level 29  
    Posts: 2064
    Help: 164
    Rate: 428
    >>21900299 @ejcon In my opinion all these dynamic screens with bytes are an unnecessary expense, the fluidity is not there at all, and to stare at it- it just tires the eyes, better to harness the resources of ESP32 for smooth audio and network connection. If I were to do any analysis it would only be a screen on parallel communication, here's a comparison: https://www.youtube.com/watch?v=ZtCMIAmLSh8
  • ADVERTISEMENT
  • #2655 21901277
    ejcon
    Level 17  
    Posts: 288
    Help: 3
    Rate: 63
    >>21901191
    Maybe something like this .
    Cod for the spectrum converted from the code of colleague efi222.

    Wiring diagram for ESP32 with PCM5102A DAC and two ST7789 TFT displays sharing an SPI bus

    Screenshot of “External Analyzer / UART Spectrum” control panel with buttons and parameters

    Connections:
    2. TWO TFT PANELS ST7789 1.9" 170x320
    -------------------------------------
    Both displays share the same SPI bus. Only the CS pin differs.

    GPIO4 -> CS TFT left
    GPIO5 -> CS TFT right
    GPIO15 -> RX UART from master ESP32-S3
    GPIO16 -> TX UART to main ESP32-S3

    GPIO17 -> RST of both TFTs
    GPIO18 -> SCK of both TFTs
    GPIO22 -> DC of both TFTs
    GPIO23 -> MOSI both TFTs

    GPIO32 -> I2S BCK
    GPIO33 -> I2S LRC
    GPIO34 -> I2S DIN

    3V3 -> TFT and module power supply
    GND -> common groundTFT LEFT:
    Attachments:
    • EVO_V7_STYL22_WIDMO.zip (1.11 MB) You must be logged in to download this attachment.
  • #2656 21901400
    efi222
    Level 22  
    Posts: 760
    Help: 12
    Rate: 1198
    The mini spectrum code is a reworking of my earlier code. It could have been mentioned...
  • #2657 21901412
    ejcon
    Level 17  
    Posts: 288
    Help: 3
    Rate: 63
    >>21901400
    Sorry but I was writing quite late.
    Already adding info.
  • #2658 21901424
    efi222
    Level 22  
    Posts: 760
    Help: 12
    Rate: 1198
    ejcon wrote:
    Sorry but I was writing quite late.

    Bottom line.
    I've been writing for a long time that this S3 from the radio is sweating from an excess of bits and bobs. A separate ESP for effects is a good direction. Audio over i2c in the spectrum is great as much as it is limited to one device.
  • #2659 21901459
    robgold
    Level 23  
    Posts: 724
    Help: 10
    Rate: 290
    >>21901130 I agree 100%. Byers, blinkers ...great. However, this is INTERNET RADIO and the most important thing is that this streamer is able to correctly play back also such HiRes stations with FLAC codec. In 99% after starting the station no one looks at the display. we "fire up" our favourite station and off we go.
    This is why I am recompiling our own lwip libraries for the project, so that the radio plays correctly even up to 2500kbps/FLAC.

    @efi222 The approach with a separate analyser is spot on.
  • #2660 21901465
    ejcon
    Level 17  
    Posts: 288
    Help: 3
    Rate: 63
    What do you think about making a circuit as follows
    1 main processor ESP32 S3 N16R8 radio Evo3
    2.2 ESP32 S3 N16R8 processor Graphic equalizer with spectrum analyzer controlled from the main processor via uart
    3 BT AUDIO ESP32 WROM transmitter controlled from the main processor via uart2
    A PCM9211 could be added before the equalizer to feed other digital signals.

    1. Main audio structure
    ESP32-S3 EVO3 RADIO
    radio, Wi-Fi, web, TFT/OLED, SD, remote control, BT control
    |
    | I2S raw from the radio
    | DATA / BCK / LRC / optionally MCLK
    v
    PCM9211
    source selection:
    RADIO I2S / BT I2S / SPDIF / AUX / future inputs
    |
    | I2S selected source
    | DATA / BCK / LRC
    v
    ESP32-S3 N16R8 DSP
    equalizer 20 Hz ... 20 kHz
    preamp, limiter, spectrum analyser, VU
    |
    | DATA after equalization
    | BCK and LRC common with PCM9211
    v
    PCM5102A DAC
    |
    v
    audio amplifier
    1. ESP32-S3 EVO3 RADIO → PCM9211 as AUXIN0
    This is the correct connection for internet radio.
    ESP32-S3 EVO3 PCM9211 pin Name PCM9211 pin Function in project
    GPIO13 28 RXIN7 / ADIN0 I2S DATA from radio
    GPIO14 29 RXIN6 / ALRCKI0 I2S LRC / LRCK
    GPIO12 30 RXIN5 / ABCKI0 I2S BCK
    GPIO2 optional 31 RXIN4 / ASCKI0 I2S MCLK / SCK optional
    GND common ground
    So on the PCB describe it like this:
    PCM9211 AUXIN0 / RADIO
    pin 28 RXIN7/ADIN0 <- RADIO DATA
    pin 29 RXIN6/ALRCKI0 <- RADIO LRCK
    pin 30 RXIN5/ABCKI0 <- RADIO BCK
    pin 31 RXIN4/ASCKI0 <- RADIO MCLK optional
    Here an earlier description was good.
    ________________________________________
    2. Bluetooth I2S → PCM9211 as AUXIN1
    Here the names need to be corrected. There are no pins described as ADIN1 on the chassis. There are pins MPIO_C0...MPIO_C3. When group C is configured as AUXIN1 they get the functions ASCKI1 / ABCKI1 / ALRCKI1 / ADIN1.
    BT PCM9211 module pin Physical name of pin Function after configuration
    BT MCLK if present 7 MPIO_C0 ASCKI1
    BT BCK 8 MPIO_C1 ABCKI1
    BT LRC 9 MPIO_C2 ALRCKI1
    BT DATA OUT 10 MPIO_C3 ADIN1
    GND GND ground
    On the PCB schematic, sign it like this:
    PCM9211 AUXIN1 / BT
    pin 7 MPIO_C0 / AUXIN1_SCK
    pin 8 MPIO_C1 / AUXIN1_BCK
    pin 9 MPIO_C2 / AUXIN1_LRCK
    pin 10 MPIO_C3 / AUXIN1_DATA
    And in the PCM9211 software you have to set group C as AUXIN1. According to the datasheet, the MPIO_C group with MPCSEL = 000 works as AUXIN1, i.e. ASCKI1 / ABCKI1 / ALRCKI1 / ADIN1. This is also the default setting after a reset.
    ________________________________________
    3. Additional I2S input → PCM9211 as AUXIN2
    Name correction here too. There are MPIO_B0...MPIO_B3 pins on the chassis.
    External I2S source PCM9211 pin Physical pin name Function after configuration
    MCLK if present 11 MPIO_B0 ASCKI2
    BCK 12 MPIO_B1 ABCKI2
    LRC 13 MPIO_B2 ALRCKI2
    DATA 14 MPIO_B3 ADIN2
    GND GND GND ground
    On the PCB schematic, sign:
    PCM9211 AUXIN2 / EXT_I2S
    pin 11 MPIO_B0 / AUXIN2_SCK
    pin 12 MPIO_B1 / AUXIN2_BCK
    pin 13 MPIO_B2 / AUXIN2_LRCK
    pin 14 MPIO_B3 / AUXIN2_DATA
    The MPIO_B group with MPBSEL = 000 works as AUXIN2, i.e. ASCKI2 / ABCKI2 / ALRCKI2 / ADIN2. This is also the default setting.
    ________________________________________
    4. PCM9211 → ESP32-S3 DSP
    This is the main output of the PCM9211. Here the pins are exactly as shown in your picture.
    PCM9211 pin Name PCM9211 ESP32-S3 DSP Function
    17 DOUT GPIO11 DATA IN to DSP
    18 LRCK GPIO10 LRC / LRCK
    19 BCK GPIO9 BCK
    20 SCKO test pad / MCLK / SCK optionally
    GND GND GND ground
    Description on PCB:
    PCM9211 MAIN OUT
    pin 17 DOUT -> DSP GPIO11 DATA_IN
    pin 18 LRCK -> DSP GPIO10 LRC
    pin 19 BCK -> DSP GPIO9 BCK
    pin 20 SCKO -> TP_SCKO / optionally DSP MCLK
    The PCM9211 has routing of DIR, ADC, AUXIN0, AUXIN1, AUXIN2 sources to the main output. Selection of the main output is via register 6Bh, and muting and Hi-Z is via registers 6Ah and 6Dh.
    ________________________________________
    5. PCM9211 I2C control from EVO3
    That was almost right, just adding exactly according to the pinout.
    ESP32-S3 EVO3 PCM9211 pin Pin name Function
    GPIO4 24 MDI/SDA I2C SDA
    GPIO5 25 MC/SCL I2C SCL
    GPIO6 34 RST reset PCM9211, active LOW
    GPIO7 optional 1 ERROR/INT0 error / interrupt
    GPIO7 optional 15 MPO0 e.g. LOCK after configuration
    3V3 or GND via jumper 23 MDO/ADR0 I2C address ADR0
    3V3 or GND via jumper 26 MS/ADR1 I2C ADR1 address
    GND 27 MODE I2C selector
    For I2C the MODE pin must be connected to DGND. If you give MODE to VDD, the chip will go into SPI. The PCM9211 attempts this state on startup or reset, so don't treat this as just a GPIO.
    The I2C address is:
    10000 ADR1 ADR0
    That is:
    ADR1 ADR0 address 7-bit
    0 0 0x40
    0 1 0x41
    1 0 0x42
    1 1 0x43
    Therefore, it is best to give solder jumpers for ADR0 and ADR1 on the PCB. The PCM9211 supports I2C as a slave and the address has first bits 10000 plus ADR1 and ADR0.
    ________________________________________
    6. SPDIF / optical inputs
    This also needs to be described according to the real names.
    Coax SPDIF
    Input PCM9211 pin Pin name
    COAX 1 37 RXIN0
    COAX 2 35 RXIN1
    power supply RX coax 36 VDDRX
    rX coax ground 38 GNDRX
    RXIN0 and RXIN1 have a built-in coaxial input amplifier and VDDRX supplies this part of the receiver.
    Optical / TOSLINK SPDIF
    Optical input PCM9211 pin Pin name
    Optical 1 DATA 33 RXIN2
    Optical 2 DATA 32 RXIN3
    Optical 3 optional 31 RXIN4 / ASCKI0 if not using AUXIN0 SCK
    Optical 4 optional 30 RXIN5 / ABCKI0 if not using AUXIN0
    Optical 5 optional 29 RXIN6 / ALRCKI0 if not using AUXIN0
    Optical 6 optional 28 RXIN7 / ADIN0 if you do not use AUXIN0
    In our case RXIN4...RXIN7 are occupied by AUXIN0 RADIO, so for TOSLINK leave RXIN2 and RXIN3 realistically.
    ________________________________________
    7. Corrected netlist of the main audio path
    NET_RADIO_DATA:
    ESP32_EVO3 GPIO13
    PCM9211 pin 28 RXIN7/ADIN0

    NET_RADIO_LRCK:
    ESP32_EVO3 GPIO14
    PCM9211 pin 29 RXIN6/ALRCKI0

    NET_RADIO_BCK:
    ESP32_EVO3 GPIO12
    PCM9211 pin 30 RXIN5/ABCKI0

    NET_RADIO_MCLK_OPTION:
    ESP32_EVO3 GPIO2
    PCM9211 pin 31 RXIN4/ASCKI0
    NET_BT_I2S_MCLK_OPTION:
    BT_MODULE MCLK
    PCM9211 pin 7 MPIO_C0 / AUXIN1_SCK

    NET_BT_I2S_BCK:
    BT_MODULE BCK
    PCM9211 pin 8 MPIO_C1 / AUXIN1_BCK

    NET_BT_I2S_LRCK:
    BT_MODULE LRCK
    PCM9211 pin 9 MPIO_C2 / AUXIN1_LRCK

    NET_BT_I2S_DATA:
    BT_MODULE DATA_OUT
    PCM9211 pin 10 MPIO_C3 / AUXIN1_DATA
    NET_EXT_I2S_MCLK_OPTION:
    EXT_I2S MCLK
    PCM9211 pin 11 MPIO_B0 / AUXIN2_SCK

    NET_EXT_I2S_BCK:
    EXT_I2S BCK
    PCM9211 pin 12 MPIO_B1 / AUXIN2_BCK

    NET_EXT_I2S_LRCK:
    EXT_I2S LRCK
    PCM9211 pin 13 MPIO_B2 / AUXIN2_LRCK

    NET_EXT_I2S_DATA:
    EXT_I2S DATA
    PCM9211 pin 14 MPIO_B3 / AUXIN2_DATA
    NET_PCM9211_MAIN_DOUT:
    PCM9211 pin 17 DOUT
    DSP_ESP32 GPIO11

    NET_PCM9211_MAIN_LRCK:
    PCM9211 pin 18 LRCK
    DSP_ESP32 GPIO10
    PCM5102A LRC via jumper 0R

    NET_PCM9211_MAIN_BCK:
    PCM9211 pin 19 BCK
    DSP_ESP32 GPIO9
    PCM5102A BCK via jumper 0R

    NET_PCM9211_MAIN_SCKO_OPTION:
    PCM9211 pin 20 SCKO
    test pad TP_SCKO
    NET_DSP_DATA_OUT_EQ:
    DSP_ESP32 GPIO12
    PCM5102A DIN
    ________________________________________
    8. Note to the connection of the DSP with the PCM5102A
    Here I would leave the 0 Ω jumpers on the PCB, because we have two possible clock variants.
    Variant A, which we described:
    PCM9211 BCK -> DSP GPIO9 and PCM5102A BCK
    PCM9211 LRCK -> DSP GPIO10 and PCM5102A LRC
    DSP GPIO12 -> PCM5102A DIN
    This variant only works if the DSP correctly transmits DATA_OUT synchronised to the external BCK/LRCK.
    Variant B, safer to run:
    PCM9211 DOUT/BCK/LRCK -> DSP input I2S
    DSP generates its own BCK/LRCK/DATA -> PCM5102A
    For the first prototype PCB I recommend giving jumpers:
    JP_BCK_DAC:
    position 1: BCK with PCM9211
    position 2: BCK with DSP_TX

    JP_LRCK_DAC:
    position 1: LRCK with PCM9211
    position 2: LRCK with DSP_TX
    This way you won't get blocked if the ESP32-S3 DSP requires a separate I2S TX with its own clock.
    ________________________________________
    9. Corrected PCM9211 pin description for the schematic
    This is how I would describe the symbol in KiCad/Eagle:
    1 ERROR/INT0
    2 NPCM/INT1
    3 MPIO_A0
    4 MPIO_A1
    5 MPIO_A2
    6 MPIO_A3

    7 MPIO_C0 / AUXIN1_SCK
    8 MPIO_C1 / AUXIN1_BCK
    9 MPIO_C2 / AUXIN1_LRCK
    10 MPIO_C3 / AUXIN1_DATA

    11 MPIO_B0 / AUXIN2_SCK
    12 MPIO_B1 / AUXIN2_BCK
    13 MPIO_B2 / AUXIN2_LRCK
    14 MPIO_B3 / AUXIN2_DATA

    15 MPO0
    16 MPO1
    17 DOUT
    18 LRCK
    19 BCK
    20 SCKO

    21 DGND
    22 DVDD
    23 MDO/ADR0
    24 MDI/SDA
    25 MC/SCL
    26 MS/ADR1
    27 MODE

    28 RXIN7/ADIN0
    29 RXIN6/ALRCKI0
    30 RXIN5/ABCKI0
    31 RXIN4/ASCKI0
    32 RXIN3
    33 RXIN2
    34 RST
    35 RXIN1
    36 VDDRX
    37 RXIN0
    38 GNDRX

    39 XTI
    40 XTO
    41 AGND
    42 VCC
    43 FILT
    44 VCOM
    45 AGNDAD
    46 VCCAD
    47 VINL
    48 VINR
    This is consistent with your pinout from the picture and the TI table.
    ________________________________________
    10. Most important corrections from the previous description
    In the previous description it was confusing:
    pin 10 MPIO_C3 / ADIN1
    pin 8 MPIO_C1 / ABCKI1
    pin 9 MPIO_C2 / ALRCKI1
    Now we write it correctly:
    pin 10 MPIO_C3, post-configuration function: AUXIN1_DATA / ADIN1
    pin 8 MPIO_C1, function after configuration: AUXIN1_BCK / ABCKI1
    pin 9 MPIO_C2, function after configuration: AUXIN1_LRCK / ALRCKI1
    That is, for the PCB use the physical names MPIO_Cx and MPIO_Bx, and add the function after the slash as a logical description.
    In the end for your project it stays like this:
    RADIO from EVO3 -> AUXIN0, pins 28/29/30/31
    BT I2S -> AUXIN1, pins 7/8/9/10
    additional I2S -> AUXIN2, pins 11/12/13/14
    SPDIF coax -> RXIN0/RXIN1, pins 37/35
    SPDIF optical -> RXIN2/RXIN3, pins 33/32
    output to DSP -> DOUT/LRCK/BCK, pins 17/18/19
    i2C control -> SDA/SCL, pins 24/25
    reset -> RST, pin 34
    i2C mode -> MODE to GND, pin 27
    You can already transfer this version to the PCB schematic.

    Both TFTs together:
    GPIO18 -> SCK / CLK
    GPIO23 -> MOSI / SDA
    GPIO22 -> DC / A0
    GPIO17 -> RST / RES
    3V3 -> VCC
    GND -> GND

    TFT left:
    GPIO4 -> CS

    TFT right:
    GPIO5 -> CS

    Internet radio and audio file player on ESP32-S3
  • #2661 21901477
    efi222
    Level 22  
    Posts: 760
    Help: 12
    Rate: 1198
    >>21901465
    Point 2 and 3
    If the uart is unidirectional one is sufficient Preferably UART2.
    In the receiving ESPs the RXs are bundled together.
    I have something similar done in another device with two ESP32s. I control them TX from the Esp8266 from the GUI.
    Only in the command headers you have to add to which ESP32 the command is flying to. And they receive all the commands and filter if it is to it.
  • #2662 21901944
    ejcon
    Level 17  
    Posts: 288
    Help: 3
    Rate: 63
    Spectrum software fix.
    Cod for the spectrum reworked from the code of colleague efi222.

    THANKS FOR A SHOOT OF GOOD WORK efi222
    Such a little gadget about the demo every time you run .
    A request not to remove this from the code .

    Breadboard prototype with wires and two blue LCD displays showing “efi222” and “Ecjon”




    TFT display showing “ANALIZATOR ZEWN.” menu on a red PCB, with cables and ribbon in the background.

    Tested
    Electronics test setup with circuit boards, wiring, and three color displays showing spectrum/VU meters Electronics prototype with wires and two small displays showing vertical signal level bars

    TFT screen showing “PCM9211 SOURCE” UI with “RADIO AUXIN0” message, surrounded by wires
    Attachments:
    • widmo_analyzer_pio_32BIT.zip (16.94 MB) You must be logged in to download this attachment.
  • #2663 21901970
    efi222
    Level 22  
    Posts: 760
    Help: 12
    Rate: 1198
    ejcon wrote:
    Such a little gadget about demn at every launch .
    Request to not remove this from the code

    No no... I really don't need to be on TFT at the start. It's enough that my nickname is in the main. You've done a great job too. I'll take a look tomorrow to see what you've come up with there :)
  • #2664 21902025
    DJCheester
    Level 28  
    Posts: 2081
    Help: 75
    Rate: 954
    Ejcon would you upload some video of it jumping 😀

    Greetings...
  • #2665 21902029
    ArturAVS
    Moderator
    Posts: 26219
    Help: 2296
    Rate: 7771
    DJCheester wrote:
    would you please upload some video of how it jumps

    And sweep 64-16000Hz. I'd love to see how much "analysis" there is in this analyser.
  • #2666 21902075
    ryba_82
    Level 12  
    Posts: 9
    Rate: 1
    >>21899630 Good morning

    I compiled a new version yesterday, core 3.5.8, using audio library 3.4.6 (instead of 3.4.5q) and substituted lwIP libraries. I compiled under Arduino 2.3.8.
    It works brilliantly, compared to the previous version it runs faster, and on my favourite stations, which by the way were probably the most cutting at startup: PR Two and Radio Chopin PR in aac320 and Cesky Rozhlas D major (flac) stopped cutting.

    I don't know what caused this improvement, whether the new core (the radio works more nimbly in general) or the new I2S Audio library, or perhaps the "robgold" libraries

    The earlier compilation (3.20.04) on the above stations had problems, especially right after loading the station, I was combining with different versions of the lwIP libraries provided by my colleague Robgold and on these stations (especially Cesky Rozhlas) it was cutting heavily. Surprisingly, other stations, even with higher bitrates (e.g. Linn) were running smoothly. I considered that the problem might be on the side of the broadcaster.

    To my colleague Robgold:
    I also think that additional fabs like spectrum analysers or pseudo-analogue VU-meters are not necessary, it is better to focus on basic functionality, so as to squeeze the maximum performance out of a chip that was supposed to be used in fridges and other IoT....

    Now I am even thinking about simplifying this project (1 bank, only a big station name on the display, maybe a clock, etc.) in terms of a radio for an elderly person, so that its operation is as similar as possible to an analogue radio (you know, except for WiFi configuration).
  • #2667 21902151
    ejcon
    Level 17  
    Posts: 288
    Help: 3
    Rate: 63
    >>21902025




    To improve stl 6.
  • #2668 21902157
    DJCheester
    Level 28  
    Posts: 2081
    Help: 75
    Rate: 954
    Ejcon did you compile this as recommended on core 1.04 with the changes as efi222 wrote because somehow these posts go dimly.

    In effi's or my compilation it is much better

    Take a look

    Audio in analogue

    Greetings....
    Attachments:
    • ESP32 Analizator Widma - 01.mp4 (70.03 MB) You must be logged in to download this attachment.
  • #2669 21902161
    efi222
    Level 22  
    Posts: 760
    Help: 12
    Rate: 1198
    DJCheester wrote:
    you compiled this as recommended on core 1.04

    This low core was because of the high ADC sampling. In higher versions this is messed up. But there is no ADC in the ejcona software.

    @ejcon and falling bars do you have every 3 pixels?
  • #2670 21902164
    DJCheester
    Level 28  
    Posts: 2081
    Help: 75
    Rate: 954
    That's what you explained to me, but you have to admit that it works without delay. I wonder if this is because of I2S?
📢 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.
Generated by the language model.
ADVERTISEMENT