Page 2 of 3

Re: Arduino support for ESP32-S2 chips

Posted: Fri Jul 23, 2021 8:44 am
by ullixesp
... and the failure of all types of file systems is also a known bug?

Re: Arduino support for ESP32-S2 chips

Posted: Sat Jul 24, 2021 5:00 am
by chegewara

Re: Arduino support for ESP32-S2 chips

Posted: Sat Jul 24, 2021 9:18 am
by ullixesp
That little `qio` is quite relevant!

Simply adding that statement to otherwise your config makes now my complete pio.ini:

Code: Select all

[platformio]
description = Download big files with JavaScript

[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
board_build.mcu = esp32s2
board_build.flash_mode = qio
platform_packages =
  framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32#2.0.0-alpha1
  platformio/tool-esptoolpy @ ~1.30100

lib_deps =
	me-no-dev/ESP Async WebServer@^1.2.3
	powerbroker2/SafeString@^4.1.5
	lorol/LittleFS_esp32@^1.0.6

monitor_speed = 115200
monitor_filters =
	log2file
	time
	default

upload_speed = 921600
upload_port = /dev/ttyUSB0
build_flags = -D CORE_DEBUG_LEVEL=5
board_build.partitions = partitions.csv
and now all three file systems FFat, SPIFFS, and LittleFS do work! And also NVS is working! All can be created, mounted, read from, written to as one would expect.

However:

My motivation to test the S2 comes from the fact that the ESP32-"classic" has a major, major problem when downloading files >150k! Files of around 300k present the biggest problem! In easily up to 50% of any download attempt the Watch-Dog-Timer triggers (on 'async_tcp'), resulting in aborting.

The severity seems to depend on the device and the flash used (i.e. flash manufacturer dependent). I had concluded that the ESP32-"classic" has either a hardware defect, or a software defect, or both, but certainly isn't fit for commercial use when big files are involved.

Unfortunately, in this aspect the ESP32-S2, with the present code, is even worse! Here the failures are at 95% if not higher!

Opening the Network tab on any browser's toolbox shows that from a 300k file only 100k ... 150k are downloaded, then the ESP crashes, and eventually the browser times out.

This is discussed in depth here: https://github.com/me-no-dev/ESPAsyncWe ... issues/984
and my code to test this is here: https://github.com/ullix/ESP32-Flash-Crash

Re: Arduino support for ESP32-S2 chips

Posted: Sun Jul 25, 2021 8:58 am
by ullixesp
A bit strange:

My previous post shows that I get the S2 chip to work properly with any File system and NVS by defining 'board_build.flash_mode = qio'.

But running one of the IDF example scripts on the very same device gives me:

Code: Select all

I (28) boot.esp32s2: SPI Speed      : 40MHz
I (33) boot.esp32s2: SPI Mode       : DIO
I (38) boot.esp32s2: SPI Flash Size : 4MB
So, IDF thinks 'DIO' is correct, and not 'qio'.

When I attempt to force 'qio' by inserting into platformio.ini the line 'board_build.flash_mode = qio' it compiles and executes ok. However, my forcing seems to be ignored, as the debug output is the very same as above, namely 'DIO'!

If we trust the IDF output as correct, then it would mean that the Arduino framework has got this flash stuff in reverse to what it really is?

Re: Arduino support for ESP32-S2 chips

Posted: Mon Jul 26, 2021 6:19 am
by dimake
I struggle with similar issues as you and played with DIO/QIO as well.
When you define in platformio.ini flash_mode as QIO it compiles and works (at least somehow), if I compile with DIO then my LittleFS or SPIFFS can't be mounted.
So, I compile with QIO (until a stable framework release).

On the other hand, my flash doesn't support QIO mode (quad IO). And VS Code automatically flashes with DIO parameter.
Just for fun, I tried to flash manually with QIO param and, surprise surprise, it doesn't work.

Re: Arduino support for ESP32-S2 chips

Posted: Tue Jul 27, 2021 6:02 am
by dimake
In a recent days a new version of PlatformIO/Espressif32 was released:

Code: Select all

Updating platformio/espressif32               3.3.0                              [Updating to 3.3.1]
Platform Manager: Installing platformio/espressif32 @ 3.3.1
Unpacking  [####################################]  100%
Platform Manager: espressif32 @ 3.3.1 has been installed!
They fixed QIO/DIO bug. So I compiled again with DIO and I'm back to the previous step

Code: Select all

E (738) SPIFFS: mount failed, -10025
[126773][E][SPIFFS.cpp:89] begin(): Mounting SPIFFS failed! Error: -1
[126779][E][vfs_api.cpp:22] open(): File system is not mounted 
:x :x :x

Re: Arduino support for ESP32-S2 chips

Posted: Wed Jul 28, 2021 9:06 am
by ullixesp
Well, now nothing works :-(

I also upgraded platform espressif32 to 3.3.1 and my code from above posting.php?mode=quote&f=19&t=22209&p=80731#pr80731 no longer works. All I get in the monitor is some - I believe - bootloader code, which repeats endlessly.

Removing line `board_build.flash_mode = qio` from pio.ini and it compiles fine and runs. WiFi works, webserver works, but neither file system LittleFS nor NVS work!

Now I inserted line `board_build.flash_mode = dio` into pio.ini to set it explicitly. The result is the very same as if not inserting it at all.

So, you can't go with "qio" and you can't go without it!

Re: Arduino support for ESP32-S2 chips

Posted: Wed Jul 28, 2021 8:00 pm
by dimake
I'm trying now to compile with the latest Arduino engineering release RC1

Code: Select all

framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32#2.0.0-rc1
But compilations fails with this error

Code: Select all

c:/users/dimake/.platformio/packages/toolchain-xtensa32s2/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: final link failed: bad value
collect2.exe: error: ld returned 1 exit status
*** [.pio\build\esp32dev\firmware.elf] Error 1
Trying to solve this issue, who knows, maybe this release is better than 'alpha1'.

Re: Arduino support for ESP32-S2 chips

Posted: Wed Aug 04, 2021 8:51 am
by greg-solargik
I am trying to compile a blank sketch for esp32-saola-m1 using platformio, here's my configration:

Code: Select all

[env:esp32-saola-m1]
platform = https://github.com/platformio/platform-espressif32.git
platform_packages = framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#2.0.0-rc1
framework = arduino
board = esp32dev
board_build.flash_mode = qio
board_build.mcu = esp32s2
monitor_speed = 115200
And I also get:

Code: Select all

Linking .pio\build\esp32-saola-m1\firmware.elf
c:/users/******/.platformio/packages/toolchain-xtensa32s2/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld.exe: final link failed: bad value
collect2.exe: error: ld returned 1 exit status
*** [.pio\build\esp32-saola-m1\firmware.elf] Error 1
Any ideas?

Re: Arduino support for ESP32-S2 chips

Posted: Thu Aug 05, 2021 9:11 am
by chegewara