Question/Issue:
I get the following panic during the run_classification() step using the Arduino framework on a Seeed Studio XIAO ESP32-S3 Sense board. This is my first project here so I suspect I could be doing something wrong. I have not been able to narrow it down, except that by changing some lines in ei_malloc() I can get past this error, but run into the same error later on in the execution. I am generally following the Seeed Studio tutorial on image classification for the board.
==============
Guru Meditation Error: Core 1 panic'ed (StoreProhibited). Exception was unhandled.
Core 1 register dump:
PC : 0x40380c55 PS : 0x00060e33 A0 : 0x80380121 A1 : 0x3fcebb40
A2 : 0x3c177b54 A3 : 0x00000010 A4 : 0x00000014 A5 : 0x00000008
A6 : 0x3fcebd48 A7 : 0x3fc9fdd0 A8 : 0x00000010 A9 : 0x3c0e0014
A10 : 0x0000001b A11 : 0x27153f27 A12 : 0x14402c14 A13 : 0x3c0e0038
A14 : 0x3c0e007c A15 : 0x402c1440 SAR : 0x0000001f EXCCAUSE: 0x0000001d
EXCVADDR: 0x14402c20 LBEG : 0x400570e8 LEND : 0x400570f3 LCOUNT : 0x00000000
Backtrace: 0x40380c52:0x3fcebb40 0x4038011e:0x3fcebb60 0x403802b3:0x3fcebb80 0x403765e2:0x3fcebba0 0x40376442:0x3fcebbd0 0x42007e03:0x3fcebbf0 0x4200419d:0x3fcebc10 0x42004605:0x3fcebcc0 0x42004706:0x3fcebce0 0x4200f4ec:0x3fcebd80 0x4037bed9:0x3fcebda0
Project ID:
austin944/austin944-project-1
Context/Use case:
Classification of Dog/Cat Images on Arduino using ESP32-S3 Camera
Summary:
ESP32-S3 panic during run-time
Steps to Reproduce:
Arduino Sketch Location:
Deploy Edge Impulse Project as Arduino Library
Upload code to Sense board using Arduino IDE 2.3.5
Expected Results:
I don’t expect a panic
Actual Results:
I get a panic
Reproducibility:
- [x ] Always
- [ ] Sometimes
- [ ] Rarely
Environment:
- Platform: Seeed Studio XIAO ESP32-S3 Sense board
- Build Environment Details: Arduino IDE 2.3.5 , Arduino Core for ESP32 v3.3.7
- OS Version: Windows 11
- Edge Impulse Version (Firmware): 1.85.1
- Edge Impulse CLI Version: [e.g., 1.5.0]
- Project Version: [e.g., 1.0.1]
-
Custom Blocks / Impulse Configuration:
Logs/Attachments:
=========== Before Setup Start ===========
Chip Info:
------------------------------------------
Model : ESP32-S3
Package : 0
Revision : 0.02
Cores : 2
CPU Frequency : 240 MHz
XTAL Frequency : 40 MHz
Features Bitfield : 0x00000012
Embedded Flash : No
Embedded PSRAM : No
2.4GHz WiFi : Yes
Classic BT : No
BT Low Energy : Yes
IEEE 802.15.4 : No
------------------------------------------
INTERNAL Memory Info:
------------------------------------------
BT Low Energy : Yes
IEEE 802.15.4 : No
------------------------------------------
INTERNAL Memory Info:
------------------------------------------
Total Size : 368208 B ( 359.6 KB)
Free Bytes : 333912 B ( 326.1 KB)
Allocated Bytes : 29048 B ( 28.4 KB)
Minimum Free Bytes: 328764 B ( 321.1 KB)
Largest Free Block: 270324 B ( 264.0 KB)
------------------------------------------
SPIRAM Memory Info:
------------------------------------------
Total Size : 8388608 B (8192.0 KB)
Free Bytes : 8386076 B (8189.5 KB)
Allocated Bytes : 140 B ( 0.1 KB)
Minimum Free Bytes: 8386076 B (8189.5 KB)
Largest Free Block: 8257524 B (8064.0 KB)
Bus Mode : OPI
------------------------------------------
Flash Info:
------------------------------------------
Chip Size : 8388608 B (8 MB)
Block Size : 65536 B ( 64.0 KB)
Sector Size : 4096 B ( 4.0 KB)
Page Size : 256 B ( 0.2 KB)
Bus Speed : 80 MHz
Flash Frequency : 80 MHz (source: 160 MHz, divider: 2)
Bus Mode : QIO
------------------------------------------
Partitions Info:
------------------------------------------
nvs : addr: 0x00009000, size: 20.0 KB, type: DATA, subtype: NVS
otadata : addr: 0x0000E000, size: 8.0 KB, type: DATA, subtype: OTA
app0 : addr: 0x00010000, size: 3264.0 KB, type: APP, subtype: OTA_0
app1 : addr: 0x00340000, size: 3264.0 KB, type: APP, subtype: OTA_1
spiffs : addr: 0x00670000, size: 1536.0 KB, type: DATA, subtype: SPIFFS
coredump : addr: 0x007F0000, size: 64.0 KB, type: DATA, subtype: COREDUMP
------------------------------------------
Software Info:
------------------------------------------
Compile Date/Time : Feb 22 2026 15:45:38
Compile Host OS : windows
ESP-IDF Version : v5.5.2-729-g87912cd291
Arduino Version : 3.3.7
------------------------------------------
Board Info:
------------------------------------------
Arduino Board : XIAO_ESP32S3
Arduino Variant : XIAO_ESP32S3
Arduino FQBN : esp32:esp32:XIAO_ESP32S3:UploadSpeed=921600,USBMode=hwcdc,CDCOnBoot=default,MSCOnBoot=default,DFUOnBoot=default,UploadMode=default,CPUFreq=240,FlashMode=qio,FlashSize=8M,PartitionScheme=default_8MB,DebugLevel=verbose,PSRAM=opi,LoopCore=1,EventsCore=1,EraseFlash=none,JTAGAdapter=default
============ Before Setup End ============
[ 762][V][esp32-hal-periman.c:251] perimanClearBusDeinit(): Deinit function for type UART_RX (2) cleared
[ 763][V][esp32-hal-periman.c:251] perimanClearBusDeinit(): Deinit function for type UART_TX (3) cleared
[ 763][V][esp32-hal-periman.c:251] perimanClearBusDeinit(): Deinit function for type UART_CTS (4) cleared
[ 763][V][esp32-hal-periman.c:251] perimanClearBusDeinit(): Deinit function for type UART_RTS (5) cleared
[ 764][V][esp32-hal-periman.c:160] perimanSetPinBus(): Pin 44 successfully set to type UART_RX (2) with bus 0x3fc95ec0
[ 764][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_RX (2) successfully set to 0x4200f324
[ 765][V][esp32-hal-periman.c:160] perimanSetPinBus(): Pin 43 successfully set to type UART_TX (3) with bus 0x3fc95ec0
[ 765][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_TX (3) successfully set to 0x4200f240
[ 766][I][esp32-hal-periman.c:141] perimanSetPinBus(): Pin 19 already has type USB_DM (45) with bus 0x3fc9c56c
[ 766][I][esp32-hal-periman.c:141] perimanSetPinBus(): Pin 20 already has type USB_DP (46) with bus 0x3fc9c56c
Edge Impulse Inferencing Demo
Camera initialized
Starting continuous inference in 2 seconds...
=========== After Setup Start ============
INTERNAL Memory Info:
------------------------------------------
Total Size : 368208 B ( 359.6 KB)
Free Bytes : 310500 B ( 303.2 KB)
Allocated Bytes : 52076 B ( 50.9 KB)
Minimum Free Bytes: 310500 B ( 303.2 KB)
Largest Free Block: 258036 B ( 252.0 KB)
------------------------------------------
SPIRAM Memory Info:
------------------------------------------
Total Size : 8388608 B (8192.0 KB)
Free Bytes : 8000724 B (7813.2 KB)
Allocated Bytes : 385348 B ( 376.3 KB)
Minimum Free Bytes: 8000724 B (7813.2 KB)
Largest Free Block: 7995380 B (7808.0 KB)
------------------------------------------
GPIO Info:
------------------------------------------
GPIO : BUS_TYPE[bus/unit][chan]
--------------------------------------
19 : USB_DM
20 : USB_DP
43 : UART_TX[0]
44 : UART_RX[0]
============ After Setup End =============
Before buffer alloc
After buffer alloc
Got buffer
Got capture
Start classification
Guru Meditation Error: Core 1 panic'ed (StoreProhibited). Exception was unhandled.
Core 1 register dump:
PC : 0x40380c55 PS : 0x00060e33 A0 : 0x80380121 A1 : 0x3fcebb40
A2 : 0x3c177b54 A3 : 0x00000010 A4 : 0x00000014 A5 : 0x00000008
A6 : 0x3fcebd48 A7 : 0x3fc9fdd0 A8 : 0x00000010 A9 : 0x3c0e0014
A10 : 0x0000001b A11 : 0x27153f27 A12 : 0x14402c14 A13 : 0x3c0e0038
A14 : 0x3c0e007c A15 : 0x402c1440 SAR : 0x0000001f EXCCAUSE: 0x0000001d
EXCVADDR: 0x14402c20 LBEG : 0x400570e8 LEND : 0x400570f3 LCOUNT : 0x00000000
Backtrace: 0x40380c52:0x3fcebb40 0x4038011e:0x3fcebb60 0x403802b3:0x3fcebb80 0x403765e2:0x3fcebba0 0x40376442:0x3fcebbd0 0x42007e03:0x3fcebbf0 0x4200419d:0x3fcebc10 0x42004605:0x3fcebcc0 0x42004706:0x3fcebce0 0x4200f4ec:0x3fcebd80 0x4037bed9:0x3fcebda0
ELF file SHA256: c9bcb369d
Rebooting...
Additional Information:
From what I can tell by inserting prints, it gets the exception from the very first execution of this line in edge-impulse-sdk/classifier/ei_run_classifier.h, line 252, inside process_impulse():
std::unique_ptr<ei_feature_t[]> raw_results_ptr(new ei_feature_t[num_results]);
If I change this line in edge-impulse-sdk/porting/espressif/ei_classifier_porting.cpp
return heap_caps_aligned_alloc(16, size, MALLOC_CAP_DEFAULT);
over to:
return aligned_alloc(16, size);
Then it gets past the unique pointer allocation without a panic, but gets a different panic later on, still inside the first invocation of process_impulse():
Guru Meditation Error: Core 1 panic’ed (StoreProhibited). Exception was unhandled.
