Board: Freenove ESP32-S3-WROOM (N16R8 - 16MB flash / 8MB Octal PSRAM), bare devkit, no display/buttons attached. Flashed via left USB-C (UART) port.
Summary:
Device never boots into the app or brings up the BruceNet AP. Serial output stops completely right after the ROM's entry line - no bootloader banner, no crash/panic message, nothing at all, on three separate firmware builds. Confirmed via esptool --chip esp32s3 --port COM3 flash_id that the chip, flash (16MB), and connection are all healthy.
What I originally hit (1.13 / 1.14 / 1.15 via official web flasher):
E (626) esp_ota_ops: not found otadata
Device never started the BruceNet AP.
Steps taken, in order:
Flashed 1.15 (stable) via bruce.computer/flasher, esp32-s3-devkitc-1 profile → otadata error above.
Full chip erase (esptool erase-flash), reflashed 1.15 → same error.
Flashed the Beta channel build (dated 2026-07-22) from the same flasher, on a freshly erased chip → no otadata error this time, but now zero output at all after:
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x1 (POWERON),boot:0x8 (SPI_FAST_FLASH_BOOT)
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce2820,len:0x10cc
load:0x403c8700,len:0xc2c
load:0x403cb700,len:0x30c0
entry 0x403c88b8
No bootloader banner, no crash dump, no further output - confirmed via PuTTY (Serial, COM3, 115200), not just the flasher's log panel, waiting 15-20+ seconds after reset.
Verified chip health directly:
esptool --chip esp32s3 --port COM3 flash_id
→ Chip detected fine, 16MB flash, PSRAM 8MB reported by eFuses. No connection/hardware issues.
Found that upstream's own partition CSVs used by the esp32-s3-devkitc-1 / esp32-s3-devkitc-1-psram envs (custom_8Mb.csv, custom_16Mb.csv) do not define an otadata partition, despite the app partition being declared as subtype ota_0 (which requires one). This looks like the real root cause of the original error.
Also noticed the board actually needs the esp32-s3-devkitc-1-psram env (which sets board_build.arduino.memory_type = qio_opi for Octal PSRAM) rather than the plain esp32-s3-devkitc-1 env, which has no PSRAM config at all.
Cloned main, added an otadata partition to custom_8Mb.csv:
# Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, 0x9000, 0x5000,
otadata, data, ota, 0xe000, 0x2000,
app0, app, ota_0, 0x10000, 0x4E0000,
spiffs, data, spiffs, 0x4F0000,0x300000,
coredump, data, coredump,0x7F0000,0x10000,
Built with:
pio run -e esp32-s3-devkitc-1-psram
Build succeeded, produced a valid merged binary (Bruce-esp32-s3-devkitc-1-psram.bin).
Full chip erase again, flashed this custom build → same exact silent hang after entry 0x403c88b8, no otadata error, no crash message, nothing.
To rule out PSRAM/hardware specifically: flashed a bare Arduino IDE sketch (Board: ESP32S3 Dev Module, PSRAM: OPI PSRAM) that just prints ESP.getPsramSize(). This booted and printed correctly:
So the chip, PSRAM (Octal, 8MB), and basic Arduino-level boot are all confirmed working.
Conclusion: Hardware and PSRAM are ruled out. The otadata partition issue is real (confirmed missing in the actual partition CSVs) and worth fixing regardless, but fixing it did not resolve the silent hang — something else in Bruce's own setup()/init path appears to hang indefinitely with zero serial output on this board/env combination, before any print statement executes and without triggering a Guru Meditation panic.
Question: Is there a known blocking call in the headless (ESP-General/esp32-s3-devkitc-1-psram) boot path - SD card init, an I2C/SPI peripheral probe, or similar - that could hang forever without a timeout on a bare board with none of those peripherals physically attached? Happy to add debug prints / bisect further if pointed at the right place in setup().
Board: Freenove ESP32-S3-WROOM (N16R8 - 16MB flash / 8MB Octal PSRAM), bare devkit, no display/buttons attached. Flashed via left USB-C (UART) port.
Summary:
Device never boots into the app or brings up the BruceNet AP. Serial output stops completely right after the ROM's
entryline - no bootloader banner, no crash/panic message, nothing at all, on three separate firmware builds. Confirmed viaesptool --chip esp32s3 --port COM3 flash_idthat the chip, flash (16MB), and connection are all healthy.What I originally hit (1.13 / 1.14 / 1.15 via official web flasher):
Device never started the BruceNet AP.
Steps taken, in order:
Flashed 1.15 (stable) via bruce.computer/flasher, esp32-s3-devkitc-1 profile →
otadataerror above.Full chip erase (
esptool erase-flash), reflashed 1.15 → same error.Flashed the Beta channel build (dated 2026-07-22) from the same flasher, on a freshly erased chip → no otadata error this time, but now zero output at all after:
No bootloader banner, no crash dump, no further output - confirmed via PuTTY (Serial, COM3, 115200), not just the flasher's log panel, waiting 15-20+ seconds after reset.
Verified chip health directly:
→ Chip detected fine, 16MB flash, PSRAM 8MB reported by eFuses. No connection/hardware issues.
Found that upstream's own partition CSVs used by the
esp32-s3-devkitc-1/esp32-s3-devkitc-1-psramenvs (custom_8Mb.csv,custom_16Mb.csv) do not define anotadatapartition, despite the app partition being declared as subtypeota_0(which requires one). This looks like the real root cause of the original error.Also noticed the board actually needs the
esp32-s3-devkitc-1-psramenv (which setsboard_build.arduino.memory_type = qio_opifor Octal PSRAM) rather than the plainesp32-s3-devkitc-1env, which has no PSRAM config at all.Cloned
main, added anotadatapartition tocustom_8Mb.csv:Built with:
Build succeeded, produced a valid merged binary (
Bruce-esp32-s3-devkitc-1-psram.bin).Full chip erase again, flashed this custom build → same exact silent hang after
entry 0x403c88b8, no otadata error, no crash message, nothing.To rule out PSRAM/hardware specifically: flashed a bare Arduino IDE sketch (Board: ESP32S3 Dev Module, PSRAM: OPI PSRAM) that just prints
ESP.getPsramSize(). This booted and printed correctly:So the chip, PSRAM (Octal, 8MB), and basic Arduino-level boot are all confirmed working.
Conclusion: Hardware and PSRAM are ruled out. The
otadatapartition issue is real (confirmed missing in the actual partition CSVs) and worth fixing regardless, but fixing it did not resolve the silent hang — something else in Bruce's ownsetup()/init path appears to hang indefinitely with zero serial output on this board/env combination, before any print statement executes and without triggering a Guru Meditation panic.Question: Is there a known blocking call in the headless (
ESP-General/esp32-s3-devkitc-1-psram) boot path - SD card init, an I2C/SPI peripheral probe, or similar - that could hang forever without a timeout on a bare board with none of those peripherals physically attached? Happy to add debug prints / bisect further if pointed at the right place insetup().