My Xiao C3 is suddenly recognized as TAMC Termod S3

I’ve been using it without a problem so far, today I wanted to upload a different sketch where I experiment with power saving features. I haven’t changed anything on my PC or in my configs. After the first successfull upload of the new sketch I’ve noticed I can’t upload anymore because esptool complains of unsupported protocol. Then I’ve noticed that eventhough XIAO ESP32C3 is selected as the board, /dev/ttyACM1 is recognized as TAMC Termod S3 and using “Get Board Info” indeed gives the same output.

What might I have done wrong? Re-burning the bootloader solved the problem of sketch upload but board is still recognized as TAMC Termod S3.

Any ideas would be appreciated.


EDIT: Re-burning bootloader only fixes it until next sketch upload.

Hi there,
First thing DO NOT PANIC… :grin:
That first upload you sent it , was a KaKA…
Go to Bootloader mode and Reload it with a known good program. if that doesn’t go then you may need to restore the factory bin , follow the wiki.
GL :slight_smile: PJ

If it goes to BL mode , your not totally doa. not to worry.

I have downloaded RF Test tool and successfully flashed ESP32-C3_RFTest_108_2b9b157_20211014.bin.

After this neither Linux nor Windows recognizes the device anymore. In linux I get this error

[ 37.160237] usb 3-2: new full-speed USB device number 2 using xhci_hcd
[ 37.292568] usb 3-2: device descriptor read/64, error -71
[ 37.536567] usb 3-2: device descriptor read/64, error -71
[ 37.772248] usb 3-2: new full-speed USB device number 3 using xhci_hcd
[ 37.904573] usb 3-2: device descriptor read/64, error -71
[ 38.148569] usb 3-2: device descriptor read/64, error -71

Good thing is, bootloader mode still works, I tried to burn bootloader via Arduino IDE again however to my luck it’s still recognized as TAMC Termod S3 after that.

The initial sketch that caused all of it was like below.

void setup()

int counter = 0;

void loop()

    esp_sleep_enable_timer_wakeup(2 * 1000000); // light sleep for 2 seconds

Which didn’t work. It never woke up from sleep.

Hi there,
Drop the SD_EXP.bin on it from ZIP in the other thread (includes the BL.)

You can use flash tools to drop it on, or nRF Test tool
GL :slight_smile: PJ

Unfortunately it still shows up as TAMC board. Though my sketch uploads work. Did I change the USB vid/pids somehow?

Hi there,
Can you edit it , to fix it?
Notice the pencil Icon next to the Name.
GL :slight_smile: PJ

Hi yes I can select the correct board and it will work but the USB VID/PID is still recognized as S3 not C3
To proove my hyptohesis I opened up a completely new XIAO ESP32C3. Literally unpackaged it now. Switched to Windows just to make sure it’s not Linux problem. Installed Arduino IDE, added esp32 board repo and plugged in the never used XIAO ESP32C3 and this is what it says

Out of the box it’s seen as S3.

well. You are Not alone, I just checked this one I’m using now! WTH?

GL :slight_smile: PJ

Try to disconnect and reconnect XIAO ESP32C3 to your computer.

It is borderline insulting to suggest that I didn’t do it 1000 times :smiley:

1 Like

My problems went away since I’ve switched to VSCode-Arduino. I think the Arduino IDE does some stuff with those device IDs that messes up the upload. Since I’ve been working on VSCode, Arduino IDE started to recognize the board as DFRobot C3 which is an improvement I guess.

1 Like

Sorry Dear.

The esp32 board package files do not contain a script for recognizing the connected development board. Therefore, it is expected behavior when Arduino has recognized other development boards. You just need to manually change to the correct development board.

1 Like