456 Hassle-Free ESP32 USB (ESP32-C3, ESP32-S2, ESP32-S3)
ฝัง
- เผยแพร่เมื่อ 14 พ.ค. 2024
- The USB feature of the new ESP32 chips is handy. Unfortunately, it is not easy to use because the information is hidden. This video shows how everything works and how you must set up the Arduino IDE to exploit the USB functionality. I promise it will save you a lot of frustration and time. And it is the basis for a future video about simple debugging with the new Arduino IDE 2.0
My second channel: / hb9blawireless
Links:
ESP32-S3-DevKitC-1: s.click.aliexpress.com/e/_DCU...
ESP32-S3 Development board (TTGO): s.click.aliexpress.com/e/_DE6...
ESP32-S3 modules: s.click.aliexpress.com/e/_Ddf...
ESP32-C3 datasheet: www.espressif.com/sites/defau...
ESP32-S2 datasheet: www.espressif.com/sites/defau...
ESP32-S3 datasheet: www.espressif.com/sites/defau...
SRV05-4 ESD chip: www.onsemi.com/pdf/datasheet/...
Patreon supporter companies:
passiv-energie.gmbh/
www.welectron.com/
yosmart.com/
TH-camr Patreon: / @makersmashup
The links above usually are affiliate links that support the channel (at no additional cost to you).
Supporting Material and Blog Page: www.sensorsiot.org
GitHub: www.github.com/sensorsiot
My Patreon Page: / andreasspiess
Discord: / discord
If you want to support the channel, please use the links below to start your shopping. No additional charges for you, but I get a commission on your purchases to buy new stuff for the channel
My Amazon.com shop: www.amazon.com/shop/andreassp...
For Banggood bit.ly/2jAQEf4
For AliExpress: For AliExpress: bit.ly/3MtXUY8 (just go on from here to your product)
For Amazon.de: amzn.to/2r0ZCYI
For Amazon UK: amzn.to/2mxBaJf
For ebay.com: ebay.to/2DuYXBp
profile.php?...
/ spiessa
www.instructables.com/member/...
Please do not try to email me. This communication channel is reserved for my primary job
As an Amazon Associate, I earn from qualifying purchases
#no#midroll#ads - วิทยาศาสตร์และเทคโนโลยี
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.
Thank you for your kind words!
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!
Glad to read that the video helped!
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 :-)
I already made a debugging video for PlatformIO…
@@AndreasSpiess Oh wow, if you mean #264 and #274 I haven't watched them, thanks for the info!
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.
Keep learning and you will become better than me ;-)
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.
I hope you will now be successful with programming your board!
Thank you for the very informative video! Would love to hear more about using the JTAG interface, particularly for debugging.
I hope I will be able to make this video in autumn.
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.
Glad the video was helpful for you!
A bit late watching this tutorial. Thank you, this is an excellent discussion of a topic not well covered in other videos.
Glad it was helpful!
Awesome video. Nice explanations. If I had known a few months ago I would have skipped WROOM-32 and got -S3 modules
They will be around for some time, I think…
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.
These usb functions were not well communicated, I think.
Nothing about the ESP32 is communicated well. Horrible reference materials and tools.
@@gavincurtisI do not agree. The datasheet has a lot of info. And Google knows even more because the chip is widely used.
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.
You are welcome! For starters, an "old" ESP32 is probably best.
@@AndreasSpiess How would I identify an old one? Pre S3?
@@madwilliamflint The one without any -xx
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! 😊
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.
Great video, thanks for sharing. Looking forward to the JTAG video
My pleasure!
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!
It should be supported in one of the next releases…
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.
@@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!
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.
I agree!
Thank you man with Swiss accent, what you explained solved many problems in my mind.
Glad to read that!
Good stuff. I'll have to remember to come back for a detailed review if I ever begin using ESP32 chips. 🙂
You miss something without using ESP32s ;-)
“I’ll have to remember…”
“Subscribe and you’re always in the front row” tm
Wow, DANKE! genau das hat mir tage kopfzerbrechen bereitet - endlich mal super erklärt und auf den punkt gebracht!
Hat mir auch den Kopf zerbrochen. Deshalb das Video;-)
Great video Andreas, very useful and informative 😊
Thank you!
Looking foreward to your hopefully next video on the JTAG aspect. Would be nice if real HW debugging would finally be possible!🎉
I also hope it will work as promised…
@@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.
thanks it's works, i've had some frustration with the basics on the S3 boards (from indonesia)
Glad it works for you, too!
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
Thank you for the addition!
Thanks a lot for the video. It was great. Cleared a tons of question.
Glad the video was helpful!
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.
The debug video will come after my summer break…
Would you please make a video of the S3 showing what pins are optimized for:
I2C, SPI and I2S?
@@gavincurtis You should find this info in the datasheet. There are no "optimized", just possible pins
@@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.
Well researched, very helpful. Thank you, Andreas,
My pleasure!
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.
Would you like to provide a demonstration
I second that wish.
Anything I reply is getting auto-removed for some reason...
@@gabest4 TH-cam does not allow links anymore. Maybe you can post it that it does not look like a link to TH-cam but we will find it.
@@gabest4 Yatub sin sours more than any other site. Especially if it's socially important.
Very clear and informative video. Subbed!
Welcome aboard the channel!
Nice, thanks Andreas! It would also be interesting to test bandwidth over the USB port.
I assume it will be different for different services.
Very Informative, thank you Andreas 🏴😁
You are welcome!
would be great to see another esp32 boards comparison this time for the s3 model
Maybe stuff for another video...
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?
We have to wait and see…
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.
Thank you for sharing your experience!
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?
@@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.
@@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?
@@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.
Can't wait till you get hands on some C6s herr Spiess. Nice video cheers!
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
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.
You still need a host shield for this release
Have a look at using the esp-idf, it has host mode examples.
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.
I thought, I was able to select the board also in PlatformIO. But I do not use it often.
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
Some boards have both, USB and a Serial chip. I like those boards best!
CDC mode actually works on the ESP32-S2 also
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.
Thanks for the info. I assume, CDC is part of the OTG block services.
@@TD-er use the esphome flasher instead of web flasher is way better and more reliable
@@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.
Very helpful, thank you.
You're welcome!
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...
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…
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.
I agree
They have examples for it in esp-idf.
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.
That is why I like choice!
*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!*
I never heard of this eFuse. So you have to refer to the datasheet.
@@AndreasSpiess Thanks for answering. Seems it is an S3 thing to enable native USB in that MCU.
Cool stuff! Very usefull indeed!
Thank you!
would love a video Back to basics.
All you showed with an pratical exemple.
Maybe I will use the -S3 in a future project...
Great Job. Thx. J.
You are welcome!
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" ;-)
Yes, you are right. Thanks, title adjusted.
@@AndreasSpiess No, at this time it still keeps featuring "ESP32-S2, ESP32-S2, ESP32-S3"
If I no longer have to dig out my ESP-Prog to debug that's great! Going to have to learn OpenOCD next...
Should not be too complicated…
Excellent video thank you.
Glad you enjoyed it!
@@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...
@@ZL1CVD As said in the video: Host mode is not supported by the Arduino IDE
@@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.
@@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..
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.
Thank you for the additional information!
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!
I hope this video helped a bit to remove confusion. I agree that Espressif should have done it.
Excelente! 🙂👍
Thank you!
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?
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.
So do i understand correctly that if i get bare esp32 s3 wroom chip and connect the pins 19, 20 i can just program it? Or does something have to be flashed there using the USB-UART converter? Thank you for reply, Im not completely sure...
Yes, you can flash it using the built-in USB module as shown in the video.
@@AndreasSpiess Okay thank you, I wasn't sure if the feature didn't need to be enabled in previous upload :)
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?
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
The settings are in the code. To „unbrick“ the chip, you always can apply GPIO0 as described.
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.
I assume you will need to search for an example to emulate a USB host.
I love the guy with the Swiss accent 😊
:-)
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!
I would assume you find such projects on the internet.
@@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
@@josephkeogh553 I just keyed in ESP-S3 and HID into Google. TH-cam does not let me post links. Keyboards are slaves, so in this scenario, the ESP is the host.
Hallo Andreas! Danke für das Video. Weisst du auch ob das ganze via PlatformIo mit dem richtigen config funktioniert?
Sollte gehen. Ich habe es allerdings nicht probiert.
Thank you.
You are welcome!
Great video as always Andreas!
Could you also do a video on Motor Control PWM on the ESP32? It is such an advanced PWM API compared to LEDC PWM. It has some great applications, for example generating complementary PWM signals with deadtime for H-Bridge motor control.
That's super interesting. PWM + Deadtime would be so useful.
@@joels7605 Yeah it's another hidden feature in the ESP32 I believe and even the base ESP32s support it. Plus, there are no tutorials on it online, at least not using the latest Arduino-ESP32 core.
The question here is about how many viewers would be interested…
@@isprithul it is not a hidden feature at all, look at the data sheets or api guide and it is there. It is called MCPWM, or Motor Control PWM. There are plenty of examples of it using the esp-idf and instructions for its use in the api guide. There are examples of using it for brushed motors, brushless motors and servos. If you want to use all the features of the chip and have more control over it then you need to use esp-idf and it even has the ability to include arduino as a component so you can write the same code you would in the arduino ide whilst having access to esp-idf specific functions.
There are lots of examples and components (essentially libraries) that you can use.
@@AndreasSpiess MCPWM library in the esp-idf is pretty well documented but you could definitely do a cool demo with it
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!
D19/20 are the same for the S2. Use the Serial connection as described in my video (via USB) to transfer Hex data
9:40 Hahahaha, Swiss strikes again, with the qwertz keyboard :-D
I was thinking for long time before I realised the same ;-)
This I a real pain in the a.., I agree.
Hello Andreas Spiess I really appreciate your work - I have not the capabillity, to think into a problem I have. But maybe it would be possible. I just write it now : I want to connect driverless a Multitouchdisplay with a Notebook - so on the multi touch needs to be a host, and on the Notebook a HID Device - In between a porperatery or open source protocol which is NOT Wifi infrastructure mode - maybe over wifi or an Ad Hoc conenction. Now the question do you think this is possible with Arduino or these ESP32 when i find out how the host has to speak with the multitouch display. I really would have an answer before I start making it, and lose a lot of time learning it would not have been possible from the start. [Display] - - [ESP USB Host] ~ ~ wireless ~ ~ [ESP Touch Emulator HID Device] - - - [Notebook/PC] Ich habe auf Englisch geschrieben, damit die Community es auch lesen kann) Schöne Grüße, Pascal
This is a complex project, and I do not know if it is possible. Particularly important is to check the speeds you need to drive the screen. And then if it is worth investing all the time. It will be a long project.
You mention the C3, does that also include the recently released C6?
I never used the C6 because it is not supported by the current Arduino IDE.
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.
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.
Thanks!
Thank you for your support!
Will you make a video about esp32-c6 with zigbee and how to program it using arduino ide?
When it will be supported: Yes.
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.
I do not cover the IDF on this channel, only the Arduino IDE.
th-cam.com/video/b1VkJODi_4w/w-d-xo.html
As many of us use Platformio and VSC, could you describe how to set this up for CDC mode?
I second that - this would be very useful to the already great video.
Maybe you ask the PlatformIO guys. This is too specific for this channel.
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. th-cam.com/video/b1VkJODi_4w/w-d-xo.html
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…
I do not understand :-(
Curious why you still use the arduino IDE as opposed to VS-Code? Is there a deficiency in VS-Code or is it just user preference?
If you refer to PlatformIO, you still use the whole Arduino IDE framework,btw. If you use the Espressif IDF, you loose the possibility to program other chips.
I use the Arduino IDE on this channel because it is simple and because people who use PIO can easily convert my projects because they have advanced skills. The reverse direction is not possible for a beginner.
Great video👍
I issue on my side. I connected my esp32-s2 with directly to usb while holding the GPIO0
Hear the sound usb connected
Can see unknown device
But can not load drivers for the com port. Nor even could find suitable driver for esp32 usb port driver.
Could you please help how to do serial port driver.
Thanks
The ESP32 does not need drivers. Just your PC need drivers.
What is the name of the GUI program you used for viewing the serial connection @ 3:58 ?
MobaXterm
Good evening sir, could you help me, i am using this ESP32 wroom devkits' but sir problem is showing .. Failed with state -2Connecting to MQTT... How do i solve this problem...thank you
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
I never tried this. So I do not know
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?
You have to set all settings independently and the table is made by me.
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?
I included RX/TX pins on our PCB for debugging. I do not remember I had to wait for such a long time.
@@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)
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...
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.
Can I use qty 1. ESP32 to use soil,moisture sensor and control qty 1 water pump?
I mau do that if possible because I plant in single containers.
Please advise. Also water pump power/size varies in size . How do I address correct power to pump?
Thank you and god bless! Alton.
Unfortunately, your questions are too long to answer in a short comment. You have to ask google and find a similar project for reference.
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.
A good idea!
nrf52 vs msp430, which one wins? Regarding deep sleep current and available tutorials
The TI processors are out of scope for this channel because they are not supported by the Arduino IDE. The NRF chips usually win in low-power applications.
hi Thank you for the excellent information and the amazing lessons that you kindly upload to TH-cam for us, I have been looking for a long time for a solution to control Toya's smart components, without internet, something like a central ESP32, with a control screen and adding components, and the ability to regularly control using a calendar, I do not have a stable internet that can give even NTP so I was looking for how to create an NTP server and I can't find a solution that works, if you can upload such a solution or direct me to the github directory, it can save me, thank you very much
Google knows of an NTP Server using GPS. I never tried. For your project, I anyway would use a raspberry Pi
Is the USB interface able to create an audio in and out stream device for computer connection? There could be some interesting radio projects...
If you look at the esp-idf and tinyusb examples you will see what is possible. They have examples for midi and host examples for UVC. You can also create your own descriptors so in reality you could create any sort of usb device.
Wayde, what scenario do you have in mind?
@@AndreasSpiess A few projects might be cool to try out... I'm thinking you could use USB audio ( mic and spk ) device, connected to a radio with a USB "sound card" as RX/TX audio to handle encoded audio from multiple inputs , mixed/amplified/noise reduced/compressed/proccesesd etc in DSP on ESP32. The multiple inputs can be useful for multi-op pota , where each gets their own headset and controls. one in/output would be over the USB "sound card" to the radio, other outputs could be a monitor for non-op listeners. Another project option could be the generation of some digital mode content for sending to the radio over the USB sound card for TX/RX. It could be a WSPR transmitter , or maybe even an FT8 transceiver, without attaching a full computer? I've thought it might be cool to make an FT8 fox/hound and use it for an actual fox hunt? or a kind of DXepedition, if you put FT8 fox , with autorespond on a balloon , or maybe someday a cubesat :-D
@@Wayde-VA3NCA We are working on a project with soundcard functionality and an ESP32-S3, but not with USB. This is a too big overhead. The PCB includes a 2m and a 70cm transceiver, BTW. But this is stuff for the second channel.
@@AndreasSpiess great! I'm subscribed to that channel too and look forward to it!
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.
TH-cam is only my hobby. So I have no time for consulting :-(
@@AndreasSpiess no worries. Love your hobby! Thanks for the reply
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?
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
This is probably dumb, but I wonder if USB host mode works, that we could connect an RTL-SDR dongle and use it for a mini portable SDR device? Maybe not enough power to do crazy stuff, but maybe some decoding or a waterfall display?
So far I did not see SDR projects using the ESP32. You are right, theoretically it would be possible. But maybe for special projects. For a general waterfall display it probably would be easier to use a pi zero because the software already exists.
Also - would the processor be powerful enough to handle the signal processing?
@@TecSanento I think the ESP32 is at 240MHz. The Pico’s is 125? You’d certainly be limited. I’m definitely not an expert. Maybe something that would listen to the VHF Ham bands and then have a little display that listed activity on different channels, maybe even decoded some?
Hi Andreas, is it correct that the ESP32 chip with wifi and Zigbee is out? Can you develop now our own zigbee sensors?
Yes, prototypes are out. But no Arduino support so far.
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?
Unfortunately, no :-(
I replaced Serial.print() with esp-idf logging and the problem disappeared
with usb ,,can i hook 2 or more usb device to esp32s3? like mouse,keyboard, and an rfid reader maybe
I think so, but I never tried.
in USB CDC/JTAG mode does on chip debugging work?
It should. I did not test it yet.
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?
So far I did not try JTAG on the -S3. So I cannot help :-(
Hi i just watch the video. I'm new with esp32 boards, What mode i should use if im going to print my usb device(scanner) to esp32? is it USBHOST? btw i have ESP32S3
Such a project is most probably not suited for a beginner. I would start with something a bit easier.
@@AndreasSpiess thanks i should start from the basics. what i have is a USB RFID scanner i want to use the features of ESP32S3 to get the readings any pointers?
the settings from my esp32s2 mini looks very diffrent and for the s2 dev too there i can´t find your settings
I just checked: The "ESP32S2 Dev Module" has very similar settings. The supplier decides which settings he includes.
Anyway to output ethernet through usb? What about attaching a USB to ethernet adapter into the port. Is it gonna work ?
I do not know :-(
I went out looking for gold and missing the start time, Andreas. Hope you are well and family is fine.
Yes, we are all fine, thanks for asking. I hope you were lucky today…
@@AndreasSpiess No just a key and rain. But a fun day in the bush.
❤
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?
Este vídeo no trata sobre ESP-Now. Hay otros videos sobre este tema.
👏 👏 👏
👍👍👍
Give platformio a try with ESP-IDF instead of Arduino, I think you'll really like it and it makes this particular feature set easy to access.
+1 for PlatformIO :)
I decided to stick with the Arduino IDE because it can also be used for other manufacturers chips. So maybe in the future…
I beg you to make a tutorial on how to make 2 mini LCDs combined with one camera on a PCB. please🙏🙏🙏
This is a very special project and does not fit the needs of my subscribers:-(
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
Unfortunately, I cannot do remote debugging. It should work as described in the video and does not has to do with OTG.