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
- Plug pixhawk into computer using USB
- FMU pwr - solid green, FMU B/E - flashing orange
- Windows device manager recognizes newly attached COM 3
- 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 px4uploader.py? 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 px4uploader.py
Flashing orange means the bootloader is running - which is good, because that means you don’t need to attach hardware to fix the problem!
px_uploader.py 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 px_uploader.py works MUCH better than trying to do it through MissionPlanner or QGroundControl