espressif / arduino-esp32

Arduino core for the ESP32
GNU Lesser General Public License v2.1
13.26k stars 7.34k forks source link

ESP32 S3(FN8 chip or FR8 chip)use partition table default_8MB.csv lead to reboot continuously(default.csv 4MB is fine) #6646

Open Yeharold opened 2 years ago

Yeharold commented 2 years ago

Board

ESP32 S3

Device Description

ESP32 S3(FN8 chip or FR8 chip) have 8MB Flash , DIY Board reference to hardware manul

Hardware Configuration

[env:esp32s3] platform = https://github.com/platformio/platform-espressif32.git board = esp32-s3-devkitc-1 framework = arduino upload_port = COM3 upload_speed = 921600 monitor_speed = 115200 board_build.partitions=default_8MB.csv build_flags = -DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue -DCORE_DEBUG_LEVEL=5

Version

latest master (checkout manually)

IDE Name

PlatformIO

Operating System

win10

Flash frequency

80Mhz

PSRAM enabled

yes

Upload speed

921600

Description

DIY board ESP32 S3(FN8 chip or FR8 chip) have 8MB Flash ,when I select partition table default_8MB.csv, Build and upload .My device ESP32 S3(FN8 chip or FR8 chip) rebooting continuously.

Sketch

#include <Arduino.h>
#define PIN_RED    GPIO_NUM_5 // GIOP23
#define PIN_GREEN  GPIO_NUM_6  // GIOP22
#define PIN_BLUE   GPIO_NUM_7  // GIOP21
void setup() {
  pinMode(PIN_RED,   OUTPUT);
  pinMode(PIN_GREEN, OUTPUT);
  pinMode(PIN_BLUE,  OUTPUT);
  Serial.begin(115200);
}

void loop() {
  // color code #00C9CC (R = 0,   G = 201, B = 204)
  analogWrite(PIN_RED,   0);
  analogWrite(PIN_GREEN, 0);
  analogWrite(PIN_BLUE,  255);
  delay(1000); // keep the color 1 second
  // color code #F7788A (R = 247, G = 120, B = 138)
  analogWrite(PIN_RED,   255);
  analogWrite(PIN_GREEN, 0);
  analogWrite(PIN_BLUE,  0);
  delay(1000); // keep the color 1 second
  // color code #34A853 (R = 52,  G = 168, B = 83)
  analogWrite(PIN_RED,   0);
  analogWrite(PIN_GREEN, 255);
  analogWrite(PIN_BLUE,  0);
  delay(1000); // keep the color 1 second
  Serial.println("hello rgb");

}

Debug Message

