AHRS error on ardupilot

Hi all,

I’m currently building an autonomous surface vehicle using ArduPilot on a Pixhawk 6C, and I’ve run into an issue I can’t seem to solve.

Hardware:
• Pixhawk 6C flight controller
• T200 Thrusters (controlled via PWM outputs)
• BlueRobotics Basic ESCs
• M8N GPS module with built-in compass (I2C + UART)
• QGroundControl as the GCS
• ArduPilot (latest stable firmware) with Boat frame

What’s Working:
• I have solid GPS lock (fix type 3 with multiple satellites).
• I can upload and launch missions in QGC with no errors.
• The system arms successfully, and I get mission start confirmation.
•I hear the thrusters 5 beeps

What’s Not Working:
• The T200 thrusters do not respond at all when the mission starts.
• I am getting an AHRS error, and AHRS: DCM active appears on boot (EKF3 initializes after with no issues)
• I suspect a compass/yaw fusion issue might be preventing the autopilot from navigating.

Compass Situation:
• Originally, I was using the M8N GPS’s compass, which is mounted flat but facing opposite the Pixhawk’s arrow direction.
• I later disconnected the M8N compass entirely (gps still working using uart) and decided to use only the internal compass on the Pixhawk 6C.
• COMPASS_USE = 1, COMPASS_EXTERNAL = 0, and COMPASS_ORIENT = 0.
• EK3_SRC_YAW = 1 is set to use compass heading.
• Compass calibrates fine, but AHRS error remains.

Additional Notes:
• I’ve tried both with and without pre-arm checks.
• SERVO outputs are configured correctly (throttle right/left on SERVO1 and SERVO2).
• MOT_PWM_TYPE is NORMAL
• Parameters were wiped and reloaded recently to ensure a clean setup.

I would appreciate any help debugging this. I’m not sure if the issue lies in the compass setup, EKF yaw, AHRS initialization, or something else preventing output to the motors. My current suspicion is that AHRS errors are preventing the autopilot from generating attitude, and therefore motion commands.

Happy to share logs, parameters, or photos if needed. Thanks in advance!

— Abe

Hi @iribraheim26 -
Because your setup doesn’t have a companion computer running BlueOS, the community here may not be as familiar with setup, usage and troubleshooting for your chosen hardware. If we’re not able to help, definitely try the ArduPilot forums!
Generally, you’ll want to use QGround Control to calibrate your accelerometer and compass before any guided/loiter/auto mode will work at all! The orientation of the autopilot should be properly set before calibration.
You’ll also want to make sure you’re using the correct, latest stable version of ArduRover, and have set the frame parameter correctly. If you’re driving with differential / skid steering with your two T200s, you’ll need to connect them to the correct channels (1 & 3) and get the output direction configured correctly. Some of this may overlap with the typical BlueBoat setup process..

T200s are typically less suited for a surface vessel compared to an M200 with weedless prop! The nozzle is a lot of extra drag, but if you want to go slow and push hard, efficiently, a T200 is a great choice!