Cannot build project with qspi_opi memory type

Hello, I m new to ESP32 development and PlatformIO.

I want to build code for my ESP32-S3 xaioo seeed, but unfortunately I have an error. This error comes from my configuration file - board_build.arduino.memory_type = qspi_opi - when i set this option, build fails. Everything builds well with board_build.arduino.memory_type = opi_opi ,but this conf is not appropriate for my board.

my platformio.ini file:

[env:seeed_xiao_esp32s3]
platform = espressif32
board = seeed_xiao_esp32s3
framework = arduino
; biblioteki
lib_deps =
  espressif/esp32-camera@^2 ; ?;
  roboticsbrno/ServoESP32@^1.1.1

; wlasny schemat partycji
board_build.partitions = partitions.csv
; tryb flash
board_build.flash_mode = qio
; typ/obsługa PSRAM (json: PSRAM=opi / enabled)
board_build.arduino.memory_type = qspi_opi   ;zmiana z opi_opi na qspo_opi powoduje bledy qspi musi byc
; włącz CDC po USB (USBMode=default) + większy stos zadania kamery oraz wymuszenie C++17

build_flags =
  -DBOARD_HAS_PSRAM
  -DARDUINO_USB_MODE=1
  -DARDUINO_USB_CDC_ON_BOOT=1
  -DCONFIG_CAMERA_TASK_STACK_SIZE=8192
  -std=gnu++17

build_unflags = -std=gnu++11

my error message:

I don’t know how to handle this and why changing memory type ruins the build.

Thank you in advance :slight_smile:

Solved!

After using this command:

$ ls -la “$HOME/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s3”

Present memory-layout folders are shown:

  • dio_opi
  • dio_qspi
  • opi_opi
  • opi_qspi
  • qio_opi
  • qio_qspi

qspi_opi doesn’t actually exist as a valid Arduino-ESP32 memory type. The correct naming scheme is <flash_io>_<psram_bus>, where dio/qio refers to the Dual/Quad I/O mode of the QSPI flash, and qspi/opi refers to the interface type of the PSRAM. For the Seeed XIAO ESP32-S3, the board uses QSPI flash (QIO) and OPI PSRAM, so the correct setting is

board_build.arduino.memory_type = qio_opi

After changing to qio_opi, cleaning and erasing the flash, everything builds and runs perfectly!

Correct. There is no such folder in

https://github.com/espressif/arduino-esp32/tree/2.0.17/tools/sdk/esp32s3

I think you mean qio_opi?

1 Like

Thank you for your reply, that was exactly the point!