Playing around with the ESP32 A1S Module

Поделиться
HTML-код
  • Опубликовано: 11 дек 2024

Комментарии • 70

  • @jeroldponko7168
    @jeroldponko7168 2 года назад +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  2 года назад

      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 2 года назад

      @@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  2 года назад

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

  • @antaf56
    @antaf56 2 года назад

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

    • @na5y
      @na5y  2 года назад

      Thank you very much - glad you enjoyed!

  • @TheEmbeddedHobbyist
    @TheEmbeddedHobbyist 2 года назад

    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  2 года назад

      Ah cool tip TEH - thank you

  • @pauld1988
    @pauld1988 2 года назад

    11:15 that cheeky spider run by :D

  • @curtstacy779
    @curtstacy779 2 года назад

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

    • @na5y
      @na5y  2 года назад +1

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

  • @marek4773
    @marek4773 2 года назад

    Great work and great explanation, thank you for this!

    • @na5y
      @na5y  2 года назад

      Glad you enjoyed. Thank you for the comment

  • @MrNoorino
    @MrNoorino 2 года назад

    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  2 года назад +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 2 года назад

      @@na5y roger that sir ..thank you

  • @gerthalberg9735
    @gerthalberg9735 2 года назад

    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  2 года назад

      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 Год назад

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

  • @Paul_VK3HN
    @Paul_VK3HN 2 года назад

    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  2 года назад

      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 2 года назад

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

  • @RuudJongeling
    @RuudJongeling Год назад

    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  Год назад

      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 Год назад

      @@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  Год назад

      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 Год назад

      @@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  Год назад

      @@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 ;)

  • @NicholasRadina
    @NicholasRadina 2 года назад

    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  2 года назад +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 2 года назад

      @@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  2 года назад

      @@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 2 года назад

      @@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  2 года назад +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.

  • @AndreLuis-od2bg
    @AndreLuis-od2bg 2 года назад

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

    • @na5y
      @na5y  2 года назад

      Indeed - he was a quick mover too!

  • @oasishut3120
    @oasishut3120 Год назад

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

    • @na5y
      @na5y  Год назад

      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/

  • @DanielSMatthews
    @DanielSMatthews 9 месяцев назад

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

    • @olhoTron
      @olhoTron Месяц назад

      Because it is the same

  • @EasyOne
    @EasyOne Год назад

    A spider learns to program 10:59

    • @na5y
      @na5y  Год назад

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

    • @Electronieks
      @Electronieks 4 дня назад

      The spider programed it for the world wide web as webdesigner

  • @pradeepwagre2394
    @pradeepwagre2394 2 года назад

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

    • @na5y
      @na5y  2 года назад

      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 2 года назад

      @@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  2 года назад +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.

  • @sanjikaneki6226
    @sanjikaneki6226 2 года назад

    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  2 года назад

      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 2 года назад

      @@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  2 года назад

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

    • @sanjikaneki6226
      @sanjikaneki6226 2 года назад

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

    • @na5y
      @na5y  2 года назад

      @@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

  • @KennethScharf
    @KennethScharf 2 года назад

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

    • @na5y
      @na5y  2 года назад

      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 2 года назад

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

    • @na5y
      @na5y  2 года назад

      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