-
Notifications
You must be signed in to change notification settings - Fork 82
Rescue from a failed upgrade
When the respeaker failed to boot into its openwrt system, we can't access the system through web terminal, ssh or serial console. We may only get error message from the usb virtual serial port. We have two ways to rescue it.
- connect the ReSpeaker's USB D-/D+ pins with a USB storage, then upgrade from usb storage
- connect the four Ethernet pins with a Ethernet jack, the upgrade through tftp
We need a USB female port component and solder it like the following picture.
The USB pinout is
- After we get our hardware ready, we need to download the latest firmare, copy it to a USB storage and rename it as
lks7688.img
- Hold the jog wheel to left and power on respeaker
- Open the USB virtual serial port using putty or screen.
- Input 5 to select USB upgrade when you see:
Please choose the operation:
1: Load system code to SDRAM via TFTP.
2: Load system code then write to Flash via TFTP.
3: Boot system code via Flash (default).
4: Entr boot command line interface.
7: Load Boot Loader code then write to Flash via Serial.
9: Load Boot Loader code then write to Flash via TFTP.
You choosed 5
0
5: System Load Linux then write to Flash via USB Storage.
(Re)start USB...
USB0: *********ehci_hcd_init**********
Mediatek/Ralink USB EHCI host init hccr b01c0000 and hcor b01c0010 hc_length 16
6. u2phydcr0(0xb0120860)=0x00aaaa02
FM_OUT value: u4FmOut = 0(0x00000000)
FM_OUT value: u4FmOut = 134(0x00000086)
FM detection done! loop = 1
SR calibration value u1SrCalVal = 6
Register 1111 NbrPorts 1
USB EHCI 1.00
scanning bus 0 for devices... 2 USB Device(s) found
scanning bus for storage devices... 1 Storage Device(s) found
reading lks7688.img
The bootloader starts very fast, it may be already late to choose option when you open the terminal tool. If you‘re like me have difficulties to enter bootloader mode, below script may help (for Linux only, OSx maybe also OK, Windows doesn't support).
#!/bin/bash
while true; do
if [ -e /dev/ttyACM0 ]; then
echo "find device"
screen /dev/ttyACM0 57600
break
fi
done
This script wait /dev/ttyACM0 device, once is found open it immediately. To use it, unplug the Respeaker, run the script and then plug repeaker back. It should find the device and open it for you.
To exit screen mode, please ctrl+a
and then d
.
For different OS, the device name /dev/ttyACM0
maybe a little different, when screen command starts, press 5 as soon as possible.
Press 4 to enter bootloader command line
setenv bootdelay 10
saveenv
This will let uboot wait 10 seconds before starts Linux kernel.