summaryrefslogtreecommitdiff
path: root/src/core
Commit message (Collapse)AuthorAge
* altos: Try IMU self-test 10 times before giving upKeith Packard2013-12-18
| | | | | | | | 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>
* altos: Broke TeleMetrum GPS reporting by holding the GPS mutex too muchKeith Packard2013-12-17
| | | | | | | 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>
* altos: Allow products to override default 100mA USB currentKeith Packard2013-12-08
| | | | | | This will allow products to specify their own current limit. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add lots more GPS data to mega logKeith Packard2013-12-07
| | | | | | | 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>
* altos: Make sure flight erase log comes after config blogKeith Packard2013-11-12
| | | | | | | 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>
* altos: Move TeleMetrum v2.0 to using internal eeprom for configKeith Packard2013-11-12
| | | | | | This leaves the whole 8MB of flash for flight storage Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Allow use of internal EEPROM for config storageKeith Packard2013-11-12
| | | | | | | | | | | 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>
* altos: Don't hold GPS mutex while waiting in TM v2.0 reportKeith Packard2013-11-12
| | | | | | | 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>
* altos: Add orientation tracking to ao_flight_testKeith Packard2013-11-12
| | | | | | Shows calculated offset from vertical in ao_flight_test output Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Don't hold GPS mutex while waiting for GPS data in report codeKeith Packard2013-10-28
| | | | | | Oops. This kinda breaks anyone else waiting for GPS data Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: sample profile address range was too narrowKeith Packard2013-10-28
| | | | | | | | 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>
* altos: Add orientation test when HAS_FLIGHT_DEBUG is setKeith Packard2013-10-27
| | | | | | | This just dumps the current orientation to stdout so you can monitor it in real time Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Fixup for 32-bit gyro averagesKeith Packard2013-10-27
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Correct incremental rotation computationKeith Packard2013-10-27
| | | | | | | | | | | 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>
* altos: Compute initial rotation from verticalKeith Packard2013-10-27
| | | | | | | | | 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>
* altos: Fixup for ao_sample_orient renameKeith Packard2013-10-27
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Keep 9 more bits of average pad IMU gyro dataKeith Packard2013-10-27
| | | | | | This reduces the offset error by a bit, minimizing gyro drift. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Rename ao_orient to ao_sample_orientKeith Packard2013-10-27
| | | | | | Keeps it clear where this name comes from. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add functions to init quaternions from vector pairs and euler anglesKeith Packard2013-10-27
| | | | | | | | 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>
* altos: Add some comments describing quaternion multiplicationKeith Packard2013-10-27
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Mark arguments to quaternion functions as constKeith Packard2013-10-27
| | | | | | Lets us pass constants without the compile whinging Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: IMU accel calibration values need to be signedKeith Packard2013-10-27
| | | | | | The MPU6000 reports signed values. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Calibrate IMU accelerometers tooKeith Packard2013-10-25
| | | | | | | | 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>
* altos: Add gyro-based orientation trackingKeith Packard2013-10-25
| | | | | | | This tracks the angle-from-vertical as an additional input to the pyro channels. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Merge GPS logging into a single functionKeith Packard2013-10-14
| | | | | | | | | | | | 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>
* altos/micropeak: Increase boost detect to 30mKeith Packard2013-10-13
| | | | | | | | | | | | | 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>
* altos: Don't require an LED for ao_flightKeith Packard2013-10-07
| | | | | | EasyMini has no LEDs. Deal with it. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Move micropeak sources aroundKeith Packard2013-09-15
| | | | | | | | 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>
* altos: Set tick value in new TeleMetrum v2 sensor packetsKeith Packard2013-09-05
| | | | | | Was getting left with the old value, which wasn't very useful Signed-off-by: Keith Packard <keithp@keithp.com>
* altoslib/altosui: Further AltosState transition workKeith Packard2013-08-31
| | | | | | | Parses most eeprom and telem records now; altosui updated to show from AltosState info. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Split EasyMini and TeleMini log formatsKeith Packard2013-08-29
| | | | | | | 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>
* Merge remote-tracking branch 'origin/telemini'Keith Packard2013-08-28
|\ | | | | | | | | | | | | | | | | | | 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
| * altos: Make ao_wakeup reentrantKeith Packard2013-08-26
| | | | | | | | | | | | In case we end up invoking it from two places at once. Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos: Make TeleMini v2.0 fitKeith Packard2013-08-25
| | | | | | | | | | | | Mash lots of storage locations and code around to shrink stuff down to size Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos: Add 64-bit subtractionKeith Packard2013-08-25
| | | | | | | | Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos: Add 64x64 multiply. Test 64 ops for dest same as either sourceKeith Packard2013-08-25
| | | | | | | | | | | | | | 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>
| * altos: Make 64x16 mul a bit fasterKeith Packard2013-08-25
| | | | | | | | | | | | the unsigned 32x32 multiply really does work, just use it Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos: Add 64-bit add/mul/shift for SDCCKeith Packard2013-08-25
| | | | | | | | | | | | | | | | 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>
| * Initial TeleMini bitsKeith Packard2013-08-25
| | | | | | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* | altos: Update time for next alarm each time a task is addedKeith Packard2013-08-28
| | | | | | | | | | | | | | | | 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>
* | altos: TM v2 places the MMA6555 upside down compared to TmegaKeith Packard2013-08-28
| | | | | | | | | | | | Means we need to invert the data coming out to make it work Signed-off-by: Keith Packard <keithp@keithp.com>
* | altos: Rename TeleMetrum v2.0 ADC sense membersKeith Packard2013-08-27
| | | | | | | | | | | | Use sense_a and sense_m instead of sense[2] Signed-off-by: Keith Packard <keithp@keithp.com>
* | altos: Initial TeleMetrum v2.0 bitsKeith Packard2013-08-27
|/ | | | | | | Adds new telemetry and logging formats along with code for TeleMetrum v2.0 design. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Allow products to disable RDF entirelytelegps-v0.3Keith Packard2013-08-24
| | | | | | TeleGPS doesn't ever want RDF Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: allow projects to override default config valuesKeith Packard2013-08-17
| | | | | | Override default radio power and APRS interval Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Support mega-style logging without ADCKeith Packard2013-06-24
| | | | | | | 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>
* altos: Disable USB on all flight computers when in flight modeKeith Packard2013-06-17
| | | | | | | 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>
* altos: Add fast-timer API. Use for quadrature and button driversKeith Packard2013-06-09
| | | | | | | 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>
* altos: Add debounce helper. Use in button and quadrature drivers for TeleLCOKeith Packard2013-06-09
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add pyro operations to regular ignite commandsKeith Packard2013-05-26
| | | | | | Instead of having separate commands, just mix the two sets together. Signed-off-by: Keith Packard <keithp@keithp.com>