Pixhawk 4 board seems bricked

Hi there,

Just bought myself a pixhawk 4 board, and after playing around with it a bit it seemed that it is bricked.
Unfortunately I tryied several thing so I cannot exactly tell you what bricked it.

Symptoms after boot:

1- on FMU leds:

  • ACT led off

  • B/E led off (sometimes a pale amber, but almost never the case)

  • PWR led blinking green fast for 4 seconds

2-on I/O leds

  • ACT blinking blue at 1Hz

  • B/E steady orange

  • PWR steady green

3-debug ports

  • FMU debug port

on the FMU debug port (on the right side of the board) I am connecting with a FTDI, setting the baud rate to 57600 and I don’t get any traces currently, but I used to get that:

up_hardfault: PANIC!!! Hard fault: 40000000
up_assert: Assertion failed at file:armv7-m/up_hardfault.c line: 171 task: hpwork
up_dumpstate: sp: 200213c4
up_dumpstate: IRQ stack:
up_dumpstate: base: 200213f0
up_dumpstate: size: 000002ec
up_dumpstate: used: 00000134
up_stackdump: 200213c0: 08009743 00000003 00000000 0800974b 08009729 080083a9 000000f0 2007d644
up_stackdump: 200213e0: 00000000 00000000 00000000 0800823f 2007d644 00000000 00000000 00000000
up_dumpstate: sp: 2007d718
up_dumpstate: User stack:
up_dumpstate: base: 2007d720
up_dumpstate: size: 000006f4
up_dumpstate: used: 000000e0
up_stackdump: 2007d700: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
up_registerdump: R0: 00000001 00000000 00000000 2002529c 00000000 00000000 00000000 00000000
up_registerdump: R8: 00000000 00000000 00000000 00000000 00000000 2007d718 00000000 0800bcfe
up_registerdump: xPSR: 01000000 BASEPRI: 000000f0 CONTROL: 00000000
up_registerdump: EXC_RETURN: ffffffe9
up_taskdump: Idle Task: PID=0 Stack Used=0 of 0
up_taskdump: hpwork: PID=1 Stack Used=224 of 1780
Memory wiped - dump not saveup_hardfault: PANIC!!! Hard fault: 40000000
up_assert: Assertion failed at file:armv7-m/up_hardfault.c line: 171 task: hpwork
up_dumpstate: sp: 200213c4
up_dumpstate: IRQ stack:
up_dumpstate: base: 200213f0
up_dumpstate: size: 000002ec
up_dumpstate: used: 00000134
up_stackdump: 200213c0: 08009743 00000003 00000000 0800974b 08009729 080083a9 000000f0 2007d644
up_stackdump: 200213e0: 00000000 00000000 00000000 0800823f 2007d644 00000000 00000000 00000000
up_dumpstate: sp: 2007d718
up_dumpstate: User stack:
up_dumpstate: base: 2007d720
up_dumpstate: size: 000006f4
up_dumpstate: used: 000000e0
up_stackdump: 2007d700: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
up_registerdump: R0: 00000001 00000000 00000000 2002529c 00000000 00000000 00000000 00000000
up_registerdump: R8: 00000000 00000000 00000000 00000000 00000000 2007d718 00000000 0800bcfe
up_registerdump: xPSR: 01000000 BASEPRI: 000000f0 CONTROL: 00000000
up_registerdump: EXC_RETURN: ffffffe9
up_taskdump: Idle Task: PID=0 Stack Used=0 of 0
up_taskdump: hpwork: PID=1 Stack Used=224 of 1780
Memory wiped - dump not saveup_assert: Assertion failed at file:irq/irq_unexpectedisr.c line: 65 task: Idle Task
up_dumpstate: sp: 200213c4

  • IO debug port
    with a FTDI, settting the baud rate to 115200 I get the following trace when I power the board on to the USB:

PX4IO: starting
MEM: free 1656, largest 1656

4- Connection to qground or APM planner
No connection, I used to have some in the past, but with an upgrade aborted.

5- What I tryied
What I tried so far, is to format the SD card, change the power supply, connect to the ground stations but nothing changes.
As I don’t have any connection I cannot connect with nsh,

Any idea?

Thanks!

If you’re using MissionPlanner, you are probably using ArduPilot and not PX4, so they can probably help you better in the ArduPilot forums.

The first thing I would try is to update the firmware. If the update does not work, then you should add as much information about why the update does not work or what goes wrong. That might give more insights in what is going on.

Hi Julian,

I think you should re-read my comment, because you are out of scope here:
“Connection to qground or APM planner”
1-I m not using ardupilot, I talked about the trying to connect with qgroundcontrol or APM planner
2-“The first thing I would try is to update the firmware”
Again, apparently you didn’t read because I said that I don’t have any connection to any ground station (as well as no ttyUSB popping up in /dev/tty). The only traces that I can get are written above, connecting to the UART of both IO debug port and FMU debug port

Ok sorry, my bad I might have been a little hasty in reading this.

So when you connect it, no /dev/ttyACM0 shows up from USB? Not even during the first 3 seconds when the bootloader is running?

And is it the same behaviour on another computer, or on another USB and with another USB cable?

Thanks for your reply

Well, I’m not seeing ttyACM0, and in dmesg I see this:

[117972.249608] usb 1-4: new low-speed USB device number 31 using xhci_hcd
[117972.377702] usb 1-4: device descriptor read/64, error -71
[117972.613637] usb 1-4: device descriptor read/64, error -71
[117972.849740] usb 1-4: new low-speed USB device number 32 using xhci_hcd
[117972.981681] usb 1-4: device descriptor read/64, error -71
[117973.221622] usb 1-4: device descriptor read/64, error -71
[117973.329694] usb usb1-port4: attempt power cycle
[117973.985655] usb 1-4: new low-speed USB device number 33 using xhci_hcd
[117973.986281] usb 1-4: Device not responding to setup address.
[117974.198431] usb 1-4: Device not responding to setup address.
[117974.405590] usb 1-4: device not accepting address 33, error -71

Please note two things;
1- I reflashed all the bootloaders (PX4IO and FMU), and that the led are now same as described above on FMU leds, and steady green and 10hz amber for IO leds
2- I managed to reflash Px4 through qgroundcontrol, so apparently the USB popped up correctly, but it’s not the case anymore

Hm, how did you update the bootloaders?
And did it brick after you updated the bootloaders or already before?

following… @JulianOes has there been any issues specific to the Pixhawk 4?

Got a STM debugger, got the PXIO bootloader, compiled the boolader code for fmu v5 and flashed both hex through the IO debug port and fmu debug port.
(https://github.com/PX4/Bootloader)
After that it changed the leds behavior and I was at least able to connect to the board once to reflash Px4 through qgroundcontrol.
when I plug the USB now, it says device not recognized and the traces I wrote on my previous post with dmesg.
For the record, I also connected to the USB port (not the mini USB on the side) to see if something was different, but same behavior

thanks

:astonished: I didn’t know that was possible. @david_s5 how does this work?

The debug ports have jatg and serial. Using a jatg device ST, JLink, BMP one can load a file of type bin, elf or hex to address 0x8000000

1 Like

@michmich -

Your original trace indicated you corrupted the application that hardfaulted but had RAM memory. “Memory wiped - dump not saveuphardfault: PANIC!!!”

This could be a bad F7 or a fuse issue.

Use the STLink to do a full chip erase on both FMU and IO. Ensure the fuses are set for dualbank on the F7. Then load the bootloader on both. LEDs should indicate both SoC in bootloader mode. FMU green flutter. IO orange flutter. The unit should then enumerate when connected to USB. If you can that point you should be able to upload maser. “make px4_fmuv5 upload”

@david_s5 Thanks for your reply David.

I erased both chips, reflashed px4iobl.hex and px4fmuv5_bl.hex.
Then I was able to connect to qgroundcontrol and reflash px4, and I can see that it is popping up on ttyACM0.

Unfortunately I m still unable to connect to qgroundcontrol more than to reflash the board. Any tips?
I tried setting coms ->serial->ttyACM0 but it says “Connect not allowed: Connect not allowed during Firmware Upgrade”

Led status:
-IO leds:
green: steady, orange:10Hz, blue:off
-fmu leds:
green: 10Hz, orange:off, blue:off

Thanks for your help!

@michmich

Where are you getting the hex files from?

What addresses are you loading the HEX files at? Just asking as the lights seem to indicate both are working. But if the bootloader on the FMU was not loaded correctly it could make the hw look bad.

Let’s get QGC out of the loop for a minute.

Are you able to build and install PX4?

Use the STLink to do a full chip erase on both FMU and IO. Ensure the fuses are set for dualbank on the F7. Then load the bootloader on both. LEDs should indicate both SoC in bootloader mode. FMU green flutter. IO orange flutter. The unit should then enumerate when connected to USB. If you can that point you should be able to upload maser. “make px4_fmu-v5 upload”

This will tell us if the HW is ok.

If the board does not enumerate (check dmesg) The HW is bad. That is: the cable or FMU or HUB or PC. You can then test HUB, PC and cable with another device. If all the HW is good, then the FMU HW is bad.

Dear David

Coud you help me please.
After an unsuccessful firmware flashing using QGC. Through the IO Debuging port (after usb pluging) I see the following messeges:

through the port FMU debufer

Leds of PX following (only blue led is flickers, the rest are solid).

When I firmware setup throug QGC everything looks good

But in fact, the device does not flash anymore after the last unsuccessful firmware 08/21/19

On the device panel, the PX4 vice is recognized as MindPX.

Could you please tell what happened with Pixhawk4. It is necessary to burned the bootloader through the programmer and how can this be done?

Best regards,
Muzalevskiy Konstatnin

@Konstantin - you can try the following

Power off the FMU remove the SD card and on a PC in the root directory of the SD card do the following:

mkdir etc
echo > etc/rc.txt

eject the SD card from the PC
Replace it in the FMU

On the degug console
type:
mtd erase
rm /fs/microsd/etc/rc.txt
reboot

Does it get further in the boot process?

Thank you for answer!

Boot process get further, NuttShell appeared.

I typed:

mtd erase

    answer was ERROR [mtd] Failed to open partition (see attached)

rm /fs/microsd/etc/rc.txt
reboot

After reboot everything became as before.
I see sdcard on PC file rc.txt was removed (rm /fs/microsd/etc/rc.txt). What more can I done?

I used totally empty sd card (was formatted), on it contains only dataman file (355k, 01.01.2000 9:27 creation time)

Mavlink is not starting.