Insane Roll/Pitch Behavior in GUIDED Mode Only

I would like to update this issue with my latest findings, which appears to make AC-4.0.* unusable for dronekit.

My baseline test is to takeoff the drone into the air at 1m using the python dronekit package using a quadcopter. Tests can be performed by taking off all props and calling the dronekit script which initiates the takeoff, so the behavior can be reproduced without having to crash the drone.

Analyzing the RCOUT message shows the issue clearly:

C3 and C4 (motor 3 and 4) have PWM raised upon an attempted takeoff. C1 and C2 (motors 1 and 2) lag the output of C3 and C4 considerably, and therefore the takeoff is extremely unstable and the drone yaws CCW with unequal thrusts on each motor.
image 273.bin (300 KB)

This same behavior replicated on the following AC-4* versions:
4.0.1
4.0.2
4.0.3
4.1.0-dev

The unequal thrust output problem goes away when using AC-3.5.5
image
3.bin (493.4 KB)

Variables that were changed but still reproduced the problem:
Navio2 Board
Motors
ESCs
Variables that were consistent across tests and could therefore be rules out:
Dronekit version
Navio2 distro (buster)

Additionally, the unequal PWM values for the motors persisted with props off, which removes any CoG or bad prop variables from a potential diagnosis.

I am left concluding that something about the AC-4. firmware is the issue*. Since I changed just about all the hardware possible and kept reproducing the problem, it appears this problem will persist for all Navio2 users using AC-4 who wish to program with Dronekit (and likely AUTO missions).

Hope this problem can get some attention, as I am afraid this could put the longterm viability of the Navio2 on precarious grounds for dronekit users.