How do you set up a new board ESP32-S3 N16R8

Really helpful post Richard, I can upload and debug my S3 dev kit module. Three problems remain: if I add debug_init_break = tbreak setup to the .ini file the debugger fails to start and without this command the debugger starts, but in an arbitrary place in the file C:\Users\Steven.platformio\packages\framework-arduinoespressif32\cores\esp32\main.cpp, which is not my source file, that is located at E:\Users\Steven\Documents\GitHub\PlatformIO\N16R8V\src\main.cpp. I can click continue and execution will stop in my code if I have set a breakpoint. Also the debugger always stops two lines after where the breakpoint is set. Have you managed to overcome any of these issues?

The connector marked USB produces two interfaces, one is a JTAG port the other is a COM port e.g. COM3 on my PC. The other connector marked COM is just the usual USB to serial chip, which again produces a COM port e.g. COM4 on my PC. Unless overridden in the .ini file the PIO upload uses COM3, but you could change it using e.g. upload_port = COM4. I connect both USB-C connectors to my PC and leave it to PIO to do its thing.

Hi, Wanted to say thanks, setting my code to use serial0 enabled my serial coms to function via the CH343p

thank you very much!

Maybe this’ll help other folks like me that aren’t interested in long form answers to simple questions:
Assumes you’ve managed to get esptool to work with your device.

Ask chatgpt to look for boards here: platform-espressif32/boards at develop · platformio/platform-espressif32 · GitHub
that match the data output by esptool. It found a match almost immediately.
Exercise due diligence of course.

Unfortunately chatgpt did not tell you that there is no suitable board manifest for the asked ESP32-S3-N16R8!

Either you use a suitable boards manifest with the right settings like this or you use the default esp32-s3-devkitc-1 and make the necessary settings in platformio.ini:

[env:esp32-s3-devkitc-1]
platform = espressif32
board = esp32-s3-devkitc-1
framework = arduino
board_build.arduino.memory_type = qio_opi
board_build.flash_mode = qio
board_build.prsam_type = opi
board_upload.flash_size = 16MB
board_upload.maximum_size = 16777216
board_build.extra_flags = 
  -DBOARD_HAS_PSRAM

Please do not rely on chatgpt!

Good advice, but they (LLM’s) do quickly help me narrow things down and get me going in the right direction, hence the “Exercise due diligence of course.” in my previous post

1 Like

Good evening,
did anybody successfully ran this board with the tft_espi library with the GC9A01-display?
many thanks in advance!

Please create a new topic for that, along with your current try.

Thanks to help by sivar2311 the root cause could be identified:
An Arduino version change was the problem.

As sivar2311 pointed me to: Until version 6.6.0 (Arduino 2.0.14) everything seems running well. Of Version 6.7.0 (Arduino 2.0.16) chrashes occurred.

The solution: Additional build flag “USE_HSPI_PORT ” solves the problem.

Many, many thanks to all contributors in this forum!

Hi sivar2311,

I am also playing around with this board and the esp32-s3-devkitc1-n16r8.json works quite good. But as we use an automatic build process on github, I have to use the esp32-s3-devkitc1.sjon defintion and to define the board parameters within the platformIO.ini file.
Also this works, except to use the complete flash. Within my platformIO.ini file I have set board_build.arduino.partitions = default_16MB.csv similiar to the n16r8.json file. But unfortenutely the ESP32-S3 crashes with this, while using the esp32-s3-devkitc1-n16r8.json the complete flash can be used.

For now I do not know the reason, do you (or anybody else) have an idea?

Thanks and regards

Ralf

Hi @elral !

Fortunately, I have collected appropriate settings for almost all ESP32-S3 modules based on the ESP32-S3-DevKitC in a repository: ESP32-S3 PlatformIO Flash and PSRAM configurations

ESP32-S3-WROOM-1 N16R8
ESP32-S3-WROOM-2 N16R8V

I hope this will help you.

Hi @sivar2311 ,

thanks for the great overview!

These are exactly the build parameters I use.

But the ESP32 crashes if board_build.arduino.partitions = default_16MB.csv is set.
Without using it I have Flash: [==========] 99.6% (used 3327833 bytes from 3342336 bytes).
If I use the above mentioned esp32-s3-devkitc1-n16r8.json I get Flash: [===== ] 50.8% (used 3327833 bytes from 6553600 bytes). And as far as I see the only difference is "partitions": "default_16MB.csv" inside the json file which does not work if set in the platformio.ini file…

I had no issues with default_16MB partition layout.

Strange, strange.
Does not work for me…