logo elektroda
logo elektroda
X
logo elektroda

Internet radio and audio file player on ESP32-S3

MAJSTER XXL 294273 2810

TL;DR LABEL_AI_GENERATED

  • 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.
AI summary based on the discussion. May contain errors.
ADVERTISEMENT
Treść została przetłumaczona polish » english Zobacz oryginalną wersję tematu
Listen:
  • ADVERTISEMENT
  • ESP32 WROOM and NV3007 dynamics adaptation

    #2762 21920599
    ejcon
    Level 17  
    Posts: 301
    Help: 3
    Rate: 68
    Work on the ESP32 WROOM and NV3007 dynamics – LOVYANGFX library adaptation


    .

    STAB heap=131556 minheap=126468 style=15 name=APMS STYLE 15 vucycle=1 testgen=0 tauto=1 tband=0 tdb=1 audio=96394 fft=96394 draw=9022 LOOP_FPS=98 AUDIO_FPS=85 FFT_FPS=85 DRAW_FPS=8 i2sReady=1 fails=0 short=0 rms=1625/1737 peak=5019/4815 sens=350 dyn=5 fall=40 hi16=50 leveler=1 autotlumik=1 agcGain=50 bl=213 vusens=155 vudyn=14 rx=61 cmds=6 last=TESTGEN 0
    STAB heap=131556 minheap=126468 style=15 name=APMS STYLE 15 vucycle=1 testgen=0 tauto=1 tband=0 tdb=1 audio=96652 fft=96652 draw=9049 LOOP_FPS=98 AUDIO_FPS=86 FFT_FPS=86 DRAW_FPS=8 i2sReady=1 fails=0 short=0 rms=18076/18042 peak=27995/30253 sens=350 dyn=5 fall=40 hi16=50 leveler=1 autotlumik=1 agcGain=35 bl=213 vusens=155 vudyn=14 rx=61 cmds=6 last=TESTGEN 0
    STAB heap=131556 minheap=126468 style=15 name=APMS STYLE 15 vucycle=1 testgen=0 tauto=1 tband=0 tdb=1 audio=96911 fft=96911 draw=9075 LOOP_FPS=98 AUDIO_FPS=86 FFT_FPS=86 DRAW_FPS=7 i2sReady=1 fails=0 short=0 rms=11122/11696 peak=25577/23601 sens=350 dyn=5 fall=40 hi16=50 leveler=1 autotlumik=1 agcGain=35 bl=213 vusens=155 vudyn=14 rx=61 cmds=6 last=TESTGEN 0
    STAB heap=131556 minheap=126468 style=15 name=APMS STYLE 15 vucycle=1 testgen=0 tauto=1 tband=0 tdb=1 audio=97170 fft=97170 draw=9101 LOOP_FPS=98 AUDIO_FPS=85 FFT_FPS=85 DRAW_FPS=8 i2sReady=1 fails=0 short=0 rms=3768/4067 peak=11455/13414 sens=350 dyn=5 fall=40 hi16=50 leveler=1 autotlumik=1 agcGain=37 bl=213 vusens=155 vudyn=14 rx=61 cmds=6 last=TESTGEN 0
    STAB heap=131556 minheap=126468 style=15 name=APMS STYLE 15 vucycle=1 testgen=0 tauto=1 tband=0 tdb=1 audio=97429 fft=97429 draw=9127 LOOP_FPS=98 AUDIO_FPS=86 FFT_FPS=86 DRAW_FPS=8 i2sReady=1 fails=0 short=0 rms=2159/1681 peak=6281/3858 sens=350 dyn=5 fall=40 hi16=50 leveler=1 autotlumik=1 agcGain=53 bl=213 vusens=155 vudyn=14 rx=61 cmds=6 last=TESTGEN 0
    STAB heap=131556 minheap=126468 style=15 name=APMS STYLE 15 vucycle=1 testgen=0 tauto=1 tband=0 tdb=1 audio=97688 fft=97688 draw=9153 LOOP_FPS=98 AUDIO_FPS=85 FFT_FPS=85 DRAW_FPS=8 i2sReady=1 fails=0 short=0 rms=7771/7497 peak=27770/25931 sens=350 dyn=5 fall=40 hi16=50 leveler=1 autotlumik=1 agcGain=37 bl=213 vusens=155 vudyn=14 rx=61 cmds=6 last=TESTGEN 0
    STAB heap=131556 minheap=126468 style=15 name=APMS STYLE 15 vucycle=1 testgen=0 tauto=1 tband=0 tdb=1 audio=97947 fft=97947 draw=9179 LOOP_FPS=98 AUDIO_FPS=85 FFT_FPS=85 DRAW_FPS=7 i2sReady=1 fails=0 short=0 rms=13536/13569 peak=27147/31937 sens=350 dyn=5 fall=40 hi16=50 leveler=1 autotlumik=1 agcGain=35 bl=213 vusens=155 vudyn=14 rx=61 cmds=6 last=TESTGEN 0
    STAB heap=131556 minheap=126468 style=15 name=APMS STYLE 15 vucycle=1 testgen=0 tauto=1 tband=0 tdb=1 audio=98206 fft=98206 draw=9205 LOOP_FPS=98 AUDIO_FPS=85 FFT_FPS=85 DRAW_FPS=8 i2sReady=1 fails=0 short=0 rms=3267/3849 peak=10981/11141 sens=350 dyn=5 fall=40 hi16=50 leveler=1 autotlumik=1 agcGain=36 bl=213 vusens=155 vudyn=14 rx=61 cmds=6 last=TESTGEN 0
    STAB heap=131556 minheap=126468 style=15 name=APMS STYLE 15 vucycle=1 testgen=0 tauto=1 tband=0 tdb=1 audio=98464 fft=98464 draw=9231 LOOP_FPS=98 AUDIO_FPS=86 FFT_FPS=86 DRAW_FPS=8 i2sReady=1 fails=0 short=0 rms=4579/3904 peak=13852/11492 sens=350 dyn=5 fall=40 hi16=50 leveler=1 autotlumik=1 agcGain=37 bl=213 vusens=155 vudyn=14 rx=61 cmds=6 last=TESTGEN 0
    STAB heap=131556 minheap=126468 style=15 name=APMS STYLE 15 vucycle=1 testgen=0 tauto=1 tband=0 tdb=1 audio=98723 fft=98723 draw=9258 LOOP_FPS=98 AUDIO_FPS=85 FFT_FPS=85 DRAW_FPS=8 i2sReady=1 fails=0 short=0 rms=3807/2891 peak=9980/8470 sens=350 dyn=5 fall=40 hi16=50 leveler=1 autotlumik=1 agcGain=42 bl=213 vusens=155 vudyn=14 rx=61 cmds=6 last=TESTGEN 0
    
  • #2763 21920624
    efi222
    Level 22  
    Posts: 779
    Help: 12
    Rate: 1219
    ejcon wrote:
    LOVYANGFX LIBRARY

    This library is even faster than TFT_espi.
    The FPS has improved dramatically – 98 instead of the previous 37.
    Where exactly is the "DRAW_FPS" measurement taken, because it’s a bit "thin" here...
    Do you have four displays connected to the MCU?
  • Loop frame counters for audio, FFT, and display updates

    #2764 21920636
    ejcon
    Level 17  
    Posts: 301
    Help: 3
    Rate: 68
    Not two ESP32 processors: the old program for the ST7789 and the new one for the NV3007. For now, I’m transferring the VU and style editing functions over – let’s see how it turns out.
    loopFrames – counter for the number of iterations of the main loop()
    audioFrames – counter for received audio frames / generator
    fftFrames – counter for FFT analyses performed or test frames
    drawFrames – counter for screen frames drawn
  • #2765 21920657
    efi222
    Level 22  
    Posts: 779
    Help: 12
    Rate: 1219
    I don't quite understand something.
    Loop and FFT – 98 FPS, but only 8 frames?
  • ADVERTISEMENT
  • PAM8406 causes no sound and ESP resets

    #2766 21920661
    grzes_dst
    Level 12  
    Posts: 79
    Rate: 7
    Hello
    I’ve added a PAM8406 amplifier to the PCB from @DJCheester’s project, but unfortunately there’s no sound coming from the speakers.
    The volume is set to halfway; when I turn it up to maximum using the remote, the ESP resets after a short while.
    With the previous version of the PCB fitted with a PAM8403, there were no issues with sound coming from the speakers.
    What could be the problem? I’ve tried two PAM8406 amplifiers.
  • #2767 21920687
    efi222
    Level 22  
    Posts: 779
    Help: 12
    Rate: 1219
    >>21920661
    Is there any sound coming from the PCM5102 output?
  • Reversed pin header blocked audio signal

    #2768 21920699
    grzes_dst
    Level 12  
    Posts: 79
    Rate: 7
    @efi222
    Internet radio and audio file player on ESP32-S3

    There is sound on the PCM5102 and the radio connected to the stereo system is working normally.
    Voltage measured at the PAM pins is 4.4V; of course, the power supply wires to the PAM amplifier are connected to the board.
    Only a faint hum can be heard in the speaker.
    It looks as though the audio signal isn’t reaching the amplifier.

    EDIT:
    The problem has been solved; the Chinese manufacturer had soldered the pin header the wrong way round; once reversed, it worked.
    Here’s a photo for reference, so that anyone ordering this and experiencing a similar problem can check whether any pins have been soldered in the wrong way round.
    Internet radio and audio file player on ESP32-S3
    Attachments:
    • Internet radio and audio file player on ESP32-S3 IMG20260613213649.jpg (2.8 MB) You must be logged in to download this attachment.
  • ADVERTISEMENT
  • #2769 21920795
    efi222
    Level 22  
    Posts: 779
    Help: 12
    Rate: 1219
    grzes_dst wrote:
    The Chinese guy soldered the pin header the wrong way round

    Are the pin descriptions incorrect? Because as far as I can see, all PAM8406s are mounted identically.
  • #2770 21920812
    grzes_dst
    Level 12  
    Posts: 79
    Rate: 7
    I’ve just been looking at AliExpress, and in the photos they all have the pins facing upwards, just like in my photo.
    The best thing would be to buy one to solder on; that would sort the problem.
    When mounting the PR with the pins facing downwards, the Vcc, Gnd and speaker output pins are not reversed.
  • Draw fps is the main FFT bottleneck

    #2771 21921403
    ejcon
    Level 17  
    Posts: 301
    Help: 3
    Rate: 68
    >>21920657
    Here is a description of how it is calculated:
    LOOP_FPS determines the speed of the main program loop and indicates how many times per second the entire control code is executed. A value of around 90–120 FPS indicates very good system performance. AUDIO_FPS determines the rate at which audio samples are retrieved and processed from the I2S interface. The higher the value, the faster the input signal is analysed and the more responsive the indicators are. FFT_FPS specifies the number of full FFT analyses performed per second. This parameter determines the speed at which spectrum data is updated and the levels of individual frequency bands are calculated. Values of around 80–100 FPS are very good and ensure smooth operation of the analyser. DRAW_FPS determines the speed at which graphics are drawn on the display. This is the number of full panel refreshes performed per second. In the case of the NV3007 configuration, DRAW_FPS is most often the main performance bottleneck. For example, with values of LOOP_FPS=92, AUDIO_FPS=86, FFT_FPS=86 and DRAW_FPS=14, this means that the processor has no problem retrieving audio data and performing FFT calculations, whilst the display is refreshed only 14 times per second. This results in jerky needle movement, less smooth bar movement, visualisation delays and the impression that the analyser is running more slowly, even though the audio section is functioning correctly. Therefore, when optimising the FFT panels, the greatest attention should be paid to increasing DRAW_FPS, limiting the number of graphics operations, reducing the number of full screen redraws, and updating only the elements that have changed. The target values for the NV3007 FFT analyser are LOOP_FPS 90–120, AUDIO_FPS 80–100, FFT_FPS 80–100 and DRAW_FPS a minimum of 25–40 FPS, which ensures smooth and stable operation of the entire system.

    This is the performance I am currently achieving:
    STAB heap=146436 minheap=116444 style=6 name=VU PHOTO HORIZONTAL origvu=1 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=32627 fft=32627 draw=11654 LOOP_FPS=93 AUDIO_FPS=86 FFT_FPS=86 DRAW_FPS=33 i2sReady=1 fails=0 short=0 rms=345/360 peak=549/687 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=290 bl=213 vusens=50 vudyn=14 rx=67 cmds=8 last=STYLE 6
    STAB heap=146436 minheap=116444 style=6 name=VU PHOTO HORIZONTAL origvu=1 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=32886 fft=32886 draw=11753 LOOP_FPS=93 AUDIO_FPS=86 FFT_FPS=86 DRAW_FPS=32 i2sReady=1 fails=0 short=0 rms=938/1038 peak=2186/2001 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=117 bl=213 vusens=50 vudyn=14 rx=67 cmds=8 last=STYLE 6
    STAB heap=146436 minheap=116444 style=6 name=VU PHOTO HORIZONTAL origvu=1 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=33145 fft=33145 draw=11853 LOOP_FPS=93 AUDIO_FPS=85 FFT_FPS=85 DRAW_FPS=32 i2sReady=1 fails=0 short=0 rms=312/265 peak=1016/906 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=361 bl=213 vusens=50 vudyn=14 rx=67 cmds=8 last=STYLE 6
    STAB heap=146436 minheap=116444 style=6 name=VU PHOTO HORIZONTAL origvu=1 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=33404 fft=33404 draw=11952 LOOP_FPS=92 AUDIO_FPS=86 FFT_FPS=86 DRAW_FPS=32 i2sReady=1 fails=0 short=0 rms=617/433 peak=1410/1250 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=286 bl=213 vusens=50 vudyn=14 rx=67 cmds=8 last=STYLE 6
    STAB heap=146436 minheap=116444 style=6 name=VU PHOTO HORIZONTAL origvu=1 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=33662 fft=33662 draw=12051 LOOP_FPS=92 AUDIO_FPS=86 FFT_FPS=86 DRAW_FPS=34 i2sReady=1 fails=0 short=0 rms=278/276 peak=1622/1686 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=337 bl=213 vusens=50 vudyn=14 rx=67 cmds=8 last=STYLE 6
    STAB heap=146436 minheap=116444 style=6 name=VU PHOTO HORIZONTAL origvu=1 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=33922 fft=33922 draw=12150 LOOP_FPS=92 AUDIO_FPS=85 FFT_FPS=85 DRAW_FPS=32 i2sReady=1 fails=0 short=0 rms=549/453 peak=1600/1436 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=181 bl=213 vusens=50 vudyn=14 rx=67 cmds=8 last=STYLE 6
    STAB heap=146436 minheap=116444 style=6 name=VU PHOTO HORIZONTAL origvu=1 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=34180 fft=34180 draw=12249 LOOP_FPS=94 AUDIO_FPS=86 FFT_FPS=86 DRAW_FPS=32 i2sReady=1 fails=0 short=0 rms=648/788 peak=2549/3180 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=195 bl=213 vusens=50 vudyn=14 rx=67 cmds=8 last=STYLE 6
    STAB heap=146436 minheap=116444 style=6 name=VU PHOTO HORIZONTAL origvu=1 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=34440 fft=34440 draw=12348 LOOP_FPS=94 AUDIO_FPS=86 FFT_FPS=86 DRAW_FPS=33 i2sReady=1 fails=0 short=0 rms=544/410 peak=2137/1353 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=291 bl=213 vusens=50 vudyn=14 rx=67 cmds=8 last=STYLE 6
    STAB heap=146436 minheap=116444 style=6 name=VU PHOTO HORIZONTAL origvu=1 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=34698 fft=34698 draw=12447 LOOP_FPS=93 AUDIO_FPS=85 FFT_FPS=86 DRAW_FPS=32 i2sReady=1 fails=0 short=0 rms=784/817 peak=1567/1355 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=255 bl=213 vusens=50 vudyn=14 rx=67 cmds=8 last=STYLE 6
    STAB heap=146436 minheap=116444 style=6 name=VU PHOTO HORIZONTAL origvu=1 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=34957 fft=34957 draw=12546 LOOP_FPS=93 AUDIO_FPS=85 FFT_FPS=85 DRAW_FPS=32 i2sReady=1 fails=0 short=0 rms=520/557 peak=1117/1620 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=239 bl=213 vusens=50 vudyn=14 rx=67 cmds=8 last=STYLE 6
    STAB heap=146436 minheap=116444 style=6 name=VU PHOTO HORIZONTAL origvu=1 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=35216 fft=35216 draw=12645 LOOP_FPS=94 AUDIO_FPS=86 FFT_FPS=86 DRAW_FPS=32 i2sReady=1 fails=0 short=0 rms=1283/1381 peak=2501/2737 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=135 bl=213 vusens=50 vudyn=14 rx=67 cmds=8 last=STYLE 6
    STAB heap=146436 minheap=116444 style=6 name=VU PHOTO HORIZONTAL origvu=1 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=35475 fft=35475 draw=12744 LOOP_FPS=94 AUDIO_FPS=86 FFT_FPS=86 DRAW_FPS=33 i2sReady=1 fails=0 short=0 rms=245/174 peak=576/620 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=391 bl=213 vusens=50 vudyn=14 rx=67 cmds=8 last=STYLE 6
    UNKNOWN CMD: FFTDIAG
    STAB heap=146436 minheap=116444 style=6 name=VU PHOTO HORIZONTAL origvu=1 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=35734 fft=35734 draw=12843 LOOP_FPS=93 AUDIO_FPS=86 FFT_FPS=86 DRAW_FPS=34 i2sReady=1 fails=0 short=0 rms=574/506 peak=1113/1238 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=308 bl=213 vusens=50 vudyn=14 rx=75 cmds=9 last=FFTDIAG
    STAB heap=146436 minheap=116444 style=6 name=VU PHOTO HORIZONTAL origvu=1 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=35993 fft=35993 draw=12942 LOOP_FPS=92 AUDIO_FPS=85 FFT_FPS=85 DRAW_FPS=31 i2sReady=1 fails=0 short=0 rms=464/398 peak=1354/1178 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=276 bl=213 vusens=50 vudyn=14 rx=75 cmds=9 last=FFTDIAG
    STAB heap=146436 minheap=116444 style=6 name=VU PHOTO HORIZONTAL origvu=1 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=36252 fft=36252 draw=13041 LOOP_FPS=92 AUDIO_FPS=87 FFT_FPS=87 DRAW_FPS=32 i2sReady=1 fails=0 short=0 rms=1197/1586 peak=1676/2338 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=108 bl=213 vusens=50 vudyn=14 rx=75 cmds=9 last=FFTDIAG
    STAB heap=146436 minheap=116444 style=6 name=VU PHOTO HORIZONTAL origvu=1 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=36511 fft=36511 draw=13140 LOOP_FPS=93 AUDIO_FPS=86 FFT_FPS=86 DRAW_FPS=32 i2sReady=1 fails=0 short=0 rms=99/91 peak=336/233 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=366 bl=213 vusens=50 vudyn=14 rx=75 cmds=9 last=FFTDIAG
    STAB heap=146436 minheap=116444 style=6 name=VU PHOTO HORIZONTAL origvu=1 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=36769 fft=36769 draw=13239 LOOP_FPS=94 AUDIO_FPS=86 FFT_FPS=86 DRAW_FPS=32 i2sReady=1 fails=0 short=0 rms=1/1 peak=3/3 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=100 bl=213 vusens=50 vudyn=14 rx=75 cmds=9 last=FFTDIAG
    STAB heap=146436 minheap=116444 style=6 name=VU PHOTO HORIZONTAL origvu=1 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=37029 fft=37029 draw=13338 LOOP_FPS=94 AUDIO_FPS=85 FFT_FPS=85 DRAW_FPS=32 i2sReady=1 fails=0 short=0 rms=930/871 peak=1700/1556 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=97 bl=213 vusens=50 vudyn=14 rx=75 cmds=9 last=FFTDIAG
    STAB heap=146436 minheap=116444 style=6 name=VU PHOTO HORIZONTAL origvu=1 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=37287 fft=37287 draw=13437 LOOP_FPS=94 AUDIO_FPS=85 FFT_FPS=85 DRAW_FPS=32 i2sReady=1 fails=0 short=0 rms=396/460 peak=2388/1414 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=198 bl=213 vusens=50 vudyn=14 rx=75 cmds=9 last=FFTDIAG
    STAB heap=146436 minheap=116444 style=6 name=VU PHOTO HORIZONTAL origvu=1 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=37547 fft=37547 draw=13536 LOOP_FPS=95 AUDIO_FPS=86 FFT_FPS=86 DRAW_FPS=34 i2sReady=1 fails=0 short=0 rms=464/212 peak=1403/705 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=402 bl=213 vusens=50 vudyn=14 rx=75 cmds=9 last=FFTDIAG
    OK STYLE 12
    APMS FULLCLEAR STYLE_SPECTRUM
    APMS FRAME RENDER sprite=OK
    STAB heap=121460 minheap=116444 style=12 name=A1 ORIGINAL 7 origvu=0 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=37806 fft=37806 draw=13606 LOOP_FPS=93 AUDIO_FPS=86 FFT_FPS=86 DRAW_FPS=13 i2sReady=1 fails=0 short=0 rms=1278/1362 peak=4021/4104 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=125 bl=213 vusens=50 vudyn=14 rx=84 cmds=10 last=STYLE 12
    STAB heap=121460 minheap=116444 style=12 name=A1 ORIGINAL 7 origvu=0 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=38064 fft=38064 draw=13625 LOOP_FPS=93 AUDIO_FPS=87 FFT_FPS=87 DRAW_FPS=7 i2sReady=1 fails=0 short=0 rms=1520/1476 peak=3686/3099 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=60 bl=213 vusens=50 vudyn=14 rx=84 cmds=10 last=STYLE 12
    STAB heap=121460 minheap=116444 style=12 name=A1 ORIGINAL 7 origvu=0 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=38323 fft=38323 draw=13645 LOOP_FPS=93 AUDIO_FPS=86 FFT_FPS=86 DRAW_FPS=5 i2sReady=1 fails=0 short=0 rms=713/761 peak=2021/1913 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=165 bl=213 vusens=50 vudyn=14 rx=84 cmds=10 last=STYLE 12
    STAB heap=121460 minheap=116372 style=12 name=A1 ORIGINAL 7 origvu=0 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=38582 fft=38582 draw=13664 LOOP_FPS=93 AUDIO_FPS=86 FFT_FPS=86 DRAW_FPS=6 i2sReady=1 fails=0 short=0 rms=538/568 peak=1396/1224 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=244 bl=213 vusens=50 vudyn=14 rx=84 cmds=10 last=STYLE 12
    STAB heap=121460 minheap=116372 style=12 name=A1 ORIGINAL 7 origvu=0 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=38841 fft=38841 draw=13684 LOOP_FPS=92 AUDIO_FPS=85 FFT_FPS=85 DRAW_FPS=6 i2sReady=1 fails=0 short=0 rms=2000/1889 peak=4395/4622 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=109 bl=213 vusens=50 vudyn=14 rx=84 cmds=10 last=STYLE 12
    OK STYLE 11
    APMS FULLCLEAR STYLE_SPECTRUM
    STAB heap=121460 minheap=116372 style=11 name=A1 ORIGINAL 6 origvu=0 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=39100 fft=39100 draw=13703 LOOP_FPS=94 AUDIO_FPS=86 FFT_FPS=86 DRAW_FPS=4 i2sReady=1 fails=0 short=0 rms=1166/2174 peak=3019/4524 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=72 bl=213 vusens=50 vudyn=14 rx=93 cmds=11 last=STYLE 11
    STAB heap=121460 minheap=116372 style=11 name=A1 ORIGINAL 6 origvu=0 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=39359 fft=39359 draw=13723 LOOP_FPS=93 AUDIO_FPS=86 FFT_FPS=86 DRAW_FPS=5 i2sReady=1 fails=0 short=0 rms=263/319 peak=821/825 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=370 bl=213 vusens=50 vudyn=14 rx=93 cmds=11 last=STYLE 11
    STAB heap=121460 minheap=116372 style=11 name=A1 ORIGINAL 6 origvu=0 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=39618 fft=39618 draw=13742 LOOP_FPS=92 AUDIO_FPS=85 FFT_FPS=85 DRAW_FPS=6 i2sReady=1 fails=0 short=0 rms=196/172 peak=483/351 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=422 bl=213 vusens=50 vudyn=14 rx=93 cmds=11 last=STYLE 11
    STAB heap=121460 minheap=116372 style=11 name=A1 ORIGINAL 6 origvu=0 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=39877 fft=39877 draw=13762 LOOP_FPS=92 AUDIO_FPS=86 FFT_FPS=86 DRAW_FPS=6 i2sReady=1 fails=0 short=0 rms=4003/3813 peak=5865/5572 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=58 bl=213 vusens=50 vudyn=14 rx=93 cmds=11 last=STYLE 11
    STAB heap=121460 minheap=116372 style=11 name=A1 ORIGINAL 6 origvu=0 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=40135 fft=40135 draw=13782 LOOP_FPS=93 AUDIO_FPS=86 FFT_FPS=86 DRAW_FPS=6 i2sReady=1 fails=0 short=0 rms=155/122 peak=396/317 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=238 bl=213 vusens=50 vudyn=14 rx=93 cmds=11 last=STYLE 11
    STAB heap=121460 minheap=116372 style=11 name=A1 ORIGINAL 6 origvu=0 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=40395 fft=40395 draw=13801 LOOP_FPS=93 AUDIO_FPS=86 FFT_FPS=86 DRAW_FPS=5 i2sReady=1 fails=0 short=0 rms=331/240 peak=1057/678 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=387 bl=213 vusens=50 vudyn=14 rx=93 cmds=11 last=STYLE 11
    STAB heap=121460 minheap=116372 style=11 name=A1 ORIGINAL 6 origvu=0 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=40654 fft=40654 draw=13821 LOOP_FPS=93 AUDIO_FPS=86 FFT_FPS=86 DRAW_FPS=6 i2sReady=1 fails=0 short=0 rms=506/651 peak=1374/1540 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=311 bl=213 vusens=50 vudyn=14 rx=93 cmds=11 last=STYLE 11
    STAB heap=121460 minheap=116372 style=11 name=A1 ORIGINAL 6 origvu=0 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=40913 fft=40913 draw=13841 LOOP_FPS=91 AUDIO_FPS=86 FFT_FPS=86 DRAW_FPS=6 i2sReady=1 fails=0 short=0 rms=3210/2991 peak=5798/5247 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=49 bl=213 vusens=50 vudyn=14 rx=93 cmds=11 last=STYLE 11
    OK STYLE 12
    APMS FULLCLEAR STYLE_SPECTRUM
    STAB heap=121460 minheap=116372 style=12 name=A1 ORIGINAL 7 origvu=0 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=41171 fft=41171 draw=13859 LOOP_FPS=92 AUDIO_FPS=86 FFT_FPS=86 DRAW_FPS=6 i2sReady=1 fails=0 short=0 rms=295/501 peak=1026/1239 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=283 bl=213 vusens=50 vudyn=14 rx=102 cmds=12 last=STYLE 12
    STAB heap=121460 minheap=116372 style=12 name=A1 ORIGINAL 7 origvu=0 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=41430 fft=41430 draw=13879 LOOP_FPS=92 AUDIO_FPS=86 FFT_FPS=86 DRAW_FPS=5 i2sReady=1 fails=0 short=0 rms=342/256 peak=919/999 sens=200 dyn=3 fall=18 hi16=250 leveler=1 autotlumik=1 agcGain=396 bl=213 vusens=50 vudyn=14 rx=102 cmds=12 last=STYLE 12
  • #2772 21921522
    efi222
    Level 22  
    Posts: 779
    Help: 12
    Rate: 1219
    This DRAW_FPS was running nicely at around 30fps, and then what happened to make it drop to 5fps?
    The "Achilles' heel" of the whole code....

    Added after 3 [minutes]:

    I’d have had a go at tinkering with that I2s spectrum, but I’m short on time at the moment.
  • ESP32-S3 audio pipeline and FFT diagnostics

    #2773 21921528
    ejcon
    Level 17  
    Posts: 301
    Help: 3
    Rate: 68



    === APMS WROOM NV3007 SMAP_SPRITE_STAGE_FIX | base === APMS WROOM NV3007 STYLEMAP_ADAPTER | base === APMS WROOM NV3007 FINAL18 CMAP4_TRUE_RGB ===
    Baza: mikro_widmo_A1 FFT/slupki + I2S + style z edycji + NV3007 LovyanGFX
    TFT init NV3007 L=1 R=1
    PANEL X=-18 Y=8 MX=8 MR=8 MY=8 MB=8 MAP=4 SMAP=3 SACT=0 SWAP=1 RB=0
    BOOTLOGO OK: decorative efi222 / Ejcon imported
    COLOR FIX: CMAP=4 BRG_ROTATION_FIX BIG_LOG_TEXT
    UART START RX15 TX16 BAUD 115200
    I2S RX OK BCK=26 LRC=25 DIN=27 FS=44100 BITS=32 SHIFT32=16 BIN_HZ=86.13
    START STYLE=0
    Komendy: STATUS, DIAG, PANEL, WIDMOX/Y, WIDMOMOVE dx dy, WIDMOSCALE mx mr my mb, WIDMOFIT, STYLE n, CSTYLE, FULLCLEAR, TESTGEN, VUGAIN, SAVEAPMS FRAME RENDER lazy=ON
    
    STAB heap=228560 minheap=223544 style=0 STYLEMAP=3 GRADREV=1 name=MINI WHITE PEAK NUM origvu=0 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=3 fft=3 draw=0 LOOP_FPS=0 AUDIO_FPS=0 FFT_FPS=0 DRAW_FPS=0 i2sReady=1 fails=0 short=0 rms=420/444 peak=1051/1041 sens=300 dyn=10 fall=40 hi16=250 leveler=1 autotlumik=1 agcGain=105 tlumik=100 agcT=700 agcPeakT=9000 agcMin=5 agcMax=180 atk=500 rel=45 kp=50 ki=2 kd=0 bl=213 vusens=50 vudyn=14 rx=0 cmds=0 last=
    APMS FULLCLEAR STYLE_SPECTRUM
    APMS FRAME RENDER sprite=OK
    TASKDIAG audioCore=1 drawCore=0 audioStackHW=17228 drawStackHW=14124 loopStackHW=30988 heap=117264 minheap=112248 LOOP_FPS=95 AUDIO_FPS=85 FFT_FPS=85 DRAW_FPS=9 BUILD_US=8952 PUSH_US=89708 FRAME_US=98684 MAX_FRAME_US=159316 SPRITE_FAILS=0 SENT_LINES=592 SKIP_LINES=223 SENT_L=291 SENT_R=301 SKIP_L=136 SKIP_R=87
    STAB heap=117264 minheap=112248 style=0 STYLEMAP=3 GRADREV=1 name=MINI WHITE PEAK NUM origvu=0 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=262 fft=262 draw=26 LOOP_FPS=93 AUDIO_FPS=86 FFT_FPS=86 DRAW_FPS=8 i2sReady=1 fails=0 short=0 rms=417/418 peak=1078/920 sens=300 dyn=10 fall=40 hi16=250 leveler=1 autotlumik=1 agcGain=139 tlumik=100 agcT=700 agcPeakT=9000 agcMin=5 agcMax=180 atk=500 rel=45 kp=50 ki=2 kd=0 bl=213 vusens=50 vudyn=14 rx=4 cmds=1 last=FPS
    STAB heap=117264 minheap=112248 style=0 STYLEMAP=3 GRADREV=1 name=MINI WHITE PEAK NUM origvu=0 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=521 fft=521 draw=55 LOOP_FPS=95 AUDIO_FPS=85 FFT_FPS=85 DRAW_FPS=8 i2sReady=1 fails=0 short=0 rms=918/844 peak=2300/2051 sens=300 dyn=10 fall=40 hi16=250 leveler=1 autotlumik=1 agcGain=93 tlumik=100 agcT=700 agcPeakT=9000 agcMin=5 agcMax=180 atk=500 rel=45 kp=50 ki=2 kd=0 bl=213 vusens=50 vudyn=14 rx=4 cmds=1 last=FPS
    STAB heap=117264 minheap=112248 style=0 STYLEMAP=3 GRADREV=1 name=MINI WHITE PEAK NUM origvu=0 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=780 fft=780 draw=83 LOOP_FPS=95 AUDIO_FPS=86 FFT_FPS=86 DRAW_FPS=9 i2sReady=1 fails=0 short=0 rms=370/373 peak=1553/1225 sens=300 dyn=10 fall=40 hi16=250 leveler=1 autotlumik=1 agcGain=143 tlumik=100 agcT=700 agcPeakT=9000 agcMin=5 agcMax=180 atk=500 rel=45 kp=50 ki=2 kd=0 bl=213 vusens=50 vudyn=14 rx=4 cmds=1 last=FPS
    STAB heap=117264 minheap=112248 style=0 STYLEMAP=3 GRADREV=1 name=MINI WHITE PEAK NUM origvu=0 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=1039 fft=1039 draw=110 LOOP_FPS=95 AUDIO_FPS=85 FFT_FPS=85 DRAW_FPS=8 i2sReady=1 fails=0 short=0 rms=587/580 peak=1460/1438 sens=300 dyn=10 fall=40 hi16=250 leveler=1 autotlumik=1 agcGain=138 tlumik=100 agcT=700 agcPeakT=9000 agcMin=5 agcMax=180 atk=500 rel=45 kp=50 ki=2 kd=0 bl=213 vusens=50 vudyn=14 rx=4 cmds=1 last=FPS
    STAB heap=117264 minheap=112248 style=0 STYLEMAP=3 GRADREV=1 name=MINI WHITE PEAK NUM origvu=0 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=1298 fft=1298 draw=136 LOOP_FPS=95 AUDIO_FPS=86 FFT_FPS=86 DRAW_FPS=8 i2sReady=1 fails=0 short=0 rms=619/628 peak=1734/2184 sens=300 dyn=10 fall=40 hi16=250 leveler=1 autotlumik=1 agcGain=134 tlumik=100 agcT=700 agcPeakT=9000 agcMin=5 agcMax=180 atk=500 rel=45 kp=50 ki=2 kd=0 bl=213 vusens=50 vudyn=14 rx=4 cmds=1 last=FPS
    STAB heap=117264 minheap=112248 style=0 STYLEMAP=3 GRADREV=1 name=MINI WHITE PEAK NUM origvu=0 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=1556 fft=1556 draw=163 LOOP_FPS=95 AUDIO_FPS=85 FFT_FPS=85 DRAW_FPS=8 i2sReady=1 fails=0 short=0 rms=463/623 peak=1160/1274 sens=300 dyn=10 fall=40 hi16=250 leveler=1 autotlumik=1 agcGain=146 tlumik=100 agcT=700 agcPeakT=9000 agcMin=5 agcMax=180 atk=500 rel=45 kp=50 ki=2 kd=0 bl=213 vusens=50 vudyn=14 rx=4 cmds=1 last=FPS
    STAB heap=117264 minheap=112248 style=0 STYLEMAP=3 GRADREV=1 name=MINI WHITE PEAK NUM origvu=0 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=1816 fft=1816 draw=190 LOOP_FPS=95 AUDIO_FPS=85 FFT_FPS=85 DRAW_FPS=8 i2sReady=1 fails=0 short=0 rms=546/647 peak=1342/1290 sens=300 dyn=10 fall=40 hi16=250 leveler=1 autotlumik=1 agcGain=137 tlumik=100 agcT=700 agcPeakT=9000 agcMin=5 agcMax=180 atk=500 rel=45 kp=50 ki=2 kd=0 bl=213 vusens=50 vudyn=14 rx=4 cmds=1 last=FPS
    STAB heap=117264 minheap=112248 style=0 STYLEMAP=3 GRADREV=1 name=MINI WHITE PEAK NUM origvu=0 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=2075 fft=2075 draw=216 LOOP_FPS=95 AUDIO_FPS=85 FFT_FPS=85 DRAW_FPS=8 i2sReady=1 fails=0 short=0 rms=561/517 peak=1451/1381 sens=300 dyn=10 fall=40 hi16=250 leveler=1 autotlumik=1 agcGain=130 tlumik=100 agcT=700 agcPeakT=9000 agcMin=5 agcMax=180 atk=500 rel=45 kp=50 ki=2 kd=0 bl=213 vusens=50 vudyn=14 rx=4 cmds=1 last=FPS
    STAB heap=117264 minheap=111888 style=0 STYLEMAP=3 GRADREV=1 name=MINI WHITE PEAK NUM origvu=0 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=2328 fft=2328 draw=242 LOOP_FPS=95 AUDIO_FPS=85 FFT_FPS=85 DRAW_FPS=8 i2sReady=1 fails=0 short=0 rms=555/564 peak=1319/1285 sens=300 dyn=10 fall=40 hi16=250 leveler=1 autotlumik=1 agcGain=152 tlumik=100 agcT=700 agcPeakT=9000 agcMin=5 agcMax=180 atk=500 rel=45 kp=50 ki=2 kd=0 bl=213 vusens=50 vudyn=14 rx=4 cmds=1 last=FPS
    TASKDIAG audioCore=1 drawCore=0 audioStackHW=17228 drawStackHW=14124 loopStackHW=30860 heap=117264 minheap=111888 LOOP_FPS=81 AUDIO_FPS=81 FFT_FPS=81 DRAW_FPS=7 BUILD_US=8535 PUSH_US=98784 FRAME_US=107342 MAX_FRAME_US=203176 SPRITE_FAILS=0 SENT_LINES=1323 SKIP_LINES=336 SENT_L=681 SENT_R=642 SKIP_L=165 SKIP_R=178
    STAB heap=117264 minheap=111888 style=0 STYLEMAP=3 GRADREV=1 name=MINI WHITE PEAK NUM origvu=0 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=2587 fft=2587 draw=269 LOOP_FPS=95 AUDIO_FPS=85 FFT_FPS=85 DRAW_FPS=8 i2sReady=1 fails=0 short=0 rms=325/319 peak=885/949 sens=300 dyn=10 fall=40 hi16=250 leveler=1 autotlumik=1 agcGain=146 tlumik=100 agcT=700 agcPeakT=9000 agcMin=5 agcMax=180 atk=500 rel=45 kp=50 ki=2 kd=0 bl=213 vusens=50 vudyn=14 rx=8 cmds=2 last=FPS
    STAB heap=117264 minheap=111888 style=0 STYLEMAP=3 GRADREV=1 name=MINI WHITE PEAK NUM origvu=0 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=2846 fft=2846 draw=296 LOOP_FPS=95 AUDIO_FPS=86 FFT_FPS=86 DRAW_FPS=8 i2sReady=1 fails=0 short=0 rms=302/238 peak=646/625 sens=300 dyn=10 fall=40 hi16=250 leveler=1 autotlumik=1 agcGain=146 tlumik=100 agcT=700 agcPeakT=9000 agcMin=5 agcMax=180 atk=500 rel=45 kp=50 ki=2 kd=0 bl=213 vusens=50 vudyn=14 rx=8 cmds=2 last=FPS
    STAB heap=117264 minheap=111888 style=0 STYLEMAP=3 GRADREV=1 name=MINI WHITE PEAK NUM origvu=0 altright=0 vugain=58 vucycle=1 testgen=0 tauto=1 tband=0 tdb=0 audio=3105 fft=3105 draw=323 LOOP_FPS=95 AUDIO_FPS=86 FFT_FPS=86 DRAW_FPS=8 i2sReady=1 fails=0 short=0 rms=283/292 peak=781/637 sens=300 dyn=10 fall=40 hi16=250 leveler=1 autotlumik=1 agcGain=163 tlumik=100 agcT=700 agcPeakT=9000 agcMin=5 agcMax=180 atk=500 rel=45 kp=50 ki=2 kd=0 bl=213 vusens=50 vudyn=14 rx=8 cmds=2 last=FPS  



    >>21921522
    It ran at 30 fps on the output; there’s nothing to render there, which is why it runs so high. At 5 fps, the spectrum is full – full peaks, numbers and wider bars.

    Internet radio and audio file player on ESP32-S3

    Internet radio and audio file player on ESP32-S3
    Attachments:
    • WIDMO VU WROOM NV3007 LOVYANGFX.rar (314.62 MB) You must be logged in to download this attachment.
  • Pam8406 pin orientation and board version note

    #2774 21926543
    DJCheester
    Level 28  
    Posts: 2089
    Help: 75
    Rate: 958
    grzes_dst wrote:
    Hello
    I’ve added a PAM8406 amplifier to the PCB for @DJCheester’s project, but unfortunately there’s no sound coming from the speakers.
    The volume is set to halfway; when I turn it up to maximum using the remote, the ESP resets after a short while.
    With the previous version of the PCB, which had a PAM8403 fitted, there were no problems with sound coming from the speakers.
    What could be the problem? I’ve tried two PAM8406 amplifiers:



    Hello everyone, I’ve been away for a bit – the PAM8406 is mounted on the PCB with the pins facing upwards. When buying the module, you need to re-solder the gold pins from the underside, i.e. beneath the PCB, so that when plugged into my radio PCB, the pins are on top.

    Could you take a photo of that PCB with the PAM8406 and add it to the thread? I designed that PCB but haven’t tested it myself.

    I don’t know which board the chap was using; versions 2.3, 3.3, 6.3 and 7.3 are available for the Pam 8406 amplifier.

    The Pam is mounted as shown in the 3D diagram


    3D render of a PCB with ESP32‑S3‑WROOM‑1 module, PAM8406 amplifier, OLED header, and audio RCA outputs


    Best regards...
  • #2775 21928698
    wieslaw6504
    Level 9  
    Posts: 13
    Hello
    Where and on which line do I need to select the display type?

    Arduino IDE screenshot with #define EVO_PANEL_ILI9488 and a compile error asking to select exactly one display panel
  • #2776 21928899
    ejcon
    Level 17  
    Posts: 301
    Help: 3
    Rate: 68
    >>21928698
    Here’s your choice: you can choose the ILI9341 shown in the photo (currently selected) or the ILI9488; the ST7796 also works with this one Code screenshot showing #define EVO_PANEL_ILI9341 selected with TFT settings and Polish comments.
  • #2777 21928905
    wieslaw6504
    Level 9  
    Posts: 13
    I wanted to use SSD1322, but when I select this display, I get this error.
    With others, it compiles fine.
  • ADVERTISEMENT
  • #2778 21928917
    efi222
    Level 22  
    Posts: 779
    Help: 12
    Rate: 1219
    This directive from line 86 is a bit odd.
    After selecting EVO_PANEL_SSD1322 earlier,
    the compiler should stop compiling.
  • #2779 21928930
    ejcon
    Level 17  
    Posts: 301
    Help: 3
    Rate: 68
    This software was tested for TFT screens – NOT OLED. If you have an OLED screen, you’ll need different software; this one probably won’t work.
  • #2780 21928942
    wieslaw6504
    Level 9  
    Posts: 13
    Thanks, otherwise I’d have had a right old struggle.
  • Four-ESP32 I2S audio system with TFT DSP panels

    #2781 21938467
    ejcon
    Level 17  
    Posts: 301
    Help: 3
    Rate: 68
    We’ve finally managed to get the EVO4 MULTI up and running.
    This is what it looks like now. The system consists of 4 ESP32 processors
    1. Evo3 internet radio project with graphics added for the TFT display
    2. A 12-band equaliser with a range of ±16dB
    DSP equaliser as a panel for the TFT display
    3. Spectrum and VU meters
    4. Bluetooth audio transmitter.
    The whole system operates via I2S.


  • #2782 21938600
    sq3evp
    Level 39  
    Posts: 6681
    Help: 224
    Rate: 898
    Nice – just needs a case for it now.
  • #2783 21938699
    DJCheester
    Level 28  
    Posts: 2089
    Help: 75
    Rate: 958
    The combine harvester is top-notch, but I’m sticking with the basic version of the Robgold radio – the only thing I’m missing is the music player function. I’ve also connected the spectrum analyser from effiego222 via a RCA cable, and it looks great.

    Best regards....
  • #2784 21941074
    bolszoy
    Level 11  
    Posts: 64
    Rate: 5
    >>21938699
    Could you give a bit more detail? What software and board (schematic) are you using? I must admit I’ve got a bit lost with all these versions, and I’d actually prefer the basic version. Thank you and best regards.
  • #2785 21941257
    ejcon
    Level 17  
    Posts: 301
    Help: 3
    Rate: 68


    Project diagram
    Internet radio and audio file player on ESP32-S3
    This is what the entire project looks like, with all its functions.
    Internet radio and audio file player on ESP32-S3
  • #2786 21941328
    robgold
    Level 23  
    Posts: 726
    Help: 10
    Rate: 290
    >>21941257 I must have a leak on my computer, since you have the Evo4 version, which I’ve never shared with anyone because it’s still very much in the prototype stage ;)
  • #2787 21941397
    DJCheester
    Level 28  
    Posts: 2089
    Help: 75
    Rate: 958
    Why not skip straight to the Evo5 then? Leave the Evo4 to ejcon 😀 The bloke’s had a right go with just the ESP and LCD 😀.

    Actually, it’s quite possible that a PCB ‘my way’ for ejcon’s Evo4 will be ready this autumn.

    Best regards....
  • #2788 21941430
    ejcon
    Level 17  
    Posts: 301
    Help: 3
    Rate: 68
    >>21941328
    Sorry, but I named it after the database I was using.
    I didn’t change the name because it isn’t entirely my own – just certain parts – and it’s called EVO4 MULTI because of the number of processors; there are 4 ESP32s.
  • #2789 21941662
    efi222
    Level 22  
    Posts: 779
    Help: 12
    Rate: 1219
    >>21941257
    I was inspired by an animated cassette tape. A cool idea...
  • #2790 21941881
    sq3evp
    Level 39  
    Posts: 6681
    Help: 224
    Rate: 898
    efi222 wrote:
    >>21941257
    I was inspired by an animated cassette tape. A cool idea...

    The ‘tape-less project’ has been around for a few years now – an old smartphone acting as a cassette, plugged into a cassette player or deck for old hi-fi systems.
Listen:

Topic summary

LABEL_AI_GENERATED
Discussion of a DIY internet radio and SD-card audio player built on an ESP32-S3 with an OLED display, rotary encoders, buttons, and a front-panel interface. The project uses Wi‑Fi to download station lists from GitHub/public stream databases, supports MP3 and later AAC/FLAC playback, displays metadata including Polish characters via a modified font table, and stores settings such as station/bank selection and volume. The thread covers PCB design in EasyEDA, ESP32-S3 module pin spacing issues, PSRAM and Arduino IDE setup, library compatibility problems, SPI/I2S wiring, SD card reader boot issues, encoder behavior, WiFiManager-based network setup, and troubleshooting of crashes, HTTP download failures, and audio initialization errors. Several improvements were added over time, including station selection by encoder, time sync, browser update support, and saving settings to card memory.
AI summary based on the discussion. May contain errors.
ADVERTISEMENT