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

Which platform-espressif32 version do you use?

I noticed, that I see this error even when the MCU starts and seems to work properly.

ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x1 (POWERON),boot:0x8 (SPI_FAST_FLASH_BOOT)
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce3808,len:0x44c
load:0x403c9700,len:0xbd8
load:0x403cc700,len:0x2a80
entry 0x403c98d0
E (989) ledc: requested frequency and duty resolution can not be achieved, try reducing freq_hz or duty_resolution. div_param=800000
[  1113][E][esp32-hal-ledc.c:75] ledcSetup(): ledc setup failed!

The ledc is probably caused due to my code. I see this also for esp32-s2-devkitc-1

Platform Version is

PLATFORM: Espressif 32 (6.6.0) > Espressif ESP32-S3-DevKitC-1-N16R8V (16 MB QD, 8MB PSRAM)
HARDWARE: ESP32S3 240MHz, 320KB RAM, 16MB Flash

EDIT:
The above output is also sent when using the esp32-s3-devkitc-1.
Is this normal behaviour? Can I surpress this output?

This message is not related to the board but to your code.

The latest available 2.x Core is 2.0.17:
platform = espressif32 @ 6.10.0


If you want to use Arduino Core 3.x you can use pioarduino.

But in Arduino 3.x the LEDC API has changed
See Migration from 2.x to 3.0 - - — Arduino ESP32 latest documentation

Sorry, I am getting confused, as it seems to be several problems.

  1. Board das not boot, when this line is set: board_build.arduino.memory_type = qio_opi
  2. Not sure if this is a real problem, but I do see this on every startup. Can I suppress this output somehow?
Build:Mar 27 2021
rst:0x1 (POWERON),boot:0x8 (SPI_FAST_FLASH_BOOT)
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce3808,len:0x44c
load:0x403c9700,len:0xbd8
load:0x403cc700,len:0x2a80
entry 0x403c98d0
  1. You’re recommending the newer community platform version, right? Do you think that some of my problems got solved with that update?

I’ll try the latest Arduino Core 3.x for sure.
Just want to better understand your line of thought.

Thanks for your kind help!

I am now using pioarduino, but I have problems.

ELF file SHA256: 640797e00

E (211) esp_core_dump_flash: Core dump flash config is corrupted! CRC=0x7bd5c66f instead of 0x0
E (219) esp_core_dump_elf: Elf write init failed!
E (224) esp_core_dump_common: Core dump write failed with error=-1
Rebooting...
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0xc (RTC_SW_CPU_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
Saved PC:0x4037700d
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce2820,len:0x118c
load:0x403c8700,len:0x4
load:0x403c8704,len:0xc20
load:0x403cb700,len:0x30e0
entry 0x403c88b8
E (140) i2c: CONFLICT! driver_ng is not allowed to be used with this old driver

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


Backtrace: 0x403771c9:0x3fceb1e0 0x4037c545:0x3fceb200 0x40383079:0x3fceb220 0x4202d01f:0x3fceb2a0 0x4201eae2:0x3fceb2c0 0x40376976:0x3fceb2f0 0x403ccbd5:0x3fceb340 0x403ccf91:0x3fceb380 0x403c8925:0x3fceb4b0 0x40045c01:0x3fceb570 0x40043ab6:0x3fceb6f0 0x40034c45:0x3fceb710

I’ve installed the pioarduino extension in VScode and added this line to my platformio.ini

platform = https://github.com/pioarduino/platform-espressif32/releases/download/stable/platform-espressif32.zip

This is no problem. That’s the usual boot message.
You can supress it by using the strapping pins. Please see P. 534 in the ESP32-S3
Technical Reference Manual

So your board must be using a module with a different memory configuration. Could it be a fake ESP32-S3 module…

Please check P. 3 in the ESP32-S3-WROOM-1 Datasheet

Using an actual version is always a good idea because it contains bug fixes and improvements. But a change in major version comes always with breaking API changes. So make sure your code and the libraries used are compatible to Espressif Arduino 3.x. See the migration guide linked above.

Looks like your sketch is using a library which is not Espressif Arduino 3.x compatible.

Thanks for your explanations and your continuing help!

How would I recognise, if it is a fake module.
It looks pretty normal afaik. :slight_smile:

I had a few DevKit boards with fake modules which had wifi issues when the board was plugged into a bread board. The modules have been identified as fake by the Espressif guys in a github issue.

It’s a custom board in my case, and I built it with EasyEda/JLCPCB. I was hoping, that they are using genuine parts.
Is there any chance to find it out?

Do you know what happens when I remove the memory_type flag?
Can I still use 16MB?
I am a bit lost here, as I do not see any error message or something. Not sure how I could dig deeper to it …

Only espressif may say if your model is fake or not. I cant answer this question.

Just try to use the full 16 MB.

It’s hard to tell what questions are still in play. I use N16R8 boards all the time. They’re lovely. The message above means someone is mixing Arduino 2 and Arduino3 levels of drivers. This used to crash, because they both tried to control the i2c hardware in incompatible ways at the same time, but Espressif made it detect and return the error instead. I know the ledc driver was one such AND it had changes that were required between 2 and 3. There’s something else in your source beyond a call to ledcSetup. This is independent of any flash configuration issue, which must be solved first. FastLED was often implicated before it changed this spring to use recent APIs.

Confirmed last year:
https://www.reddit.com/r/esp32/comments/1d4xfqt/problems_using_the_new_espidf_i2c_master_api/

This chap calls out BSP (can’t say - don’t use 'em)
https://georgik.rocks/esp32-application-crash-i2c-conflict-driver_ng-is-not-allowed-to-be-used-with-this-old-driver/

Described here:
Error: Example projects using old I2C driver - ESP-IDF v5.4 - Bugs - Forum - SquareLine Studio … though I think it’s all just been fixed in the current versions of everything UNLESS you’re mixing old stuff. (Don’t do that. :slight_smile: )

1 Like

I have the same board (ESP32-S3 WROOM1 DEV MODULE CLONE N16R8). After searching for references in several forums, I managed to upload the sketch to the board using the Arduino IDE, and the code works.