toverainc / willow

Open source, local, and self-hosted Amazon Echo/Google Home competitive Voice Assistant alternative
https://heywillow.io/
Apache License 2.0
2.56k stars 96 forks source link

Cant Flash - cant find ttyACM0? #60

Closed robotica72 closed 1 year ago

robotica72 commented 1 year ago

Everything seems to go well, up to erasing the flash - It cant find the port, but dmesg shows the Espressif and that it is on /dev/ttyACM0. Looking at /dev - I can see ttyACM0 is there. If I disconnect the USB cable, ttyACM0 does go away...

Using venv for esptool esptool.py v4.5.1 Serial port /dev/ttyACM0

A fatal error occurred: Could not open /dev/ttyACM0, the port doesn't exist

dmesg when plugged in:

[ 3364.126378] usb 2-2.1: new full-speed USB device number 8 using uhci_hcd [ 3364.434428] usb 2-2.1: New USB device found, idVendor=303a, idProduct=1001, bcdDevice= 1.01 [ 3364.434435] usb 2-2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 3364.434437] usb 2-2.1: Product: USB JTAG/serial debug unit [ 3364.434439] usb 2-2.1: Manufacturer: Espressif [ 3364.434440] usb 2-2.1: SerialNumber: 7C:DF:A1:E8:22:F8 [ 3364.438405] cdc_acm 2-2.1:1.0: ttyACM0: USB ACM device [ 3408.337353] usb 2-2.2: USB disconnect, device number 7 [ 3412.010379] usb 2-2.1: USB disconnect, device number 8 [ 3412.923174] usb 2-2.1: new full-speed USB device number 9 using uhci_hcd

Only potential issue - this is a VM, but Im passing the USB through, and I never had issues in the past doing this on any flashing (ESP / etc...)

Any ideas?

skrilla0 commented 1 year ago

Yes, ls /dev/ttyACM* doesn't show the device anymore.

I tried connecting a different S3 that was recently successfully flashed, and host machine is able to identify the USB device fine. When I reconnect the problematic S3, the errors are there: device descriptor read/8, error -110

Could I have bricked the device creating this issue?

hamishcunningham commented 1 year ago

I haven't managed to brick any S3-based boards, but I have seen similar behaviour where it is almost impossible to get them to flash, but then once flashed they start working again. Mind you I've mostly been working on boards that have the UF2 bootloader underneath, which is a whole other can of worms :(

Sorry can't be more helpful!

kimocal commented 1 year ago

We haven't done any testing with USB passthrough or VMs... Here's a workaround for you (for now):

./utils.sh dist

Disable USB passthrough to the VM. Copy willow-dist.bin to your host machine. Unplug and plug-in your ESP BOX just to be sure.

Then head over to the ESP web flashing tool (Chrome is best if you have it)

Provide access to the port when prompted Click the red "Erase flash" Set flash address to 0x0 Click chose file, find willow-dist.bin wherever you put it on your host. Click Program

Thank you! I was having issues with the Box disconnecting in my Ubuntu VM and USB passthrough. I used the Bootloader mode with the flash_download_tool_3.9.5 from the Espressif website to flash the willow-dist.bin.

https://www.espressif.com/sites/default/files/tools/flash_download_tool_3.9.5.zip

stintel commented 1 year ago

Closing as we now offer https://flash.heywillow.io/.