Feather ESP32-S3 difficulties

Please tell us which board you are using.
For CircuitPython issues, ask in the Adafruit CircuitPython forum.

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
dooda
 
Posts: 15
Joined: Sun Jan 29, 2012 1:49 pm

Feather ESP32-S3 difficulties

Post by dooda »

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.

User avatar
dooda
 
Posts: 15
Joined: Sun Jan 29, 2012 1:49 pm

Re: Feather ESP32-S3 difficulties

Post by dooda »

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.

User avatar
hamish
 
Posts: 30
Joined: Mon Jul 20, 2015 6:46 am

Re: Feather ESP32-S3 difficulties

Post by hamish »

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:
  • 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)
I buy a couple of hundred ESP32 Feathers each year to teach an IoT course at my University. This year we've moved to the S3 (with 2MB PSRAM). On Linux they work more predictably, but now I'm moving them to the (Windows-based) lab and like several others on this forum I am finding the process painful :(

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)
I then see various problems, e.g.:
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: None of these appear to have an answer at present :( Help appreciated :)

Thanks!
Hamish

User avatar
hamish
 
Posts: 30
Joined: Mon Jul 20, 2015 6:46 am

Re: Feather ESP32-S3 difficulties

Post by hamish »

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.
...
Hi! I've seen similar things (see long description). Two specific things to try:
  • 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!)
I'll try these tomorrow, away from my Windoze lab at present!

User avatar
dooda
 
Posts: 15
Joined: Sun Jan 29, 2012 1:49 pm

Re: Feather ESP32-S3 difficulties

Post by dooda »

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.

User avatar
hamish
 
Posts: 30
Joined: Mon Jul 20, 2015 6:46 am

Re: Feather ESP32-S3 difficulties

Post by hamish »

:) 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!

User avatar
hamish
 
Posts: 30
Joined: Mon Jul 20, 2015 6:46 am

Re: Feather ESP32-S3 difficulties

Post by hamish »

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
I've tried this now (setting ARDUINO_USB_MODE=1); it doesn't seem to help :(

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...

User avatar
dooda
 
Posts: 15
Joined: Sun Jan 29, 2012 1:49 pm

Re: Feather ESP32-S3 difficulties

Post by dooda »

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.

User avatar
dooda
 
Posts: 15
Joined: Sun Jan 29, 2012 1:49 pm

Re: Feather ESP32-S3 difficulties

Post by dooda »

So far, backing off to board package 'esp32 by Expressif systems' version 2.05 seems to solve my problems with flashing.

Dave

User avatar
hamish
 
Posts: 30
Joined: Mon Jul 20, 2015 6:46 am

Re: Feather ESP32-S3 difficulties

Post by hamish »

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 :)

Locked
Please be positive and constructive with your questions and comments.

Return to “Feather - Adafruit's lightweight platform”