Repeated crash dumps with Pixhawk 6X Pro

I am configuring a large Hexa (30 inch props) using the methodic configurator. Due to the expected amount of vibrations, I decided to use the new Pixhawk 6X Pro which has a better vibration damping for the IMUs and uses ADIS16470 IMUs with high accelerometer dynamic range (±40 g). Besides the M10 GPS (including an external IST8310 magnetometer) I also connected an additional RM3100 “industrial grade magnetometer” (from Drotek) via I2C.

After saving the RC channel configuration (page 5 of the methodic configurator), the Pixhawk was rebooted by the configurator and did not “come back” again. After another power cycle, I connected it with Mission Planner and now the Mission Planner was spammed with “Crash Dump incomplete, dumping what we got!” messages.

I saved the crash_dump.bin file and tried to delete it via Mission Planner MAVftp, but it could not be deleted. Now I deleted it from the SD card with an external card reader but after inserting it back to the Pixhawk 6X Pro and powering it, it was created again.

Now I re-flashed the Pixhawk 6X Pro from scratch (there is no dedicated firmware, instruction says, the Pixhawk 6X firmware should be used) and also formatted the SD-card.

It behaved normal again and I restarted the configuration process from scratch. When I wanted to start the compass calibration, it did not respond and Mission Planner showed an error message somehow saying that it was not able to start the compass calibration.

I rebooted the Pixhawk and now it was again caught in the “Crash Dump incomplete, dumping what we got!” loop. So I am at a point where I think, no more attempts make sense until the root cause of that problem is determined and fixed.

I see three possible causes:

  1. My Pixhawk 6X Pro sample could have a hardware issue (unlikely)
  2. The ArduCopter firmware for Pixhawk 6X is not not sufficiently suited to the Pixhawk 6X Pro (as it contains other IMUs)
  3. The additionally attached RM3100 magnetometer (via I2C) causes that problem

I attached both crash dumps which I got after the first and the second configuration attempt:
crash_dump.bin (88.6 KB)
crash_dump.bin (88.6 KB)

(2) is not true - the Pixhaw6X firmware covers a range of hardware and specifically the Pixhawk6X Pro.
(3) is unlikely - I2C is used everywhere and is very reliable.

In order to interpret the crash dump I need to know the precise version of ArduCopter you are using. Also if you are able to provide parameters that cause the issue that would be helpful as I then might be able to reproduce.

Thanks for joining in.
I am using the (currently) latest stable version (4.5.5) and attached the parameters that I saved right after the last preparation step of the methodic configurator before first flight with a basic notch filter setup and logging settings for the filter review tool.
LargeHexa_2nd_methodic_configuration_for_first_flight.param (20.1 KB)
Please note, that at that stage when the file was saved, the compass calibration was not yet carried out. This was planned “on-site” before the first flight out in the field where no magnetic irritation from metal parts near the drone was expected. When I wanted to start the compass calibration, the situation occured, which I already described: Error message that calibration could not be started and after reboot I ended up in the crash_dump loop.

My third assumption was not adressing potential I2C issues. I know, that meanwhile the I2C handling is very mature. I was adressing potential issues with the code handling the RM3100 magnetometer. I think, this is quite rarely used, so there might still be undetected issues. This assumption is fueled by the fact that I have since performed the flashing and setup again for the third time - but this time without the RM3100. No issues until now - including magnetometer calibration. Another step which I left out this time is the gyro temperature calibration.

so Pixhawk6X not Pixhawk6X-bdshot?

Yes, Pixhawk 6X. I am using T-Motor ALPHA 60A HV ESCs.

Unfortunately the crash_dump is not decodable:

andy@Eagle:~/github/ardupilot-beta$ ./Tools/debug/crash_debugger.py  ./build/Pixhawk6X/bin/arducopter --dump-debug --dump-filein ./crash_dump.bin
/mnt/i/github/ardupilot-beta/Tools/debug/../../modules/CrashDebug/bins/lin64/CrashDebug
Processing Crash Dump.

arm-none-eabi-gdb -nx --batch --quiet ./build/Pixhawk6X/bin/arducopter  -ex "set target-charset ASCII" -ex "target remote | /mnt/i/github/ardupilot-beta/Tools/debug/../../modules/CrashDebug/bins/lin64/CrashDebug --elf ./build/Pixhawk6X/bin/arducopter --dump ./crash_dump.bin" -ex "set print pretty on" -ex "bt full" -ex "quit"
ERROR: The dump file contained a truncated memory region header.

I don’t know why this might be, maybe @tridge or @bugobliterator have an idea.

I’ll try with your parameters but I am not hopeful.

The good news is that I am currently building a Pixhawk6X Pro, so if there are obvious issues I might run into them.

Thanks for taking the time. This corresponds with the “crash dump incomplete…” message. May be, the software crashes once more, when writing the crash dump…

Seeing that you also start using the Pixhawk 6X Pro is definitely good news! If you also had a RM3100 magnetometer, that would be even better news. Since I disconnected it, I did not run into that issue again. Time will tell…