| Commit message (Collapse) | Author | Age |
|
|
|
|
|
| |
This makes pdclib easier to manage as a submodule
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| |
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| |
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Just add some wild cards on the ends of each section name in case the
toolchain changes names in the future.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
|
|
| |
I've still got one working v0.1 board which is useful for testing
stuff, so make it work more like the released TeleMega:
* Use E for drogue, F for main
* Use on-chip eeprom for config
* Fix ADC report printf to match
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
| |
We were only using the low 8 bits of the setup packet reply max len,
which meant that if the other side sent a weird max len (as Windows 7
does), then we'd truncate our setup reply to whatever was in the low 8
bits of that value.
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>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
Because it's missing a return, we'd end up filling out one element of
the ADC record per interrupt, and rotating through which one was set,
hitting all of the even offsets within the struct. Yikes!
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
Change name of .text.ram to .ramtext, then load .text* into flash and
.ramtext into ram. This ensures that 'main' and anything else in a
random .text.* segment will get loaded into flash as appropriate.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Remove the software version string from the product name
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
The .ihx version can be processed by the java loader
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>
|
|
|
|
|
|
| |
Saves a bit of space where AES is used, and avoids some compiler warnings.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
This lets us compare the gyro-computed tilt angle against the actual
flight path.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
ao_telemega.c didn't include ao_eeprom.h leaving a function undefined
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>
|
|
|
|
|
|
|
| |
There's no reason to keep running the RC oscillator after we switch to
the crystal, so turn it off.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
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>
|
| |
|
|
|
|
|
|
| |
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>
|