ESP32 Audio Processing with PCB Artists ES8388

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 ก.ย. 2024

ความคิดเห็น • 37

  • @EricFontaineJazz
    @EricFontaineJazz 2 ปีที่แล้ว +2

    This video is much appreciated...I never heard of the "pcbartist" seller and didn't know the quality of the board so I was a little hesitant in ordering...thanks for providing such a detailed video!

    • @na5y
      @na5y  2 ปีที่แล้ว

      Thank you for the comment Eric - glad you enjoyed. It was fun playing around with those boards

  • @TheEmbeddedHobbyist
    @TheEmbeddedHobbyist 3 ปีที่แล้ว +1

    Nice little chip, might have to get one to have a play with. but currently trying to get my head around ESP8266 RTOS SDK which is proving fun.

    • @na5y
      @na5y  3 ปีที่แล้ว

      I keep meaning to learn a little more about FreeRTOS. ESP-ADF makes heavy (and effective) use of it. Thank you for the comment!

  • @haguirrebena
    @haguirrebena 6 หลายเดือนก่อน

    Hi, I've been developing a dsp board with the cs5343 and cs4344 (same as i2smod) and I've come to the conclusion that they are introducing some HF noise in the audio, which honestly is quite noticeable when processing and amplifying guitar
    Have you noticed or measured any improvement in audio quality when using the ES8388? I'm considering switching to it for many reasons

  • @TheOleHermit
    @TheOleHermit 2 ปีที่แล้ว +1

    Thank you for pointing my nose here, Mate. This info fills in some of my I2C knowledge gaps for my laser controller project. Gotta love the wiffy (ref: MickMake) enabled ESP32 for maker projects. 😎

    • @na5y
      @na5y  2 ปีที่แล้ว

      Glad to be of help! and I have never heard anyone pronounce it wiffy ;) I do like the ESP32 though!

    • @TheOleHermit
      @TheOleHermit 2 ปีที่แล้ว

      @@na5y MickMake was a very popular YT tech channel from down under. wiffy was his ongoing joke. Surprised you're not familiar with his channel. Judging from your accent (?), I figured you were good mates.
      MickMake stopped producing his videos just over a year ago. I think he got fed up with the online negative discourse, so he took his 'ball' away.
      Looks like your channel might be a great alternative. I'll be watching.
      Happy New Year. 😎

    • @na5y
      @na5y  2 ปีที่แล้ว

      @@TheOleHermit Ah I see. I've lived over in the States now for 25 years. Have a very happy new year to you too!

    • @TheOleHermit
      @TheOleHermit 2 ปีที่แล้ว

      @@na5y In that case, I'm obviously suffering from foot in mouth disease.🤦‍♂️

    • @na5y
      @na5y  2 ปีที่แล้ว +1

      @@TheOleHermit Hehe not at all ;)

  • @AZ-th3np
    @AZ-th3np 2 ปีที่แล้ว

    Very interesting video! I see that in the FIR example you are using the same I2S channel for both ADC and DAC, but according to the official Espressif documentation each I2S controller can only work in half-duplex mode, and they suggest to use 2 controllers for full-duplex operation (which would be impossible with the ES8388 since you don't have separate clock pins). I am developing a project with the ESP32 + ES8388 which needs full-duplex operation and I was afraid that it could not work, but your video proves the opposite, how do you explain it?

    • @na5y
      @na5y  2 ปีที่แล้ว +1

      Thats an interesting question. For others looking for the reference above that says you can only operate in half-duplex see here
      docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/i2s.html
      However I don't think that is correct as ESP's own examples in the audio toolkit show a device configured to do both audio transmit *and* receive. See here line 65
      github.com/espressif/esp-adf/blob/master/components/audio_stream/include/i2s_stream.h
      I am wondering though if the "full duplex" being referred to above is not audio receive and transmit but rather having two master I2S controllers (i.e. one master in the E2S and a separate master in an external peripheral).
      Here's a forum post which alludes to the "two masters"
      esp32.com/viewtopic.php?t=17373&start=10#p77830

    • @AZ-th3np
      @AZ-th3np 2 ปีที่แล้ว

      @@na5y Thank you! This is important because otherwise I should have looked for workarounds

  • @arduinoguru7233
    @arduinoguru7233 ปีที่แล้ว

    What codec does it uses?

    • @na5y
      @na5y  ปีที่แล้ว

      The codec is the ES8388
      www.everest-semi.com/pdf/ES8388%20DS.pdf

    • @arduinoguru7233
      @arduinoguru7233 ปีที่แล้ว

      @@na5y I read that datasheet it's codec were not specified, but I guess it's simple linear PCM.

    • @na5y
      @na5y  ปีที่แล้ว

      @@arduinoguru7233 Ah you wanted to know what it was using internally. I don't know unfortunately

  • @jeroldponko7168
    @jeroldponko7168 3 ปีที่แล้ว

    Will your code work with the esp32 lyraT board? I noticed in one of your videos that you have one.
    When I first tried using the esp-idf/adf a couple of years ago, they didn't have a DSP library and many of Espressif's own example programs worked poorly if at all. One thing I discovered about the esp32s was that power management was on by default. That meant that the WiFi would only communicate with my router up to 10 feet away. There was a simple line of code to disable the power management. At the moment, I don't recall what it was. The esp8266 seemed better at WiFI. I could easily get 200 feet from the router.
    The PCB Artists board looks nice. The only problem is that the shipping is more than the cost of the board itself.
    AC9NM

    • @na5y
      @na5y  3 ปีที่แล้ว

      Hi Jerold. Its funny you mention the Lyra board. After I did the video I thought I'd try getting it working with the Lyra board. The code worked but for some reason the output on the left output channel was significantly weaker than the right (which is a big problem for using it as a phase shifter in an SSB radio)
      I tried fiddling around with a few settings but I couldn't make the problem go away. There was also a pile of high frequency noise on the output too. I have used the Lyra for other things so I am pretty sure the board is OK. I will keep you posted if I have any success. One of the differences with the Lyra board is that there is an audio amp connected directly to LOUT/ROUT 1/2 - perhaps that is causing the problem. Not sure really - its supposed to be disabled if it detects the headphone connected I had thought
      The shipping charge is a bit of a pain - I hope he gets his boards on tindie or somewhere like that. For what I was looking for it was perfect though. Thank you for the comment.

    • @jeroldponko7168
      @jeroldponko7168 3 ปีที่แล้ว

      @@na5y
      Hi Ian,
      I got your code working on the LyraT board. Originally, I was having trouble getting the AUX in to work. I set the audio output level to the max. With 50mv in there's 1.8V p-p output to the scope. Output from both channels were the same. In X-Y mode the results were the same as yours. Here is the modification I made to passthru.c (between TAG1 and TAG2:
      ESP_LOGI(TAG, "[ 1 ] Start codec chip");
      /////// Added code to work with LyraT board - J Ponko
      audio_hal_codec_config_t audio_hal_codec_cfg = AUDIO_CODEC_DEFAULT_CONFIG();
      audio_hal_codec_cfg.adc_input = AUDIO_HAL_ADC_INPUT_LINE2; // Aux input
      audio_hal_codec_cfg.i2s_iface.samples = AUDIO_HAL_48K_SAMPLES; // here put your sampling mode
      audio_hal_handle_t hal = audio_hal_init(&audio_hal_codec_cfg, &AUDIO_CODEC_ES8388_DEFAULT_HANDLE);
      audio_hal_ctrl_codec(hal, AUDIO_HAL_CODEC_MODE_BOTH, AUDIO_HAL_CTRL_START);
      //level 0-100
      audio_hal_set_volume(hal, 100);
      ///////
      ESP_LOGI(TAG, "[ 2 ] Create audio pipeline for playback");

    • @na5y
      @na5y  3 ปีที่แล้ว

      @@jeroldponko7168 Awesome - I always like it when someone else gets my code working. Was it the audio_hal_set_volume() that was the key? I remember having some problems with that myself

    • @jeroldponko7168
      @jeroldponko7168 3 ปีที่แล้ว

      @@na5y
      No, the other code. When I first tried it, only the mike input worked but I did notice the output levels weren't equal. I may add the code to use the touch pads to control the output level just to see how balanced the levels are when changed over the 0-100 range. Are you using 48k samples or something else? I can't remember.

    • @na5y
      @na5y  3 ปีที่แล้ว

      @@jeroldponko7168 Ah got it - I misread your comment

  • @nateeyoutube9
    @nateeyoutube9 ปีที่แล้ว

    Hello Now your code doesn't work.
    An error occurred here.
    PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO0_U, FUNC_GPIO0_CLK_OUT1);
    WRITE_PERI_REG(PIN_CTRL, 0xFFF0);
    Not sure what going on maybe about esp- idf version. i used ESP-IDF 5.0.

    • @na5y
      @na5y  ปีที่แล้ว +1

      I haven't updated the code for 5.0. I will get around to that eventually... Can you try IDF 4.3? It should work on that version.