Description
Board
ESP32-S3
Device Description
ESP32-S3-DevKitC-1-N8R8 as described in https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/hw-reference/esp32s3/user-guide-devkitc-1.html#ordering-information
Hardware Configuration
Default "official" development board, 8MB PSRAM, 8MB Flash
Version
latest development Release Candidate (RC-X)
IDE Name
Arduino IDE
Operating System
Linux, Fedora 36 x86_64
Flash frequency
80Mhz
PSRAM enabled
yes
Upload speed
921600
Description
The board is a ESP32-S3-DevKitC-1-N8R8 from Espressif. This board is supposed to have: 8MB SPI RAM, 8MB flash storage. The latter is supposedly confirmed if I run esptool.py with the --flash-size detect option:
python /home/alex/.arduino15/packages/esp32/tools/esptool_py/3.3.0/esptool.py \
--chip esp32s3 \
--port /dev/ttyUSB0 \
--baud 921600 \
--before default_reset \
--after hard_reset \
write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect \
0x0 build/ybx-blinktest.ino.bootloader.bin \
0x8000 build/ybx-blinktest.ino.partitions.bin \
0xe000 /home/alex/.arduino15/packages/esp32/hardware/esp32/2.0.3/tools/partitions/boot_app0.bin \
0x10000 build/ybx-blinktest.ino.bin \
0x670000 build/ybx-blinktest.spiffs
esptool.py v3.3-dev
Serial port /dev/ttyUSB0
Connecting....
Chip is ESP32-S3
Features: WiFi, BLE
Crystal is 40MHz
MAC: 7c:df:a1:e3:c5:20
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Auto-detected Flash size: 8MB
Flash will be erased from 0x00000000 to 0x00003fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000e000 to 0x0000ffff...
Flash will be erased from 0x00010000 to 0x0010afff...
Flash will be erased from 0x00670000 to 0x007fffff...
Under Arduino-ESP32 v2.0.3, if I choose Flash Size: "4MB (32 Mb)"
and Partition Scheme: "Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)"
, the sketch can boot correctly when uploaded. With same Arduino-ESP32 version, if I choose Flash Size: "8MB (64 Mb)"
BUT keep the 4MB partition scheme, it still works correctly. However, if I then keep the 8MB flash size and choose Partition Scheme: "8M Flash (3MB APP/1.5MB FAT)"
, the board enters a reboot loop:
14:39:29.661 -> ESP-ROM:esp32s3-20210327
14:39:29.661 -> Build:Mar 27 2021
14:39:29.661 -> rst:0x3 (RTC_SW_SYS_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
14:39:29.661 -> Saved PC:0x403bb22e
14:39:29.661 -> SPIWP:0xee
14:39:29.661 -> mode:DIO, clock div:1
14:39:29.661 -> load:0x3fcd0108,len:0x43c
14:39:29.661 -> load:0x403b6000,len:0xbd0
14:39:29.661 -> load:0x403ba000,len:0x29c8
14:39:29.661 -> entry 0x403b61d8
14:39:29.661 -> ESP-ROM:esp32s3-20210327
14:39:29.661 -> Build:Mar 27 2021
14:39:29.661 -> rst:0x3 (RTC_SW_SYS_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
14:39:29.661 -> Saved PC:0x403bb22e
14:39:29.661 -> SPIWP:0xee
14:39:29.661 -> mode:DIO, clock div:1
14:39:29.661 -> load:0x3fcd0108,len:0x43c
14:39:29.661 -> load:0x403b6000,len:0xbd0
14:39:29.661 -> load:0x403ba000,len:0x29c8
14:39:29.661 -> entry 0x403b61d8
14:39:29.663 -> ESP-ROM:esp32s3-20210327
14:39:29.663 -> Build:Mar 27 2021
14:39:29.663 -> rst:0x3 (RTC_SW_SYS_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
14:39:29.663 -> Saved PC:0x403bb22e
14:39:29.663 -> SPIWP:0xee
14:39:29.663 -> mode:DIO, clock div:1
14:39:29.663 -> load:0x3fcd0108,len:0x43c
14:39:29.663 -> load:0x403b6000,len:0xbd0
14:39:29.663 -> load:0x403ba000,len:0x29c8
14:39:29.663 -> entry 0x403b61d8
With Arduino-ESP32 2.0.4, the situation is worse. No matter what combination of flash size and partition I choose, I get the reboot loop. Of course, I do not test a 4MB flash size with an 8MB partitioning.
HOWEVER... if I flash the 2.0.4 with the 4MB partitioning and either the 4MB or 8MB flash size, and I then carefully flash the 2.0.3 bootloader at the correct address, the board is then able to boot correctly:
$ python /home/alex/.arduino15/packages/esp32/tools/esptool_py/3.3.0/esptool.py --chip esp32s3 --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect 0x0 /home/alex/.arduino15/packages/esp32-alternatives/2.0.3/hardware/esp32/2.0.3/tools/sdk/esp32s3/bin/bootloader_qio_80m.bin
esptool.py v3.3-dev
Serial port /dev/ttyUSB0
Connecting....
Chip is ESP32-S3
Features: WiFi, BLE
Crystal is 40MHz
MAC: 7c:df:a1:e3:c5:20
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Auto-detected Flash size: 8MB
Flash will be erased from 0x00000000 to 0x00003fff...
Compressed 14896 bytes to 10242...
Wrote 14896 bytes (10242 compressed) at 0x00000000 in 0.4 seconds (effective 307.0 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
This points me at the 2.0.4 bootloader as the one containing the reboot bug.
Sketch
/* Any sketch will work, as this is not sketch related */
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
Debug Message
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x7 (TG0WDT_SYS_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
Saved PC:0x400454d5
SPIWP:0xee
mode:QIO, clock div:2
load:0x3fce3808,len:0x43c
ets_loader.c 78
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x7 (TG0WDT_SYS_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
Saved PC:0x400454d5
SPIWP:0xee
mode:QIO, clock div:2
load:0x3fce3808,len:0x43c
ets_loader.c 78
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x10 (RTCWDT_RTC_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
SPIWP:0xee
mode:QIO, clock div:2
load:0x3fce3808,len:0x43c
ets_loader.c 78
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x7 (TG0WDT_SYS_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
Saved PC:0x400454d5
SPIWP:0xee
mode:QIO, clock div:2
load:0x3fce3808,len:0x43c
ets_loader.c 78
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x7 (TG0WDT_SYS_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
Saved PC:0x400454d5
SPIWP:0xee
mode:QIO, clock div:2
load:0x3fce3808,len:0x43c
ets_loader.c 78
Other Steps to Reproduce
I have found #6803 while searching for similar bugs. The comments make me think some of the commenters are suffering the same symptoms as I do. For example, #6803 (comment). However, I really am careful of not attempting a 8MB partitioning on a 4MB configuration, and this does not explain the reboot loop with 4MB flash/4MB partitioning anyway. As I am not using PlatformIO, the comments suggesting board definition fixes do not appear to be relevant.
From this comment: #6803 (comment) it seems that at least one other has identified a bootloader regression for ESP32-S3.
I have checked existing issues, online documentation and the Troubleshooting Guide
- I confirm I have checked existing issues, online documentation and Troubleshooting guide.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status