Board appears to be possibly dead

Which system do you use? Android, Ubuntu, OOWOW

Ubuntu 22.04 LTS

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?

Post a console log of your issue below:


**Delete this line and post your log here.**

1 Like

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.

Find a suitable monitor or a TTL-to-USB.This is how we communicate with VIM4.

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?

Hello @awrc68

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?

  • Remove the M2X board, just use the VIM4 board
  • Flash oowow to SD card
    • Download oowow image here
    • Follow the docs to write the image to SD card
  • Insert the SD card to VIM4
  • Power on VIM4

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

We’ve contacted you by email, please note :grinning:

Best Regards
Lily

1 Like

These screws used to hold SSD on M2X and you can’t use other screws longer then 3mm.

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.

Hello @desi76

You also use the wrong screws to hold SSD/4G module ?

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.

Hello @desi76

Our after-sales team will help you on this.

1 Like