I guess I am right with it, that the APM now gets its trim values on every boot from RC. But if you don´t use an RC(Joystick or only MP) or its powerded off, thats not so fine. Can anyone confirm this "issue".

Regards

Gregor

Tags: RC, trim

Views: 172

Reply to This

Replies to This Discussion

Gregmaan,

    I'm not an ArduPlane expert, I'm on the ArduCopter side but I think the radio trims are all set when you do the Radio Calibration through the mission planner.  I think gyro offsets are captured at start-up but everything else (i.e. radio trims, accelerometer offsets) are done when you configure the board.

Hi Randy, someone wrote something in issue 792. Maybe it regards to my issue?

I commented on this here: http://diydrones.com/forum/topics/apm2-pid-settings-reset-after-pow...

You need to comment out this line in the ArduPlane firmware:

In system.pde:

// read the radio to set trims
// ---------------------------
trim_radio(); // This was commented out as a HACK. Why? I don't find a problem.

Compile and upload and your trim values will stay as what you set them

From Tridge: That is controlled by the TRIM_AUTO parameter. It defaults to zero, meaning it does not copy trim values when you switch out of manual. That default was chosen because if you don't know it will happen and you have some elevator or aileron stick applied when you change out of manual you get very bad trim. 


So when TRIM_AUTO is 1 then every time you switch out of manual the trim values will be used for the other modes but your sticks must be at neutral when you switch.

That's correct when switching modes, but not at startup. trim_radio() does not check the TRIM_AUTO parameter (but it should!) so when called by startup_ground() it resets the values every time. The following code says it all:

From radio.pde:

static void trim_radio()
{
for (uint8_t y = 0; y < 30; y++) {
read_radio();
}

trim_control_surfaces();
}

static void set_mode(byte mode)
{
if(control_mode == mode) {
// don't switch modes if we are already in the correct mode.
return;
}
if(g.auto_trim > 0 && control_mode == MANUAL)
trim_control_surfaces();
...

RSS

© 2014   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service