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_raw_pres = ao_adc_ring[ao_flight_adc].pres;
ao_flight_tick = ao_adc_ring[ao_flight_adc].tick;
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
/* Update velocity
*
* The accelerometer is mounted so that
ao_flight_adc = ao_adc_ring_next(ao_flight_adc);
}
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;
if (ao_flight_pres < ao_min_pres)
ao_min_pres = ao_flight_pres;
* over in that case and the integrated velocity
* measurement should suffice to find apogee
*/
* 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 */
ao_flight_pres > ao_min_pres + BARO_APOGEE)
{
/* ignite the drogue charge */