summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* | altos: Make ao_serial_drain publicKeith Packard2011-04-01
| | | | | | | | | | | | Allow external code to discard serial input Signed-off-by: Keith Packard <keithp@keithp.com>
* | altos: Remove serial monitor commandKeith Packard2011-04-01
| | | | | | | | | | | | This takes up space and isn't that useful these days Signed-off-by: Keith Packard <keithp@keithp.com>
* | altos: Allow any stdio to be used with packet forwardingKeith Packard2011-04-01
| | | | | | | | | | | | | | There's no reason to restrict packet forwarding to work only from USB. Signed-off-by: Keith Packard <keithp@keithp.com>
* | altos: Provide for a pre-filter on commandsKeith Packard2011-04-01
| | | | | | | | | | | | | | This allows for external code to see each command line before it is processed and potentially skip it. Signed-off-by: Keith Packard <keithp@keithp.com>
* | altos: expose set of available stdio valuesKeith Packard2011-04-01
| | | | | | | | | | | | | | This lets external code manipulate which connection to communicate over. Signed-off-by: Keith Packard <keithp@keithp.com>
* | altos: Add P2SEL_*_MASK defines to cc1111.hKeith Packard2011-04-01
| | | | | | | | | | | | | | These are used to avoid having the code "know" which selections are 1 and which are 0 bits. Signed-off-by: Keith Packard <keithp@keithp.com>
* | altos: Add initial TeleBT codeKeith Packard2011-03-31
|/ | | | | | | Prototyping with a TeleMetrum v0.1 board and a serial link to a bluetooth module. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Make ao_flight_test show true height but report saturated heightKeith Packard2011-03-31
| | | | | | | | To simulate a saturated baro sensor, clip baro data at a specified altitude. Continue to report the 'true' altitude in the output so that the resulting graphs are useful. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Baro useful ceiling is MSL, not AGLKeith Packard2011-03-31
| | | | | | | Use MSL instead of AGL for detecting over-range baro sensor values. Always trust baro sensor during descent; it'll get there eventually. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Reflect ao_flight split in ao_flight_test dependenciesKeith Packard2011-03-31
| | | | | | Need to rebuild ao_flight_test when any of the flight sources change Signed-off-by: Keith Packard <keithp@keithp.com>
* altosui: Only plot acceleration when present in data fileKeith Packard2011-03-30
| | | | | | | Eliminates a bogus axis and data line for devices which do not have an accelerometer. Signed-off-by: Keith Packard <keithp@keithp.com>
* altosui: Parse and export Max flight log valueKeith Packard2011-03-30
| | | | | | New configuration field might as well get dumped to the .csv files. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Enable logging during nano flightsKeith Packard2011-03-29
| | | | | | Not having logging wasn't very useful. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Run RDF beacon after apogee instead of waiting for landingKeith Packard2011-03-29
| | | | | | This provides tracking when GPS fails, or on TeleMini. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: ao_sample_preflight was exiting preflight mode immediatelyKeith Packard2011-03-29
| | | | | | | | Need to stay in pre-flight mode until we've gotten enough sensor data to calibrate things appropriately. The conversion from a unified ao_flight.c file was just broken here. Signed-off-by: Keith Packard <keithp@keithp.com>
* altosui: Don't display 0000-00-00 for missing flight log datesKeith Packard2011-03-29
| | | | | | | | With Tm/Tn not having GPS to get the current date, it's no longer unusual to have no date for a flight log, so don't show the 0000-00-00 piece in that case. Signed-off-by: Keith Packard <keithp@keithp.com>
* altosui: Display exception messages from swing threadKeith Packard2011-03-29
| | | | | | | Flight log management exceptions were getting displayed from the log serial I/O thread instead of the swing thread. That's a bad plan. Signed-off-by: Keith Packard <keithp@keithp.com>
* altosui: Make deployment testing handle Connecting... dialogKeith Packard2011-03-29
| | | | | | | | Supporting the Connecting... dialog requires moving all serial communication to a separate thread. This was done by creating a worker thread and command queue to communicate between the UI and the serial line. Signed-off-by: Keith Packard <keithp@keithp.com>
* altosui: Make flight log downloading handle 'Connecting...' dialogKeith Packard2011-03-28
| | | | | | | | This required moving all of the serial communication to a separate thread and making the bulk of the download operation run after that has finished. Signed-off-by: Keith Packard <keithp@keithp.com>
* altosui: Clean up packet link connecting dialogKeith Packard2011-03-28
| | | | | | | | | | | | | | Make sure the dialog is destroyed after use (otherwise, it hangs around on the screen sometimes). Switch timeout before showing dialog to 500ms -- that brings the dialog up less often when unnecessary. Use 'timeout_started' boolean to indicate whether the I/O thread has queued the dialog for display and whether it needs to queue a call to close it down. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Create custom nano flight codeKeith Packard2011-03-28
| | | | | | | No igniters, just 'pad/drogue/landed' modes (where 'drogue' == 'flying'). A constant 1Hz telemetry and RDF rate. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Split up flight code into separate flight/sample/kalman bitsKeith Packard2011-03-28
| | | | | | | | | | | | | | | The flight code mashed together data processing, filtering and actual flight managament into one giant pile. Split things up so that we have: ao_sample.c: Sensor data processing. Reads the ring, handles calibration ao_kalman.c: Filter the data to track the accel/speed/height values ao_flight.c: Flight state management, specific to rocketry. The plan is to re-use ao_sample.c and ao_kalman.c for hardware not specifically designed for rocketry, like TeleNano. Signed-off-by: Keith Packard <keithp@keithp.com>
* altosui: Handle serial calls from swing threadKeith Packard2011-03-27
| | | | | | | | Calls from the swing thread cannot be canceled as there's no way to put up the cancel dialog. In this case, simply use the 5 second timeout and fail if no communication occurs within that amount of time. Signed-off-by: Keith Packard <keithp@keithp.com>
* altosui: Tell serial device which frame to use for timeout dialogsKeith Packard2011-03-27
| | | | | | | | | | For the timeout dialog to appear, a frame must be configured for it to appear near. This patch sends the frame from the eeprom download functions to the serial code. That path doesn't yet work as the eeprom download is still trying to talk to the serial device from the swing event thread, which prevents the cancel dialog from working. Signed-off-by: Keith Packard <keithp@keithp.com>
* altosui: Allow radio channel to be configured over the radio linkKeith Packard2011-03-27
| | | | | | | | | | | TeleMini/TeleNano can't be configured via USB, so we need to allow the radio channel to be set over the radio link. This change carefully sets the new radio channel, disables the remote link and then sets the teledongle channel to the new value and brings the link back up. Signed-off-by: Keith Packard <keithp@keithp.com>
* altosui: Off-by-one error in telemetry format configuration UIKeith Packard2011-03-27
| | | | | | | | The telemetry format menu uses 0 for full and 1 for tiny, but the telemetry configuration uses 1 for full and 2 for tiny. One direction (config to UI) was right, the other (UI to config) was wrong. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: full logging must flush pending data before checking stateKeith Packard2011-03-26
| | | | | | | | | | | | Flight state must be checked only after any pending data have been written to the log as the 'current' flight state is only valid when the pending data values have been processed. This ensures that the 'boost' state is not marked until the full ring of data is written. This ensures that the data processing code can find the barometer values from before boost to get an idea of the ground pressure value. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Variable log rate in full logging code tooKeith Packard2011-03-26
| | | | | | | | | | With the fixed ADC rate used to get better data during flight, the logging code now needs to vary the data storage rate so that descent data is recorded at 10 samples/second while ascent data is recorded at 1 sample per second. Having the logging code do this itself eliminates any interaction with the flight code. Signed-off-by: Keith Packard <keithp@keithp.com>
* altosui: Allow TM config connection to be canceled.Keith Packard2011-03-26
| | | | | | | | | This leaves the config UI connection attempt running and pops up a dialog box when it takes 'too long' in the remote case so that users with Tm or Tn devices can bring up the UI, and then boot the Tm/Tn without needing to time things carefully. Signed-off-by: Keith Packard <keithp@keithp.com>
* altosui: swing hide/show methods are deprecatedKeith Packard2011-03-25
| | | | | | | I don't know why, but they are, so just replace them with setVisible calls. Signed-off-by: Keith Packard <keithp@keithp.com>
* altosui: Remove extra AltosEepromBlock layerKeith Packard2011-03-25
| | | | | | | | | | This was interposed between the download layer and the eeprom layer to hold a eeprom block full of flight log records. The addition of the tiny log format required reworking the code to hold chunks full of eeprom data without regard to their content, so this content-specific layer didn't seem useful anymore. Signed-off-by: Keith Packard <keithp@keithp.com>
* altosui: Add support for downloading TeleMini/TeleNano flight logsKeith Packard2011-03-25
| | | | | | | | Splits the eeprom downloading code into eeprom block downloading and separate eeprom data parsing so that the new data logging format can share the data downloading code. Signed-off-by: Keith Packard <keithp@keithp.com>
* altosui: Remove a bunch of debug printfs from the eeprom manager codeKeith Packard2011-03-25
| | | | | | Just noise on stdout. Signed-off-by: Keith Packard <keithp@keithp.com>
* altosui: Add telemetry format menu and preferencesKeith Packard2011-03-24
| | | | | | | | Switches the TeleDongle between full and tiny telemetry packet formats, saving the last used format for each teledongle in the application preferences. Signed-off-by: Keith Packard <keithp@keithp.com>
* altosui: Add support for telemetry version 4Keith Packard2011-03-24
| | | | | | New telemetry format needed to support TeleNano and TeleMini Signed-off-by: Keith Packard <keithp@keithp.com>
* Add description to test flightsKeith Packard2011-03-23
|
* Add ao_kalman.h to .gitignoreKeith Packard2011-03-23
|
* altos: Exit flight test at landing. Allow description in test flight listKeith Packard2011-03-23
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Ignore alt error for fast->coast. Allow larger error for baro apogee.Keith Packard2011-03-23
| | | | | | | | | | | | | | With the fixed kalman filter, transitions across mach don't cause bumps in the merged filter. And, with working kalman bits, the signal for broken baro detection is stronger and so we can allow for baro apogee detection in cases where noise occurs close to apogee. Bump the kalman filter to trust the baro less so that the model tracks across mach. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Restore sensible kalman valuesKeith Packard2011-03-22
| | | | | | | Now that the kalman code seems to work correctly, restore the sensor errors and model errors to match reality Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Fix up flight code testingKeith Packard2011-03-22
| | | | | | | This automates flight code testing by reporting mis-detected apogee or main events. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Missing parens and some bad arithmetic in the kalman codeKeith Packard2011-03-22
| | | | | | Fixed point computations are a pain. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add ao_flight_debug codeKeith Packard2011-03-22
| | | | | | Trace the kalman filter to make sure it's working. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Clean up some debug stuff in ao_flight.cKeith Packard2011-03-22
| | | | | | | Remove some spurious printf debugging. Remove an attempt at discovering broken accelerometer code. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/kalman: Kalman terms can be > 1, use 32-bit fixed pointKeith Packard2011-03-22
| | | | | | | | Because speed and acceleration are scaled by 16, it's fairly common for the kalman terms to end up larger than 1. Instead of trying to fuss with 16-bit values and shifts, just use 32-bit values. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Compute a 'trust' value for the barometerKeith Packard2011-03-22
| | | | | | | | Instead of making the baro use/don't-use decision binary, use a 'trust value' which slowly migrates from baro+accel to accel-only mode. This eliminates bumps in the data from a rapid shift. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Switch telemetrum over to kalman filterKeith Packard2011-03-22
| | | | | | | | | | | | This changes the full telemetry stream to include kalman data instead of the old ad-hoc flight data. It's compatible in that the packet sizes are the same so teledongle can receive either and figure out which it has received. A few plotting and testing tools are added to make validating the new code easier. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add nickle kalman implementation.Keith Packard2011-03-21
| | | | | | | This generates the constants needed to implement Kalman filtering in the flight firmware. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add .sdcdbrc file for teledongleKeith Packard2011-03-19
| | | | | | My sdcdb script uses this to set command line options automatically Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: New telemetry report format (version 4). Supports tiny telemetry.Keith Packard2011-03-19
| | | | | | | | | | | This completely replaces the version 3 format with a much simpler and easier to parse scheme. It's described in detail in ao_telem.h, but the basic idea is that the whole line is split into name/value pairs, separated by whitespace. Every name is unique, and the values are either strings or integers. No extraneous formatting or units are provided. Signed-off-by: Keith Packard <keithp@keithp.com>