summaryrefslogtreecommitdiff
path: root/src/kernel/ao_flight.c
Commit message (Collapse)AuthorAge
* altos: Make HAS_ACCEL_DEBUG build againKeith Packard2018-12-30
| | | | | | Need to not use ao_error_h_sq_avg without HAS_ACCEL Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Remove 8051 address space specifiersKeith Packard2018-10-13
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Remove *_TO_DATA macrosKeith Packard2018-10-13
| | | | | | Now that we don't support 8051, we don't need these Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add separate 'ao_launch_tick'. Use in pyro and lockout.Keith Packard2018-08-05
| | | | | | | | | | | | | | | | Prior to this, there was only ao_boost_tick, which got reset at each motor burn start. That meant there wasn't any way to measure total flight time for pyro channels and 'apogee lockout' was based on time since most recent motor start instead of total flight time. Now pyro channels and apogee lockout both use total flight time, while motor burn length still uses time since most recent motor burn start (as it should). Docs and UI updated to use 'launch' instead of 'boost' to try and make the change clear. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Eliminate height requirement for coast detectKeith Packard2018-05-07
| | | | | | | | | | | We had required a minimum altitude of 100m to transition from boost to coast. With small motors in a heavy multi-staged rocket, this can fail to detect coast in time to light the second motor. Also, this would fail to deploy recovery systems if the flight failed before reaching 100m. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/kernel: MPU9250 supportKeith Packard2017-12-02
| | | | | | | Use MPU9250 for accel, gyro and mag data in logging, telemetry and flight status computations. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Don't eliminate baro above mach speed, just trust it lessKeith Packard2017-08-27
| | | | | | | | | | | | | | | | | | | | | | | | Instead of completely eliminating the baro sensor above mach speed, just derate it a bit so that the accel will dominate for speed computation and keep the device from false-triggering across mach transitions. When we completely ignored the baro sensor above mach, and the flight spent considerable time in that speed range, then the estimated height could be far from the real value. When the estimated speed dropped back down and the baro values were brought back into the computation, then the resulting rapid shift in estimated speed could trigger accidental apogee detection. By mixing in a bit of baro data even above mach, we keep the estimated height closer to the baro value and prevent this error, at least in flights measured so far. The flight known to have this problem is: 2015-09-26-serial-2093-flight-0012.eeprom Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Perform time comparisons using 16-bit arithmetic to handle wrapKeith Packard2017-08-27
| | | | | | | Subtracting two 16-bit unsigned values to perform time comparisons yields mystic results unless we carefully cast that to int16_t. Signed-off-by: Keith Packard <keithp@keithp.com>
* Switch from GPLv2 to GPLv2+Keith Packard2016-07-12
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Leave USB enabled in flight with -DDEBUG=1Keith Packard2016-06-29
| | | | | | This leaves the command line available for diagnostics when debugging. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Allow for flight hardware without any ADC valuesKeith Packard2016-04-02
| | | | | | | Detherm has no ADC connections, so we don't need to disable the ADC when going to landed state. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Use 32-bits for flight state data (alt/speed/accel)Keith Packard2014-07-10
| | | | | | | Stores 32-bits for all of the flight parameters. Uses 64-bit intermediates for kalman computation. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Fake flight code changes in kernel and stmKeith Packard2014-05-27
| | | | | | | Redirects data input from local sensors to USB sourced data, leaving USB enabled when the computer goes into pad mode. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Rename 'core' to 'kernel'Keith Packard2014-04-05
core remains a bad name to use -- dirvish skips files (and directories, it seems) with that name. Signed-off-by: Keith Packard <keithp@keithp.com>