Elevon bug? Pitch input cause very non-linear behavior

I am working with my first flying wing that uses elevons, (Strix Goblin if it matters) so this may be a bug, an incorrect setting, or simply me misunderstanding how elevon control works.

When I am in manual mode, sticks in neutral, Ardupilot is outputing very non-neutral values for the left and right servo outputs. I believe they should both be at neutral (1500 each), and should only vary when non-neutral pitch is applied.

Here is what I am seeing for servo outputs: (Both servos set for 800,1500,2200 for min, trim, max) Pitch input is approximate since I am doing it by stick position. Roll input is neutral. NOTE: I have confirmed that ardupilot is seeing a linear pitch curve. IOW, there is nothing funny going on with any mixing on the transmitter.

Pitch Input           ElevonLeft     ElevonRight
Full pitch up         1081              1083
Half pitch up         1151              1151
Neutral pitch         1289              1292
Half Pitch down       1377              1380
99% Pitch Down        1498              1500
Full Pitch Down       1917              1920   <-- Notice big jump at the end

I think it should be 1500, 1500 at neutral pitch and roughly 1000,1000 at full up and 2000,2000 at full down.

Why are my pitch inputs causing this strange elevon behavior? How can I get the elevons to behave linearly to the pitch inputs?

NOTE: Roll input behaves exactly as expected.

There are lots of wings in this configuration flying around on Arducopter so it’s unlikely a bug.

Set LOG_DISARMED,1, restart the controller, and do the test you described. Post a link to the .bin log file and we can take a look to see what’s going on. Don’t forget to reset LOG_DISARMED,0 afterwards or your SD card will get filled up.

You might need to adjust the Mixing Gain to get it dialed in the way you want.

1 Like

I set LOG_DISARMED,1, restarted the controller, and moved the pitch input through the full cycle, and made a few repititions of that last part of Pitch up that causes it to do that big jump in servo output.

NOTE: I simplified the original example by not reversing either servo output. On the actual plane, ElevonRight is reversed, and it is that way in the log.
Ardupilot Log from test

Unfortunately that log didn’t help (edit: the way i expected… see below). The plane is in FBWA sitting at a 30 degree nose up pitch, so the elevators are going to be fully deflected. The log also shows no RC movements.

But… I did notice that RC2_TRIM is 2010, and according the the RC map params that is pitch (AETR is default). That trim value should be some where near 1500, so that could be messing things up. Maybe before we chase down another log, reset that trim to the correct value and see if that helps. If your throttle is on channel 2 then it can be re-mapped in the RCMAP_x parameters.

2 Likes

You nailed it. Not sure how RC2_TRIM got set like that, but resetting it to 1500 fixed the issue.

THANK YOU for helping a newb who made a dumb settings mistake

2 Likes