ReSpeaker Lite Firmware Upload Messed Up

Hello,

My first post here…

It looks I did a big mess while trying to upload new firmware.

I followed instructions on Getting Started with ReSpeaker Lite | Seeed Studio Wiki, which was a mistake. I was supposed to follow the i2s guide (ReSpeaker Lite Voice Assistant Kit | Seeed Studio Wiki).
After trying to recover the situation, I ended up with the following output from dfu-util:

E:\dfu-util>dfu-util -e -a 1 -D "respeaker_lite_i2s_xiao_1.0.7.bin"
dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release!!!
No DFU capable USB device available

Zadig shows the option, “USB JTAG/serial debug unit” when I connect ReSpeaker.
Driver is WinUSB (v6.1.7600.16385).
USB ID: 303A 1001

What can I do to get the i2c firmware back on ReSpeaker Lite?

Many thanks for your help in advance, guys!

Hi again,

Nobody has a clue, the same as I don’t? Maybe a small hint?
In the meantime, I tried dfu-util on Linux (initially I was doing it on Windows), but result is the same.
Seeed, I was hoping for some word from your side.
Or at least somebody tell me, that I bricked the device. :-\

Best,

Hi there,
So it has a Xiao Esp32S3 on it? Just put it in Bootloader mode and reflash the firmware, The correct firmware and it should be fine.
easy mistake.
HTH
GL :slight_smile: PJ :v:

Hi PJ,

Many thanks for your answer.

Sure, the chip mentioned is there.

With “bootloader mode” you probably mean to have “boot” button pressed while powering up? I tried this many times. The problem is, there is no visual signal that boot mode is on. Should it be? Anyhow, there is no difference in uploading attempt. They all fail.

Tried also with Arduino IDE on Windows, and some tool from ESP on Linux, which name I cannot recall without computer. They all say that communication cannot be accomplished.

Is the next move to solder wires on RX TX on the chip directly and try uploading there?

BR

There are 2 USB type C ports on the board. You need to use the one close to 3.5mm jack port to flash XMOS’s firmware

Sure, no doubt about that.

what is the output when you type dfu-util -l and lsusb on Linux with respeaker lite connected

Hi,

me@asus:~$ dfu-util -l
dfu-util 0.11

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2021 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
me@asus:~$ lsusb
Bus 001 Device 003: ID 0c45:62c0 Microdia Sonix USB 2.0 Camera
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 3151:3020 YICHIP Wireless Device
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 005: ID 303a:1001 Espressif USB JTAG/serial debug unit
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
me@asus:~$

It is the Bus 002 Device 005.
Running commands as root gives the same results.

Best!

Bus 002 Device 005: ID 303a:1001 Espressif USB JTAG/serial debug unit

I think this Bus 002 Device 005 is the USB port of XIAO ESP32S3, not the XMOS.

I marked the XMOS USB port in the following picture, would you please try to connect only it to your Linux PC and run dfu-util -l and lsusb again?

1 Like

@jiewei.ye , I need an apology to you. I was eager to answer about the port and I did it wrong. Thanks for your help. I was able to upload FW via XMOS port. That part is solved.

However, I am still not able to upload FW from ESPHome (Home Assistant).
Manual reads “Connect the XIAO ESP32S3 to your PC via a USB Type-C cable.”. So, this is now the other USB port as before. On the very top from the picture above. When connected, it reads COM 5. In Zadig, “USB Serial” driver is used. If I try “WinUSB”, then the device will not show up in the ports list or in the list of available devices in ESPHome.
Attempts to upload FW from ESPHome to device “USB JTAG/serial debug unit (COM5) - paired” fail with a message “Failed to initialize. Try resetting your device or holding the BOOT button while selecting your serial port until it starts preparing the installation.”. Following instructions from the message gives the same results. Before the fail message appears, device sounds with scratch sounds a few times.

Is the way I am doing it correct?
Is there a better way to upload FW to the XIAO ESP?

Thanks a lot!

Yes, you are doing right. Powering off first, holding the BOOT button and then re-connecting the Type C cable to XIAO ESP32S3 is the way to let it start in “boot” mode. Then you will be able to upload esphome firmware to it.

The BOOT button is a bit hard to hold. I always use tweezers to hold it.

I have similar approach. Should the device signal in some way (light, sound) while in boot mode? My device doesn’t change.

Maybe I should try to short the boot pin directly on the chip?

HI there,
With Boot button held down and USB cable plugged in as you hold it down.
Does it show up comm port?
Is USB cable true USB-C cable?
If connected to PC and you hold boot button and Press and hold reset button for 10 seconds and release only Reset button then Boot button does the com port change?
I will be ordering one of these Soon to test with, So I can go hands on. :grin: :open_hands:
The S3 is a good choice, lots of options but a little tricky to Implement all of it.

