Replies: 4 comments 3 replies
-
I'm sorry not being really helpful, but I have the same problem with a Seeed Studio ESP32-S3.
So that leaves using the boot and reset buttons, but these are so tiny that it very difficult to push 'm and even more in the required sequence. |
Beta Was this translation helpful? Give feedback.
-
I've tried programming using TX(pin 43) and RX(pin 44) of the XIAO ESP32-S3: no success. |
Beta Was this translation helpful? Give feedback.
-
The S3 has some teething issues with the jump in/out of bootloader functionality. I've implemented explicit support for the RTS/DTR bootloader jump in PR #15108, along with behind the scenes switching from tinyusb to USB serial JTAG mode to workaround one of the known firmware bugs with this. The automatic reboot to bootloader in esptool has a separate issue however that's addressed in the external pr linked there, however it got only partially merged into esptool so there's often still some glitches there. TLDR the first time you run esptool (either manually or via make deploy) it fails during the reboot to bootloader because the serial port drops out. Rerunning it then works to perform the flash. On a related note, the current release of esptool can flash the S3 just fine, but it can't automatically reboot back to application after the flashing is finished. Currently you need to physically hit reset or power cycle the board. This has already been fixed in esptool master espressif/esptool@0215786 but isn't in a release yet; it'll be in 4.8 when that's out. |
Beta Was this translation helpful? Give feedback.
-
Is there a reason why you can't use the same method esptool uses ? I use the subprocesrun approach in mpflash, and that works great across the different chipsets. Edit: |
Beta Was this translation helpful? Give feedback.
-
We're building devices that embed ESP32-S3 modules and haven't yet set up OTA updating. It's hard to get to the BOOT button on our board once we've built the devices. So we'd like to be able to enter the bootloader for firmware updates by issuing a micropython command.
However,
machine.bootloader()
doesn't do this (it only enters a tight loop), and I can't getesptool.py
to talk to the ESP32 after that. The USB descriptors look different if you use the BOOT/RESET buttons vs.machine.bootloader()
:/dev/ttyACM0 34:85:18:73:5F:54 303a:1001 Espressif USB JTAG/serial debug unit
machine.bootloader()
):/dev/ttyACM0 123456 303a:4001 Espressif Systems Espressif Device
Is there a reliable way to force bootloader entry from MicroPython without pushing buttons?
Beta Was this translation helpful? Give feedback.
All reactions