| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Oops. When converting from ao_storage to ao_config, I accidentally had
the flight erase log overwriting the config block.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
And crank up the default per-flight storage to 1MB
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
This leaves the whole 8MB of flash for flight storage
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
|
|
| |
This stops exposing eeprom as 'storage' and instead exposes it with a
separate eeprom API so that it can be used for config storage without
also using it for flight log storage.
The config code has been changed to allow it to either use storage for
configuration data or eeprom.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Holding the GPS mutex while waiting for the GPS code to dump data into
the GPS variables is rather counter-productive.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| |
|
| |
|
| |
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| |
|
| |
|
|
|
|
|
|
| |
This should make adding eeprom downloading to altosdroid easier
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Will move to altoslib
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Make sure the user knows when data are not downloaded successfully
because the UI doesn't understand the eeprom format.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Shows calculated offset from vertical in ao_flight_test output
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Oops. This kinda breaks anyone else waiting for GPS data
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
The range was cranked down at some point to diagnose issues within the
task scheduler. Unfortunately, that change got merged, which meant
that general profiling lost information outside of the lower 4kB of code.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Adds lots more math code
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Adds the necessary math code
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
This just dumps the current orientation to stdout so you can monitor
it in real time
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
This lets callers pass more precision than just the original sensor value
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Trying to compute the combined rotation by taking the x/y/z rotations
as a vector is a good approximation, but not accurate enough for our
application given the large angles we sometimes see.
Instead, use a correct-but-expensive function with a pile of
transcendental function calls. The STM32L seems to be fast enough at least...
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
| |
This initializes the rotation with the angle from vertical, rather
than simply recording the off-angle vector. Doing this allows us to
accurately track the true orientation of the rocket, instead of just
the offset from the initial non-vertical orientation.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Needed for the quaternion gyro tracking code
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
This reduces the offset error by a bit, minimizing gyro drift.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Keeps it clear where this name comes from.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
Our low sampling rate means that the "cheap" hack for
integrating quaternion rotations by using sin(x) ≃ x doesn't work, so
instead we have to compute the partial rotation the hard way.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Lets us pass constants without the compile whinging
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
The MPU6000 reports signed values.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
Average the IMU accelerometer values pointing up and down so that we
have a zero-g offset for all three axes. This can then be used to
compute which direction the rocket is pointing while sitting on the pad.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
This tracks the angle-from-vertical as an additional input to the pyro
channels.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
These are all BSD licensed, so we can simply include them directly
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Create a new global, ao_gps_new, which indicates new GPS position and
satellite data.
Use ao_gps_new as the new sleep/wakeup address.
Merge the separate gps position/satellite logging tasks into a single
function which waits for new data and writes out the changed values.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
One case was using hex values instead of the #define equivalents.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Deal with files containing multiple serial number/flight number values
by preserving the boost_tick value across state resets.
Check for invalid state when computing actual boost time for the stats
window.
Ignore invalid speed/accel values when computing averages.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This meant increasing the data buffering as well so that we could
reliably capture the flight data back to the ground, even for slow
flights.
And, with the buffer extra large, we work backwards from the current
buffer location to find the last ground location rather than working
forwards from the first buffered location. This ensures that we don't
capture noise before boost and instead capture a nice flight curve instead.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| |
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
avr-gcc was broken for a while, causing all linking to fail. Check for
that and don't try to build avr bits in that case.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Switch over to the installed pdclib everywhere
Signed-off-by: Keith Packard <keithp@keithp.com>
|