HTH
GL :slight_smile: PJ :v:

With Boot button held down and USB cable plugged in as you hold it down.
Does it show up comm port?

Yes. Behaviour is the same as when I do not hold the boot button pressed.

Is USB cable true USB-C cable?

Yes.

If connected to PC and you hold boot button and Press and hold reset button for 10 seconds and release only Reset button then Boot button does the com port change?

No, it always reads COM 5.

I will be ordering one of these Soon to test with, So I can go hands on. :grin: :open_hands:
The S3 is a good choice, lots of options but a little tricky to Implement all of it.

I am sure you will not make such a mess as I did. Have I ever mentioned that out of the box the thing worked?

1 Like

hi there,
LOL, Welcome to testing… :+1:
They always do but we want more… :v:
Stay on it , your close you’ll get it.
SO is there a BIN or flash file that is the factory stuff?
if so as a safety net. I would blank the S3 and re-image it.
Does it show up in the Arduino IDE?
Ok, SO I just ordered one… I got it without the Xiao soldered I’ll put a socket on there. :slight_smile:
HTH
GL :slight_smile: PJ
Stay tuned.!

Hi PJ,

Asking about the BIN, you probably want to know about that one: ReSpeaker Lite Voice Assistant Kit | Seeed Studio Wiki.

Can you give me a hint on how to blank the S3?

Chip shows in Arduino, but when I try to upload a program, it always ends up with the following:

Sketch uses 235997 bytes (7%) of program storage space. Maximum is 3342336 bytes.
Global variables use 18192 bytes (5%) of dynamic memory, leaving 309488 bytes for local variables. Maximum is 327680 bytes.
esptool.py v4.5.1
Serial port COM5
Connecting......................................

A fatal error occurred: Failed to connect to ESP32-S3: No serial data received.
For troubleshooting steps visit: https://docs.espressif.com/projects/esptool/en/latest/troubleshooting.html

May I ask again, if there should be some visual signal when ESP is in the bootloader mode?

Best!

HI there,
In the tools menu You can set it debug level and it will output some info when it resets.
Unfortunatly there isn’t any indication other than the current program will stop.

I used the factory firmware on the S3 wiki page.
Extracted it to a folder and ran the Bat file with the S3 connected while holding the boot button down. ( I do get a windows chime port found), also worth noting if at this point I have Arduino IDE open and I open the serial monitor and I set baud rate to 115200 then Close and open the serial monitor again, the monitor (the Xiao spits this out to the port)
ESP-ROM:esp32s3-20210327
message (it’s in bootloader mode) and you can keep doing it.

When you press and hold the BOOT key while powering up and then press the Reset key once, you can also enter BootLoader mode.

After the factory firmware is restored it IS back to the touch demo when it was new.
press the reset button and I get a message
"[ 255][I][esp32-hal-psram.c:96] psramInit(): PSRAM enabled"
BTW the core Debug level is set to “None” in the tools menu.

HTH
GL :slight_smile: PJ :v:

In short

  1. Reflash the Xiao with factory BAT file , then verify. (touching pins lights LED)
  2. go back to Bootloader mode with Holding the Boot button and plugging in USB
  3. flash the I2S code to Xiao and be happy again. :grinning: :v:

Hi there,

I made some progress, but I am not there yet.

Obviously I have a problem with uploading FW from Windows. I cannot make it work (any more).
Luckily, I have an ancient spare laptop. Installed Linux and esptool package on it. This way, I was able to upload original FW, as instructed here, using command

esptool.py --chip esp32s3 --port /dev/ttyACM0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 8MB 0x0 xiao_esp32s3_firmware.bootloader.bin 0x8000 xiao_esp32s3_firmware.partitions.bin 0xe000 boot_app0.bin 0x10000 xiao_esp32s3_firmware.bin

After uploading Home Assistant program and also respeaker_lite_i2s_dfu_firmware_v1.0.8.bin, the device is visually again in the same condition as from the beginning (RGB LED on, speaker make scratch sounds). What is not working is voice command in Home Assistant. Initially it worked.

Will put this on hold until my new mini PC arrives. I’ll install Debian desktop there and hopefully will be able to work normally.

Will report here, sure.

Have a nice weekend!

2 Likes

Hello,

Solved.
It was Windows problem. Well, it still is.
I got new minicomputer today, installed Debian, added all permissions to the USB port of ESP and uploading from ESPHome works. ReSpeaker listens to me again.
Not sure what is the Windows problem. Something with drivers for sure.

Thank you, guys, for your help!

2 Likes