456 Hassle-Free ESP32 USB (ESP32-C3, ESP32-S2, ESP32-S3)

Поділитися
Вставка
  • Опубліковано 28 гру 2024

КОМЕНТАРІ • 410

  • @funkymonk2254
    @funkymonk2254 Рік тому +18

    I have not said it before Andreas, but I look forward to : the Swiss accent, The little hand pointer, The hat and the knowledge You share. ThankYou Sir.

  • @emiljagnic
    @emiljagnic 9 місяців тому +2

    Man, I love your existence Andreas. You have no idea how much you can help an undergrad mechatronics student understanding these electronic specifics for embedded development. One day I wish to be like you. Have so much knowledge in all the electronics areas of expertise.

    • @AndreasSpiess
      @AndreasSpiess  9 місяців тому +2

      Keep learning and you will become better than me ;-)

  • @chipko
    @chipko Рік тому +16

    What a fantastic video! I've had some frustration with the basics on the S3 boards and whilst I don't have as many now, you have just answered many questions I had!

  • @daveb7999
    @daveb7999 4 місяці тому +1

    Your measured and clear descriptions make learning this much easier. Thank you for another useful lesson, it's appreciated!👍

  • @cheaterman49
    @cheaterman49 Рік тому +12

    Can't wait to see your JTAG video :-) I've always been intrigued by it, I always thought it was some sort of standard programming port (as it seemed to me that's what it's mostly used for), but can't wait to hear you go into the details :-)

    • @AndreasSpiess
      @AndreasSpiess  Рік тому +3

      I already made a debugging video for PlatformIO…

    • @cheaterman49
      @cheaterman49 Рік тому

      ​@@AndreasSpiess Oh wow, if you mean #264 and #274 I haven't watched them, thanks for the info!

  • @gabest4
    @gabest4 Рік тому +23

    It not only can act as a storage device, but it is possible to programatically service block reads and writes. In theory, one can proxy it over the network into a file on some server for infinite space.

    • @cookinsteve9281
      @cookinsteve9281 Рік тому +4

      Would you like to provide a demonstration

    • @AndreasSpiess
      @AndreasSpiess  Рік тому +8

      I second that wish.

    • @gabest4
      @gabest4 Рік тому +1

      Anything I reply is getting auto-removed for some reason...

    • @AndreasSpiess
      @AndreasSpiess  Рік тому

      @@gabest4 UA-cam does not allow links anymore. Maybe you can post it that it does not look like a link to UA-cam but we will find it.

    • @justanothercomment416
      @justanothercomment416 Рік тому

      @@gabest4 Yatub sin sours more than any other site. Especially if it's socially important.

  • @brendanm720
    @brendanm720 Рік тому +1

    I knew about half of these -- thanks for the comprehensive examination. One of the things I learned was that the C3 had the CDC Mode -- I was, for some reason, thinking that it did not have any integrated USB functionality at all.

    • @AndreasSpiess
      @AndreasSpiess  Рік тому +3

      These usb functions were not well communicated, I think.

    • @gavincurtis
      @gavincurtis Рік тому

      Nothing about the ESP32 is communicated well. Horrible reference materials and tools.

    • @AndreasSpiess
      @AndreasSpiess  Рік тому

      @@gavincurtisI do not agree. The datasheet has a lot of info. And Google knows even more because the chip is widely used.

  • @FoxedWorks
    @FoxedWorks Рік тому +1

    GPIO0 the most important GPIO there is, hours of frustration can be solved by this pin! Thank you as always nice clear and to the point.

  • @ethzero
    @ethzero Рік тому +2

    Thank you for confirming USB Host mode is not currently present. That was a real head-scratcher when I bought a couple of these a month ago and had to abandon a project.
    Would have been great to have had this functionality from day 1, but glad I didn't waste my money, cheers!

    • @AndreasSpiess
      @AndreasSpiess  Рік тому +1

      It should be supported in one of the next releases…

    • @conorstewart2214
      @conorstewart2214 Рік тому +1

      It works in esp-idf, which is generally a much better way of using them anyway. ESP-idf even has the option to include arduino as a component so you can write code for it just as you would using the arduino ide but with the possibility of using esp-idf specific features too.

    • @ethzero
      @ethzero Рік тому +1

      ​@@conorstewart2214 I tried using the ESP-IDF+VScode for the first time. It went reasonably smoothly but for the life of me I could get the "hid_example.c" to recognise when I inserted a USB device into either a female USB-A or USB-B micro breakout board.
      Would love a video from Andreas to demystify this specific setup! ♥️
      PS: I'd spotted the "Arduino.h" include before but didn't realise if was for people using the ESP-IDF, interesting!

    •  2 дні тому

      @@AndreasSpiess
      I've dug deep... - but didn't succeed in sending e.g. {0x77, 0xaa, 0x77} from my esp32-s3-zero to another USB device via standard USC C cable.
      I have connected the 5V to the esp32-s3-zero - which also supplements the USB device - without any problems.
      Before I shelve the whole project...
      Do you have an example code I can use for the Arduino IDE to make this work?
      And what settings do I need to have in the Arduino IDE?

    • @AndreasSpiess
      @AndreasSpiess  2 дні тому

      As I wrote, USB host is not supported. For all other modes, you find example files in the Arduino IDE if you chose the S3 board

  • @arp_catchall
    @arp_catchall Рік тому +3

    Thanks for the video. Please make more about esp32 features and such, especially the esp32-s3. What I love about your videos is the originality. Seems most utubers just copy one another... Waiting on your debug video mentioned here.

    • @AndreasSpiess
      @AndreasSpiess  Рік тому +1

      The debug video will come after my summer break…

    • @gavincurtis
      @gavincurtis Рік тому

      Would you please make a video of the S3 showing what pins are optimized for:
      I2C, SPI and I2S?

    • @AndreasSpiess
      @AndreasSpiess  Рік тому

      @@gavincurtis You should find this info in the datasheet. There are no "optimized", just possible pins

    • @gavincurtis
      @gavincurtis Рік тому

      @@AndreasSpiess Thank you for the replies. So if I understand correctly, the high speed ports can now be switched to any pins using the I/O Matrix with the ESP32 S3 without issue?
      I have a product design working great with the original ESP32 WROOM. MicroSD, SPI, I2S and I2C features are all being used.
      The ESP32 WROOM we are using is now obsolete. So changing gear to update to ESP32 S3.
      It also appears the serial loader bootstrap pins IO_0 and IO_2 have changed to IO_0 and IO_46 as well?
      Again,
      Thank you for your help.

  • @ikkentim
    @ikkentim 2 місяці тому

    I couldn't find any concise info on ESP32-S3 and this helped me a lot, thanks!

  • @Curt-0001
    @Curt-0001 2 місяці тому

    Thanks! This was the final step in my prototype mini ffb wheel. I've got the device recognized as a 1 axis 0 button joystick and the rotary encoder drives the axis input.
    As a tinkerer only, MAGIC.

    • @AndreasSpiess
      @AndreasSpiess  2 місяці тому

      Fantastic! It is always rewarding if it works.

    • @Bondarev-Y
      @Bondarev-Y 2 місяці тому

      Вы делали какую нибудь инструкцию? хотелось бы посмотреть, как вы это реализовали

    • @Curt-0001
      @Curt-0001 2 місяці тому

      @@Bondarev-Y Sorry not yet. I have run into problems with Windows drivers. It is very hard to get Windows to recognize a device as force feedback capable. I've tried hundreds of attempts but Windows doesn't play nice. If you are okay with only one way communications so that is the ESP32 acts as a controller, it is easy. For the ESP32 to be controlled by built in Windows drivers much harder. For now I have just simply recreated this design with 1 rotary encoder and 2 potentiometers. Soon I will add more controls. ua-cam.com/video/7g6O4G1OXd4/v-deo.htmlsi=ztOf1aowJ5kJ0riX
      --------
      @Bondarev-Y К сожалению, пока нет. Я столкнулся с проблемами с драйверами Windows. Очень сложно заставить Windows распознать устройство как поддерживающее обратную связь. Я пробовал сотни раз, но Windows не идет навстречу. Если вам достаточно односторонней связи, где ESP32 выступает как контроллер, это легко. Но сделать так, чтобы ESP32 управлялся встроенными драйверами Windows, значительно сложнее. На данный момент я просто воссоздал эту конструкцию с одним энкодером и двумя потенциометрами. Вскоре добавлю больше элементов управления. ua-cam.com/video/7g6O4G1OXd4/v-deo.htmlsi=ztOf1aowJ5kJ0riX

    • @Bondarev-Y
      @Bondarev-Y 2 місяці тому

      @@Curt-0001 There is an OpenFFB project, in it someone set up S2 and S3 for feedback. Perhaps this can help you

  • @Zhaymoor
    @Zhaymoor Рік тому

    Just a notation for everyone trying, for the first time the CDC On boot mode isn't enabled by default; so it must be enabled and any sketch should be uploaded over Serial then after that you will be able to upload over USB.
    Thank you for the amazing video Andreas

  • @mindshelfpro
    @mindshelfpro Рік тому +2

    Awesome video. Nice explanations. If I had known a few months ago I would have skipped WROOM-32 and got -S3 modules

    • @AndreasSpiess
      @AndreasSpiess  Рік тому

      They will be around for some time, I think…

  • @imoverclocked
    @imoverclocked Рік тому

    Thank you for this video! I have been banging my head against the wall with an S2-mini board just to get serial print statements. The newer Arduino IDE and the "USB CDC on boot" parameter was the final hint that I needed.

  • @markuszingg3131
    @markuszingg3131 Рік тому +7

    Looking foreward to your hopefully next video on the JTAG aspect. Would be nice if real HW debugging would finally be possible!🎉

    • @AndreasSpiess
      @AndreasSpiess  Рік тому +3

      I also hope it will work as promised…

    • @ficeto
      @ficeto Рік тому

      @@AndreasSpiess there is nothing promised and there are some nuances between the chips 😁 you will probably catch some of them while preparing the video. Work on openocd and dbg for newer chips is still ongoing, so expect things to get much better in the future.

  • @danielsnyder6900
    @danielsnyder6900 8 місяців тому

    A bit late watching this tutorial. Thank you, this is an excellent discussion of a topic not well covered in other videos.

  • @bakercxj
    @bakercxj 3 місяці тому

    I couldn't get Serial.print() to work with my Lolin S3 Pro. I could program it, but just couldn't print to the serial monitor. After watching this video, I learned about CDC mode and by changing the "USB CDC on Boot:" to "Enabled", its all working!!!
    Also, in the Arduino IDE, I couldn't get the "ESP32S3 Dev Module" board to work, but selecting the "Lolin S3 Pro" board worked just fine. There are obviously some differences between the two.
    My next step is to get PlatformIO installed and use it as my primary IDE for projects. I've used it in the past, but need to install it on my new Linux machine. I like the Arduino IDE for simple projects, but like PlatformIO better due to its better layout and functionality. But its a bit more difficult getting started.
    Thank you for your hard work making such videos!! 😃😃😃

    • @AndreasSpiess
      @AndreasSpiess  3 місяці тому

      I am sure you will enjoy PlatfgormIO. The -S3 should behave very similar there.

  • @ikaruseml
    @ikaruseml 11 місяців тому

    Thank you man with Swiss accent, what you explained solved many problems in my mind.

  • @simolx
    @simolx 4 місяці тому

    It's amazing how your videos have solved so many of my problems, Thank you Andreas

  • @madwilliamflint
    @madwilliamflint Рік тому

    Great video, thank you. I'm only scratching the surface of ESP32 work, coming from the software world. So this went a little over my head. But I think I can see all kinds of fascinating possibilities.

    • @AndreasSpiess
      @AndreasSpiess  Рік тому

      You are welcome! For starters, an "old" ESP32 is probably best.

    • @madwilliamflint
      @madwilliamflint Рік тому

      @@AndreasSpiess How would I identify an old one? Pre S3?

    • @AndreasSpiess
      @AndreasSpiess  Рік тому

      @@madwilliamflint The one without any -xx

  • @BennyShani-hw9vk
    @BennyShani-hw9vk Рік тому

    Thanks!

  • @drstefankrank
    @drstefankrank Рік тому +2

    I used the S3 chip in a window sensor design using a USB-C port for programming. So much more convenient than hooking up RS232, especially when they are already glued to the window frame.

    • @AndreasSpiess
      @AndreasSpiess  Рік тому +1

      Thank you for sharing your experience!

    • @danielliden600
      @danielliden600 Рік тому

      Hello! I am making a ESP32-S3 custom PCB. I want USB-C programming, can I just connect it to D+ and D- and then I can just program it, or is there anything else I need to think about in my design?

    • @drstefankrank
      @drstefankrank Рік тому +1

      @@danielliden600 Take care of the correct CC1 and CC2 Resistors. Because the plug fits in both orientations, you need to bridge the pins for both sides on your pcb.
      Think about power. USB can deliver your 5V, but you have to step it down or use an external source. For my application I rely on the battery for power and use only D+ and D-, but I have CC1 and CC2 designed to put resistors to ground. Not sure if I do this right, but at least it works for me.
      Further I added pin headers for the old RS232 on the board as well as BOOT and EN buttons to be on the safe side, in case USB does not behave.

    • @danielliden600
      @danielliden600 Рік тому

      @@drstefankrank Thanks for response! From what I understand the ESP is 3.3V board, but the D- D+ is 5V. Do you have yo regulate it down to 3.3V before going to the ESP or is it safe to go directly to ESP?

    • @drstefankrank
      @drstefankrank Рік тому

      @@danielliden600 The D- and D+ can be directly attached. Just the power that is delivered through USB is 5V and has to be stepped down to power the ESP if not powered differently.
      I use a LiFePo4 to power it and for the one time programming I can use this or I use an external 3.3V supply while having it on the bench.

  • @TYGAMatt
    @TYGAMatt Рік тому +3

    As mentioned in the comments, MCPWM using the Arduino IDE would be a cool video.
    Another idea is the pulse counter, as that isn't simply available in the Arduino IDE but would be very useful.
    Something to work on during your summer break! 😊

    • @VolkerHett
      @VolkerHett Рік тому +1

      Yes! Pulsecounter please! I'm totally lost at the moment building something to print out the error code from my Motoronic 2.2 in a old BMW R1100r.

  • @rdustinlane
    @rdustinlane Рік тому +1

    Thank you for the very informative video! Would love to hear more about using the JTAG interface, particularly for debugging.

    • @AndreasSpiess
      @AndreasSpiess  Рік тому +2

      I hope I will be able to make this video in autumn.

  • @alpsman2010
    @alpsman2010 Рік тому +2

    Great video Andreas, very useful and informative 😊

  • @mcconkeyb
    @mcconkeyb Рік тому +1

    Good stuff. I'll have to remember to come back for a detailed review if I ever begin using ESP32 chips. 🙂

    • @AndreasSpiess
      @AndreasSpiess  Рік тому +1

      You miss something without using ESP32s ;-)

    • @wm6h
      @wm6h Рік тому +1

      “I’ll have to remember…”
      “Subscribe and you’re always in the front row” tm

  • @errrick
    @errrick Рік тому

    thank you so much Andreas, as usual. I just recently bought a pretty nice rotary encoder screen like the Nest thermostat with an embedded ESP32 S3, and I had no idea how to program it, but includes an addon board that exposes pins 1,2, 20 and 19 - I had no idea why they chose those pins to expose but it all makes sense now.

    • @AndreasSpiess
      @AndreasSpiess  Рік тому

      I hope you will now be successful with programming your board!

  • @klassichd10
    @klassichd10 Рік тому +1

    Thanks a lot for your effort and investigations. USB Host will become very interesting because of the drivers. Maybe they implement generic drivers e.g. for an external keyboard or HDD?

  • @stefan3816
    @stefan3816 Рік тому +19

    CDC mode actually works on the ESP32-S2 also

    • @TD-er
      @TD-er Рік тому +5

      You mean "USBCDC" as how it is called in the Arduino code?
      The one supported by the C3 is called HWCDC.
      The S3 does support both. I prefer the HWCDC as it allows for easier flashing using the web flasher.
      But the USBCDC does have some more nice features and the code feels slightly more mature compared to HWCDC.

    • @AndreasSpiess
      @AndreasSpiess  Рік тому +1

      Thanks for the info. I assume, CDC is part of the OTG block services.

    • @lifeai1889
      @lifeai1889 Рік тому

      ​@@TD-er use the esphome flasher instead of web flasher is way better and more reliable

    • @ficeto
      @ficeto Рік тому

      @@TD-er HWCDC is realized in hardware, so the features are limited to only what is required for communication between the code and the hardware.

  • @TD-er
    @TD-er Рік тому +5

    What a coincidence... I've been working on exactly this for the last 2 weeks. (complete rewrite of my ESPEasySerial wrapper to have a single interface to any possible serial port)
    One thing to keep in mind for the S3/C3; There is a bug in the Arduino code, which renders the serial port unusable when calling end(). (will be fixed in the next ESP32 Arduino release)
    Another nice thing from the CDC uart ports is that the host (PC) determines the baudrate, so it doesn't matter which baudrate you set in your terminal program to connec to the ESP.

  • @antoncm711
    @antoncm711 Рік тому

    thanks it's works, i've had some frustration with the basics on the S3 boards (from indonesia)

  • @markwarburton8563
    @markwarburton8563 Рік тому

    Nice, thanks Andreas! It would also be interesting to test bandwidth over the USB port.

    • @AndreasSpiess
      @AndreasSpiess  Рік тому

      I assume it will be different for different services.

  • @wjn777
    @wjn777 Рік тому

    Great video, thanks for sharing. Looking forward to the JTAG video

  • @haraldraufer6992
    @haraldraufer6992 4 місяці тому

    Ich liebe Ihre Videos. Sie sind der Größte!!!

    • @AndreasSpiess
      @AndreasSpiess  4 місяці тому

      Danke!

    • @haraldraufer6992
      @haraldraufer6992 3 місяці тому

      @@AndreasSpiess Gerne, war ehrlich gemeint!
      Sie werden sicher mit Anfragen und Kommentaren zugeschüttet. Darf ich Ihnen dennoch eine Frage stellen?....
      Nachdem es mir dank Ihres Videos endlich gelungen ist, mein eigenes PCB mit einem ESP-32-S3-WROOM (N8R8) zu designen und bei JLCPCB fertigen zu lassen, stehe ich nun vor einem Rätsel, was mich schier zur Verzweiflung bringt.
      Die Arduino IDE erkennt das Board und ich kann einen Sketch im CDC-Mode downloaden und nach Reset startet der Code auch und meine 4 LEDs auf meinem kleinen Board blinken wie gewünscht. Hurra! :)
      Jetzt die schlechte Nachricht, der Code läuft nur, wenn das Board am USB-Port des PCs abgeschlossen ist. Verwende ich ein Steckernetzteil, geht nichts. Habe natürlich andere Netzteile und Kabel, Powerbanks, Direktanschluss von +5V am Spannungswandler mit einem leistungsfähigen Labornetzgerät versucht. Brachte alles keinen Erfolg, obwohl am ESP ganz saubere 3,3V anliegen. Das Board zieht 20 bis 40 mA, also nicht die Welt für den von mir verwendeten AMS1117-3.3 Spannungswandler.
      Dagegen funktioniert das Board bei Anschluss an andere PCs oder auch an den USB-Port eines Notebooks im reinen Batteriemode immer auf Anhieb.
      Habe auch schon versucht, IO19 und IO20 (USB_D- und USB_D+) mit einem 15k Pulldown in einen stabilen Zustand zu bringen, hat aber auch nichts gebracht.
      Haben Sie eine Idee, was die Ursache sein könnte?
      Verzweifelte Grüße ;)
      Harald Raufer

    • @AndreasSpiess
      @AndreasSpiess  3 місяці тому

      @@haraldraufer6992 Remote debugging is hard. I would compare all pins of a board in working condition with one that does not work. There must be a difference. Look also at the serial pins. Maybe they show a brownout or so.

  • @fluffyblue4006
    @fluffyblue4006 Рік тому +2

    The most defining property of OTG is not worked out yet: the ability to function as a host.
    That would open up a lot of interesting possibilities: we will be able to connect peripherals to the ESP.

  • @EdoDijkgraaf
    @EdoDijkgraaf Рік тому

    Can't wait till you get hands on some C6s herr Spiess. Nice video cheers!

    • @AndreasSpiess
      @AndreasSpiess  Рік тому

      My problem is not the C6 HW, it is its Arduino IDE support…
      And Matter also seems to move quite slowly. So we will see where and when we can use the C6

  • @amtsgedicht
    @amtsgedicht Рік тому

    Wow, DANKE! genau das hat mir tage kopfzerbrechen bereitet - endlich mal super erklärt und auf den punkt gebracht!

    • @AndreasSpiess
      @AndreasSpiess  Рік тому +1

      Hat mir auch den Kopf zerbrochen. Deshalb das Video;-)

  • @ruenjou
    @ruenjou Рік тому

    Very clear and informative video. Subbed!

  • @awebuser5914
    @awebuser5914 4 місяці тому

    Great vid! Anybody else here hearing shades of Talking Moose in the accent? :)

  • @UselessDuckCompany
    @UselessDuckCompany 5 місяців тому

    So if you use this feature you must forever manually press buttons to enter program mode?

    • @AndreasSpiess
      @AndreasSpiess  5 місяців тому

      Maybe it will change with different boards...

  • @smdpicker
    @smdpicker Рік тому

    Thanks a lot for the video. It was great. Cleared a tons of question.

  • @zyghom
    @zyghom Рік тому +6

    ESP32-C3 "download" or "Strapping pin" is not GPIO ZERO (anymore) - quite a change in the design - but GPIO 9
    video description is with letter mistake - I am sure you wanted to say: "S2 C3 S3" ;-)

    • @AndreasSpiess
      @AndreasSpiess  Рік тому +4

      Yes, you are right. Thanks, title adjusted.

    • @juanmadg1
      @juanmadg1 Рік тому

      ​@@AndreasSpiess No, at this time it still keeps featuring "ESP32-S2, ESP32-S2, ESP32-S3"

  • @RoterFruchtZwerg
    @RoterFruchtZwerg Рік тому +4

    Interesting, but I miss something. How does the ESP magically apply the settings from the Arduino IDE? Are they set when uploading a sketch / compiled into the sketch? If yes, can't you basically brick your dev-board if you accidentally upload something with legacy mode on a board that only exposes the USB pins for uploading in cdc mode?

    • @TheEmbeddedHobbyist
      @TheEmbeddedHobbyist Рік тому

      Just make a few corrections to the board and you should be able to revert back. A circuit diagram and the data sheet, soldering iron and jobs a gooden

    • @AndreasSpiess
      @AndreasSpiess  Рік тому +2

      The settings are in the code. To „unbrick“ the chip, you always can apply GPIO0 as described.

  • @greg4367
    @greg4367 Рік тому

    Well researched, very helpful. Thank you, Andreas,

  • @OMNI_INFINITY
    @OMNI_INFINITY Рік тому +1

    *Had to "burn" that efuse (USB_PHY_SEL) to use native USB? I designed and built a custom board with an S3 and want to get the native USB part functioning so I can program it, as there isn't a USB to UART IC on the PCB. Thanks in advance for answering soon!*

    • @AndreasSpiess
      @AndreasSpiess  Рік тому

      I never heard of this eFuse. So you have to refer to the datasheet.

    • @OMNI_INFINITY
      @OMNI_INFINITY Рік тому

      @@AndreasSpiess Thanks for answering. Seems it is an S3 thing to enable native USB in that MCU.

  • @32_bits
    @32_bits Рік тому +3

    As many of us use Platformio and VSC, could you describe how to set this up for CDC mode?

    • @warperone
      @warperone Рік тому +1

      I second that - this would be very useful to the already great video.

    • @AndreasSpiess
      @AndreasSpiess  Рік тому +1

      Maybe you ask the PlatformIO guys. This is too specific for this channel.

    • @BienestarMutuo
      @BienestarMutuo Рік тому

      framework = arduino
      upload_protocol = esptool
      monitor_port = COM8
      build_flags = -D ARDUINO_USB_CDC_ON_BOOT=1
      debug_tool = esp-builtin
      debug_speed = 10000
      build_type = release
      in windows, you will have two devices when you connect the esp32 S3, one is for the com port the another one is for CDC, ensure to put the driver in the second device, make it right, because not you loose the com port, but that can be easy fixed. ua-cam.com/video/b1VkJODi_4w/v-deo.html

  • @taranagnew436
    @taranagnew436 Рік тому

    when you select "usb mode" does it set the other usb settings to the correct ones, where do you get that graph in 8:32?

    • @AndreasSpiess
      @AndreasSpiess  Рік тому

      You have to set all settings independently and the table is made by me.

  • @adilsongoliveira
    @adilsongoliveira Рік тому +2

    Thanks for the great video Andreas. I have been looking for how to use ESP32 in host mode (I want to use it to convert the signals from a USB Joystick to CPPM for RC) but the information over there is very confusing. There are projects out there using simple arduinos and USB Shield but I wanted something smaller and more flexible to be able to add more functionality.

    • @AndreasSpiess
      @AndreasSpiess  Рік тому +1

      You still need a host shield for this release

    • @conorstewart2214
      @conorstewart2214 Рік тому +1

      Have a look at using the esp-idf, it has host mode examples.

  • @mr.anonymous298
    @mr.anonymous298 Місяць тому

    Very useful video, sir. Thank you.

  • @PatrickZeiler
    @PatrickZeiler Рік тому +1

    Thank you, well presented and nicely composed informations. Are you planning to make a video about ZigBee support in C6 and H2 chips? Information seems pretty sparse at the moment regarding ZigBee in a maker context, I think it would really help getting into it...

    • @AndreasSpiess
      @AndreasSpiess  Рік тому

      So far I did not find any info for the Arduino IDE. And the power consumption of the Espressif chips so far we’re not ZigBee like…

  • @Jasmohan
    @Jasmohan 9 місяців тому

    I love the guy with the Swiss accent 😊

  • @xr6694
    @xr6694 Рік тому

    would be great to see another esp32 boards comparison this time for the s3 model

  • @Steven_Bennett_YT
    @Steven_Bennett_YT 6 місяців тому

    Thanks for all your great videos Andreas, any chance you could make one about debugging an ESP32-S3 using Arduino IDE 2.x ?

    • @AndreasSpiess
      @AndreasSpiess  6 місяців тому

      Last time I tried it was not stable enough for a video ☹️

  • @dvohwinkel
    @dvohwinkel Рік тому

    What is the name of the GUI program you used for viewing the serial connection @ 3:58 ?

  • @deangreenhough3479
    @deangreenhough3479 Рік тому

    Very Informative, thank you Andreas 🏴󠁧󠁢󠁥󠁮󠁧󠁿😁

  • @qcsupport2594
    @qcsupport2594 Рік тому

    If I no longer have to dig out my ESP-Prog to debug that's great! Going to have to learn OpenOCD next...

  • @jensschroder8214
    @jensschroder8214 Рік тому

    I bought an ESP32-C on board some time ago.
    Because I couldn't load a program, I got myself an ordinary ESP32 with serial IC
    since then I've avoided the ESP32-C and ESP32-S

    • @AndreasSpiess
      @AndreasSpiess  Рік тому

      Some boards have both, USB and a Serial chip. I like those boards best!

  • @MohamedAfzal
    @MohamedAfzal 6 місяців тому

    thank you for the information. If possible can you make a video demonstrating those.

    • @AndreasSpiess
      @AndreasSpiess  6 місяців тому

      You find many examples in the Arduino IDE.

    • @MohamedAfzal
      @MohamedAfzal 6 місяців тому

      @@AndreasSpiess thank you for the information.

  • @TYGAMatt
    @TYGAMatt Рік тому

    Haven't found a case where I "need" and S3 yet. The original seems fine and I like the classic bluetooth.
    I use the chip modules and an FTDI to upload new sketches, which so far hasn't really been an issue.

  • @MrAbrandao
    @MrAbrandao Рік тому

    would love a video Back to basics.
    All you showed with an pratical exemple.

    • @AndreasSpiess
      @AndreasSpiess  Рік тому +3

      Maybe I will use the -S3 in a future project...

  • @mauromorandi6794
    @mauromorandi6794 2 місяці тому

    Very very useful!...i keep learning with your channel....a question for you, what about xh-c2x esp8684h4 ?, i can`t work with arduino ide, i can`t find the right board, this module is part of esp32-c2 family.

    • @AndreasSpiess
      @AndreasSpiess  2 місяці тому

      So far I did not see support if the Arduino IDE for the -C2

    • @mauromorandi6794
      @mauromorandi6794 2 місяці тому

      @@AndreasSpiess I started to work with circuitpython and thonny for c2 family, regards!.

  • @lifeai1889
    @lifeai1889 Рік тому +1

    Do u know how to remove the name followed by the esp in cdc mode cuz i used a esp32s2 and it identified as a board called deneyap mini which is not true and it cause compilation to fail so i need to change it back every time or can i just disable the Arduino ide auto detect function back when we used good old ch340 there's no such problem

  • @jerzyszwengruben9816
    @jerzyszwengruben9816 Рік тому +1

    Great Job. Thx. J.

  • @bramSDASCL1759
    @bramSDASCL1759 10 місяців тому

    with usb ,,can i hook 2 or more usb device to esp32s3? like mouse,keyboard, and an rfid reader maybe

  • @tonyvink961
    @tonyvink961 Рік тому +1

    Hi Andreas. I have been in the front row for a couple of years so far. As a retired Engineer, I have been playing with ESP32S dev boards and using PlatformIO as my IDE. I was excited by your S3 video and immediately went to Amazon to look for a board that might be easier to debug with. Then got confused. Many of the S3 boards have a USB to serial chip for the 2nd USB port. Some don't. I am guessing that the USB to serial IC is there to "comfort" legacy users? The boards containing 2 USB ports but no USB chip must use the two ports you discussed in the video.
    I an thinking that the USB chip boards would suffer the same fate of older ESP32 needing the RESET/GPIO0 buttons. And the boards using the two ESP32-S3 ports would debug more reliably.
    Always enjoy your vids....
    Any thoughts?

    • @AndreasSpiess
      @AndreasSpiess  Рік тому

      As you suggest: The USB to serial chip is a „comfort“ function and ok for a development board. For a productive board, I would only add a jumper for RX/TX.

  • @ES-qe1nh
    @ES-qe1nh Рік тому

    Hallo Andreas! Danke für das Video. Weisst du auch ob das ganze via PlatformIo mit dem richtigen config funktioniert?

    • @AndreasSpiess
      @AndreasSpiess  Рік тому

      Sollte gehen. Ich habe es allerdings nicht probiert.

  • @heikoenzingermusic1312
    @heikoenzingermusic1312 5 місяців тому

    Hello there and thank you very much for this video. I am very new to esp32 and absorbing every information I can get. Sorry for maybe a noob question but does running in CDC mode also mean I can still send serial data from esp32 over usb to the computer (like temperature value of temperature sensor) but do not need to install a driver anymore in Windows 10 like when using cp2102 or ch340 ?

    • @AndreasSpiess
      @AndreasSpiess  5 місяців тому

      This question is not easy to answer. It depends on the protocol you use. For USB, you always need a driver, but often, they are included as a standard.

  • @artdanion8544
    @artdanion8544 Рік тому +3

    thank you! would have needed this month ago 🙂
    I noticed that if I have Serial statements in my code and no computer is connected the ESP has a strange delay.
    Her this might help: Serial.setTxTimeoutMs(5); // set USB CDC Time TX
    One other question: what would be a good way to get Serial statements in a deep sleep scenario? I had to start with a 5s delay for debugging, to have enough time to start serial monitor again (serial connection and port stop in deep sleep) Is there a serial monitor auto start option in the arduino IDE or VS/Platformio? Does someone know something usefull?

    • @AndreasSpiess
      @AndreasSpiess  Рік тому

      I included RX/TX pins on our PCB for debugging. I do not remember I had to wait for such a long time.

    • @artdanion8544
      @artdanion8544 Рік тому

      @@AndreasSpiess on one of my boards i just connected GPIO19/GPIO20 and i power the board also via usb, had to add this line, otherwise i had a slow start on powerbank (for sure more than 2sec)

    • @artdanion8544
      @artdanion8544 Рік тому

      I realized that there was a delay after serial.begin() and first i thougt i have to change the code to an other debugg log() mode...

    • @conorstewart2214
      @conorstewart2214 Рік тому

      It should be possible (maybe not with arduino ide) to tell when the usb is connected, so you wouldn’t need to wait for the serial to time out, just only print if the usb was connected at boot.

  • @Bareizm
    @Bareizm Рік тому

    Did you choose the Arduino framework over ESP-IDF for any specific reason? ESP-IDF seems to be a more optimized and richer solution (not all available functions in esp-idf are immediately available in the Arduino framework). Thanks in advance for your answer.

    • @AndreasSpiess
      @AndreasSpiess  Рік тому

      I chose Arduino because it supports other chips as well as it is accepted in the Maker community and has lots of projects and libraries available.

  • @LuisRex-c5z
    @LuisRex-c5z 10 місяців тому

    Excelente! 🙂👍

  • @MrCompdan
    @MrCompdan 8 місяців тому +1

    Hello, I'm a bit baffled. On Arduino IDE "USB Mode" doesn't show up on my ESP32 s2 chip. Is USB OTG enabled by deafault on the ESP32 s2 or is there a way I need to put it in OTG mode

    • @AndreasSpiess
      @AndreasSpiess  8 місяців тому

      Unfortunately, I cannot do remote debugging. It should work as described in the video and does not has to do with OTG.

  • @sergiogil8202
    @sergiogil8202 10 місяців тому

    Hi. Thanks for the video!! I am working on a project about sniffing data froma a meteorological station (Oregon WMR300) via USB, and Im not sure how to do it using a esp32 S3. I am thinking about using the CDC mode but im a bit lost in this.

    • @AndreasSpiess
      @AndreasSpiess  10 місяців тому

      I assume you will need to search for an example to emulate a USB host.

  • @nikbivation
    @nikbivation 4 місяці тому

    wow you are a life saver!!

  • @BrandonJJackson
    @BrandonJJackson Місяць тому

    Hello Andreas, could i use the USB(UART0) as serial output and the OTG for JTAG ?
    could you maybe do a video how we could put a external flash? i thought about using a external flash IC for data logging and using the OTG for quick acces to the csv files for data analysis.
    thanks in advance.

    • @AndreasSpiess
      @AndreasSpiess  Місяць тому +1

      1. I do not know. You have to try
      2. Because I have WiFi on hte chip, I longime ago stopped recording data on the device itself. I transmit it into a database on a server. So I never had the need for logging on the device.

    • @BrandonJJackson
      @BrandonJJackson Місяць тому

      @@AndreasSpiess Thank you for your answer, for now i will stick to the SD-Card then. :P

  • @josephkeogh553
    @josephkeogh553 9 місяців тому

    Your videos as are always very helpful! I am trying to use my esp32 s3 dev board as a usb host to receive data from an HID device, and would love a video or some help with that. Please reach out to me if you have any thoughts or advice!

    • @AndreasSpiess
      @AndreasSpiess  9 місяців тому

      I would assume you find such projects on the internet.

    • @josephkeogh553
      @josephkeogh553 8 місяців тому

      @@AndreasSpiess hi! Thanks for reply, I haven’t been able to find any and if you could point me in the right direction that would be really helpful

    • @AndreasSpiess
      @AndreasSpiess  8 місяців тому

      @@josephkeogh553 I just keyed in ESP-S3 and HID into Google. UA-cam does not let me post links. Keyboards are slaves, so in this scenario, the ESP is the host.

  • @damianmora85
    @damianmora85 10 місяців тому

    Interesante, se puede hacer transferencia de datos por espNow, q en un lado este el esp conectado a la computadora y a distancia otro esp conectado a un mause?

    • @AndreasSpiess
      @AndreasSpiess  10 місяців тому

      Este vídeo no trata sobre ESP-Now. Hay otros videos sobre este tema.

  • @PhG1961
    @PhG1961 Рік тому

    Cool stuff! Very usefull indeed!

  • @andre9095
    @andre9095 Рік тому

    You mention the C3, does that also include the recently released C6?

    • @AndreasSpiess
      @AndreasSpiess  Рік тому

      I never used the C6 because it is not supported by the current Arduino IDE.

  • @samm928
    @samm928 2 місяці тому

    I'm using both C3 SuperMini and S3 Zero, and finally more libraries and board files are slowly being made available. On the S3 Zero, I'm seeing segmentation error: Core dump write failed with error=-1 .. is this because partition or corupt bootloader ?

  • @tuiastro
    @tuiastro 8 днів тому

    I wonder whether a USB HID device can receive data from the PC.

  • @ZL1CVD
    @ZL1CVD Рік тому

    Excellent video thank you.

    • @AndreasSpiess
      @AndreasSpiess  Рік тому

      Glad you enjoyed it!

    • @ZL1CVD
      @ZL1CVD Рік тому

      @@AndreasSpiess I now understand the different USB interfaces & uploading code via Arduino OK now. Having no luck getting USB HOST working though. Have tried ESP32TinyUSB LIB and some others. I need this ESP32 to talk to CP210x UART. Any ideas or pointers? I really don't want to have to resort to ESP IDF...

    • @AndreasSpiess
      @AndreasSpiess  Рік тому +1

      @@ZL1CVD As said in the video: Host mode is not supported by the Arduino IDE

    • @ZL1CVD
      @ZL1CVD Рік тому

      @@AndreasSpiess Yes I did see that but also found 3rd party host libraries & was hoping you may know of one I had not found. Such a shame. Time to play with Teensy 4.0 I have as their USBHost_t36 lib may be exactly what I need. Cheers & keep up the great work.

    • @ZL1CVD
      @ZL1CVD Рік тому

      @@AndreasSpiess Just got Teensy 4.0 working with the lib I mentioned. Much easier to use & understand than the ESP IDF examples too. Real shame ESP32-S3 is lacking HOST for Arduino..

  • @YangJiahong-jz2gh
    @YangJiahong-jz2gh Місяць тому

    Thanks for your sharing!!! It is very clear. But I met a problem that the window10 device management recognized an unknow USB device. I am not sure that the problem is caused by windows driver or the layout of the PCB or the hardfirm of the ESP32-S3. I use the ESP-IDF on VS code to develop it. I want to ask that when I get a totally new ESP32-S3 that never download any code by me, when I connect it via USB port, could the windows 10 recognize the USB port directly? Thank you very much!

    • @AndreasSpiess
      @AndreasSpiess  Місяць тому

      Unfortunately, I cannot do remote debugging. Here, the ESP32-S3 is recognized by my PC. If you bought a regular board, the chance that the board is not working is slight. If you have a custom-built one, check first with a standard one.
      Maybe your PC does not have the correct driver installed.

    • @YangJiahong-jz2gh
      @YangJiahong-jz2gh Місяць тому

      @@AndreasSpiess Thank you very much for your reply! It is very kind of you. I have tried the official board and confirmed that the driver was installed. So I am not sure that if I should download a specific firmware to enable the USB port. Anyway, Thanks again. and welcome to China. I want to take you to try much delicious food. 😁

  • @jonathanpeace3167
    @jonathanpeace3167 Рік тому

    What about the 5th mode where you use both device and host at the same time with an external USB phy?
    It uses the JTAG pads but no prob as this is exposed over USB anyway…

  • @envt
    @envt 10 місяців тому

    Will you make a video about esp32-c6 with zigbee and how to program it using arduino ide?

    • @AndreasSpiess
      @AndreasSpiess  10 місяців тому

      When it will be supported: Yes.

  • @VioletGiraffe
    @VioletGiraffe Рік тому

    What about USB host functionality? Connecting keyboards TO the ESP32?

    • @AndreasSpiess
      @AndreasSpiess  Рік тому

      Should work. I even made a video about it (with the ESP32-S2)

  • @Leif_YT
    @Leif_YT Рік тому

    Sometimes I wish PlatformIO would have such selection menus for the Microcontroller features. With the ArduinoIDE It's pretty easy, but with PlatformIO it can be quite a hassle to figure out which build flags to use. Same for other memory sizes or so. So easy to change in the ArduinoIDE, but in PlatformIO it seems to require custom board configs. For programming I prefer PlatformIO by far, but the handling of boards and features is much easier in Arduino IDE.

    • @AndreasSpiess
      @AndreasSpiess  Рік тому

      I thought, I was able to select the board also in PlatformIO. But I do not use it often.

  • @keithr0
    @keithr0 Рік тому

    I've given up on using Serial for communication with the ESP32. You need to have the ESP32 tethered to a computer, the Arduino IDE terminal isn't the best, and PuTTY is a pain to use. I use BluetoothSerial instead, it's part of the Arduino ESP32 package, and requires very little change to code. I use an app called Serial Bluetooth Terminal on my Android phone, I believe that a similar app is available for IOS.

  • @stephankempa6914
    @stephankempa6914 Рік тому

    One big step to the next generation of Rubber Duckys ;-)

  • @danmorgz
    @danmorgz 11 місяців тому

    Hi Andreas - is it possible to contact you regarding some consultancy work? I'm looking to get an ESP32S3 talking to another device. Just sending commands to the peripheral's CDC and getting some text responses. I've achieved this using a USB Max Host board, but would like to use the d+ d- pins and the Arduino IDE.

    • @AndreasSpiess
      @AndreasSpiess  11 місяців тому

      UA-cam is only my hobby. So I have no time for consulting :-(

    • @danmorgz
      @danmorgz 11 місяців тому

      @@AndreasSpiess no worries. Love your hobby! Thanks for the reply

  • @ablebaker99
    @ablebaker99 Рік тому

    Thanks for this video. I wish espressif would explain this topic better. I play with the ESP32 and the ESP32-C3 using the espressif IDF (eclipse etc). I have pages of confusing notes about the upload working then not working, debugger work or not working, com ports come and go. It seemed once I figured something out - on my next project a couple months later things worked differently. A lot of use of zadig.exe. Just having one wrong option on a run or debug configuration panel and no running of the ESP32 for me!

    • @AndreasSpiess
      @AndreasSpiess  Рік тому

      I hope this video helped a bit to remove confusion. I agree that Espressif should have done it.

  • @romannasadyk3752
    @romannasadyk3752 Рік тому

    Thank you for this video! Can you help me with one moment? I try connect USB device to ESP32-S2 and send some byte to this device. Am I must use CDC mode? And how to connect USB to ESP32 board? D+ to GPIO 20 and D- to GPIO 19? And how to send hex array to USB device? Thanks!

    • @AndreasSpiess
      @AndreasSpiess  Рік тому

      D19/20 are the same for the S2. Use the Serial connection as described in my video (via USB) to transfer Hex data

  • @vidtechnology7342
    @vidtechnology7342 5 місяців тому

    How can I work with parallal port in esp 32

    • @AndreasSpiess
      @AndreasSpiess  5 місяців тому +1

      I do not know. I did not use a parallel port for many years :-(

  • @ampedandvolted
    @ampedandvolted Рік тому

    Anyway to output ethernet through usb? What about attaching a USB to ethernet adapter into the port. Is it gonna work ?

  • @bennguyen1313
    @bennguyen1313 Рік тому

    Regarding how the dual-core ESP32-S3 (USB OTG + USB Serial/JTAG) has the combined features of the ESP32-S2 (single LX7, no Bluetooth, JTAG, USB OTG) and the ESP32-C3 (Risc-V, BLE 5, USB Serial/JTAG)..
    any plans to do a video on how to setup VSCode to debug an ESP32 using an external usb jtag debugger (ex. ESP-Prog)? I've found some older information, but it no longer works with the current IDF and VSCode plugins.

    • @AndreasSpiess
      @AndreasSpiess  Рік тому

      I do not cover the IDF on this channel, only the Arduino IDE.

    • @BienestarMutuo
      @BienestarMutuo Рік тому

      ua-cam.com/video/b1VkJODi_4w/v-deo.html

  • @vincentyun2849
    @vincentyun2849 Рік тому

    I'm trying to use built-in JTAG function of ESP32S3, when I connect ESP32S3 to PC's USB, the device named "USB-Enhanced-SERIAL CH343 (COM8)", but not "USB JTAG/serial debug unit". How to solve this?

    • @AndreasSpiess
      @AndreasSpiess  Рік тому +1

      So far I did not try JTAG on the -S3. So I cannot help :-(

  • @ingenuus2
    @ingenuus2 Рік тому

    the settings from my esp32s2 mini looks very diffrent and for the s2 dev too there i can´t find your settings

    • @AndreasSpiess
      @AndreasSpiess  Рік тому

      I just checked: The "ESP32S2 Dev Module" has very similar settings. The supplier decides which settings he includes.

  • @cid1307
    @cid1307 6 місяців тому

    HEY!
    Can I configure the esp32-s3 to operate as if it were a CarLink?
    To connect your cell phone to the car stereo via Wi-Fi.

  • @amaze11
    @amaze11 Рік тому

    I would like add to an ESP32 based internet radio the capability to play mp3 files from an USB stick, do I need USB OTG?

    • @AndreasSpiess
      @AndreasSpiess  Рік тому

      I assume you need host mode to read an USB stick (not supported yet in the Arduino IDE). But you find good internet radio projects with MP3 capabilities

  • @matsekberg
    @matsekberg 10 місяців тому

    Great video as always! But I have a strange behaviour on esp33-c3 in cdc mode.
    I have an application that sends can-bus messages on the internal team-hardware.
    I can download the app and see all serial.print() via the usb-cable, BUT, when I pull the usb-cable the app slows down the sending of can-messages. It seems as if the loop is hanging on the serial.print() statements about a sec and the times out and send a message, then hangs and so on.
    If I restore the cable and resets it works again.
    So there seem to be an issue when the usb-cable is removed that affects the functionality of the code.
    Any ideas?

    • @AndreasSpiess
      @AndreasSpiess  10 місяців тому

      Unfortunately, no :-(

    • @matsekberg
      @matsekberg 10 місяців тому

      I replaced Serial.print() with esp-idf logging and the problem disappeared