Which version of system do you use? Khadas official images, self built images, or others?
Khadas official image
Please describe your issue below:
My board now only gives one tiny sign of life. I needed to hook it up to a display. When I lifted the board, the heatsink dropped off the SSD. I removed the SSD to put fresh thermal tape on, then reattached it. When plugged in again (only Ethernet cable and USB-C from Khadas 30W power source) the board appears totally inert. The only sign of life is that if I do the āpress Fn three times in two secondsā the red LED flashes three times thenā¦nothing. From what Iāve read, this puts the board into upgrade mode. Except I canāt find any documentation of upgrade mode, or how to get out of it.
Is the board dead, or is there some clever combination of button presses or images on SD cards that might bring it back to life?
A couple of updates - tried an SD card with the latest SPI image. Nothing appeared to happen.
Also, when removing the M2X board, I noticed the black plastic cover on the opposite side from the screw thatās meant to hold the SSD in position had been punctured - so when I was redoing the heatsink on the SSD I may have put in the wrong screw, and that in turn may have damaged something. I had to buy some longer screws because the 4mm ones with the M2X are fine for fitting it to the standard board, but not for holding the M2X/board/fansink sandwich together - that needed an 8mm screw. While I didnāt use one of those by mistake, I may have put in one of the unused spare 4mm M2X attaching screws instead of the 3mm M.2 securing screw. So this may be a self-inflicted injury.
Further prodding reveals that starting the device up with the USB-C connected to my Mac, and going into āupgrade modeā results in the VIM4 becoming visible as an Amlogic USB device called DNL. Unfortunately, thatās as far as I can get, because Iāve not got an Ubuntu or Windows system to run the AML burning tool on. Iāve also not got a TTL-to-USB tester, and the only HDMI device I have (my 2010 vintage TV) and the VIM4 donāt get on well.
Is there any way to establish whether my machine is dead except for the MCU, or just needs something re-flashed to restore life? The biggest hint itās dead to me is that the fan doesnāt start at power up at all. The signs of life are the apparent upgrade mode and that if plugged in, the board does heat up. Iāve booted with SD cards with both the āreflash OOWOW into SPIā rescue image, and ārun OOWOW directly from SDā rescue image, but there are no signs of activity.
OK, Iāve ordered a USB-to-TTL cable, I should get it in the mail on Tuesday. Once Iāve been able to capture some log data on power up, Iāll add to this thread.
Got the USB-to-TTL hooked up, running āscreen /dev/ttyformycable 921600ā and I get, basically, nothing useful - three unprintable characters (I.e. black diamond with ? on it) when I connect the power. Rx and Tx are OK (well, swapping them produces nothing, anyway). When the serial port is connected, the āpress Function three timesā no longer causes the red LED to flash three times - this still happens with no serial debug.
I canāt really experiment too much since the fansink doesnāt start on powerup so the board gets hot, fast.
Sorry I wasnāt able to provide more info, but the only HDMI device I have shows no signal (at first use it showed the Oowow logo then a blank screen - after I sshed in to install Ubuntu, it produced standard startup data on boot) and the serial debug shows nothing except the three āunprintable characterā symbols.
Iām at a loss as to what to try - I was really hoping the serial console would give me a way to fix it, since I was really getting into the idea of actually having a good board for tinkering.
A small suggestion that might prevent people from accidentally killing their VIM4s the way mine appears to have died - please, Khadas, consider including with the new M2X both the 3mm screws that are currently supplied, but also 6mm screws for people who plan to add it onto a board that came with the fansink attached. I ended up having to buy some 6mm screws that were the right length to fix the M2X, VIM4 and fansink together. However, the screws I had to remove that had come with the board/heatsink combo were 4mm, and when time came to secure the SSD on the M2X I picked up a 4mm screw instead of a 3mm - just 1mm more, but it seems it was enough to punch through the sticker on the M2X and short out something on the underside of the VIM4 board, killing it. It was my carelessness, but itās frustrating how easy it was to turn a very nice board into $280 of dead hardware (Iām careful with static, and the board had been on an insulated surface)
I have now, as requested, tried booting with the serial debug console, and with the VIM4 hooked up to an HDMI monitor that has had no problems whatsoever with multiple SBCs. I bought the board with the fan sink, to ensure adequate cooling, I bough the M2X to hook up an SSD, I bought the official 30W power supply. Iāve documented everything Iāve tried.
The only feedback that I received from Khadas was the request to try the serial console and HDMI.
The fact that the āpress Fn 3 times within 2 secondsā results in a couple of seconds of the red light flashing (3 times in total) suggests that the MCU is at least active - the unreadable three characters that it prints to the TTY console suggests this too.
Is it standard Khadas practice to ignore customers like this?
Sorry for the late reply, we will help you to resolve your issue.
Could you please take a high definition photo of your board?
Please make sure you connect the USB-to-TTL adapter to you board corretly.
BOARD GND <-> USB-to-TTL adapter GND
BOARD TXD <-> USB-to-TTL adapter RX
BOARD RXD <-> USB-to-TTL adapter TX
And please also make sure you choose the correct serial device, e.g. On my Ubuntu PC it is /dev/ttyUSB0, so the command should be screen /dev/ttyUSB0 921600.
Could you try the steps below to boot oowow from SD card?
Photos will hopefully follow later today, as soon as I get a chance to put parts on a good surface for photography - I will upload (or if theyāre too large, make available by some other means) images of both sides of the main board and the M2X board.
Meantime, I have verified that my USB-to-TTL adapter works - it had no problems with the startup on a Raspberry Pi 3. It also, now that I have double-checked everything, does produce lots of output on the terminal when I boot the VIM4, the problem is that itās mainly random garbage characters and could well just be noise. Since the cable I am using has a CP102 chipset, which has an upper speed rate of 921600 (the Pi 3 console is at 115200, and thus doesnāt strain anything), I wonder if it may be the CP102 being unable to cope with the speed of the serial connection, so I have ordered a CH340G based USB-to-TTL converter which I should have tomorrow, and that I hope (fingers crossed) will work better with the UART than the current one.
I have tried starting up both in the ānormalā way, and with the OOWOW image specified, flashed to an SD card with Etcher. Both produce gibberish output (screen grab attached - the log from screen is unusable). The repeated sequences in it again make me wonder if the cable is having trouble with the serial speed - Iām hoping the CH340 cable tomorrow will produce something more useful.
Turns out my USB-to-TTL works a lot better when using my Pi as the device to read the serial console. Logfile from standard boot is below (this just loops continuously). Board images this afternoon.
--BEGIN
T7:BL:055c20;ID:105660110961190C;FEAT:30F:1FFF0000:B002F:1;POC:CF;RCY:0;OVD:0;DFU:0;SD:2002;eMMC:0;RD-0:0;CHK:0;SCS:0;
Bl2_early_platform_setup: indicates bl2ex flow!
failed to read efuse, set the default voltage:0.84v
0005000dfe05e000
OTP_LIC00 : 0f0300000000ff1f2f000b0000000000
OTP_LIC10 : 008207000001fc000c00001000000300
OTP_LIC20 : ffffffbfffff0700ff80008003000003
OTP_LIC30 : 00000002010000008f03000203000000
TE: 251221
BL2 Built : 17:31:28, Oct 10 2022. t7 origin/master g714ba3b - jenkins@walle02-sh
Board ID = 5
Set sys clock to 24Mhz
syspll is 1512Mhz. Locked
sys1pll is 1608Mhz. Locked
Set sys clock to 167Mhz
gp0pll is 0Mhz. Locked
bl2_platform_setup
boot area list:
1STBLOB 00000200 00040000
BL2E 00040200 00013000
BL2X 00053200 00011000
DDRFIP 00064200 00040000
DEVFIP 000a4200 00300000
s_setup from rom:00010081
dma mode
derive RSPK OK
DDR driver_vesion: AML_S_PHY_T7_1_18 build time: Oct 10 2022 17:31:18
ddr id: 0
ddr clk to 2016MHz
ch0 clk 2016
ch1 clk 2016PIEI done
Cfg max: 2, cur: 1. Board id: 255. Force loop cfg
LPDDR4 probe
ddr clk to 2016MHz
Check phy result
INFO : ERROR : Training has failed!
Check phy result
INFO : End of initialization
INFO : End of read enable training
INFO : End of fine write leveling
INFO : ERROR : Training has failed!
ch0 1D training failed
Load: DDRFIP From: eMMC - 3.0 src: 00000000, dst: f700ab90, size: 00001000
sdemmc src: ;
fw parse done
Cfg max: 2, cur: 2. Board id: 255. Force loop cfg
LPDDR4 probe
ddr clk to 2016MHz
Check phy result
--END
Repeating the process with the SD card with the OOWOW image in it:
--BEGIN
T7:BL:055c20;ID:105660110961190C;FEAT:30F:1FFF0000:B002F:1;POC:CF;RCY:0;OVD:0;DFU:0;SD:0;RD-0:0;CHK:0;SCS:0;
Bl2_early_platform_setup: indicates bl2ex flow!
OTP_LIC00 : 0f0300000000ff1f2f000b0000000000
OTP_LIC10 : 008207000001fc000c00001000000300
OTP_LIC20 : ffffffbfffff0700ff80008003000003
OTP_LIC30 : 00000002010000008f03000203000000
TE: 393454
BL2 Built : 19:14:54, Aug 25 2021. t7 griscure-review-sc2-bl2-10272020-2-96-gc9cfacc - jenkins@walle02-sh
Board ID = 5
Set sys clock to 24Mhz
syspll is 1512Mhz. Locked
sys1pll is 1608Mhz. Locked
Set sys clock to 167Mhz
gp0pll is 0Mhz. Locked
bl2_platform_setup
boot area list:
1STBLOB 00000200 00040000
BL2E 00040200 00013000
BL2X 00053200 00011000
DDRFIP 00064200 00040000
DEVFIP 000a4200 00300000
s_setup from rom:aaaa0381
dma mode
derive RSPK OK
DDR driver_vesion: AML_S_PHY_V_1_8 build time: Aug 25 2021 19:14:48
ddr id: 0
ddr clk to 1608MHz
PIEI done
Cfg max: 2, cur: 1. Board id: 255. Force loop cfg
LPDDR4 probe
ddr clk to 1608MHz
Check phy result
INFO : ERROR : Training has failed!
Check phy result
INFO : End of initialization
INFO : End of read enable training
INFO : End of fine write leveling
INFO : ERROR : Training has failed!
ch0 1D training failed
Check phy result
INFO : ERROR : Training has failed!
Check phy result
INFO : End of initialization
INFO : ERROR : Training has failed!
ch1 1D training failed
Check phy result
INFO : End of initialization
INFO : ERROR : Training has failed!
2d_training Time: 13436 us
R0_Rx=0 steps R0_Tx=255 steps Vref_Margin_R0=0 Dramvref_Margin_R0=255
R0_Rx=0 steps R0_Tx=0 steps Vref_Margin_R0=0 Dramvref_Margin_R0=0
soc_vref_reg_value 0x 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000Ch0 2D training failed
Load: DDRFIP From: SD - 1.0 src: 00000000, dst: f700ab90, size: 00001000
sdemmc src: ;
fw parse done
Cfg max: 2, cur: 2. Board id: 255. Force loop cfg
LPDDR4 probe
ddr clk to 1608MHz
Check phy result
T7:BL:055c20;ID:105660110961190C;FEAT:30F:1FFF0000:B002F:1;POC:CF;RCY:0;OVD:0;DFU:0;eMMC:0;RD-0:0;CHK:0;SCS:0;
Bl2_early_platform_setup: indicates bl2ex flow!
failed to read efuse, set the default voltage:0.84v
0005000dfe05e000
OTP_LIC00 : 0f0300000000ff1f2f000b0000000000
OTP_LIC10 : 008207000001fc000c00001000000300
OTP_LIC20 : ffffffbfffff0700ff80008003000003
OTP_LIC30 : 00000002010000008f03000203000000
TE: 206247
BL2 Built : 17:31:28, Oct 10 2022. t7 origin/master g714ba3b - jenkins@walle02-sh
Board ID = 5
Set sys clock to 24Mhz
syspll is 1512Mhz. Locked
sys1pll is 1608Mhz. Locked
Set sys clock to 167Mhz
gp0pll is 0Mhz. Locked
bl2_platform_setup
boot area list:
1STBLOB 00000200 00040000
BL2E 00040200 00013000
BL2X 00053200 00011000
DDRFIP 00064200 00040000
DEVFIP 000a4200 00300000
s_setup from rom:00010081
dma mode
derive RSPK OK
DDR driver_vesion: AML_S_PHY_T7_1_18 build time: Oct 10 2022 17:31:18
ddr id: 0
ddr clk to 2016MHz
ch0 clk 2016
ch1 clk 2016PIEI done
Cfg max: 2, cur: 1. Board id: 255. Force loop cfg
LPDDR4 probe
ddr clk to 2016MHz
Check phy result
INFO : ERROR : Training has failed!
Check phy result
INFO : End of initialization
INFO : End of read enable training
INFO : End of fine write leveling
INFO : ERROR : Training has failed!
ch0 1D training failed
Load: DDRFIP From: eMMC - 3.0 src: 00000000, dst: f700ab90, size: 00001000
sdemmc src: ;
fw parse done
Cfg max: 2, cur: 2. Board id: 255. Force loop cfg
LPDDR4 probe
ddr clk to 2016MHz
Check phy result
T7:BL:055c20;ID:105660110961190C;FEAT:30F:1FFF0000:B002F:1;POC:CF;RCY:0;OVD:0;DFU:0;eMMC:0;RD-1:0;CHK:1;RD-2:0;CHK:1;SPINOR:0;RD-0:0;CHK:0;SCS:0;
Bl2_early_platform_setup: indicates bl2ex flow!
OTP_LIC00 : 0f0300000000ff1f2f000b0000000000
OTP_LIC10 : 008207000001fc000c00001000000300
OTP_LIC20 : ffffffbfffff0700ff80008003000003
OTP_LIC30 : 00000002010000008f03000203000000
TE: 502109
BL2 Built : 19:14:54, Aug 25 2021. t7 griscure-review-sc2-bl2-10272020-2-96-gc9cfacc - jenkins@walle02-sh
Board ID = 5
Set sys clock to 24Mhz
syspll is 1512Mhz. Locked
sys1pll is 1608Mhz. Locked
Set sys clock to 167Mhz
gp0pll is 0Mhz. Locked
bl2_platform_setup
boot area list:
1STBLOB 00000000 00040000
BL2E 00080000 00013000
BL2X 000a6000 00011000
DDRFIP 000c8000 00040000
DEVFIP 00148000 00300000
storage_spinor_init !
derive RSPK OK
DDR driver_vesion: AML_S_PHY_V_1_8 build time: Aug 25 2021 19:14:48
ddr id: 0
ddr clk to 1608MHz
PIEI done
Cfg max: 2, cur: 1. Board id: 255. Force loop cfg
LPDDR4 probe
ddr clk to 1608MHz
Check phy result
INFO : ERROR : Training has failed!
Check phy result
INFO : End of initialization
INFO : End of read enable training
INFO : End of fine write leveling
INFO : ERROR : Training has failed!
ch0 1D training failed
Check phy result
INFO : ERROR : Training has failed!
Check phy result
INFO : End of initialization
INFO : ERROR : Training has failed!
ch1 1D training failed
Check phy result
INFO : End of initialization
INFO : ERROR : Training has failed!
2d_training Time: 13434 us
R0_Rx=0 steps R0_Tx=255 steps Vref_Margin_R0=0 Dramvref_Margin_R0=255
R0_Rx=0 steps R0_Tx=0 steps Vref_Margin_R0=0 Dramvref_Margin_R0=0
soc_vref_reg_value 0x 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000Ch0 2D training failed
Load: DDRFIP From: SPINOR - 2.0 src: 00000000, dst: f700ab90, size: 00001000
;
fw parse done
Cfg max: 2, cur: 2. Board id: 255. Force loop cfg
LPDDR4 probe
ddr clk to 1608MHz
Check phy result
T7:BL:055c20;ID:105660110961190C;FEAT:30F:1FFF0000:B002F:1;POC:CF;RCY:0;OVD:0;DFU:0;SPINOR:0;RD-1:0;CHK:1;USB:ADFU?T7:BL:055c20;ID:105660110961190C;FEAT:30F:1FFF0000:B002F:1;POC:CF;RCY:0;OVD:0;DFU:1;USB:0;RD-00:0;:4?T7:BL:055c20;ID:105660110961190C;FEAT:30F:1FFF0000:B002F:1;POC:CF;RCY:0;OVD:0;DFU:0?T7:BL:055c20;ID:105660110961190C;FEAT:30F:1FFF0000:B002F:1;POC:CF;RCY:0;OVD:0;DFU:0;SD:0;RD-0:0;CHK:0;SCS:0;
Bl2_early_platform_setup: indicates bl2ex flow!
OTP_LIC00 : 0f0300000000ff1f2f000b0000000000
OTP_LIC10 : 008207000001fc000c00001000000300
OTP_LIC20 : ffffffbfffff0700ff80008003000003
OTP_LIC30 : 00000002010000008f03000203000000
TE: 197553
BL2 Built : 19:14:54, Aug 25 2021. t7 griscure-review-sc2-bl2-10272020-2-96-gc9cfacc - jenkins@walle02-sh
Board ID = 5
Set sys clock to 24Mhz
syspll is 1512Mhz. Locked
sys1pll is 1608Mhz. Locked
Set sys clock to 167Mhz
gp0pll is 0Mhz. Locked
bl2_platform_setup
boot area list:
1STBLOB 00000200 00040000
BL2E 00040200 00013000
BL2X 00053200 00011000
DDRFIP 00064200 00040000
DEVFIP 000a4200 00300000
s_setup from rom:aaaa0381
dma mode
derive RSPK OK
DDR driver_vesion: AML_S_PHY_V_1_8 build time: Aug 25 2021 19:14:48
ddr id: 0
ddr clk to 1608MHz
PIEI done
Cfg max: 2, cur: 1. Board id: 255. Force loop cfg
LPDDR4 probe
ddr clk to 1608MHz
Check phy result
INFO : ERROR : Training has failed!
Check phy result
INFO : End of initialization
INFO : End of read enable training
INFO : End of fine write leveling
INFO : ERROR : Training has failed!
ch0 1D training failed
Check phy result
INFO : ERROR : Training has failed!
Check phy result
INFO : End of initialization
INFO : ERROR : Training has failed!
ch1 1D training failed
Check phy result
INFO : End of initialization
INFO : ERROR : Training has failed!
2d_training Time: 13435 us
R0_Rx=0 steps R0_Tx=255 steps Vref_Margin_R0=0 Dramvref_Margin_R0=255
R0_Rx=0 steps R0_Tx=0 steps Vref_Margin_R0=0 Dramvref_Margin_R0=0
soc_vref_reg_value 0x 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000Ch0 2D training failed
Load: DDRFIP From: SD - 1.0 src: 00000000, dst: f700ab90, size: 00001000
sdemmc src: ;
fw parse done
Cfg max: 2, cur: 2. Board id: 255. Force loop cfg
LPDDR4 probe
ddr clk to 1608MHz
Check phy result
--END
Link to OneDrive folder containing 4 images - top and bottom views of the VIM4 and M2X. On M2X top side, the place where the M2 fixing screw broke through the sticker is visible at the lower left.
It seems the DDR initialize failed from the log, it may releated to you that use the wrong screw to hold the SSD on M2X board then damage the board.
About this issue, our after-sales team will contact you later to help you to fix the board.
Yes, for now we already have 6mm screws in, now all the screws list below:
6mm x 4, for M2X, borad and heatsink
3mm x 4, for M2X and board
3mm x 2, for SSD on M2X
But anyway, we always have 3mm screws in the package used to fix the SSD on M2X and you canāt use screws longer than 3mm, it seems you use the 4mm screws so it damaged the board.
I look forward to hearing from after-sales. Also glad to hear that the M2X now includes the 6mm screws too - mine must have been an earlier one,since it came with two flush-head 3mm screws and four round head 3mm screws for attaching the board. Iām pretty certain the 4mm had been holding the heatsink to the board, simply because until I ordered the 6mm screws, I didnāt have any black-coated screws at all.
So, bad that the damage occurred, but good that after-sales will be doing something about it, and that there wonāt be any 4mm screws around.
Hi, @awrc68. I think I may have made the same mistake as my VIM4 will no longer power on either, though it is getting warm and the indicator light for the 4G Modem blinks occasionally. Please let us know what your experience with after-sales is like.
Yes, unfortunately. In my haste to reassemble the board and get my pihole back up and running I used the wrong screw to reattach the New M2X and damaged the board.