Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

ESP32-S3 Support testing #6197

Closed
VojtechBartoska started this conversation in General
Discussion options

This discussion is for collecting results of testing of ESP32-S3.

  • Please fill out the table by filling the ESP32-S3 column if you have tested particular Peripheral. (@P-R-O-C-H-Y & @SuGlider)
  • If you find any problem please describe it below in the comments (open to everyone)
Peripheral ESP32 ESP32-S2 ESP32-C3 ESP32-S3 Comments
ADC Yes Yes Yes Yes tested (@P-R-O-C-H-Y )
Bluetooth Yes Not Supported Not Supported Not supported
Bluetooth Classic - - - - needs investigation
BLE Yes Not Supported Yes Yes tested by @Jason2866
DAC Yes Yes Not Supported NOT SUPPORTED IDF has no DAC support for S3 (TRM confirmed)
Ethernet RMII Yes Not Supported Not Supported Not supported
Ethernet SPI - - - - needs investigation
GPIO Yes Yes Yes Yes** refactored (@P-R-O-C-H-Y ) #6259
Hall Sensor Yes Not Supported Not Supported Not supported
I2C Yes Yes Yes Yes
I2C Slave Yes Yes Yes Yes @PilnyTomas
I2S No No No Yes tested by (@PilnyTomas )
LEDC Yes Yes Yes Yes
Motor PWM No Not Supported Not Supported Not Supported No API
Pulse Counter No No No Not supported
RMT Yes Yes Yes Fully Works
SDIO No No No No
SD MMC Yes - - Partial support***
SigmaDelta Yes Yes Yes Fully Works 8 channels
SPI Yes Yes Yes Yes
Timer Yes Yes Yes Yes
Temp. Sensor Not Supported Yes Yes Available when #6994 merged support added in IDF
Touch Yes Yes Not Supported Fully Works
TWAI No No No No No API
UART Yes Yes Yes Fully Works Works but there is an issue with defaut RX/TX for UART1. PR #6202 + PR #6201
USB Not Supported Yes Yes Yes* ESP32-C3 only CDC/JTAG
Wi-Fi Yes Yes Yes Yes

ESP32-S3 Official Announcement

* Reboot from TinyUSB into Download mode does not yet work on ESP32-S3

(削除) ** GPIO interrupts work only on CORE 0 on ESP32-S3. Fix is ready to be merged in esp-idf. (削除ここまで) Fix commit

*** ESP-IDF SDMMC driver for ESP32-S3 has a number of issues and is likely to fail at frequencies higher than 20 MHz. The fixes in IDF are in progress. Related issues: espressif/esp-idf#8521 and espressif/esp-idf#8257.

You must be logged in to vote

Replies: 33 comments 34 replies

Comment options

Testing UART onReceive() I found a deadlock issue for all the SoCs. PR #6201.
Testing ESP32-S3 with UART1, I found an issue with default pins 17 and 18.
I changed it to 14 and 15 and added default pins for UART2 as 19 and 20. PR #6202

You must be logged in to vote
0 replies
Comment options

Thank you guys. I hacked together Platformio support for the S3 and we managed to get Project Tasmota (reduced build variant) already booting :-)
unknown
EDIT: The S3 Arduino branch can be used with this unofficial Platformio setup

platform = https://github.com/Jason2866/platform-espressif32.git#IDF44/ESP32-S3
platform_packages = framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#esp32-s3-support
You must be logged in to vote
0 replies
Comment options

Fixed Touch issue wih ESP32-S3 -- PR #6234
Fixed RMT examples with ESP32-S3 -- PR #6235

You must be logged in to vote
0 replies
Comment options

BLE is working (in Tasmota) with S3 :-)

You must be logged in to vote
0 replies
Comment options

Current tasks of @me-no-dev:

  • OPI flash
  • PSRAM support
  • Lib builder implementation

Finished on 2/11.

You must be logged in to vote
0 replies
Comment options

Where can I add S3 support? Installed 2.0.2 from the boards manager, but it isn't there.

You must be logged in to vote
2 replies
Comment options

you need to install the git version and more specifically use the esp32-s3-support branch. If this seems a bit complicated, I would suggest you hold tight for a week or two and then get it through 2.0.3

Comment options

Second one seems the right one

Comment options

Sigma Delta on S3 works fine.
S3 has no DAC - not supported.

You must be logged in to vote
0 replies
Comment options

Hi @me-no-dev - I tested C3 and S3 with S3 Branch and it doesn't compile #6027 STA example.
Something is broken. It compiles fine with master branch. This is the issue I talked about DIO/QIO with WiFi for the C3.

