Playing around with the ESP32 A1S Module

Sdílet
Vložit
  • čas přidán 20. 08. 2024

Komentáře • 67

  • @antaf56
    @antaf56 Před 2 lety

    Hi, welcome back. Very interesting video. Thanks for introducing the ES32-A1S. Looking forward to watch and learn from you.

    • @na5y
      @na5y  Před 2 lety

      Thank you very much - glad you enjoyed!

  • @jeroldponko7168
    @jeroldponko7168 Před 2 lety +1

    Hello Ian, good to see you're back. I found that AI Thinker has a Github repository for the Ai-Thinker ESP32-Audio-Kit board with info on setting up the Espressif Idf/adf. They also mention that they halted production with the AC101 and that the es8388 is its replacement. The driver for the AC101 can be found there. The Ai-Thinker ESP32-Audio-Kit board has micro USB, headphone jacks, etc and of course the ESP32-A1S module. It's priced around $15. I like the simpler ESP32-A1S myself.
    Thanks for the good video
    Jerry, AC9NM

    • @na5y
      @na5y  Před 2 lety

      Hi Jerry - thank you for the comment. I did wonder about the AC101 and whether that was an earlier or later generation of the board. I did see the audio kit board but only *after* I purchased the modules ;) . I am glad I did do the modules though as it gave me a chance to set up a circuit for a bare bones module, which I hadn't done before.
      Hope to get around to doing a followup video soon - there's so much non-fun related things to do in the new place though! I have to now learn how to use a chainsaw for one!

    • @jeroldponko7168
      @jeroldponko7168 Před 2 lety

      @@na5y According to the AI Thinker spec sheet, the first version 2.2 was Nov 2019 and the current version 2.3 was June 2021. There may have been a out earlier module by someone else in 2017. How did you find out about the ESP32-A1S module?

    • @na5y
      @na5y  Před 2 lety

      @@jeroldponko7168 Andreas Speiss told me about the module. Is the documentation you are referring to above on their github repo? I could only find a few incorrect and incomplete docs.

  • @pauld1988
    @pauld1988 Před rokem

    11:15 that cheeky spider run by :D

  • @TheEmbeddedHobbyist
    @TheEmbeddedHobbyist Před 2 lety

    A tip for the hookup wire is ti strip a little bit of insulation off, tin the wires and let the insulation shrink back. Now cut the tinned wire shorter, now when you solder it the insulation should not shrink back much more.

    • @na5y
      @na5y  Před 2 lety

      Ah cool tip TEH - thank you

  • @curtstacy779
    @curtstacy779 Před 2 lety

    Hey, Good to see you. Hope your move went well!

    • @na5y
      @na5y  Před 2 lety +1

      Thank you Curt. Move went pretty well although there's still boxes everywhere ;)

  • @marek4773
    @marek4773 Před rokem

    Great work and great explanation, thank you for this!

    • @na5y
      @na5y  Před rokem

      Glad you enjoyed. Thank you for the comment

  • @DanielSMatthews
    @DanielSMatthews Před 5 měsíci

    That looks like the same module in the *Jessinie ESP32-Audio-Kit*

  • @EasyOne
    @EasyOne Před rokem

    A spider learns to program 10:59

    • @na5y
      @na5y  Před rokem

      Indeed - he helped my correct some of my wiring mistakes too ;)

  • @AndreLuis-od2bg
    @AndreLuis-od2bg Před 2 lety

    the litle spider on the green jack 🤣🤣🤣🤣🤣🤣🤣

    • @na5y
      @na5y  Před 2 lety

      Indeed - he was a quick mover too!

  • @gerthalberg9735
    @gerthalberg9735 Před 2 lety

    I have some audiokit boards that are a little earlier. One of them is with the AC101 and the rest are with the ES8388. The 8388 batch has a pinout that differs from yours. They are BCLK GPIO05 and SDA, SCL 18 and 23 -which unfortunately renders a lot of the available pins on the board un-usable. It's a shame, that AI Thinker opted to change the AC101 to the ES8388 - The WM8978 would have been a better match since it should be pin-compatible with the AC101.

    • @na5y
      @na5y  Před 2 lety

      I agree - its strange some of the decisions made by the module makers on which pins to expose (or not expose). I wish they had this module with a header pin layout. Thank you for the comment!

    • @ElectronicSupersonic
      @ElectronicSupersonic Před 9 měsíci

      Us too, from the outside they look the same, under the can the layout differs around the es8388

  • @Paul_VK3HN
    @Paul_VK3HN Před rokem

    Interesting work, thanks. What do you think the top frequency would be? I'm also wondering if you could sample audio on an input to amplitude modulate a carrier, for a basic AM signal generator. Just a thought.

    • @na5y
      @na5y  Před rokem

      Hi Paul. You mean the top sampling frequency? I believe for that codec its 96KHz. You start to run out of uController horsepower at that sampling frequency for any DSP though. I am not sure I understand your second question. Do you mean could this setup output an amplitude modulated signal? If so then no - unless the carrier was < 96KHz

    • @Paul_VK3HN
      @Paul_VK3HN Před rokem

      @@na5y Yes to both, I was wondering how well it would generate an AM signal using a line audio drive, modulating the generated carrier. Maybe a concept to be tried, not very useful though.

  • @MrNoorino
    @MrNoorino Před 2 lety

    Can you give us an example of implementing the Equalizer feature on registers 30 to 37 on the ES8388, thank you, best regards

    • @na5y
      @na5y  Před 2 lety +1

      I'll have a look at that Noor. Not a lot of documentation in the manual on the shelving filters as they are referred to. Stay tuned

    • @MrNoorino
      @MrNoorino Před 2 lety

      @@na5y roger that sir ..thank you

  • @NicholasRadina
    @NicholasRadina Před rokem

    Another great overview. Curious if you have been able to change the line in input gain. Using the AudioKit board I’m only able to use 100mV input signal before clipping the input stage.

    • @na5y
      @na5y  Před rokem +1

      Thank you Nicholas. I have definitely been able to change the line in gain. I assume the AudioKit has this right but I know I had problems on linein without a decoupling cap on input.

    • @NicholasRadina
      @NicholasRadina Před rokem

      @@na5y Thank you! Are you able to share how you were able to adjust this parameter? I'm new to the A1s module and unsure how to alter the register, driver, etc...

    • @na5y
      @na5y  Před rokem

      @@NicholasRadina Sorry - I should have added that shouldn't I ;)
      Look at page 17 of this document
      datasheet.lcsc.com/szlcsc/1901241705_Everest-Semiconductor-ES8388_C365736.pdf
      6.2.1 Register 9 - ADC Control 1, Default 0000 0000
      MicAmpL 7:4 Left channel PGA gain
      0000 - 0 dB (default)
      0001 - +3 dB
      0010 - +6 dB
      0011 - +9 dB
      0100 - +12 dB
      0101 - +15 dB
      0110 - +18 dB
      0111 - +21 dB
      1000 - +24 dB
      MicAmpR 3:0 Right channel PGA gain
      0000 - 0dB (default)
      0001 - +3 dB
      0010 - +6 dB
      0011 - +9 dB
      0100 - +12 dB
      0101 - +15 dB
      0110 - +18 dB
      0111 - +21 dB
      1000 - +24 dB
      That register sets the gain for left and right input channel. In my code
      github.com/thaaraak/es8388/blob/master/src/es8388.cpp
      on line 107 I set this to 0x11 which (if my understanding is correct) is +3dB left/right. Perhaps the code you are using has this set higher? I hope this helps.

    • @NicholasRadina
      @NicholasRadina Před rokem

      @@na5y Thank you! I'll give this a try! Do you know if the "audio kit" board is compatible with your code? I know there are many "challenges" with these boards and types.

    • @na5y
      @na5y  Před rokem +1

      @@NicholasRadina The audio kit you are referring to is it this one:
      www.aliexpress.us/item/3256801551918625.html?spm=a2g0o.productlist.0.0.16c73b80CBztxB&algo_pvid=e8f7f906-c92e-4b08-99be-fdc37b3e7b8f&algo_exp_id=e8f7f906-c92e-4b08-99be-fdc37b3e7b8f-1&pdp_ext_f=%7B%22sku_id%22%3A%2212000017401423541%22%7D&pdp_npi=2%40dis%21USD%2120.2%2120.2%21%21%21%21%21%402101e9ce16710440935511388e9310%2112000017401423541%21sea&curPageLogUid=qhg94DMf4KMq
      I haven't played around with it myself. Do you know for sure it is using an ES8388 codec? If so then it should run fine with my code. Some earlier ESP32-A1S varieties use the AC101 codec which is definitely not compatible with my code.

  • @KennethScharf
    @KennethScharf Před rokem

    Your link to alieexpress is for the WRONG version of the ESP32-A1S (wrong codec)

    • @na5y
      @na5y  Před rokem

      I just checked and that is the version that I purchased and the one I am using (the ES8388 version). What do you mean by wrong?

    • @KennethScharf
      @KennethScharf Před rokem

      @@na5y The photo in the alieexpress page is that of the one shown for the other codec. (antenna and coax jack)

    • @na5y
      @na5y  Před rokem

      I actually just ordered some more from that link the other day. I'll certainly post a correction if I get the older AC101 codec

  • @oasishut3120
    @oasishut3120 Před rokem

    All i get here is ac101...is there any code for ac101 audio chup. Thanks

    • @na5y
      @na5y  Před rokem

      Not that I am aware. I haven't even seen a good programmer's guide for the AC101. If all you can get is the AC101 I would recommend buying a standard ESP32 and using something like the PCBArtists board: pcbartists.com/es8388/

  • @RuudJongeling
    @RuudJongeling Před rokem

    A question. I looked at your video several times and I tried to program the ESP32-A1S (2974) like you do. I use the streams-generator to check the output but no signal on the oscilloscoop. , Not on HP and not on SP. The I2S is the same as your setting and the datasheet of the ESP32A1S (WS 25; bck 27; data 26; data_rx 35 mclk 0). Are there known problems with the ESP32-A1S?

    • @na5y
      @na5y  Před rokem

      Ruud, I have had a few people ping me on problems replicating this on ESP-32 A1S modules and I am not really sure what is going on. I have a few theories though:
      1) There are a number of different versions of the ESP32 A1S - some which use the AC101 codec. The AC101 is completely incompatible with the ES8388. Unfortunately there's no easy way to tell which version you have
      2) There are others which use different internal pins for the I2C connection to the ES8388 module. Have a look at the schematic in the doc you'll see that
      Upshot is some have had troubles getting it to work and I am a bit stumped

    • @RuudJongeling
      @RuudJongeling Před rokem

      @@na5y Hi Paul. Thanks for your answer. I am sure it is a ES8388, I took the can of like you did in your video. I checked the generatorstream and it works good with the output to Serial but it can not be send tot the ES8388. I use Arduino IDE and core: AI Thinker ESP32-CAM. I am afraid that the internal connection is different from the schematic in the documentation so I ordered new ESP32-A1S by a different supplier. I let you know if I have found a solution but I am not sure I am gonna find it.

    • @na5y
      @na5y  Před rokem

      One thing to check Ruud is what I2C pins you are using to talk to ES8388. This document on page 15
      docs.ai-thinker.com/_media/esp32-a1s_v2.3_specification.pdf
      Has two different versions one with SCL, SDA on 23 and 18 (over to the left)
      The other has SCL and SDA being 32K_XP, 32K_XN (which resolves to pins 32 and 33)
      I used 32 and 33 for SCL, SDA which worked - I think someone mentioned he had a version which worked on 23, 18
      Let me know how you go

    • @RuudJongeling
      @RuudJongeling Před rokem

      @@na5y Hi Paul, Thanks for your answer. Unfortunately the change of the GPIO for I2C didn't change the output. When I have success I let you know but I am afraid that it is a difficult problem.
      73 Ruud

    • @na5y
      @na5y  Před rokem

      @@RuudJongeling That's a shame - let me know if you crack the problem. Like I said there's a few people with this problem. Oh and its Ian BTW not Paul ;)

  • @sanjikaneki6226
    @sanjikaneki6226 Před rokem

    is the ESP32 radio series where u use the IDF for the first time?
    also whom where did u learn how to use it? trial and error?

    • @na5y
      @na5y  Před rokem

      My first experience with the ESP-IDF was just playing around with the examples that come with the toolkit (led blink, simple I2C, etc). I would strongly recommend if you want to learn to install eclipse and the ESP-IDF plugin. Makes things a whole lot easier IMO. Check out this link to get yourself started
      docs.espressif.com/projects/esp-idf/en/stable/esp32/get-started/index.html

    • @sanjikaneki6226
      @sanjikaneki6226 Před rokem

      @@na5y thx i am already doing that but i thought u knew something better BTW when it comes to different ICs how do you write the driver files? or rather is there some template?

    • @na5y
      @na5y  Před rokem

      @@sanjikaneki6226 You mean for example a driver for I2C or are you referring to, say, a driver file for an OLED display?

    • @sanjikaneki6226
      @sanjikaneki6226 Před rokem

      @@na5y yes as in an I2C/S driver for a chip in my case both since i have a audio ADC

    • @na5y
      @na5y  Před rokem

      @@sanjikaneki6226 Typically for core peripherals the manufacturer provides software tooling for that. STM has HAL, ESP32 has ESP-IDF. If you *really* want to write your own driver for, say, I2C you'd read the the reference manual
      www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf
      look at page 278 - that specifies how you control the registers on the device to perform I2C.
      Like I said though - unless there is some compelling reason just use the I2C driver provided in ESP-IDF

  • @pradeepwagre2394
    @pradeepwagre2394 Před 2 lety

    Is there any video tutorial to set up eclipse for esp32-A1S,I am using esp32 audio kit v2.2

    • @na5y
      @na5y  Před 2 lety

      Hi Pradeep, no video that I am aware of. I just followed the instructions on the Espressif site here:
      github.com/espressif/idf-eclipse-plugin
      Is there something in particular you are having a problem with during setup? It is a bit fiddly

    • @pradeepwagre2394
      @pradeepwagre2394 Před 2 lety

      @@na5y I went through above link, its for adding esp-idf libraries but for esp32-A1s we need esp-adf. There is no tutorial for it. And I am facing compilation issues while adding esp-adf.

    • @na5y
      @na5y  Před 2 lety +1

      @@pradeepwagre2394 A few things to check.
      Does an ADF example project compile from the command line? If not use version 4.4 of the **IDF** - last I looked the latest version of the IDF didn't work with the ADF (I am using 4.4 of the IDF)
      If it compiles from the command line then check out my CMakelists.txt
      github.com/thaaraak/ESP32-IQ/blob/main/CMakeLists.txt
      The ADF_PATH doesn't seem to work also - you have to just use a relative path.
      Also shoot over your compile log to me at my email address in the channel "About" - I'll take a look and see if there's anything obvious.