Arducopter\Pixhawk hardfault on bootup (custom firmware)

I uploaded a customized version of the ArduCopter 3.5.0 code and am getting a hard fault during boot-up that prevents me from connecting through the USB to flash a different firmware.

Here’s what I’m seeing

  1. Plug pixhawk into computer using USB
  2. FMU pwr - solid green, FMU B/E - flashing orange
  3. Windows device manager recognizes newly attached COM 3
  4. COM 3 disappears from windows device manager AND FMU B/E - SOLID orange

When I connect to the pixhawk using the FTDI cable to the Serial 4/5 interface I observe the same behavior and the PX4\PIXHAWK terminal in Mission Planner reports the following:

SeAssertion failed at file:armv7-m/up hardfault.c line: 184 task: init
…[additional error information]

How do I get the pixhawk reset so I can flash different software to it? (I’m under a bit of a time crunch on my contract so any help is GREATLY appreciated)

In mission planner try “force px4 bootloader”

I’ve tried that but the device disconnects and Mission Planner reports that it can’t connect. If I time it right Mission Planner will report a timeout instead.


Ok. Have you tried a different gcs or There are also a few other things to try, upload via uart for instance.
I’m not able to help today though: @peterbarker do you have a few minutes?

I’ve tried QGroundControl and another computer. I haven’t tried

Flashing orange means the bootloader is running - which is good, because that means you don’t need to attach hardware to fix the problem! is definitely what you want to try here. You need to get the uploader talking to the PixHawk while those orange lights are flashing.

Note that if you’re on a recent version of Ubuntu then that script may fail. if so, APBootloader will work for you - but that’s a backup plan.

I think i’m getting px_uploader to work. I need to recompile the unmodified arducopter 3.5.0 release and see if i’m getting good communication.

thanks. I’ll report back what i find


so to fix issues with hard faults early on in the boot process using the works MUCH better than trying to do it through MissionPlanner or QGroundControl

thanks all

1 Like