Can't work with brandnew XIAO ESP32-S3

Hello,

I am connecting XIAO ESP32-S3 to Win11 host and using usbipd to connect with WSL2 Ubuntu. Everything works fine but can’t do neither board-info nor monitor as below. Please help me!

Ubuntu@T14G3:~$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 010: ID 2886:0059 Seeed Technology Co., Ltd. seeed-xiao-s3
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Unfortunately, I can’t do neither board-info nor monitor, it always says error likes this:

Ubuntu@T14G3:~$ espflash board-info
:check_mark: Use serial port ‘/dev/ttyACM0’ - seeed-xiao-s3? · yes
:check_mark: Remember this serial port for future use? · no
[2025-12-08T08:08:13Z INFO ] Serial port: ‘/dev/ttyACM0’
[2025-12-08T08:08:13Z INFO ] Connecting…
Error: × Error while connecting to device

Hi there,

Been a while :v:

So I had a similar issue using the New Seeed debugger in the WSL on Windows , Until that is “persistence”
Check out the demo thread on here were I set it up in both and what you need to do;
but basically in a nutshell. What espflash does under the hood is:

  1. Opens /dev/ttyACM0.
  2. Toggles DTR/RTS to reset the ESP32-S3 into bootloader mode.
  3. The chip re-enumerates as a new USB device when the ROM bootloader comes up.
  4. espflash then talks to that new bootloader endpoint.

On bare Linux that’s fine: the device drops, comes back, still owned by the same kernel, and /dev/ttyACM0 is usable again.

With WSL2 + usbipd, that reset looks like:

  • Windows sees the USB device disconnect.
  • New device appears (same VID/PID, but a fresh instance).
  • Unless you told usbipd to auto-reattach/persist, that new instance never gets forwarded into WSL.
  • So from inside Ubuntu, espflash is now talking to a dead /dev/ttyACM0 that no longer maps to a real device → generic “Error while connecting to device”.

So it looks like a serial/board issue, but it’s actually usbipd losing the device on every reset.
You see in the video (TLDR) :grin: I do this too;

Attach with persistence in Windows

On the Windows side (PowerShell as admin):

usbipd wsl list

Find the Xiao entry, note the BUSID (something like 1-10), then:
I show this also..

usbipd wsl attach --busid 1-10 --persist  // FIX //

Newer usbipd releases also support --auto-attach; either way, the goal is:

  • When the board disconnects/re-enumerates (reset into bootloader), WSL gets the new instance too, automatically.

Without that, espflash never sees the bootloader device and just times out.

HTH

GL :santa_claus: PJ :v: