| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
| |
This should keep the device from failing to boot unless the IMU is
actually broken. Oh, and if self test does fail, this places the
flight computer in 'Invalid' state rather than panic.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
We can't hold the GPS mutex while waiting for the GPS receiver to load
data as it protects the GPS data with the GPS mutex.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
This will allow products to specify their own current limit.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
There's plenty of space in the GPS log packets to hold course, speed,
climb and DOP values, so just stick them in.
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>
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
EasyMini has no LEDs. Deal with it.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
This sticks the micropeak sources in appropriate directories, rather
than in the micropeak product directory so that they can be shared
with future micropeak-style products.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Was getting left with the old value, which wasn't very useful
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Parses most eeprom and telem records now; altosui updated to show from
AltosState info.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Same data, but EasyMini uses a 3.0V supply while TeleMini uses 3.3V,
which changes the intepretation of all of the ADC values
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Signed-off-by: Keith Packard <keithp@keithp.com>
Conflicts:
src/core/ao_telemetry.c
src/core/ao_telemetry.h
Added both Mini and Metrum telemetry defines
|
| |
| |
| |
| |
| |
| | |
In case we end up invoking it from two places at once.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| |
| |
| |
| |
| |
| | |
Mash lots of storage locations and code around to shrink stuff down to size
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| |
| |
| |
| | |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| |
| |
| |
| |
| |
| |
| | |
The test change is to ensure that the destination may be one of the 64
bit sources.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| |
| |
| |
| |
| |
| | |
the unsigned 32x32 multiply really does work, just use it
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
SDCC doeesn't provide a native 64-bit type (sigh), so
implement the minimal operations necessary for the MS5607 conversion
routine.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| |
| |
| |
| | |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Adding a task with a sooner timeout than existing alarm tasks was not
correctly updating the time to fire the next alarm, causing tasks to
be delayed by the wrong amount.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| |
| |
| |
| |
| |
| | |
Means we need to invert the data coming out to make it work
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| |
| |
| |
| |
| |
| | |
Use sense_a and sense_m instead of sense[2]
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|/
|
|
|
|
|
| |
Adds new telemetry and logging formats along with code for TeleMetrum
v2.0 design.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
TeleGPS doesn't ever want RDF
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Override default radio power and APRS interval
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Used for TeleGPS, just exposes the necessary log writing function
without also including the ADC writing code.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
There was a check to only disable USB on boards with radios, but for
EasyMini, we want to disable USB too for flight mode.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
This splits the fast-timer portion out of the debounce helper code and
shares that with the quadrature driver which now uses it directly.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Instead of having separate commands, just mix the two sets together.
Signed-off-by: Keith Packard <keithp@keithp.com>
|