It seems to pick up the wrong WiFi Lib...
Using library WiFi at version 1.2.7 in folder: C:\Program Files (x86)\Arduino\libraries\WiFi

I'll remove Arduino WiFi Original Library from my libraries folder and test it again.
But anyway, should it turn on some yellow light?

Error Message from Compiler (it happens with C3 and S3 as target):

'class WiFiClass' has no member named 'mode'

UPDATE 1

I noticed that Compiling with S3 branch outputs a lot of the same warning message below:
<command-line>: warning: ISO C++11 requires whitespace after the macro name

UPDATE 2 - regarding WiFi C3 QIO/DIO issue:

It is confirmed to happen also with S3 brach.
#6027 is an issue.

C3 only runs #6027 STA example when Arduino IDE menu is set to DIO.
QIO generates continuos resets with this message (first boot and following RESETs with WDT problem):

ESP-ROM:esp32c3-api1-20210207
Build:Feb 7 2021
rst:0x1 (POWERON),boot:0xc (SPI_FAST_FLASH_BOOT)
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fcd6100,len:0x420
load:0x403ce000,len:0x90c
load:0x403d0000,len:0x2370
SHA-256 comparison failed:
Calculated: aa1a3928be93313ac51da0f5a7b98a2f7e879a860d87d81c1ca48e1b45efd195
Expected: b6b3c68f4d9f1b7ef7af034358bf209b1e4d6e5cd0250d873938802b1ee08471
Attempting to boot anyway...
entry 0x403ce000
ESP-ROM:esp32c3-api1-20210207
Build:Feb 7 2021
rst:0x8 (TG1WDT_SYS_RST),boot:0xc (SPI_FAST_FLASH_BOOT)
Saved PC:0x403819d6
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fcd6100,len:0x420
load:0x403ce000,len:0x90c
load:0x403d0000,len:0x2370
SHA-256 comparison failed:
Calculated: aa1a3928be93313ac51da0f5a7b98a2f7e879a860d87d81c1ca48e1b45efd195
Expected: b6b3c68f4d9f1b7ef7af034358bf209b1e4d6e5cd0250d873938802b1ee08471

UPDATE 3

Deeper analysis of the issue #6027 indicates that the problem has nothing to do with WiFi!
It has no relationship with wifi.begin() or any WiFi library.

The problem is related to using GPIO13 as LED in the Sketch.
This GPIO is used by ESP32-C3 in QIO Flash access.

To solve it, just change the LED pin in the sketch.
Issue has been closed.

You must be logged in to vote
0 replies
Comment options

@SuGlider Adopted the S3 lib bulder for Tasmota. The builded framework used with Platformio does compile without any warning for the S3. I can confirm the QIO issue with the C3

You must be logged in to vote
5 replies
Comment options

@SuGlider Adopted the S3 lib bulder for Tasmota. The builded framework used with Platformio does compile without any warning for the S3. I can confirm the QIO issue with the C3

Thanks Jason for testing it!

Regarding the QIO issue with the C3, it ended up being a missconfiguration of the GPIO used to light up a LED in the sketch.
The example used GPIO 13 which is used in Flash QIO acesss mode.
Just changing the LED GPIO in the sketch fixed the issue #6027

Comment options

Still not working i had to switch to DIO mode (no Flash Gpios are used) espressif/esp32-arduino-lib-builder#59 This did solve. Maybe it is a Platformio issue?!

Comment options

@P-R-O-C-H-Y Your GPIO refactoring does work :-) Now we need a new OneWire lib ;-)

Comment options

@P-R-O-C-H-Y Your GPIO refactoring does work :-) Now we need a new OneWire lib ;-)

@Jason2866
Thanks, but there is a issue with interrupts on S3. For me they did not work. I am working on that. Can you give it a try please?

Comment options

@P-R-O-C-H-Y Yep interrupts does not work. We dont use interrupts, so i did not fall over that.

Comment options

Update:

  • Hall sensor is not supported.
  • Temp sensor is supported (now in progress in ESP-IDF)
You must be logged in to vote
0 replies
Comment options

Esp-idf 4.4-ESP32 S3
In the function
uint32_t ledc_get_freq(ledc_mode_t speed_mode, ledc_timer_t timer_num)
The clock_Divider in the formula when the frequency is returned is 0 and is used as the denominator
Causes a direct restart when using this function
Prompt message "IntegerDivideByZero"

You must be logged in to vote
1 reply
Comment options

Thank you for testing. PR with fix #6371.

