ESP32-S3 USB frustrates me, you too?

  Рет қаралды 7,704

STARLING Watch

STARLING Watch

Күн бұрын

Пікірлер: 73
@clifforddicarlo9178
@clifforddicarlo9178 Жыл бұрын
Disagree strongly that "C is a terrible language".
@johnroubos5483
@johnroubos5483 Жыл бұрын
Me too.
@frankcohen8662
@frankcohen8662 Жыл бұрын
@@johnroubos5483 and @clifforddicarlo9178 strcpy(str, getpass("Enter password: "));
@frankcohen8662
@frankcohen8662 Жыл бұрын
Either of you going to Hackaday Supercon in November 2023?
@DataDashy
@DataDashy 10 ай бұрын
Java is 👊🗑️
@starlingwatch3921
@starlingwatch3921 10 ай бұрын
@@Механизм-ж9я what do you think of Python?
@keiyano
@keiyano 11 ай бұрын
For all those who are confused, Esp32 and esp32 s2 are not the same architecture. Esp32 is LX6 while esp32 s2 and s3 are LX7. s2 is cut down version of s3 but only has usb serial debug (not host or accessory mode support). C3 is the risc V microcontroller. All code that isn't related to usb host /accesoory mode should work on all of them. S3 has support for usb host mode ,accessory mode and serial debug which means its the best to create usb devices. The only down side of esp32-s3 is that it has no DAC so you would need an external dac.
@starlingwatch3921
@starlingwatch3921 11 ай бұрын
It's so easy to explain... 😛 I agree with your points, and only ESP32 has Bluetooth Classic, so no audio support on BLE.
@keiyano
@keiyano 11 ай бұрын
​@@starlingwatch3921 I think esp32-H2 supports ble 5.2/5.3 which has ble audio support since its 5.3 certified.
@starlingwatch3921
@starlingwatch3921 11 ай бұрын
@@keiyano Good to know; however H2 is single core. And that's my point, you have to be some ESP32 genius to figure out which of the too-many versions works best for your application. And, I'm glad for H2 having BLE 5.2/3 because that tells me S3's successor will hopefully have it too. -Frank
@scottduckworth3299
@scottduckworth3299 Жыл бұрын
While I agree that you've made a useful device and platform for certain situations, I disagree with many of the claims made in this video. Some of the claims are objectively false. Arduino devices, C/C++, PlatformIO, FreeRTOS, JTAG, ESP32C3, and many others mentioned in the video are all useful, relevant, and could be the best (or only) choice for many situations. There will always be tradeoffs, and no choice will be the best choice for all situations.
@uhadonejob
@uhadonejob 11 ай бұрын
Thanks for making this video. I was playing around with a C3 board from adafruit and found it pretty interesting. I think the single processor/reduced circuitry allow it to have a very low deep sleep current. This is really the most important thing for small battery powered devices. I would agree however that the cost of supporting so many platforms harms the overall ecosystem but I don't know their business model in terms of high volume buyers. My experience with S3 has been less than satisfying.
@starlingwatch3921
@starlingwatch3921 11 ай бұрын
If you'd care to dig into your S3 I'd like to hear what you found
@uhadonejob
@uhadonejob 11 ай бұрын
@@starlingwatch3921 Difficulty getting it to upload code. It was with a wemos s3 mini so not even a budget clone. I was using platformio which I had used with the c3 without issue. Platformio had libraries and recognized the board (was present in their board selection tool) but it turns out that was only if you were using a version newer than the release of platformio otherwise wasting my time. Had to do some digging to find that. Turns out it was in vain since I didn't have any luck trying to time my push button attempts with the command line tools. I didn't want to try micropython (despite being a python fan) since I had already worked out a bunch of functionality on the C3 in C. I don't have the patience I used to have with semi baked technology.
@uhadonejob
@uhadonejob 10 ай бұрын
Turns out I had a bad board. Managed to get a friend's exact same board and the boot/reset button presses give feedback and allow for an upload. Such a waste of time.
@kyleolson8977
@kyleolson8977 Жыл бұрын
"You're going to have to work with the PlatformIO environemnt, which is going to be pretty different from anything you've done before" That's only true if you're mostly familiar with Arduino or something else designed for educational or non-professional development. Arduino is a pretty simplified IDE that's different than nearly everything else.. PlatformIO runs in Visual Studio Code, which is not only the second most popular IDE behind only Visual Studio, but also operates using the patterns common to most IDEs and is far more powerful and customizable than the Arduino IDE. The early version of PlatformIO were lacking, but now I find most tasks work better than Arduino, sometimes far better. While Arduino IDE may be fine for small projects, I believe that you're handicapping yourself using the IDE in the long run. It's especially bad that Arudino IDE focuses on "sketches" with only one file, something that discourages reusable code. Additionally, in both cases you can work in C++, not just C (although the arduino IDE cheats at C).. The version of C++ depends on the platform, but it's not the full modern C++. But Python isn't Python, it's Micropython or Circuitpython, which are also a subsets.
@starlingwatch3921
@starlingwatch3921 Жыл бұрын
@kyleolson8977 thanks! I agree with you on your points. Thankfully we have 3 major IDE's for Arduino: Arduino IDE 2.1, Platform.io, and Espressif-IDF (for ESP32). And now they all support the JCUSB solution as I call it. In the past I couldn't get Arduino IDE to support debugging, so that put me into Platform.io. I found Platform.io was an add-on to a base platform that reminded me of Eclipse and NetBeans, just not as well done as those. With Arduino IDE 2.1 support of debugging I see one less compelling reason for Platform.io. I wish Platform.io supported the Arduino IDE sketch style (with loop() and setup()), it would be an easy add-on. One other thing, Micropython and Circuitpython are excellent - and I used to be the largest distribution of Python (in Jython for PushToTest TestMaker, my open source project from 20 years ago). I really like and appreciate your perspective, thanks! -Frank
@starlingwatch3921
@starlingwatch3921 Жыл бұрын
And, C and C++ must die. :-) -Frank
@chrisalexthomas
@chrisalexthomas 4 ай бұрын
@@starlingwatch3921 history shows that it's most likely you'll die before it does. Stop whining about it, you're just mentally blocking yourself by putting up unnecessary barriers to learning. Fact is, C is here to stay and there is a good reason why. It's able to deliver high performance in resource constrained environments. What would you choose instead? Python or NodeJS? You need many megabytes of ram to do such things and thats why python is an interesting toy but can never be used on the smaller microcontrollers. You're making a watch. You need C. Stop fighting the inevitable. You're only harming yourself and your progress.
@starlingwatch3921
@starlingwatch3921 4 ай бұрын
@@chrisalexthomas Thanks for letting me know your thoughts. And in a fun entertaining way. C sucks, and I agree with you that it will likely outlive me! :-D Cobol seems to be still in use today!
@starlingwatch3921
@starlingwatch3921 4 ай бұрын
@@chrisalexthomas MicroPython and CircuitPython seems solid to me so far - running stable for months. ESP32-S3 has plenty of memory and processors for them.
@emaayan
@emaayan Жыл бұрын
I've also encountered the button press issues, but those were related to specific dev boards, i have enough boards where i have no need to click and button on firmware upload , that's not related to s3
@bobert4522
@bobert4522 Жыл бұрын
There's a 2 transistor technique outlined in the ESP32 development guide that sets up auto boot/rst select with compatible USB-UART chips. Boards that don't auto-restart are cost saving.
@starlingwatch3921
@starlingwatch3921 Жыл бұрын
@@bobert4522 yep, I use that on the esp32 wroom dev board. Don't need it with I'm calling the JCUSB technique.
@bennguyen1313
@bennguyen1313 Жыл бұрын
Any thoughts on using the ESP-Prog (JTAG) and VSCode to compile and debug the ESP32-S3? I haven't had much luck, there's multiple extensions (PlatformIO , ESP-IDF) and while I got a hello-world to compile via the Windows Command line (using espressif-ide-setup-2.10.0-with-esp-idf-5.0.2), I can't do the same under VS Code.. much less step thru code using ESP-Prog.
@errrick
@errrick Жыл бұрын
I had bought this rotary screen like the nest thermostat that includes a ESP32 S3 inside, for which they expose pins 19 and 20 plus GND (no 5V though. you have to power through another USBC port that is NOT meant for programming!) the serial port gets detected on my PC with the custom USB cable I soldered, but I cannot get any activity to happen with it, meaning I can't upload any new sketch or launch the serial monitor. I have for the life of me tried everything, and I just believe these chinese folks have forgotten something (there is no documentation anywhere but a youtube video where they prompt you to use their tools instead of good ol arduino). do you know what I could be forgetting for the serial connection to work ?
@starlingwatch3921
@starlingwatch3921 Жыл бұрын
One thing to check is the fuse for USB_OTG. Switch the internal USB PHY to work with USB_OTG peripheral instead of USB_SERIAL_JTAG by burning USB_PHY_SEL eFuse. Details are at docs.espressif.com/projects/esp-idf/en/latest/esp32s3/api-guides/usb-otg-console.html. -Frank
@starlingwatch3921
@starlingwatch3921 Жыл бұрын
And, the long-form discussion of USB_OTG is at www.reddit.com/r/esp32/comments/140nc29/esp32_usb_is_frustrating_try_jcusb_for_s3_usb_cdc/
@inF1704
@inF1704 8 күн бұрын
You don´t need a special cable! You just need a simple usb-c or usb2.0 cable and the D+ and D- pins must have a connection to gpio 19 and 20 at the esp32-s3 for JTAG debugging. Your confusion starts with using Arduino IDE
@starlingwatch3921
@starlingwatch3921 7 күн бұрын
For those of us starting with an ESP32-S3 development board with USB C and pins 19 and 20 correctly used, there's nothing wrong with using Arduino IDE. Getting to the right board and USB configuration - with so many dev boards to choose from - isn't as easy as it could be. And in my case where I created my own dev board, it was long and error prone. My work is open-source at github.com/frankcohen/ReflectionsOS
@emaayan
@emaayan Жыл бұрын
S2 and c3 are legacy? News to me, as far i understand c3 is considered a replacment for esp8266 and s2 is considered and upgrade for regular esp32
@starlingwatch3921
@starlingwatch3921 Жыл бұрын
Unless your project is extremely price sensitive, there is no reason to go with S2 or C3. Just go with S3 and be happy! Honestly, Espressif's adventures into all of these variations seems foolish to me and I wish they would just stop it and have one chip that does it all. For example, an S3 that does Bluetooth classic until they support BLE 5 (including the A2DP standard for streaming audio).
@starlingwatch3921
@starlingwatch3921 Жыл бұрын
ESP32 is the replacement for ESP8266, S2 is a less expensive version of ESP32 with the major compromise that you only have 1 processor and BLE, which is not as functional as Bluetooth classic. Major reasons to stay away from S2
@bobert4522
@bobert4522 Жыл бұрын
@@starlingwatch3921 More than likely, the other variations from the S3 are products which have been binned for faulty silicon. It's how they can get rid of partially faulty products at a lower cost. Intel does this with their processors. They are the same silicon wafer, but they disable faulty cores and bin it as a lower spec product.
@scottduckworth3299
@scottduckworth3299 Жыл бұрын
C3 is not legacy, and certainly is not faulty silicon from the S3 fab since it uses a different ISA. The S3 is a fine default choice for many projects, but the others in the esp32 family do have benefits. I recently chose to use the C3 over the S3 for its lower power consumption in deep sleep for a battery powered project. The C6 has some exciting IoT protocols not offered by other esp32 family devices. As with most things, there are many options with tradeoffs.
@frankcohen8662
@frankcohen8662 Жыл бұрын
@@scottduckworth3299 Thanks, glad to know about the C3 low power consumption... though, that's my point, why would there be a difference in sleep power consumption between processors. That's yet another option with tradeoffs to track. These tradeoffs are a huge problem for Espressif technology.
@emaayan
@emaayan Жыл бұрын
I'm kinda confused, no package manager? As far as i know both arduino ide and platform io includes a package manager Also freertos only exists in esp not arduino.
@starlingwatch3921
@starlingwatch3921 Жыл бұрын
Sorry for the confusion I caused. I'm saying that there's no package manager for either. That is a big problem for anyone working on an Arduino project
@starlingwatch3921
@starlingwatch3921 Жыл бұрын
FreeRtos is for most of the Arduino boards. A good tutorial is at wiki.seeedstudio.com/Software-FreeRTOS/
@starlingwatch3921
@starlingwatch3921 Жыл бұрын
An IoT package manager would include downloading libraries to the flash memory on-board and provide an easy way to dynamic loading, so that the only thing you're uploading to the processor is the sketch. It would do security to make sure the libraries are real, and handle automatic updates on a policy basis.
@thorntontarr2894
@thorntontarr2894 Жыл бұрын
@@starlingwatch3921 the link you provide ONLY shows several Seeedstudio boards NONE of the Arduino boards are shown. I have found that the ESP32 boards do operate with FreeRTOS.
@startobytes
@startobytes 8 ай бұрын
could you please upload in 1080p and not 480p ?
@fromgermany271
@fromgermany271 5 ай бұрын
The terrible C language of Arduino is in fact C++ and in typical setups even with moderate modern language versions. C++14 or even C++17 But in fact the Arduino libraries are more examples a horrible mixture of C and C++ featuring the worst of both worlds.
@fromgermany271
@fromgermany271 5 ай бұрын
Andreas Spiess is pronounced like his name would be written Speece I know that the i misleads English natives, but in fact what you said would be written Speiss in German. Just try to see „ee“ whenever you recognize an „ie“ in a German word. That’s even true for the Swiss version 😅
@starlingwatch3921
@starlingwatch3921 5 ай бұрын
Thanks! I adore Andreas and now I cringe about how badly I pronounced his name. He sat down with me for coffee and I will vouch for how deep his intellect goes. Merci vilmal.
@henrycheung6960
@henrycheung6960 Жыл бұрын
C3 is not a legacy, it is an ESP8266 replacement and it is different from the rest of ESP as it is based on riscv. If based on your logic, then S3 is also legacy because it is eventually will shift to riscv base instead of based on Xtensa. "C is a terrible language", only if one don't want to lean the language...
@frankcohen8662
@frankcohen8662 Жыл бұрын
Thanks for reminding me C3 is riscv and S3 is Xtensa. That's my point though, why would they be different at all? Just more for each of us to track. And, C was fine back in the 1970's, and even then I liked Fortran a whole lot more. It's time to retire C/C++ -Frank
@MrSoopah
@MrSoopah 11 ай бұрын
Many of the ESP32-S3 comments about USB are plain wrong. You don’t have to press any buttons to update firmware and restart the processor. The processors have at least 4GB of flash, without SD card. C3 and also s2 are absolutely not legacy, they are the better choice for many projects. Also, C is one of the best languages for close to the metal programming.
@starlingwatch3921
@starlingwatch3921 11 ай бұрын
Using the integrated USB JTAG on ESP32-S3 you don't need to press the boot/reset buttons, other ESP32s have a variety of button pushing needs. My project is a media-player, so 4GB of flash is fine for the program space and I use NAND (basically an SD card in a SMT package) to store movie and audio files in the 100+ Gbyte levels. Have you found a way to use your own flash memory instead of the integrated one? C3 and S2 are hobbled by 1 processor and other compromises - for more money I get the full S3 (minus Bluetooth Classic) and none of the compromises, that's why I see S2 and C3 as legacy. C and C++ were fine 20 years ago, they suck today by comparison to Python, Node, Rust, Go, Flowgo, etc.
@chrisalexthomas
@chrisalexthomas 4 ай бұрын
I think you mean 4MB, not 4GB
@MrSoopah
@MrSoopah 4 ай бұрын
@@chrisalexthomas Of course.
@tweebs1
@tweebs1 11 ай бұрын
Confused... Arduino platfrom is an educational tool and is evolving...
@starlingwatch3921
@starlingwatch3921 11 ай бұрын
Arduino as a platform has progressed. It's more than an educational tool. It is widely known by a community of users, the tooling comes from multiple organizations, it is open-source and has many stake holders and participants, and parts manufacturers normally provide drivers and examples in Arduino compatible forms. -Frank
@thorntontarr2894
@thorntontarr2894 Жыл бұрын
@9:39 you show the boards parameters in Arduino 1.8.19 (not 2.1.xX) but the image is so badly out of focus that the selections you claim are what you use are NOT available to the KZbin Viewer. Should you not have clearly displayed these selections or shown a link to your github page for them? Regarding JTAG debugging, you don't show how that is done in Arduino 2.1.x; again a link to your github? Maybe I should just go there and have a look.
@starlingwatch3921
@starlingwatch3921 Жыл бұрын
I'm sorry about the out of focus screen shot. The settings are these: USB CDC Enabled on boot, Core Debug Level error, USB DFU on boot disabled, JTAG Adaptor integrated USB JTAG, Upload mode UART/Hardware CDC, USB Mode Hardware cdc and JTAG. The screen shot is from Arduino IDE 2.1 Nightly Build (and not 1.8.19). I'm on a Mac and I don't think the Arduino IDE team has updated the drop-down menus. Here is the doc on my repository github.com/frankcohen/ReflectionsOS/blob/main/Docs/JCUSB%20using%20JTAG%2C%20CDC%2C%20USB%20for%20debugging.md I am glad for your edits and improvements. Thanks! -Frank
@thorntontarr2894
@thorntontarr2894 Жыл бұрын
@@starlingwatch3921 Many thanks for prompt reply. I did find in your github all the info clearly displayed - sorry I should have done that first before commenting. Have you completed debugging using Arduino IDE and your custom cable? Perhaps some step by step instructions to get it up and running. I have used PlatformIO and ESP-PROG tool to debug an ESP32 Dev (WROOM) system.
@starlingwatch3921
@starlingwatch3921 Жыл бұрын
@@thorntontarr2894 thanks I'm glad it was helpful. Yes the debugging works, and I use it often. Most of the time I'm using it when I want to do some inspection of variables, instead of writing print statements to the serial monitor. It's kind of pokey slow though. Still useful. I have my hands full in hardware designs at the moment, once I clear them I'll put together a video demonstrating it all working together
@thorntontarr2894
@thorntontarr2894 Жыл бұрын
@@starlingwatch3921 Again, thanks. Delays for real work are important; I can wait. I have also found that debugging is very slow, watching variables is useful. I find that single step sequencing the most powerful, called "step over (F5 I think) as it shows my "faulty" logical design. Arduino 2.1.x describes debugging for its MRK series boards but requires an expensive external device which you show with the custom cable and esp32 settings should be able to do. Till then.
@thorntontarr2894
@thorntontarr2894 Жыл бұрын
OK, I kept going with your input and success!! I prepared a custom cable and selected in 'tools' the variables you show in the github page. Success!! Most Impressive this information you provided to me; I would NOT have made it, most likely at all, without your help. Yes, the debugging is quite clunky and with FreeRTOS running it is even more difficult to 'watch variables' but I do love adding breakpoint and single stepping over or into a section of code. I really think that JTAG debugging as implemented is of limited utility especially as I write lots of code using interrupts for real hardware control. Again, I am very grateful for your help and knowledge. cheers.
@dng88
@dng88 8 күн бұрын
Not sure the point of this video.
@starlingwatch3921
@starlingwatch3921 7 күн бұрын
If you found JTAG over USB easy, and C/C++ as effective and easy to learn, then more power to you! -Frank
@isquare-h9t
@isquare-h9t Ай бұрын
Are you serious… "C is a terrible language" what the hell kind of a programmer are you..? Here is how terrible it is, I have an ESP32-S3 using a 1 TB HDD as easily as Windows uses File Manager. This code is written 100% in C and C++, so is the RTOS that I wrote that manages everything else in the application. Don’t blame languages for your shortcomings… I bet you think assembler sucks too…. WOW DUDE WHAT THE HELL…
@starlingwatch3921
@starlingwatch3921 Ай бұрын
Who is using your C code as an API or library other than you?
@isquare-h9t
@isquare-h9t Ай бұрын
@@starlingwatch3921 My client. They are about to release 4 products into the market that have never existed before. Also, I have U.S. and foreign patents on my RTOS code and hardware designs, written strictly in C. For that code I have around 100k systems, on roughly 300k devices, running all over the world, running on dsPIC30f family. The code has been in use for just under 20 years. I develop hardware and software strictly for 1 segment of the transportation industry. I exclusively use C, C++, HTML, CSS and JS in my designs and write all my own libraries about 98% of the time. Respectfully, I think your comments are irresponsible. BTW, my RTOS is multi-user. I can run up to 5 users from a single ESP32-S3.
@isquare-h9t
@isquare-h9t Ай бұрын
@@starlingwatch3921 My reply was deleted by someone…
#261 ESP32 Line-by-line Debugging - works with many ESP32 modules
21:21
ESP32-S3 First Look + Specs!
13:14
Unexpected Maker
Рет қаралды 66 М.
«Кім тапқыр?» бағдарламасы
00:16
Balapan TV
Рет қаралды 163 М.
Я сделала самое маленькое в мире мороженое!
00:43
Кушать Хочу
Рет қаралды 2,7 МЛН
didn't manage to catch the ball #tiktok
00:19
Анастасия Тарасова
Рет қаралды 27 МЛН
小丑家的感情危机!#小丑#天使#家庭
00:15
家庭搞笑日记
Рет қаралды 26 МЛН
The Essential Details of ESP32 Hardware Debugging
37:30
Mike's Tropical Tech
Рет қаралды 10 М.
Forget WiFi! This Wireless Method is WAY Better?
12:14
GreatScott!
Рет қаралды 632 М.
Smallest Camera Module based on ESP32 S3 | XIAO ESP32S3 Sense
18:21
Cheap YD ESP32-S3 board review.
20:49
Tech-Relief
Рет қаралды 5 М.
Try these 16 Brilliant ESP32 projects!!!
11:18
ToP Projects Compilation
Рет қаралды 588 М.
C++ Debugging for the ESP32 in Visual Studio
13:46
Dave's Garage
Рет қаралды 71 М.
NEW Arduino Uno R4 Boards - Minima & WiFi
57:40
DroneBot Workshop
Рет қаралды 110 М.
«Кім тапқыр?» бағдарламасы
00:16
Balapan TV
Рет қаралды 163 М.