rst:0x3 (RTC_SW_SYS_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
Saved PC:0x403bb0ce
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fcd0108,len:0x39c
load:0x403b6000,len:0x9a4
load:0x403ba000,len:0x2868
entry 0x403b61c0
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x3 (RTC_SW_SYS_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
Saved PC:0x403bb0ce
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fcd0108,len:0x39c
load:0x403b6000,len:0x9a4
load:0x403ba000,len:0x2868
entry 0x403b61c0
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x3 (RTC_SW_SYS_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
Saved PC:0x403bb0ce
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fcd0108,len:0x39c
load:0x403b6000,len:0x9a4
load:0x403ba000,len:0x2868
entry 0x403b61c0
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
.....

Other Steps to Reproduce

No response

I have checked existing issues, online documentation and the Troubleshooting Guide

me-no-dev commented 2 years ago

N8 and R8 are different things. N8 means 8MB QSPI Flash, R8 means 8MB OPI PSRAM. Try without -DBOARD_HAS_PSRAM and if it boots, I'll tell you what else to change. This is for ESP32 Only! Remove please: -mfix-esp32-psram-cache-issue

Jason2866 commented 2 years ago

Additional to what @me-no-dev said. Actual https://github.com/platformio/platform-espressif32.git does not yet support the S3. If you want to try with platformio you can use my fork. I use a ESP32-S3 with 8 MB flash and 8 MB PSRAM with actual Arduino master. I does work fine! (If you found the correct combination of the flash types)

Jason2866 commented 2 years ago

Mandantory. Use esptool.py v3.3. Only this version has the flash size patch for the S3.

Yeharold commented 2 years ago

N8 and R8 are different things. N8 means 8MB QSPI Flash, R8 means 8MB OPI PSRAM. Try without -DBOARD_HAS_PSRAM and if it boots, I'll tell you what else to change. This is for ESP32 Only! Remove please: -mfix-esp32-psram-cache-issue

thank u for your answer,My boards N8 connect to 8 MB PSRAM, R8 connect to 8MB FLASH. remove the config your give, the issue is not fixed

Yeharold commented 2 years ago

Additional to what @me-no-dev said. Actual https://github.com/platformio/platform-espressif32.git does not yet support the S3. If you want to try with platformio you can use my fork. I use a ESP32-S3 with 8 MB flash and 8 MB PSRAM with actual Arduino master. I does work fine! (If you found the correct combination of the flash types)

thank you for your help so much, use your fork solve my problem. divce work fine .

Yeharold commented 2 years ago

Mandantory. Use esptool.py v3.3. Only this version has the flash size patch for the S3.

Follow your fork, partition table error has been fixed. but I also have a problem with esptool.py v3.3, when the upload process start, esptool.py connect my device time too short to config strapping pin(boot and rts), image

Jason2866 commented 2 years ago

Reduce upload speed. If this does not work try to put device manually in Upload mode. If this is not working try a different USB cable and maybe a extern power supply. This problem is not caused from the framework or Platformio Since it is a DIY board you have to search the problem here (Logic to put device in Boot mode)

Jason2866 commented 2 years ago

@UnexpectedMaker No it is not related. S3 does compile with my Platformio fork and flashing via VSC is working too. The Arduino issue is probably that the reference install.json has no S3 entry.

UnexpectedMaker commented 2 years ago

@UnexpectedMaker No it is not related. S3 does compile with my Platformio fork and flashing via VSC is working too. The Arduino issue is probably that the reference install.json has no S3 entry.

Ok, nps! Removing links other issue :)

zekageri commented 2 years ago

I have the same problem. I tought it was because of PIO. PIO ISSUE

With 4mb csv it is working fine ( except my data folder does not fit into the fs ) and if i use default_16mb.csv it will boot loop. ( even with default 8mb csv )

Iam using ESP32-WROVER-E ( 16mb flash 8mb external ram )

zekageri commented 2 years ago

I tried with this fork from @Jason2866 and i got a different boot loop serial output:

rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:344
load:0x40078000,len:13328
=> 0x40078000: ?? ??:0
load:0x40080400,len:3488
=> 0x40080400: _init at ??:?
entry 0x400805d0
=> 0x400805d0: ?? ??:0
ets Jul 29 2019 12:21:46

rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:344
load:0x40078000,len:13328
=> 0x40078000: ?? ??:0
load:0x40080400,len:3488
=> 0x40080400: _init at ??:?
entry 0x400805d0
=> 0x400805d0: ?? ??:0
ets Jul 29 2019 12:21:46

If i erase the flash and upload the data folder again, i get a different serial output:

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
ets Jul 29 2019 12:21:46

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
ets Jul 29 2019 12:21:46

rst:0x10 (RTCWDT_RTC_RESET),boot:0x3 (DOWNLOAD_BOOT(UART0/UART1/SDIO_REI_REO_V2))
waiting for download
Jason2866 commented 2 years ago

Does work with

[env:esp32s3]
platform = https://github.com/tasmota/platform-espressif32/releases/download/v2.0.3rc1/platform-espressif32-2.0.3new.zip
platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/829/framework-arduinoespressif32-v4.4.1-3010c4571f.tar.gz
board = esp32-s3-devkitc-1
framework = arduino
upload_speed = 921600
monitor_speed = 115200
board_build.partitions=default_8MB.csv
hello rgb
hello rgb
hello rgb
hello rgb
hello rgb
hello rgb
hello rgb
hello rgb
hello rgb
hello rgb
hello rgb
hello rgb
hello rgb
hello rgb
hello rgb
hello rgb
hello rgb
hello rgb
> Executing task: platformio run --target upload --environment esp32s3 <

Processing esp32s3 (platform: https://github.com/tasmota/platform-espressif32/releases/download/v2.0.3rc1/platform-espressif32-2.0.3new.zip; board: esp32-s3-devkitc-1; framework: arduino)
-----------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32-s3-devkitc-1.html
PLATFORM: Espressif 32 (2.0.3) > Espressif ESP32-S3-DevKitC-1
HARDWARE: ESP32S3 240MHz, 512KB RAM, 8MB Flash
DEBUG: Current (esp-prog) External (esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES: 
 - framework-arduinoespressif32 @ 2.0.3 
 - tool-esptoolpy @ 1.30300.220323 (3.3.0) 
 - tool-mkfatfs @ 2.0.1 
 - tool-mklittlefs @ 1.203.210628 (2.3) 
 - tool-mkspiffs @ 2.230.0 (2.30) 
 - toolchain-esp32ulp @ 1.22851.191205 (2.28.51) 
 - toolchain-xtensa-esp32s3-arm @ 8.4.0+2021r2-patch3
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 32 compatible libraries
Scanning dependencies...
No dependencies
Building in release mode
Compiling .pio/build/esp32s3/src/main.cpp.o
Generating partitions .pio/build/esp32s3/partitions.bin
Archiving .pio/build/esp32s3/libFrameworkArduinoVariant.a
Indexing .pio/build/esp32s3/libFrameworkArduinoVariant.a
Compiling .pio/build/esp32s3/FrameworkArduino/Esp.cpp.o
Compiling .pio/build/esp32s3/FrameworkArduino/FirmwareMSC.cpp.o
Compiling .pio/build/esp32s3/FrameworkArduino/FunctionalInterrupt.cpp.o
Compiling .pio/build/esp32s3/FrameworkArduino/HWCDC.cpp.o
Compiling .pio/build/esp32s3/FrameworkArduino/HardwareSerial.cpp.o
Compiling .pio/build/esp32s3/FrameworkArduino/IPAddress.cpp.o
Compiling .pio/build/esp32s3/FrameworkArduino/IPv6Address.cpp.o
Compiling .pio/build/esp32s3/FrameworkArduino/MD5Builder.cpp.o
Compiling .pio/build/esp32s3/FrameworkArduino/Print.cpp.o
Compiling .pio/build/esp32s3/FrameworkArduino/Stream.cpp.o
Compiling .pio/build/esp32s3/FrameworkArduino/StreamString.cpp.o
Compiling .pio/build/esp32s3/FrameworkArduino/Tone.cpp.o
Compiling .pio/build/esp32s3/FrameworkArduino/USB.cpp.o
Compiling .pio/build/esp32s3/FrameworkArduino/USBCDC.cpp.o
Compiling .pio/build/esp32s3/FrameworkArduino/USBMSC.cpp.o
Compiling .pio/build/esp32s3/FrameworkArduino/WMath.cpp.o
Compiling .pio/build/esp32s3/FrameworkArduino/WString.cpp.o
Compiling .pio/build/esp32s3/FrameworkArduino/base64.cpp.o
Compiling .pio/build/esp32s3/FrameworkArduino/cbuf.cpp.o
Compiling .pio/build/esp32s3/FrameworkArduino/esp32-hal-adc.c.o
Compiling .pio/build/esp32s3/FrameworkArduino/esp32-hal-bt.c.o
Compiling .pio/build/esp32s3/FrameworkArduino/esp32-hal-cpu.c.o
Compiling .pio/build/esp32s3/FrameworkArduino/esp32-hal-dac.c.o
Compiling .pio/build/esp32s3/FrameworkArduino/esp32-hal-gpio.c.o
Compiling .pio/build/esp32s3/FrameworkArduino/esp32-hal-i2c-slave.c.o
Compiling .pio/build/esp32s3/FrameworkArduino/esp32-hal-i2c.c.o
Compiling .pio/build/esp32s3/FrameworkArduino/esp32-hal-ledc.c.o
Compiling .pio/build/esp32s3/FrameworkArduino/esp32-hal-matrix.c.o
Compiling .pio/build/esp32s3/FrameworkArduino/esp32-hal-misc.c.o
Compiling .pio/build/esp32s3/FrameworkArduino/esp32-hal-psram.c.o
Compiling .pio/build/esp32s3/FrameworkArduino/esp32-hal-rmt.c.o
Compiling .pio/build/esp32s3/FrameworkArduino/esp32-hal-sigmadelta.c.o
Compiling .pio/build/esp32s3/FrameworkArduino/esp32-hal-spi.c.o
Compiling .pio/build/esp32s3/FrameworkArduino/esp32-hal-time.c.o
Compiling .pio/build/esp32s3/FrameworkArduino/esp32-hal-timer.c.o
Compiling .pio/build/esp32s3/FrameworkArduino/esp32-hal-tinyusb.c.o
Compiling .pio/build/esp32s3/FrameworkArduino/esp32-hal-touch.c.o
Compiling .pio/build/esp32s3/FrameworkArduino/esp32-hal-uart.c.o
Compiling .pio/build/esp32s3/FrameworkArduino/firmware_msc_fat.c.o
Compiling .pio/build/esp32s3/FrameworkArduino/libb64/cdecode.c.o
Compiling .pio/build/esp32s3/FrameworkArduino/libb64/cencode.c.o
Compiling .pio/build/esp32s3/FrameworkArduino/main.cpp.o
Compiling .pio/build/esp32s3/FrameworkArduino/stdlib_noniso.c.o
Compiling .pio/build/esp32s3/FrameworkArduino/wiring_pulse.c.o
Compiling .pio/build/esp32s3/FrameworkArduino/wiring_shift.c.o
Archiving .pio/build/esp32s3/libFrameworkArduino.a
Indexing .pio/build/esp32s3/libFrameworkArduino.a
Linking .pio/build/esp32s3/firmware.elf
Retrieving maximum program size .pio/build/esp32s3/firmware.elf
Checking size .pio/build/esp32s3/firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [          ]   1.8% (used 9596 bytes from 524288 bytes)
Flash: [          ]   3.7% (used 124321 bytes from 3342336 bytes)
Building .pio/build/esp32s3/firmware.bin
esptool.py v3.3
Creating esp32s3 image...
Merged 2 ELF sections
Successfully created esp32s3 image.
Configuring upload protocol...
AVAILABLE: esp-prog, espota, esptool, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa
CURRENT: upload_protocol = esptool
Looking for upload port...
Auto-detected: /dev/cu.wchusbserial11340
Uploading .pio/build/esp32s3/firmware.bin
esptool.py v3.3
Serial port /dev/cu.wchusbserial11340
Connecting....
Chip is ESP32-S3
Features: WiFi, BLE
Crystal is 40MHz
MAC: f4:12:fa:43:62:5c
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Flash will be erased from 0x00000000 to 0x00003fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000e000 to 0x0000ffff...
Flash will be erased from 0x00010000 to 0x00030fff...
Flash params set to 0x023f
Compressed 12640 bytes to 8909...
Writing at 0x00000000... (100 %)
Wrote 12640 bytes (8909 compressed) at 0x00000000 in 0.3 seconds (effective 307.7 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 129...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (129 compressed) at 0x00008000 in 0.1 seconds (effective 472.1 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 47...
Writing at 0x0000e000... (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.1 seconds (effective 625.9 kbit/s)...
Hash of data verified.
Compressed 134272 bytes to 84079...
Writing at 0x00010000... (16 %)
Writing at 0x000182fd... (33 %)
Writing at 0x00020286... (50 %)
Writing at 0x00025808... (66 %)
Writing at 0x0002ae43... (83 %)
Writing at 0x0002ff07... (100 %)
Wrote 134272 bytes (84079 compressed) at 0x00010000 in 2.0 seconds (effective 537.6 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...
================================= [SUCCESS] Took 8.16 seconds =================================

Environment    Status    Duration
-------------  --------  ------------
esp32s3        SUCCESS   00:00:08.163
================================= 1 succeeded in 00:00:08.163 =================================

Das Terminal wird von Aufgaben wiederverwendet, drücken Sie zum Schließen eine beliebige Taste.
zekageri commented 2 years ago

my problem was solved by replacing board_build.flash_size = 16MB with board_upload.flash_size = 16MB

here is my issue : https://github.com/platformio/platform-espressif32/issues/788

SantiFerre commented 2 years ago

my problem was solved by replacing board_build.flash_size = 16MB with board_upload.flash_size = 16MB

here is my issue : platformio/platform-espressif32#788

I had been looking for hours to see if it was a code problem when upgrading to a new version, but it turns out it was this. Thank you very much for your help.

zekageri commented 2 years ago

No problem. I also searched for days. xd

richcj10 commented 2 years ago

I stopped the boot loop problem by adding the "board_upload.flash_size = 8MB"

But I am still getting file system errors:

ESP-ROM:esp32s3-20210327 Build:Mar 27 2021 rst:0x1 (POWERON),boot:0x3a (SPI_FAST_FLASH_BOOT) SPIWP:0xee Octal Flash Mode Enabled For OPI Flash, Use Default Flash Boot Mode mode:SLOW_RD, clock div:1 load:0x3fcd0108,len:0x78 load:0x403b6000,len:0x95c load:0x403ba000,len:0x2718 SHA-256 comparison failed: Calculated: fbadc2bc0d050432a3cff9776fbf2db407a913320099d747343aaea934f79933 Expected: 8abaa7e3d5266e80aa38747066b4dacdd0b0484dfe110af1596c38f9e39564ba Attempting to boot anyway... entry 0x403b61a8 [ 77][I][esp32-hal-psram.c:96] psramInit(): PSRAM enabled [ 80][E][esp32-hal-misc.•’ª’êþClientID = ESPPLC-223124 [ 494][E][LittleFS.cpp:119] format(): Formatting LittleFS failed! Error: -1 [ 494][E][LittleFS.cpp:94] begin(): Mounting LittleFS failed! Error: -1 LittleFS Mount Failed Here is my .ini file:

[env:esp32dev] ;platform = https://github.com/tasmota/platform-espressif32/releases/download/v2.0.3rc1/platform-espressif32-2.0.3.zip platform = https://github.com/tasmota/platform-espressif32/releases/download/v2.0.3rc1/platform-espressif32-2.0.3new.zip ;platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/829/framework-arduinoespressif32-v4.4.1-3010c4571f.tar.gz board = esp32-s3-devkitc-1 board_upload.flash_size = 8MB board_build.f_flash = 80000000L board_build.partitions=default_8MB.csv build_flags = -DBOARD_HAS_PSRAM -DCORE_DEBUG_LEVEL=5 framework = arduino upload_port = COM18 board_build.filesystem = littlefs monitor_port = COM[5] monitor_speed = 115200

If I enable "platform_packages " I get a lot of "fatal error: freertos/FreeRTOS.h: No such file or directory" errors. Weird

Yeharold commented 2 years ago

[env:esp32s3] platform = https://github.com/tasmota/platform-espressif32/releases/download/v2.0.3rc1/platform-espressif32-2.0.3new.zip platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/829/framework-arduinoespressif32-v4.4.1-3010c4571f.tar.gz board = esp32-s3-devkitc-1 framework = arduino upload_speed = 921600 monitor_speed = 115200 board_build.partitions=default_8MB.csv

zekageri commented 2 years ago

Have you tried only with:

platform = espressif32
framework   = arduino

in the ini?

Yeharold commented 2 years ago

Have you tried only with:

platform = espressif32
framework   = arduino

in the ini?

1 cd to your platform install dir: C:\Users\xxx.platformio\platforms,and remove your espressif32 or espressif32@xx(delete the all espressif32 folders) platform 2 cd to your package install dir: C:\Users\xxx.platformio\packages,remove all "framework-arduinoespressif32" or framework-arduinoespressif32@xx folder 3 open your exist project .ini [env:esp32s3] platform = https://github.com/tasmota/platform-espressif32/releases/download/v2.0.3rc1/platform-espressif32-2.0.3new.zip platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/829/framework-arduinoespressif32-v4.4.1-3010c4571f.tar.gz board = esp32-s3-devkitc-1 framework = arduino

;this setting will reinstall espressif32 、framework-arduinoespressif32 and related tools

5 when installation finished: image

only with your setting will work

Yeharold commented 2 years ago

Mandantory. Use esptool.py v3.3. Only this version has the flash size patch for the S3.

Follow your fork, partition table error has been fixed. but I also have a problem with esptool.py v3.3, when the upload process start, esptool.py connect my device time too short to config strapping pin(boot and rts), image

1 open this file C:\Users\xx.platformio\packages\tool-esptoolpy\esptool.py 2 set more conntect try:image

richcj10 commented 2 years ago

So clearing out my install directory helped. I don't get compile errors. But my FS will not init. Ini file: [env:esp32dev] ;platform = https://github.com/tasmota/platform-espressif32/releases/download/v2.0.3rc1/platform-espressif32-2.0.3.zip platform = https://github.com/tasmota/platform-espressif32/releases/download/v2.0.3rc1/platform-espressif32-2.0.3new.zip platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/829/framework-arduinoespressif32-v4.4.1-3010c4571f.tar.gz board = esp32-s3-devkitc-1 board_upload.flash_size = 8MB ;board_build.f_flash = 80000000L ;board_build.partitions=default_8MB.csv build_flags = -DBOARD_HAS_PSRAM -DCORE_DEBUG_LEVEL=5 framework = arduino upload_port = COM18 board_build.filesystem = littlefs monitor_port = COM[5] monitor_speed = 115200 lib_deps = knolleary/PubSubClient@^2.8.0 https://github.com/husarnet/AsyncTCP.git https://github.com/me-no-dev/ESPAsyncWebServer.git bblanchon/ArduinoJson @ 6.17 bodmer/TFT_eSPI@^2.4.61 bitbank2/PNGdec@^1.0.1 adafruit/Adafruit NeoPixel@^1.10.4

This is for an ESP32-S3-WROOM-2

richcj10 commented 2 years ago

Have you tried only with:

platform = espressif32
framework   = arduino

in the ini?

I have, but that seems to add more compile errors.

henrygab commented 2 years ago

I couldn't review the .ini due to its formatting. If true for others, expand below for a reformatted version.

Formatted `.ini` section

```ini [env:esp32dev] ;platform = https://github.com/tasmota/platform-espressif32/releases/download/v2.0.3rc1/platform-espressif32-2.0.3.zip platform = https://github.com/tasmota/platform-espressif32/releases/download/v2.0.3rc1/platform-espressif32-2.0.3new.zip platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/829/framework-arduinoespressif32-v4.4.1-3010c4571f.tar.gz board = esp32-s3-devkitc-1 board_upload.flash_size = 8MB ;board_build.f_flash = 80000000L ;board_build.partitions=default_8MB.csv build_flags = -DBOARD_HAS_PSRAM -DCORE_DEBUG_LEVEL=5 framework = arduino upload_port = COM18 board_build.filesystem = littlefs monitor_port = COM5 monitor_speed = 115200 lib_deps = knolleary/PubSubClient@^2.8.0 https://github.com/husarnet/AsyncTCP.git https://github.com/me-no-dev/ESPAsyncWebServer.git bblanchon/ArduinoJson @ 6.17 bodmer/TFT_eSPI@^2.4.61 bitbank2/PNGdec@^1.0.1 adafruit/Adafruit NeoPixel@^1.10.4` ```

NOTE: The original showed monitor_port = COM[5]; the square brackets seemed incorrect, so I removed them above.

Jason2866 commented 2 years ago

Actual build (based on release core 2.0.3). I removed redundant not needed entrys and uncommented the 8MB partition scheme

[platformio]
framework = arduino
platform = https://github.com/tasmota/platform-espressif32/releases/download/v.2.0.3/platform-espressif32-v.2.0.3.zip

[env:esp32-s3dev]
board = esp32-s3-devkitc-1
board_build.filesystem = littlefs
board_build.partitions=default_8MB.csv
build_flags =
    -DCORE_DEBUG_LEVEL=5
upload_port = COM18
monitor_port = COM5
monitor_speed = 115200
lib_deps =
    knolleary/PubSubClient@^2.8.0
    https://github.com/husarnet/AsyncTCP.git 
    https://github.com/me-no-dev/ESPAsyncWebServer.git bblanchon/ArduinoJson @ 6.17
    bodmer/TFT_eSPI@^2.4.61
    bitbank2/PNGdec@^1.0.1
    adafruit/Adafruit NeoPixel@^1.10.4`
richcj10 commented 2 years ago

Thanks, I will try that. I will get back to you tonight.

richcj10 commented 2 years ago

I am getting this error now:

Warning! Ignore unknown configuration optionframeworkin section [platformio] Warning! Ignore unknown configuration optionplatformin section [platformio] Processing esp32-s3dev (board: esp32-s3-devkitc-1) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Error: Please specify platform for 'esp32-s3dev' environment The terminal process "C:\Users\richc\.platformio\penv\Scripts\platformio.exe 'run'" terminated with exit code: 1.

Jason2866 commented 2 years ago

Ahh yes. Mistake. Should look like

[common]
framework = arduino
platform = https://github.com/tasmota/platform-espressif32/releases/download/v.2.0.3/platform-espressif32-v.2.0.3.zip

[env:esp32-s3dev]
board = esp32-s3-devkitc-1
board_build.filesystem = littlefs
board_build.partitions=default_8MB.csv
build_flags =
    -DCORE_DEBUG_LEVEL=5
upload_port = COM18
monitor_port = COM5
monitor_speed = 115200
lib_deps =
    knolleary/PubSubClient@^2.8.0
    https://github.com/husarnet/AsyncTCP.git 
    https://github.com/me-no-dev/ESPAsyncWebServer.git bblanchon/ArduinoJson @ 6.17
    bodmer/TFT_eSPI@^2.4.61
    bitbank2/PNGdec@^1.0.1
    adafruit/Adafruit NeoPixel@^1.10.4`
richcj10 commented 2 years ago

I am still getting an error "no platform selected" (platform for 'esp32-s3dev')

Thoughts?

richcj10 commented 2 years ago

I also tried updating PIO since the latest "beta" fix is about compile flags. Still not working. I did try this:

' [env:esp32-s3dev] framework = arduino platform = https://github.com/tasmota/platform-espressif32/releases/download/v.2.0.3/platform-espressif32-v.2.0.3.zip board = esp32-s3-devkitc-1 board_build.filesystem = littlefs board_build.partitions=default_8MB.csv build_flags = -DCORE_DEBUG_LEVEL=5 upload_port = COM18 monitor_port = COM5 monitor_speed = 115200 lib_deps = knolleary/PubSubClient@^2.8.0 https://github.com/husarnet/AsyncTCP.git https://github.com/me-no-dev/ESPAsyncWebServer.git bblanchon/ArduinoJson @ 6.17 bodmer/TFT_eSPI@^2.4.61 bitbank2/PNGdec@^1.0.1 adafruit/Adafruit NeoPixel@^1.10.4 ' The above compiles but I don't have a file system (FS) If i try flash mode OPI / 8MB / Partition 8MB / PSRAM = OPI PSRAM, it works in Arduino IDE. I have a FS. I don't think I have a OTA update partition, but I am not to worried about that right now.

Jason2866 commented 2 years ago

@richcj10 I think it is the wrong place for your problem, since Arduino IDE works for you? Imho problems with Platformio should be addressed in Platformio github.

EDIT: I think this issues moved away from the orig. problem. Thats solved. Now the discussion is off-topic and Platformio related.

me-no-dev commented 2 years ago

@richcj10 you probably need build.arduino.memory_type = opi_opi

Jason2866 commented 2 years ago

Make a boards.json for platformio. Create a folder boards in root of your project Name the json like esp32s3_opi.json and save in folder boards You use your own board as usual, so board = esp32s3_opi The json

{
  "build": {
    "arduino":{
      "ldscript": "esp32s3_out.ld",
      "memory_type": "opi_opi"
    },
    "core": "esp32",
    "extra_flags": "-DBOARD_HAS_PSRAM -DARDUINO_USB_MODE=0 -DARDUINO_USB_CDC_ON_BOOT=0 -DARDUINO_USB_MSC_ON_BOOT=0 -DARDUINO_USB_DFU_ON_BOOT=0",
    "f_cpu": "240000000L",
    "f_flash": "80000000L",
    "flash_mode": "dio",
    "mcu": "esp32s3",
    "variant": "esp32s3",
    "partitions": "default_8MB.csv"
  },
  "connectivity": [
    "wifi",
    "bluetooth",
    "ethernet"
  ],
  "debug": {
    "openocd_target": "esp32s3.cfg"
  },
  "frameworks": [
    "espidf",
    "arduino"
  ],
  "name": "Espressif Generic ESP32-S3 8M OPI Flash, 8MB OPI PSRAM",
  "upload": {
    "flash_size": "8MB",
    "maximum_ram_size": 327680,
    "maximum_size": 8388608,
    "require_upload_port": true,
    "speed": 460800
  },
  "url": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/hw-reference/esp32s3/",
  "vendor": "Espressif"
}
Jason2866 commented 2 years ago

Maybe you have to change the "flash_mode": "dio", to "flash_mode": "opi", too I have no S3 with OPI so i cant test

Jason2866 commented 2 years ago

@me-no-dev It is like i thought in https://github.com/espressif/arduino-esp32/discussions/6426

richcj10 commented 2 years ago

Thanks for the help! It still is boot looping at the bootloader.

I did notice this that I thought was weird: Configuring flash size... Warning: Could not auto-detect Flash size (FlashID=0x3980c2, SizeID=0x39), defaulting to 4MB

richcj10 commented 2 years ago

I don't see that statement in the Arduino debug log for uploading.

richcj10 commented 2 years ago

I did a diff of the platformio-build-esp32s3.py and found these differences:

"-u", "include_esp_phy_override", Arduino uses ("IDF_VER", '\"v4.4.1-1-gb8050b365e\"'), vs ("IDF_VER", '\"v4.4-367-gc29343eb94\"'),

Changing out the files did not change the upload error.

Also esptool.py is 100% match. Weird.

code-is-art commented 2 years ago

I have an esp32-s3-wroom-1 M0N8R8 which I think is just the N8R8 version. Not sure what the M0 is for. In any case I had one hell of a time figuring out how to get psram working on it in platformio. Using ps_malloc would cause it to go into a continuous reboot loop. This thread helped me head in the right direction so I am posting my results here. This is what I figured out after many days/hours of searching and trial and error. My board profile...

{
    "build": {
      "arduino":{
        "ldscript": "esp32s3_out.ld",
        "memory_type": "qspi_opi"
      },
      "core": "esp32",
      "extra_flags": "-DBOARD_HAS_PSRAM",
      "f_cpu": "240000000L",
      "f_flash": "80000000L",
      "flash_mode": "dio",
      "mcu": "esp32s3",
      "variant": "esp32s3",
      "partitions": "partitions/default_8MB.csv"
    },
    "connectivity": [
      "wifi"
    ],
    "debug": {
      "openocd_target": "esp32s3.cfg"
    },
    "frameworks": [
      "arduino",
      "espidf"
    ],
    "name": "Espressif ESP32-S3-DevKitC-1 N8R8 8MB QD FLASH 8MB OT PSRAM",
    "upload": {
      "flash_size": "8MB",
      "maximum_ram_size": 524288,
      "maximum_size": 8388608,
      "require_upload_port": true,
      "speed": 460800
    },
    "url": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/hw-reference/esp32s3/user-guide-devkitc-1.html",
    "vendor": "Espressif"
  }

Notice the "memory_type": "qspi_opi". This was the only thing that worked for this board. NOT opi_opi, qspi_qspi, or opi_qspi. Tried them all without success. Notice here the memory designation. Flash: 8 MB QD, PSRAM: 8 MB OT. You may need to change this for your board's memory types depending on what the reference guide above says about your particular board. I was able to verify that all Flash and PSRAM is working after using this board definition with the following code.

#include <Arduino.h>

void setup() {
  log_d("Total heap: %d", ESP.getHeapSize());
  log_d("Free heap: %d", ESP.getFreeHeap());
  log_d("Total PSRAM: %d", ESP.getPsramSize());
  log_d("Free PSRAM: %d", ESP.getFreePsram());
}

void loop() {}

As far as monitoring this is what I got on my ini file. Works for me though there might be better options..

monitor_speed = 115200
monitor_rts = 0
monitor_dtr = 0
richcj10 commented 2 years ago

Looking forward to testing this on my unit. :)

richcj10 commented 2 years ago

@code-is-art Would you share your .ini file? I am still having issues. Did your ESP32 upload state this: "Warning: Could not auto-detect Flash size (FlashID=0x3980c2, SizeID=0x39), defaulting to 4MB"?

Jason2866 commented 2 years ago

@richcj10 when this defaulting to 4MB happens you will end in a bootloop. There is nothing else needed in a platformio.ini file. The above boards.json has anything needed defined. Heads up. In a standard setup this "partitions": "partitions/default_8MB.csv" needs to be changed to "partitions": "default_8MB.csv"