I have two ESP32-S3 Feather boards. I am encountering a lot of difficulty working with them. These are the non-TFT boards.
Initially they seem to work well enough. But after a small number flash loads - usually 2 or 3, the bootloader gets corrupted. I have had this happen using either the Arduino IDE (2.0) or the current Platformio environment under VSCode. The same thing has occurred using Linux Mint 21 (Ubuntu Jammy) , Raspberry Pi OS (current) and even Windows 11.
In most cases, by dint of persistence, I have been able to get replace the UF2 bootloader by double resetting the board and copying the bootloader for the TFT version of the board into place. I have never been able to find a bootloader explicitly labeled for the non-TFT Feather on Github or anywhere else. So I have used the Feather S3 TFT .ufw and .bin files, having no other option. But this requires many, many resets and takes up so much time that it is impossible to get any work done.
Eventually, it becomes impossible to restore the UF2 bootloader this way. Following the (mostly) well written instructions on the "Adafruit ESP32-S3 TFT Feather->Learn" page I have been able twice now to restore using the Chrome WebSerial installer. This, too, only works occasionally. Usually it fails with the message "Unable to synch with ESP32". This behavior is the same on Windows and Linux. In both cases the serial port is visible.
I have not been able to try the command line version of esptool.py because installation from Pypi fails building the wheel files (I have posted a bug report on the Github) - at least on Linux. There also seems to be something wrong with the command line syntax, at least on the RasPi.
I have tried many different (all known good) USB cables. Directly connected, connected through hubs (both powered and non-powered). I have tried every conceivable combination of reset/reboot/power switch/ system reboot.
ESP32-S2 Feathers as well as many other ESP32 boards work well for me. My systems all are known to work well for this kind of development.
So far, it seems that the development support for the ESP32-S3 falls far short of usability.
Feather ESP32-S3 difficulties
Moderators: adafruit_support_bill, adafruit
Please be positive and constructive with your questions and comments.
- dooda
- Posts: 15
- Joined: Sun Jan 29, 2012 1:49 pm
Re: Feather ESP32-S3 difficulties
In the esptool github issues (https://github.com/espressif/esptool/issues/829) @dobairoland indicates that a workaround for installing esptool.py from Pypi is currently to execute `pip install esptool==4.5.dev2`. This seemed to work for me. The other problems persist.
- hamish
- Posts: 30
- Joined: Mon Jul 20, 2015 6:46 am
Re: Feather ESP32-S3 difficulties
I have 150 Feather S3s waiting to give out to students this week, and I am seeing similar problems to the ones on this thread (and several others). I'm getting the boards to work eventually, but they are MUCH harder to work with than any board I've had in the last 5 years :(
For example:
The feathers flash reliably the first time, but subsequently often generate port access errors or hangs. There seems to be an interaction between the various ways the bootloader(s) present the device to the OS over USB and Windows' serial port management. So I suspect that the bootloader(s) provided here with UF2 and Python support may be causing the issues? (The .bin files are all fairly old; maybe if Adafruit tried to regenerate them might be a good first step? Or perhaps think about providing a non-UF2 alternative for people not using Python?)
Note that the boards show up in 3 different ways when I connect or reset or put them in ROM bootloader mode:
With the Arduino IDE (1.8.19) I can sometimes manage to flash the board, but quite often I get "Access is denied" or similar COM port errors.
With VSCode/PlatformIO I can monitor serial but flashing often either hangs or fails part way with "Packet content transfer stopped".
The problems for me occur most frequently on Windows 10 with either Arduino IDE 1.8.19 or the latest VSCode / PlatformIO. (On Ubuntu 22.04 things mostly work, though occasionally I see problems.)
I note similar issues reported here:
Thanks!
Hamish
For example:
- load this sketch in VSCode: https://gitlab.com/hamishcunningham/the ... sketch.ino
- open PlatformIO Core CLI in a VSCode terminal (or use a task executor; the results are similar)
- hold down the S3 Feather's boot button, press and release reset, release boot
- do "pio run -t upload -t monitor"
- everything runs successfully up to the flash, when the process just hangs
- do boot/reset again and try again; repeat three times (for example), and eventually it flashes successfully
- hit reset to load the new firmware
- the monitor process then runs, but shows nothing; this is because the port has jumped; kill the process and run "pio run -t monitor" to help it find the new port
- hey presto, I have a working board with the new code running BUT look at all those steps! and it took me 3 days to get this far! (and there's a similar process necessary on the Arduino IDE)
The feathers flash reliably the first time, but subsequently often generate port access errors or hangs. There seems to be an interaction between the various ways the bootloader(s) present the device to the OS over USB and Windows' serial port management. So I suspect that the bootloader(s) provided here with UF2 and Python support may be causing the issues? (The .bin files are all fairly old; maybe if Adafruit tried to regenerate them might be a good first step? Or perhaps think about providing a non-UF2 alternative for people not using Python?)
Note that the boards show up in 3 different ways when I connect or reset or put them in ROM bootloader mode:
- "USB/JTAG serial debug unit"
- "ESP32S3 Dev Module"
- "Adafruit ESP32-S3 Feather 2MB PSRAM"
- (occasionally the FTHRS3BOOT drive pops up just to complete the party)
With the Arduino IDE (1.8.19) I can sometimes manage to flash the board, but quite often I get "Access is denied" or similar COM port errors.
With VSCode/PlatformIO I can monitor serial but flashing often either hangs or fails part way with "Packet content transfer stopped".
The problems for me occur most frequently on Windows 10 with either Arduino IDE 1.8.19 or the latest VSCode / PlatformIO. (On Ubuntu 22.04 things mostly work, though occasionally I see problems.)
I note similar issues reported here:
- partial upload then "Failed uploading: uploading exit: exit status 2"
(this one suggests that when the board appears as "Dev Module" it is more reliable):
viewtopic.php?p=955739&hilit=esp32s3+port#p955739 - port bouncing and slow workflow:
viewtopic.php?p=954338&hilit=esp32s3+port#p954338 - first upload works (which implies that there is a software fix possible?)
but never gets a port again, or reset after flash doesn't work
(also tries older versions of the ESP32 core / IDF with no luck;
long discussion of USB modes on S3; related Espressif advisory):
viewtopic.php?t=197780 - I've also studied this guide and others:
https://learn.adafruit.com/adafruit-esp ... rduino-ide
Thanks!
Hamish
- hamish
- Posts: 30
- Joined: Mon Jul 20, 2015 6:46 am
Re: Feather ESP32-S3 difficulties
Hi! I've seen similar things (see long description). Two specific things to try:dooda wrote: Sat Feb 04, 2023 9:34 pm I have two ESP32-S3 Feather boards. I am encountering a lot of difficulty working with them. These are the non-TFT boards.
...
- looking at boards.txt in the Arduino ESP32 core, the S3 feather seems to set build.usb_mode to 0, unlike most other S3 boards; this post suggests setting it to 1
- for me I eventually manage to flash if I do the reset/boot combination several times, retrying each time (quite painful, but at least it works in the end!)
- dooda
- Posts: 15
- Joined: Sun Jan 29, 2012 1:49 pm
Re: Feather ESP32-S3 difficulties
Thanks! I will do as you suggest.
Looks like you have a real situation on your hands.
I really want to do this from Linux.
Testing with Windows just shows how desperate I have become. I had to commandeer my wife's TV laptop.
This looks like a very pervasive problem.
Similar to how things went using SparkFun's SAMD21 boards. I was having to reset them so many times the reset button would fall off.
Looks like you have a real situation on your hands.
I really want to do this from Linux.
Testing with Windows just shows how desperate I have become. I had to commandeer my wife's TV laptop.
This looks like a very pervasive problem.
Similar to how things went using SparkFun's SAMD21 boards. I was having to reset them so many times the reset button would fall off.
- hamish
- Posts: 30
- Joined: Mon Jul 20, 2015 6:46 am
Re: Feather ESP32-S3 difficulties
:) Yes, only desperation drives us to Windows!
One workaround is to use Docker (though you also have to run it in a VM to make the serial ports available). If you want to play with that, there's a docker image detailed here, though I wouldn't say it was an easy option!
One workaround is to use Docker (though you also have to run it in a VM to make the serial ports available). If you want to play with that, there's a docker image detailed here, though I wouldn't say it was an easy option!
- hamish
- Posts: 30
- Joined: Mon Jul 20, 2015 6:46 am
Re: Feather ESP32-S3 difficulties
I've tried this now (setting ARDUINO_USB_MODE=1); it doesn't seem to help :(hamish wrote: Mon Feb 06, 2023 12:42 pm ...
- looking at boards.txt in the Arduino ESP32 core, the S3 feather seems to set build.usb_mode to 0, unlike most other S3 boards; this post suggests setting it to 1
So the only route to flashing on Windows that I'm reliably getting to work is doing the boot/reset dance multiple times and retrying. It can take up to 10 tries :( And occasionally I have to take it to a Linux machine, flash it and then bring it back to Windows...
- dooda
- Posts: 15
- Joined: Sun Jan 29, 2012 1:49 pm
Re: Feather ESP32-S3 difficulties
Yes, that change didn't work for me either. In my case, I can fall back to using the ESP32-S2 boards. But II don't have 150 students banging on the door. It looks like using the S3 boards is going to have to wait - unless using JTAG in some other way could work. I have accumulated LOTS of JTAG interfaces that I rarely use.
- dooda
- Posts: 15
- Joined: Sun Jan 29, 2012 1:49 pm
Re: Feather ESP32-S3 difficulties
So far, backing off to board package 'esp32 by Expressif systems' version 2.05 seems to solve my problems with flashing.
Dave
Dave
- hamish
- Posts: 30
- Joined: Mon Jul 20, 2015 6:46 am
Re: Feather ESP32-S3 difficulties
Cool!
See also this just in today on longer term fix:
viewtopic.php?t=197780&e=1&view=unread#unread
I haven't been able to test it yet but looks like the thing :)
See also this just in today on longer term fix:
viewtopic.php?t=197780&e=1&view=unread#unread
I haven't been able to test it yet but looks like the thing :)
Please be positive and constructive with your questions and comments.