ESP32S configuration error

Hello. Coding my hexapod robot in Platformio. ESP32 S-2 board is detected in port and code passes compiler but does not upload. Error: “a fatal error occurred: failed to write to target ram (result was 01070000: operation timed out) esp32 s3”. GitHub link and configuration file below.

Platformio.ini file:

; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; Redirecting...

[env:stable]
platform = espressif32
board = esp32-s3-devkitc-1
framework = arduino
lib_deps =
GitHub - espressif/arduino-esp32: Arduino core for the ESP32
madhephaestus/ESP32Servo@^1.1.2
xreef/PCF8574 library@^2.3.7


Hi Jason!

The freenove board requires different settings for memory type / flash mode and psram type than the esp32-s3-devkitc-1

"memory_type": "dio_opi"
"flash_mode": "dio"
"psram_type": "opi"

An easy way would be to use the board definition freenove-esp32-s3-n8r8 from my GitHub repository - See

Thank you for the response :pray: Unfortunately, I can’t seem to get any board at all to work. I have tried many boards. I either receive this

output log: UnknownBoard: Unknown board ID ‘freenove_esp32_s3_wroom’

Or this

Error received upon uploading: A fatal error occurred: Failed to write to target RAM (result was 01070000: Operation timed out)’

The good news is, I believe I know what I am doing wrong. I think I was supposed to create a boards dir with a .json file inside it. Should the json file contain the configurations you sent me? I did not do that.

Current platformio.ini file:

; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; Redirecting...

[env:stable]
platform = espressif32
board = freenove_esp32_s3_wroom
framework = arduino
lib_deps =
GitHub - espressif/arduino-esp32: Arduino core for the ESP32
madhephaestus/ESP32Servo@^1.1.2
xreef/PCF8574 library@^2.3.7

build_flags =
-D ARDUINO_ESP32S3_DEV
-D ARDUINO_RUNNING_CORE=1
-D ARDUINO_EVENT_RUNNING_CORE=1
-D BOARD_HAS_PSRAM

upload_speed = 921600

board_build.arduino.ldscript = esp32s3_out.ld
board_build.arduino.partitions = default_8MB.csv

board_build.core = esp32
board_build.f_cpu = 240000000L
board_build.f_flash = 80000000L
board_build.flash_mode = dio
board_build.psram_type = opi
board_build.memory_type = dio_opi

board_build.hwids = 0X303A:0x1001

board_connectivity = wifi, bluetooth

board_debug.default_tool = esp-builtin
board_debug.onboard_tools = esp-builtin
board_debug.openocd_target = esp32s3.cfg

board_frameworks = arduino, espidf

board_name = Freenove ESP32-S3 WROOM N8R8 (8MB Flash / 8MB PSRAM)
board_upload.flash_size = 8MB
board_upload.maximum_ram_size = 327680
board_upload.maximum_size = 8388608
board_upload.require_upload_port = true
board_upload.speed = 921600

board_url = GitHub - Freenove/Freenove_ESP32_S3_WROOM_Board: Apply to FNK0085
board_vendor = Freenove

Thank you again!

Your platformio.ini is wrong on multiple points!

Use the feenove-esp32-s3-n8r8.json from my github repo.

Either you create a boards dir inside your project dir and copy the file there or you copy the file in a global boards dir as described in my repo.

Then in your platformio.ini all you need is

[env:stable]
platform = espressif32
board = feenove-esp32-s3-n8r8
framework = arduino
lib_deps =
  madhephaestus/ESP32Servo@^1.1.2
  xreef/PCF8574 library@^2.3.7

Okay, I thought so. I usually preselect a board already made in platformio. I just found out yesterday that I can create a new board configuration file myself. I will test out your code. Thank you!