UPDATE: 3/9/2023
Just got in today an Adafruit Feather S3 4 MB Flash 2 MB PSRAM. It also got the same issues with needing to use the BOOT & RESET buttons to get into LOAD mode and into RUN mode as the UM board. I am beginning to think that THIS IS a FEATURE of the S3
Don’t know when Espressif and/or Arduino are going to fix this issue as according to this Github post, this issue had been discussed since May 2022.
opened 02:01AM - 17 May 22 UTC
Chip: ESP32-S3
Status: Needs investigation
### Board
esp32s3
### Device Description
esp32s3 devkitc n8r8
### Ha… rdware Configuration
Native USB port plugged into computer, serial convert USB port not plugged in.
### Version
v2.0.3
### IDE Name
Arduino IDE, Platformio
### Operating System
Windows 10, MacOS
### Flash frequency
80MHz
### PSRAM enabled
no
### Upload speed
921600
### Description
Uploading a sketch over usb otg should reset the chip after upload, but it does not.
### Other Steps to Reproduce
- Select USB mode = USB-OTG, USB CDC on boot = enabled, Upload mode = USB OTG CDC.
- Upload sketch
- Board correctly resets into download mode using 1200 baud and uploads the sketch
- Board does not reset and run the sketch as it should, instead staying in download mode. Here you have to press the reset button manually. On S2 the board resets and runs the sketch after upload with no manual intervention.
Tested on s3 devkitc and all UnexpectedMaker s3 boards.
Notes:
- No esptool commands reset the board, on the s2 it does reset
- Esptool doesn't detect when the board was put into bootloader using IO0 as it does on s2 (WARNING: ESP32-S2FNR2 chip was placed into download mode using GPIO0)
- USB mode and upload mode set to hardware CDC resets as expected
### I have checked existing issues, online documentation and the Troubleshooting Guide
- [X] I confirm I have checked existing issues, online documentation and Troubleshooting guide.
The ESP32 C3 seemed to have similar issues but supposedly the C3’s issue was fixed/closed in Feb 2023 with Update 2.0.7.
opened 08:06PM - 27 Aug 22 UTC
closed 03:59AM - 13 Feb 23 UTC
Status: Test needed
Chip: ESP32-C3
Resolution: Awaiting response
Type: 3rd party Boards
### Board
ESP32C3 custom board
### Device Description
Custom ESP32C3 b… oard ;
The ESP32C3 is only connected to USB-C port, two 74HCT245D buffers (inputs only) and a tact switch (details below).
This ESP32C3 design block, which follows the hardware design guide, has already been used in several boards and products without issue, there is however always differences between the designs on the pullup/pulldowns presents on the various GPIOs, nontheless all designs have pullup on 2 and 8 boot strap pins, this one is no exception.
### Hardware Configuration
PIN MAP:
- 2, 3, 4, 5, 6, 7, 8, 10, 20, 21 to 74HCT245 inputs
- 9 to tact switch (no external pullup)
- 10K pullups on 2, 8 and 20
- RC reset on EN (10K pullup + 1uF to GND)
High quality 3.3V LDO with very low drop at max load and high PSRR.
Sufficient decoupling all over (100nF 50V X7R class),
Sufficient storage capacitors on the 3.3V rail with large derating (2*22uF 16V).
Ferrite bead on 5V rail plus 3.3V rail filtering as per hardware design reference.
### Version
v2.0.4
### IDE Name
Arduino
### Operating System
windows 10
### Flash frequency
80M
### PSRAM enabled
no
### Upload speed
921600 (not relevant for CDC)
### Description
- when plugged to USB, the board runs normally and the USB port is recognized normally
- when trying to program, the CDC does not manage to reset the board in programming mode, i get the follwing error
```
Connecting......................................
A fatal error occurred: Failed to connect to ESP32-C3: Wrong boot mode detected (0xc)! The chip needs to be in download mode.
```
The only way to program is to unplug, hold the tact switch (gpio9) plug USB and release tact to force PROG mode
the programming then executes normally, however it does not manage to reset and run afterwards, a manual power cycle has to be executed.
Is there another bootstrap pin causing the issue? (other than 2 and 8 which are already pulled high)
is it something with the RC reset?
It is unclear to me how only the CDC reset fails but when i cold boot (aka plug USB) the board starts in the correct RUN mode, and when i use GPIO9 it starts in the correct PROG mode.
Note :
- the board does resets briefly a few time during programming attemps, so the CDC tries to reset, but fails to set the PROG mode.
- the issue is not related to the firmware itself, as the error can be reproduced with a test firmware doing nothing else than running printf + delay in the main loop.
### Sketch
```cpp
void setup() {
Serial.begin(115200);
while(!Serial) delay(1);
printf("init\n");
}
void loop() {
printf("test\n");
delay(500);
}
```
```
### Debug Message
```plain
Connecting......................................
A fatal error occurred: Failed to connect to ESP32-C3: Wrong boot mode detected (0xc)! The chip needs to be in download mode.
```
```
### Other Steps to Reproduce
HW setup with two buffer and pullups as described will reproduce the issue
### I have checked existing issues, online documentation and the Troubleshooting Guide
- [X] I confirm I have checked existing issues, online documentation and Troubleshooting guide.
May be S3 will be fixed at the next round? Ones can always hope!
Otherwise, the Adafruit Feather S3 board is working well for me.
Also I mounted the Adafruit Feather S3 using only 1 Stacking Header and thus let the other header “float”, but the whole module is sturdy enough so far.