Abandon use of accelerometer for apogee detect.
authorKeith Packard <keithp@keithp.com>
Sun, 17 May 2009 03:04:31 +0000 (20:04 -0700)
committerKeith Packard <keithp@keithp.com>
Sun, 17 May 2009 03:04:31 +0000 (20:04 -0700)
Integrating the accelerometer data to compute velocity worked for one rocket
flight, but additional testing shows that it doesn't work in other
airframes. Until we figure out how this should work, we'll rely on the
altimeter to detect apogee.

Signed-off-by: Keith Packard <keithp@keithp.com>
ao_flight.c

index 0b47bfa51a8a50adcaef8a9d1c1cdc3319872437..48f7120260ef981b5c58c66fae449ab58334891d 100644 (file)
@@ -156,6 +156,10 @@ ao_flight(void)
                        ao_raw_pres = ao_adc_ring[ao_flight_adc].pres;
                        ao_flight_tick = ao_adc_ring[ao_flight_adc].tick;
 
+                       ao_flight_accel -= ao_flight_accel >> 4;
+                       ao_flight_accel += ao_raw_accel >> 4;
+                       ao_flight_pres -= ao_flight_pres >> 4;
+                       ao_flight_pres += ao_raw_pres >> 4;
                        /* Update velocity
                         *
                         * The accelerometer is mounted so that
@@ -175,10 +179,6 @@ ao_flight(void)
 
                        ao_flight_adc = ao_adc_ring_next(ao_flight_adc);
                }
-               ao_flight_accel -= ao_flight_accel >> 4;
-               ao_flight_accel += ao_raw_accel >> 4;
-               ao_flight_pres -= ao_flight_pres >> 4;
-               ao_flight_pres += ao_raw_pres >> 4;
 
                if (ao_flight_pres < ao_min_pres)
                        ao_min_pres = ao_flight_pres;
@@ -334,7 +334,7 @@ ao_flight(void)
                         * over in that case and the integrated velocity
                         * measurement should suffice to find apogee
                         */
-                       if (abs(ao_flight_vel) > ao_min_vel + ACCEL_VEL_APOGEE ||
+                       if (/* abs(ao_flight_vel) > ao_min_vel + ACCEL_VEL_APOGEE || */
                            ao_flight_pres > ao_min_pres + BARO_APOGEE)
                        {
                                /* ignite the drogue charge */