What video are you using? https://dronebotworkshop.com/xiao-esp32s3-sense/
What sketch are you using? CameraWebServer.ino
@noweare I ran some code with this board to check out the cable to make sure it was a data cable. Someone earlier suggested it be not be a data cable.
Here is the .ino file I'm using.
It's hard to troubleshoot stuff remotely.
The one who has the most fun, wins!
Followed Bills video about this board and the IDE compiles OK. When loading to the board it says "No serial data received" - exit status 2. After reading everything posted here, I don't find anything like this. Thanks in advance for any help.
"No serial data received" - exit status 2" usually means our computer can't properly communicate with your ESP32 board. It happens due to improper boot mode, incorrect COM port, faulty USB cable, or driver issues etc. You may need to manually press Bthe OOT/FLASH buttons or check/install drivers. Here is a thread in seedstudio regarding this particular error. You can check this out if you already have not checked it. https://forum.seeedstudio.com/t/help-a-fatal-error-occurred-no-serial-data-received-failed-uploading-uploading-error-exit-status-2/273628
I hope you will be able to correct this error. If you successfully run your current project, here is another XIAO-based project that may interest you.
I think you have the "smoking gun" link. You can't argue with Seed Studio acknowledging the problem in writing.
Hmm. However,...I'm not particularly satisfied with the descriptions of the "manual bootloader" procedure(s), There are 3 descriptions, but really only two procedures as the Seed Studio and DBWS procedures are effectively the same.
DBWS procedure:
- Unplug the USB-C cable.
- Hold down the ultra-tiny Boot button (it has a small “B” beside it)
- Insert the USB-C cable.
- Release the button.
Seed Studio procedure:
- Long press the BOOT BUTTON
- Connect the Seed Studio XIAO ESP32C3 to your computer while holding the BOOT BUTTON.
- Release it to enter bootloader mode.
Adafruit procedure:
- Have the QT Py C3 plugged in
- Press and hold down the BOOT button
- Press and release the RESET button (while the BOOT button is held down)
My issue is the effect of pressing a button on a unpowered device or powering the device when the button is pressed and not pressed. What sort of button is this? What happens if you press the button after the device is powered?
Seed Studio seems to feel its important to LONG press the unpowered BOOT BUTTON before applying power to the device while DBWS just wants the button to be pressed when power is applied. (Clearly, DBWS is technically accurate.)
The Adafruit procedure involves both buttons and is reminiscent of similar procedures on other devices.
So @ddave86, I'll have to wait for your results as to which procedure works.
As for my code review, that has mixed results as well ...
The Good News® is that I didn't find any issues with Dave's sketch other than missing files. It's essentially the same as the board example sketch and I was able to get it to successfully compile by adding the missing files (board_config.h, camera_index.h, and camera_pins.h). There are warnings but they're appear to be unrelated to this issue.
The Bad News© is the DBWS sketch fails to compile, and it appears that the CameraWebServer sketch has been changed. The DBWS code has face detection which is missing in the newer version. Also, AFAIK, the XIAO ESP32C3 doesn't have a flash LED but the DBWS camera_pins.h defines the pin which is used in the new version of the sketch. Also, there are additional files that come with the new version of the CameraWebServer sketch (partitions.csv and a ci.yaml)
sigh. very sad.
So, I need to update my list of failing DBWS sketches and add this project. We have to jump on the "Version Carousel" to find out which version of the ESP32 board manager works and when the CameraWebServer sketch changed.
I don't have that kind of energy anymore.
FWIW, I'm using
Arduino IDE version: 2.3.6
ESP32 board version: 3.3.4
Arduino-cli version: 1.3.1
The one who has the most fun, wins!
Thanks TFMcCarthy.
I used the first two manual bootloader methods and the serial monitor Says "ESP-ROM:esp43s3-20210327" ( sounds to me like a build date of the device. Then I pressed and held the boot switch and then pressed the "R" reset switch. Message said "not connected - select board..." when I released the reset switch, the serial monitor said the same "ESP-ROM" as previously. Re-compiled and reloaded. Same "ESP-ROM" message.
Is it possible to just load without recompiling every time?
I did not tell you when the XIAO_ESP32S3 file was initially loaded it pulled in app_httpd.cpp, board_config.h, camera_index.h, and camera_pins.h . Checked my Arduino IDE version - same as yours.
Under boards manager I have ESP32 board version 3.3.3 - I removed 2 others with no effect.
Arduino-cli version - I don't know how to check this.
I do not have a MicroSD card in the slot because I want to use camera by WiFI.
I set the IDE PSRAM option to OPI PSRAM.
I checked the camera_pins.h file to make sure the camera type was there. The line number where I found it was 201.
That's all I can think of. Gosh I'd like to see this working.
Cheers, Dave
I'm not sure you understanding what the problem is or the steps to try to correct it.
The problem is that the XIAO won't go into "bootload" mode in order to download a sketch from the USB into memory. Before a sketch can be run it must be written into memory. Once that is done, the MCU is reset and starts executing that sketch from memory. For some reason, the XIAO gets into a state such that it can't enter "bootload" mode and thus prevents any downloading of sketches to the XIAO. (I have a theory about this but that can wait.) Unless I'm mistaken, once the XIAO gets into this state you can't do anything with it; it's "bricked."
To correct the problem, the BOOT button is used to manually force the MCU into "bootload" mode. According to Seed Studio (and DBWS) the BOOT button must be depressed before and while power is applied to the XIAO from the USB cable. After the USB cable is connected the BOOT button is released. Supposedly this will leave the XIAO in "bootload" mode and accept a sketch download from the USB and then proceed normally.
The common wisdom is that whatever sketch you were trying to load should be set aside until you get the XIAO functioning normally. To do that you use the simplest sketch there is : the Blink sketch. Once the Blink sketch loads and runs you can try your sketch again.
I used the first two manual bootloader methods ....
sigh. We're miscommunicating. As far as I can tell you used the Adafruit procedure, which is the third one I listed. That's the one that uses both buttons. I think there are issues with that procedure but no matter.
You did try it more than once, right?
OK, so it didn't work.
Is there some reason you didn't try the other procedure(s)? If for no other reason than it's the one recommended by Dronebot #0 (a.k.a. Bill, a.k.a. @dronebot-workshop).
Be a bit more persistent.
Also note that because you're disconnected to start with the IDE serial monitor doesn't work. When you do connect the USB, the IDE might recognize the serial port and device.
But it might not. You may need to reselect the board and port in order to download the sketch. The IDE should tell you it's connected and recognizes the device before you download the sketch and then open the serial monitor. (I don't think you can without selecting a serial port.)
So, drop the Camera sketch for now and use the Blink sketch.
Try the DBWS procedure a few times with the Blink sketch.
If that works you can go back to the Camera sketch.
If it doesn't then I don't know you and was never here.
The one who has the most fun, wins!
Very sorry I've been away in hospital. Just got out. I loaded the blink sketch using the XIAO_ESP32S board on com7. It compiled and seemed to load. After I preset button, it blinks the orange light. I am able to set the blink on and blink off amount by changing the delay. I checked the serial monitor and it again displays "ESP-ROM:esp43s3-20210327" - as before. I'll try using the CameraWebServer.ino and pressing reset after it's loaded. Back in a moment.
Well, that was not it. Loads ok and last line is "Hard reseting via RTS pin".
That's enough for today. I have some ideas but I'll be back tomorrow The Good Lord Willing - 86 years young tomorrow. No party, no big deal. Christmas was by family while in was in Hospital. Worst case is I'll go back and work on some simple stuff to acquainted with terms & everything else. In case you don't hear from me Merry Christmas.
I'm having trouble loading a board now so I will start a new topic. Thanks for every one that responded.
Followed Bills video about this board and the IDE compiles OK. When loading to the board it says "No serial data received" - exit status 2. After reading everything posted here, I don't find anything like this. Thanks in advance for any help.
Did you try pressing RST button?