summaryrefslogtreecommitdiff
path: root/src/ao.h
Commit message (Collapse)AuthorAge
* altos: Restructure altos build to prepare for multi-arch supportKeith Packard2011-08-25
| | | | | | | | | | | | | | Split out sources into separate directories: core: architecture and product independent bits cc1111: cc1111-specific code drivers: architecture independent drivers product: product-specific sources and Makefile fragments util: scripts for building stuff This should have no effect on the built products, but testing is encouraged Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/altosui: Add ability to disable telemetry/rdf completelyKeith Packard2011-08-20
| | | | | | | This turns off the telemetry system so that it never transmits telemetry or RDF tones. In idle mode, it will still accept packet mode connections. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Correct AO_CONFIG_MINOR from 6 to 7Keith Packard2011-08-13
| | | | | | Forgot to bump this when adding radio setting. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Send serial/flight to companion boardKeith Packard2011-08-13
| | | | | | Lets the companion log them for later matching with TeleMetrum log Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Send SPI message at flight state changesKeith Packard2011-08-13
| | | | | | | Get the companion board starting its data logging as soon as possible after boost starts. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add SPI-based companion board supportKeith Packard2011-08-13
| | | | | | | This sends current flight state information and retrieves companion data to include in telemetry. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/altosui: Report log format in the version commandKeith Packard2011-08-13
| | | | | | | | This will make it easier to figure out what the contents of the flash should look like from altosui; the current 'guessing' mechanism will not scale to many more formats. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Pull igniter pins low as soon as possible at boot timeKeith Packard2011-08-11
| | | | | | | This reduces the pulse width on the igniter circuit caused by the default cc1111 pin configuration at powerup time. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add ability to set arbitrary radio frequencyKeith Packard2011-08-08
| | | | | | | | This adds a separate config parameter to control the raw radio frequency setting, allowing the user to select an arbitrary frequency instead of being forced to choose one of the 10 pre-defined 'channels'. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/altosui: Add pad orientation configure optionKeith Packard2011-08-02
| | | | | | | | | | | Allow TeleMetrum to be operated with the antenna pointing downwards on the pad. This provides some additional flexibility when designing an ebay. The accelerometer calibration levels are flipped around to match, so no re-calibration should be required. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Average height values for landing detectionKeith Packard2011-08-02
| | | | | | | | | | | | Instead of using the direct output of the kalman filter and hoping that is quiet enough to detect landing, filter that with a long exponential decay filter and then check to make sure that doesn't change more than 2m in 5 seconds as a trigger for landing detection. Tested with existing telemetrum flight logs and it correctly detects landing in all cases. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos, altosui: Add igniter mode (dual, apogee, main)split-telemetryKeith Packard2011-07-17
| | | | | | This provides for redundant charges for either apogee or main. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Switch flash drivers __xdata to __pdataKeith Packard2011-07-06
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Switch ao_flight and ao_flight_nano __xdata to __pdataKeith Packard2011-07-06
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: switch ao_cmd __xdata to __pdataKeith Packard2011-07-06
| | | | | | Saves code space Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Switch const for __code in struct ao_cmdsKeith Packard2011-07-06
| | | | | | This saves quite a bit of code space when accessing these values. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Switch ao_stdio.c __data to __pdataKeith Packard2011-07-06
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Switch ao_sample.c __xdata to __pdataKeith Packard2011-07-06
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Switch ao_log.c and ao_log_big.c __xdata to __pdataKeith Packard2011-07-06
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Switch ao_gps_skytraq and ao_gps_sirf __xdata to __pdataKeith Packard2011-07-06
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Adapt to changes in telemetry Configuration packetKeith Packard2011-07-05
| | | | | | Apogee delay added. flight_log_max changed to two bytes (in kB now). Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Complete new telemetry switchoverKeith Packard2011-07-04
| | | | | | | | | | | | | | This involved rewriting the GPS code to use the telemetry structures directly so that a memcpy could be used to transfer the data to the telemetry packets, saving a bunch of code space, along with fixing up the gps testing programs to deal with the structure changes. In addition, the teledongle code needed to have the monitoring code split into separate radio receiver and USB writer threads as the packets are now back-to-back, and hence come too fast to wait for the USB data to be sent to the host after each one. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add split telemetry codeKeith Packard2011-07-04
| | | | | | | This sends every packet every time, which isn't correct, but should be useful for testing. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Start adding new telemetry frame definitionsKeith Packard2011-06-27
| | | | | | | These use the initial 24 bytes per frame plan, which will probably get changed to 32 bytes per frame. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add arbitrary telemetry packet monitoringKeith Packard2011-06-27
| | | | | | | This adds the ability to monitor arbitrary telemetry packets (up to 128 bytes), moving the telemetry data parsing up to the host. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Rename telemetry to telemetry_origKeith Packard2011-06-27
| | | | | | | This makes room to create a new multi-packet telemetry format without changing anything yet. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Hook up the P1 ISR for TeleBT v0.1 bt_link lineKeith Packard2011-05-06
| | | | | | Otherwise, we're heading off into the weeds... Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Solidify BT connectionsKeith Packard2011-04-19
| | | | | | | | | Use delays while sending commands to BT module. Don't use BT for stdio until the module is initialized. Add \r to name setting command Don't require 'connected' signal for command input. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Use PIO(6) on BTM to monitor BT connection. Fix BTM init.Keith Packard2011-04-07
| | | | | | | | PIo(6) appears to be an active-low indication of the Bluetooth connection status. Hook this up using an interrupt to track the link state instead of using in-band status messages. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Make cmd echo per-connection instead of globalKeith Packard2011-04-01
| | | | | | | Allow different connections to use different echo values, permitting the packet link to turn off echo while the USB link still has it on. Signed-off-by: Keith Packard <keithp@keithp.com>
* 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: 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 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: 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>
* 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: 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>
* altos: Split out tiny telemetry from full telemetryKeith Packard2011-03-19
| | | | | | | | | | | | | | | The TeleMini and TeleNano boards do not have either GPS or accelermeters, and they also run the kalman filter which produces standard unit measurements for the flight height/speed/accel values. This makes the telemetry significantly different. ao_telemetry_tiny.c sends the required data. Note that TeleNano sends the same telemetry as telemini at this point; there are a couple of values which are not useful, but the overhead of sending them is small enough that the hassle of having three telemetry formats seemed excessive. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Make telemetry interval more consistentKeith Packard2011-03-19
| | | | | | | | | | | | | | | Instead of using a delay between telemetry packets, use a telemetry period and compute an appropriate delay each time. This requires changing the ascent telemetry from a 50ms delay to a 100ms interval, to provide a regular 10 packets-per-second rate. Before, we counted on the telemetry packet taking about 50ms to send so that we would receive about 10 per second. This also eliminates delays during descent for RDF tones -- those will get transmitted in the interval between telemetry packets without interrupting the spacing of those packets. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Configure packet size from send/recv parameters.Keith Packard2011-03-19
| | | | | | | | | | Instead of setting the packet size at configuration time, use the provided packet size to the send/recv functions to configure the radio. This eliminates many configuration calls, leaving us with 'RDF' mode and 'packet' mode, the latter working for telemetry and the bi-directional link. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Don't init packet slave on TD. Make slave start optionalKeith Packard2011-03-19
| | | | | | | | | | | Oops. TeleDongle was starting the packet slave code, which kinda wrecked its ability to receive telemetry packets. This patch simply removes the packet slave code from teledongle as it cannot be used (yet), it also makes the packet slave code initialization take a parameter which controls whether to start that by default; in the future, perhaps TeleDongle will gain a command to start packet slave mode. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Write height values to log for nano/miniKeith Packard2011-03-18
| | | | | | This is a lot more useful than the old filtered pressure data. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add tiny logging for TeleMini/TeleNanoKeith Packard2011-03-17
| | | | | | | | | | This splits the logging code into management of the log space within storage and separate code to actually write suitable log entries. A new log writing module, ao_log_tiny, is added which writes only altimeter data at a fairly low data rate for devices using on-chip storage. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Make serial, usb, beeper and accelerometer optional componentsKeith Packard2011-03-16
| | | | | | | Not all boards will have these, so fix places that use them to deal with that. Signed-off-by: Keith Packard <keithp@keithp.com>
* src/ao_cmd: Shave off bytes from doc stringsAnthony Towns2011-03-07
| | | | | | Switch to using { func, "X args\0Desc" } to specify command, saving a char field by looking at help[0] instead, and reduce help length by doing alignment with printf instead of hardcoded spaces.
* ao_radio: generalise setup of packet sizeAnthony Towns2011-02-18
|
* altos: Sample the accelerometer reference voltage on v1.1 boardsKeith Packard2011-01-16
| | | | | | | This places the 5v reference samples in an array parallel to the basic ADC values. It doesn't do anything with the values, just stores them. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Ensure flight code gets first crack at new ADC dataKeith Packard2011-01-16
| | | | | | | | Instead of having everyone wait on the raw ADC ring, have the flight code wait on that and have everyone else wait for the flight code to finish looking at the data and move its pointer forwards. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: TELEMETRY PROTOCOL CHANGE. Switch to 16-bit serial numbers.Keith Packard2011-01-16
| | | | | | | | | | What a terrible mistake! The flight computer serial numbers were recorded in only 8 bits, so serial numbers > 255 would get truncated. There's really no fix other than bumping the field to 16 bits and reflashing every TM and TD on the planet. Very unfortunate. Signed-off-by: Keith Packard <keithp@keithp.com>