Comment options

The Esp - 4.4 ESP32 S3 idf
When sampling with ADC Digi
esp_err_t adc_digi_read_bytes(uint8_t *buf, uint32_t length_max, uint32_t *out_length, uint32_t timeout_ms);
All the data read is zero, even when using the official example, and the related functions return ESP_OK

You must be logged in to vote
3 replies
Comment options

Thank you for testing. I can confirm this issue, but this function is never used in Arduino-esp32.
So I will forward this to ESP-IDF team :)

Comment options

Problem is already tracked and beiing solved here: espressif/esp-idf#8485

Comment options

问题已经跟踪并在此处解决:espressif/esp-idf#8485

ok ,thank you

Comment options

ESP32 S3 ULP is turned off by default in the Arduino framework

in sdkconfig.h
#define CONFIG_ESP32S3_ULP_COPROC_RESERVE_MEM = 0

Currently there is no way to open it without recompiling the ARDUINO-ESP32 library
Is there any way?

You must be logged in to vote
7 replies
Comment options

Is there any update on this?

Comment options

Just bumping this if it is ready?

Comment options

ULP support is enabled in the compiled and used Arduino libs. So if you manage to include ULP code somehow in your Arduino code it will work.
There is and there is no plan to support the ULP build process in Arduino.

Comment options

So there isn't any actual way to write a ULP piece of code leveraging Arduino Framework - for example using I2C to check a sensor?

Comment options

Correct, writing ULP code with Arduino framework is not possible.

Comment options

@me-no-dev Are other PSRAM Variants useable than qio? There is just this
https://github.com/espressif/arduino-esp32/blob/esp32-s3-support/tools/platformio-build-esp32s3.py#L298
and if yes, how do i activate (flag, setting) is needed in Platformio

You must be logged in to vote
1 reply
Comment options

it's currently not supported in PIO. I guess it needs a new setting that would control which variant is possible.

Comment options

You must be logged in to vote
0 replies
Comment options

For flashing the S3 esptool.py needs a fix since bootloader is not patched for correct flash size.
See espressif/esptool#728 Until it gets merged a updated version is here
A actual s3 branch build for platformio users

platform = https://github.com/tasmota/platform-espressif32/releases/download/v2.0.3/platform-espressif32-2.0.3.zip

EDIT: The PR with the fix for S3 is merged and a updated esptool.py v3.3 is released from espressif

You must be logged in to vote
0 replies
Comment options

@me-no-dev What reason is there for setting # CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE is not set in sdkconfig? I have enabled WPA3 and it works.

You must be logged in to vote
4 replies
Comment options

was it set before?

Comment options

No it was not. Why not enabling, when it works? Imho better WPA3 enabled than WPA ;-)

Comment options

since it was not set, it should be a separate PR to enable that feature. It's not part of the S3 support.

Comment options

igrr Mar 29, 2022
Maintainer

Note that enabling WPA3 support increases the binary size. It's probably something we'll have to enable eventually, but due to the increased code size we should preferably do this in a minor release (2.1.0), not in a patch release (2.0.3).

Comment options

Just looked at the lib builder and realized that the support for WPA3 is there except for the ESP32.
The config is inconsistent at the moment. The code size increase is not big.
(I am fine as it is now, since we use our own builded version, with some different settings)

You must be logged in to vote
0 replies
Comment options

Hi just tested today git :

seemstools\sdk\esp32s3\include\driver\esp32s3\include\driver\temp_sensor.h miss the corresponding code :|

... core\core.a(esp32-hal-misc.c.o):(.literal.temperatureRead+0x4): undefined reference to `temp_sensor_set_config'
... core\core.a(esp32-hal-misc.c.o):(.literal.temperatureRead+0x8): undefined reference to `temp_sensor_start'
... core\core.a(esp32-hal-misc.c.o):(.literal.temperatureRead+0xc): undefined reference to `temp_sensor_read_celsius'
... core\core.a(esp32-hal-misc.c.o):(.literal.temperatureRead+0x10): undefined reference to `temp_sensor_stop'
... core\core.a(esp32-hal-misc.c.o): in function `temperatureRead':

same for tools\sdk\esp32s3\include\esp_hw_support\include\soc\rtc_wdt.h for example void rtc_wdt_feed(void); => undefined reference tortc_wdt_feed`

the header are there but not the corresponding code/lib ?

You must be logged in to vote
0 replies
Comment options

Temp Sensor support is not yet implemented

You must be logged in to vote
2 replies
Comment options

