The -mfix-esp32-psram-cache-issue flag is only for ESP32 chips, as mentioned here; you can see the list of chips affected in the PDF linked in the paragraph.
The psram component takes care of adding flags for arduino & esp-idf as can be seen here.
It seems however to be missing the memory_type flag for arduino…
I also had to update versions; I couldn’t get rid of boot loop errors otherwise. I used static ones instead of latest to avoid jumping automatically in the future.
I ended up with a config like this:
esphome:
platformio_options:
board_build.arduino.memory_type: qio_opi
board_upload.maximum_ram_size: 524288
esp32:
board: esp32-s3-devkitc-1
variant: esp32s3
flash_size: 16MB
partitions: "/config/esphome/custom_16MB.csv"
framework:
type: arduino
version: 2.0.14
platform_version: 6.4.0
psram:
mode: octal
speed: 80MHz
The custom partitions file is the default 16MB one from arduino-esp32. It fixes the core_dump errors you will get if not set.
It’s quite a lot of changes in the background, but it appears to be working, as you can see in the screenshot below:
PS: In case you have a non-working RGB LED (GPIO48) with those N16R8 boards, check this out.
EDIT: A couple of days later… I can confirm this is working just as well as the recommended version up until now! I also confirmed the PSRAM is being used by components (audio in my case), although it does seem to be a bit “underutilized”, probably because the codebase hasn’t caught up with the amounts of PSRAM available on newer boards.
