Strange roll behavior from quad

I just built my first ArduPilot Quadcopter and am seeing some strange behavior with roll. On throttle up in stabilize mode, the quad begins to oscillate about the roll axis before taking off. Once the throttle has been increased to a certain amount, the quad begins to roll rapidly and flips 180 degrees. This is with little to no roll stick input and happens on every flight just as the legs begin to lift off the ground.

I am using the Navio2 hat on RasPi 3 with ArduCopter 3.6.5. I am using Mission Planner 1.3.68 to set up and configure the quad. It is in a ‘+’ frame configuration and the Navio2 is aligned accordingly.

After looking at the flight logs (2 attached) I see the desired roll angle rapidly changing to 180deg without stick input.

Also, the desired roll rate seems to be opposite of the archived roll rate.

I am new to ArduPilot but not new to quads so I checked all the basics:

-Motors spinning the correct direction
-ESC’s Calibrated and connected to the correct output pins on Navio2
-Re-calibrated accel and compass

One of the two magnetometers has pretty high offsets, but after re-calibrating and even flying without that mag activated, the same behavior is present.

It looks like the roll commands or roll measurements need to be flipped but I don’t know why or how that would be accomplished

2019-10-30 20-12-01.bin (465.7 KB)
2019-10-24 20-02-15.bin (132.1 KB)

It’s usually motor order. Did you check it with Motor Test in Mission Planner for order and direction?
Read the NOTE!

Note that the desired roll angle is being led by the measured angle. This means that the flight controller did not command this rollover - the desired vs. measured rates corroborate this. This means the copter isn’t responding how the flight controller is expecting, so that means something is configured wrong, most probably motor assignment. Other possibilities are wrong propellers, motor direction, and frame orientation (check AHRS_ORIENTATION).

Motors 1 and 2 seem to be in the wrong order

You can see it ramping up motor 2 and shutting motor 1 down.

Tested the motor order today using the Mission Planner Motor Test app. The motors are spinning in the correct directions and in the correct order (ABCD as seen in the image below).

You configured frame_type 0, which means you have a Plus configuration. Do you not have a X configuration?
Send picture once from your frame

Yes, I have the hardware and software configured in the plus frame type.

This is the best picture I have, I don’t have access to the quad today.

Do I need to rotate the hardware on the frame? I aligned the Navio2 board with the XYZ axis of the plus configuration and calibrated the accelerometers for the up/down, left/right, front/back cases.

Or do I need to change the ‘Board Orientation’ parameter?

I have never built a + quad and rarely see them mentioned but my guess is the motor at 3:00 should be A and clockwise from that.