Ok, thank you, because above status is : to be tested so I was not sure compared to the in progress comment, that said the ESP32 status is also wrong for same topic ^_^

Comment options

@luc-github sorry for confusion, I updated a table to make it more clear that Temp sensor is not supported yet.

Comment options

** GPIO interrupts work only on CORE 0 on ESP32-S3. Fix is ready to be merged in esp-idf.

Since this is merged and Arduino libs are compiled with that should not be an issue anymore

You must be logged in to vote
1 reply
Comment options

Yes, its fixed now :)
I will change the notes. Thanks @Jason2866 for pointing that out.

Comment options

Any news from TempSensor support in IDF ?

You must be logged in to vote
1 reply
Comment options

Hi @Jason2866 , done in ESP-IDF. At the moment, I'm not sure if it's going to be backported into v4.4. Will let you know when I know the answer and I will update the table.

Comment options

@VojtechBartoska Thx, for the feedback. Looking at IDF master i dont find the commit. Can you link the commit? I would try a backport myself. Seems not that difficult.

You must be logged in to vote
0 replies
Comment options

I am confused what branch is the "latest and greatest"? I see @Jason2866 posting his branch and I think I see @me-no-dev uploading to a different location.

You must be logged in to vote
1 reply
Comment options

The latest available Development release is 2.0.3-RC1, available in Boards Manager
Link here: https://github.com/espressif/arduino-esp32/releases/tag/2.0.3-RC1

If you are a bit more experienced, you can also checkout the Master branch manually.
Link here: https://github.com/espressif/arduino-esp32/tree/master

Comment options

Hi sorry - what is the status for temperature sensor ?
the link In progress in IDF IDF-1793 give no data
For what I can test , in 2.0.3 it is not supported so far.
Will be the case in future release ? or is this feature is definitly removed ?

Not pushing - just would like to get status as in 2.0.3 release notes there is no mention of it, even if it is a limitation that temperature sensor is not working for S3 (API is present but link to nothing)

You must be logged in to vote
2 replies
Comment options

Hello,

S3 temperature support will be fully supported in IDF 5.0, it's part of driver refactoring and there are breaking changes.

Workaround solution for temp sensor for S3 will be backported to IDF 4.4 but it's not ready yet.

Comment options

Thank you ^_^

Comment options

Hello, the functions of esp32 S3 EEPROM and preferences cannot be written normally, but the same program can work normally in esp32 The environment I tested was vscade platformio

You must be logged in to vote
1 reply
Comment options

With what code and platformio.ini did you test that?

Comment options

#include <Arduino.h>
#include "EEPROM.h"

void setup()
{
// put your setup code here, to run once:
//********************************************
int date;
Serial.begin(115200);
Serial.println("");

EEPROM.begin(4096); //
//
Serial.println("read begin");

int data = EEPROM.read(01); //
Serial.println(data);

Serial.println("read done");
delay(200);
data++;
//
Serial.println("write begin");
Serial.println(data);
EEPROM.write(01, data); //

EEPROM.commit(); //
Serial.println("write done");
delay(5000);
ESP.restart(); //
}

void loop()
{
// put your main code here, to run repeatedly:
}

You must be logged in to vote
0 replies
Comment options

; 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
; https://docs.platformio.org/page/projectconf.html

[env:esp32-s3-devkitc-1] ;4M
platform = espressif32 @ ~4.4.0 ;@ ~3.5.0
board = esp32-s3-devkitc-1

framework = arduino
monitor_speed = 115200
upload_speed = 1500000

You must be logged in to vote
0 replies
Comment options

#include <Arduino.h>
#include <Preferences.h>

void setup()
{
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println();
delay(2000);

Preferences prefs; //
prefs.begin("mynamespace"); //
uint32_t count = prefs.getUInt("count", 0); //
//
count++; //
Serial.printf("这是系统第 %u 次启动\n", count);
prefs.putUInt("count", count); //
prefs.end(); //

delay(5000);
ESP.restart(); //
}

void loop()
{
// put your main code here, to run repeatedly:
}

You must be logged in to vote
0 replies
Comment options

@VojtechBartoska Temp Sensor is supported now in IDF 4.4 with this commit

You must be logged in to vote
3 replies
Comment options

Thanks @Jason2866 for the pointer.

Comment options

will be tested by @P-R-O-C-H-Y.

Comment options

@VojtechBartoska @Jason2866 Tested on idf-release/v4.4 branch and temp sensor is fully working on ESP32S3.
Once new IDF version gets merged, it will be available. (PR #6994)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

AltStyle によって変換されたページ (->オリジナル) /