From 5b50f31b8fc0fb02b61391decdb651a18799350b Mon Sep 17 00:00:00 2001
From: Randy Mackay <rmackay9@yahoo.com>
Date: Wed, 30 Jan 2013 20:48:42 +0900
Subject: [PATCH] Copter: integrate automatic roll and pitch trims

---
 ArduCopter/GCS_Mavlink.pde | 5 ++++-
 ArduCopter/setup.pde       | 6 +++++-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/ArduCopter/GCS_Mavlink.pde b/ArduCopter/GCS_Mavlink.pde
index 104136a92..8e24b1d24 100644
--- a/ArduCopter/GCS_Mavlink.pde
+++ b/ArduCopter/GCS_Mavlink.pde
@@ -1096,8 +1096,11 @@ void GCS_MAVLINK::handleMessage(mavlink_message_t* msg)
                 trim_radio();
             }
             if (packet.param5 == 1) {
+                float trim_roll, trim_pitch;
                 // this blocks
-                ins.calibrate_accel(mavlink_delay, flash_leds, gcs_send_text_fmt, setup_wait_key);
+                ins.calibrate_accel(mavlink_delay, flash_leds, gcs_send_text_fmt, setup_wait_key, trim_roll, trim_pitch);
+                // reset ahrs's trim to suggested values from calibration routine
+                ahrs.set_trim(Vector3f(trim_roll, trim_pitch, 0));
             }
             result = MAV_RESULT_ACCEPTED;
             break;
diff --git a/ArduCopter/setup.pde b/ArduCopter/setup.pde
index 102c6fe3d..e11253f4c 100644
--- a/ArduCopter/setup.pde
+++ b/ArduCopter/setup.pde
@@ -284,11 +284,15 @@ static void setup_wait_key(void)
 static int8_t
 setup_accel_scale(uint8_t argc, const Menu::arg *argv)
 {
+    float trim_roll, trim_pitch;
+
     cliSerial->println_P(PSTR("Initialising gyros"));
     ins.init(AP_InertialSensor::COLD_START, 
              ins_sample_rate,
              delay, flash_leds, &timer_scheduler);
-    ins.calibrate_accel(delay, flash_leds, setup_printf_P, setup_wait_key);
+    ins.calibrate_accel(delay, flash_leds, setup_printf_P, setup_wait_key, trim_roll, trim_pitch);
+    // reset ahrs's trim to suggested values from calibration routine
+    ahrs.set_trim(Vector3f(trim_roll, trim_pitch, 0));
     report_ins();
     return(0);
 }
-- 
GitLab