I just took delivery of a trio of ESP32-WROOM-32 dev boards and am unable to get micropython to run on them. I've successfully flashed sketches from the Arduino IDE, but after I flash the latest esp32spiram.bin and try to connect with Thonny, I see an endless loop of

ELF file SHA256: 46bca36b7d6020a6

ets Jul 29 2019 12:21:46

rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
mode:DIO, clock div:2
ho 0 tail 12 room 4
entry 0x40080680
E (650) psram: PSRAM ID read error: 0xffffffff
E (651) spiram: SPI RAM enabled but initialization failed. Bailing out.
E (652) spiram: SPI RAM not initialized
Re-enable cpu cache.

abort() was called at PC 0x400d3ea6 on core 0

Backtrace:0x400964a9:0x3ffe3b60 0x40096a99:0x3ffe3b80 0x4009a355:0x3ffe3ba0 0x400d3ea6:0x3ffe3c10 0x400d3ef7:0x3ffe3c30 0x400825ee:0x3ffe3c50 0x40081e1b:0x3ffe3c70 0x40078f5c:0x3ffe3c90 |<-CORRUPTED

Can anyone suggest what I might be doing wrong?

  • 1
    Are you sure the board you're trying to flash to has PSRAM? This error makes it look like it doesn't. Have you tried to flash a binary that doesn't require PSRAM?
    – romkey
    Commented Apr 7, 2023 at 22:40
  • 1
    @romkey I'm actually not sure of anything. My only previous experience is with the FreeNove WROVER starter kit. Your question pointed me exactly at the solution; would you like to post an answer or shall I? Commented Apr 8, 2023 at 2:55
  • Awesome, glad that fixed it. I added it as an answer. Thanks!
    – romkey
    Commented Apr 9, 2023 at 3:48
  • @DarwinvonCorax that’s actually the main difference between WROVER and other ESP32 modules: the former has SPI PSRAM included, the others don’t.
    – jcaron
    Commented Apr 9, 2023 at 13:24

2 Answers 2


The messages

E (650) psram: PSRAM ID read error: 0xffffffff
E (651) spiram: SPI RAM enabled but initialization failed. Bailing out.

indicate that the firmware is looking for PSRAM (SPI RAM) but not finding it, so it exits.

Unfortunately MicroPython can't take advantage of PSRAM if it's there and run okay if it's not. The solution is to use a version of the firmware built without PSRAM support.


I was facing the same issue, trying various Micropython versions with my ESP32 WROOM chip.

Micropython's download page for the appropriate ESP Firmware makes it clear they support SPIRAM / PSRAM:

This firmware supports configurations with and without SPIRAM (also known as PSRAM) and will auto-detect a connected SPIRAM chip at startup and allocate the MicroPython heap accordingly. However if your board has Octal SPIRAM, then use the "spiram-oct" variant.

Only after looking at the ESP32-S3-WROOM Datasheet, I realized that there are packages without PSRAM, and that the one sitting on my desk was one of them (ESP-S3-WROOM-1-N16).

ESP32-S3-WROOM-1 Series Comparison

After erasing and re-flashing the Firmware, I am now able to use Micropython on the ESP32 with the 512KB of internal RAM (the warnings still appear, however).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.