fw/altos
11 years agoaltos/attiny: Update to new interrupt macros
Keith Packard [Mon, 29 Oct 2012 18:43:02 +0000 (11:43 -0700)]
altos/attiny: Update to new interrupt macros

Add ao_arch_block/release_interrupts macros to attiny architecture

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoMerge remote-tracking branch 'mjb/altosdroid'
Keith Packard [Fri, 26 Oct 2012 21:08:32 +0000 (14:08 -0700)]
Merge remote-tracking branch 'mjb/altosdroid'

11 years agoaltos: Provide ao_task_alarm_tick to reduce per-tick cost
Keith Packard [Thu, 25 Oct 2012 20:42:10 +0000 (13:42 -0700)]
altos: Provide ao_task_alarm_tick to reduce per-tick cost

Cache the next wakeup time and check that before jumping to the task
code.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Leave interrupts disabled while checking for task to run
Keith Packard [Thu, 25 Oct 2012 20:40:54 +0000 (13:40 -0700)]
altos: Leave interrupts disabled while checking for task to run

Otherwise, we run the risk of an interrupt waking a task after we've
decided to idle the CPU.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Clean up stm arch macros a bit.
Keith Packard [Thu, 25 Oct 2012 20:38:13 +0000 (13:38 -0700)]
altos: Clean up stm arch macros a bit.

Turn a bunch of the macros into inline functions.
Clean up the reboot method to use the stm_scb structure.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Clean up cc1111 architecture macros a bit, removing cli/sei
Keith Packard [Thu, 25 Oct 2012 20:35:47 +0000 (13:35 -0700)]
altos: Clean up cc1111 architecture macros a bit, removing cli/sei

Just reformatting changes, aside from the removal of cli/sei

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Wrap ao_container_of value in parens
Keith Packard [Thu, 25 Oct 2012 20:33:43 +0000 (13:33 -0700)]
altos: Wrap ao_container_of value in parens

Keeps the cast from being separated from the value when used
in expressions.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Switch drivers to ao_arch_block/release_interrupts
Keith Packard [Thu, 25 Oct 2012 18:25:42 +0000 (11:25 -0700)]
altos: Switch drivers to ao_arch_block/release_interrupts

Stop using cli/sei, which are avr-specific

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltosdroid: more restrictive commit no. matching
Mike Beattie [Thu, 25 Oct 2012 07:39:20 +0000 (20:39 +1300)]
altosdroid: more restrictive commit no. matching

Signed-off-by: Mike Beattie <mike@ethernal.org>
11 years agoaltosdroid: more reliable branch detection
Mike Beattie [Thu, 25 Oct 2012 07:31:59 +0000 (20:31 +1300)]
altosdroid: more reliable branch detection

Signed-off-by: Mike Beattie <mike@ethernal.org>
11 years agoBump version to 1.1.9.2
Keith Packard [Thu, 25 Oct 2012 07:12:57 +0000 (00:12 -0700)]
Bump version to 1.1.9.2

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoMerge remote-tracking branch 'mjb/altosdroid'
Keith Packard [Thu, 25 Oct 2012 07:09:01 +0000 (00:09 -0700)]
Merge remote-tracking branch 'mjb/altosdroid'

11 years agoaltos/megametrum: Depend on Makefile contents for build
Keith Packard [Thu, 25 Oct 2012 07:04:27 +0000 (00:04 -0700)]
altos/megametrum: Depend on Makefile contents for build

This ensures that everything is rebuilt when the Makefile changes

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Add task queues.
Keith Packard [Thu, 25 Oct 2012 06:50:55 +0000 (23:50 -0700)]
altos: Add task queues.

This replaces the array-based scheduler with a queue-based one
instead. It should have the same basic scheduling semantics, but it
walks shorter lists for each operation, making it much more efficient
when the system has a lot of tasks.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Add stack-guard code. Uses STM MPU to trap stack overflow.
Keith Packard [Thu, 25 Oct 2012 05:46:55 +0000 (22:46 -0700)]
altos: Add stack-guard code. Uses STM MPU to trap stack overflow.

This marks the lowest portion of the stack as inaccessible to the CPU,
causing the processor to fault when it reaches it. The fault then
generates a panic message so that the user can know what happened.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Replace __critical usage with ao_arch_critical as needed
Keith Packard [Thu, 25 Oct 2012 05:35:32 +0000 (22:35 -0700)]
altos: Replace __critical usage with ao_arch_critical as needed

sdcc offers __critical as a machine-independent way to block
interrupts, but as gcc doesn't, we need to use a compiler-independent
construct instead. ao_arch_critical has been around since the AVR
port, but some old __critical usages remained.

This fixes a bunch of random hangs when communicating with MM over USB
or the radio as the various stdio loops were running without
interrupts blocked between the test and the sleep.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: profiling on STM32L
Keith Packard [Wed, 24 Oct 2012 05:17:49 +0000 (22:17 -0700)]
altos: profiling on STM32L

Add sample-based profiling, using a 1kHz timer

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Add ao_arch_block/release_interrupts to avr and cc1111
Keith Packard [Thu, 25 Oct 2012 06:21:38 +0000 (23:21 -0700)]
altos: Add ao_arch_block/release_interrupts to avr and cc1111

Stop using cli/sei for AVR, add replacement to __critical for cc1111

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Force beep timer regs reload when enabling beeper
Keith Packard [Thu, 25 Oct 2012 06:55:00 +0000 (23:55 -0700)]
altos: Force beep timer regs reload when enabling beeper

Without this, there can be a long delay between asking for the beeper
and having it actually start sounding.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: When slave mode first starts, accept any packet
Keith Packard [Thu, 25 Oct 2012 06:52:49 +0000 (23:52 -0700)]
altos: When slave mode first starts, accept any packet

This eliminates the packet sequence matching for the first packet,
allowing outstanding send data to arrive from the master instead of
ignoring packets with data until they match the seqno

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltosui: Allow AltosConfig to abort before serial line starts
Keith Packard [Thu, 25 Oct 2012 06:55:45 +0000 (23:55 -0700)]
altosui: Allow AltosConfig to abort before serial line starts

Check to see if the serial line is active before trying to close it.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltosdroid: Add version information to UI
Mike Beattie [Wed, 24 Oct 2012 07:54:18 +0000 (20:54 +1300)]
altosdroid: Add version information to UI

Signed-off-by: Mike Beattie <mike@ethernal.org>
11 years agoaltosdroid: Add branch to BuildInfo
Mike Beattie [Wed, 24 Oct 2012 07:52:09 +0000 (20:52 +1300)]
altosdroid: Add branch to BuildInfo

Signed-off-by: Mike Beattie <mike@ethernal.org>
11 years agoMerge branch 'master' of ssh://git.gag.com/scm/git/fw/altos
Bdale Garbee [Tue, 23 Oct 2012 15:38:36 +0000 (09:38 -0600)]
Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altos

11 years agoremove local copy of launch-sites.txt and reference to old web location
Bdale Garbee [Tue, 23 Oct 2012 15:33:17 +0000 (09:33 -0600)]
remove local copy of launch-sites.txt and reference to old web location

11 years agoaltosdroid: match only the current version tag
Mike Beattie [Tue, 23 Oct 2012 06:22:52 +0000 (19:22 +1300)]
altosdroid: match only the current version tag

Don't match non version tags - and always return the long format of
git describe, rather than just the tag (when the tag is on the current
commit).

Split the commit number/hash more reliably by removing the version tag
from the result first.

Signed-off-by: Mike Beattie <mike@ethernal.org>
11 years agoMerge remote-tracking branch 'mjb/altosdroid'
Keith Packard [Tue, 23 Oct 2012 05:39:31 +0000 (22:39 -0700)]
Merge remote-tracking branch 'mjb/altosdroid'

11 years agoaltosui: Allow any non-basestation to be configured
Keith Packard [Tue, 23 Oct 2012 05:38:46 +0000 (22:38 -0700)]
altosui: Allow any non-basestation to be configured

TelePyro has some configuration bits.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: make check-avr-mem utility executable
Keith Packard [Tue, 23 Oct 2012 04:39:12 +0000 (21:39 -0700)]
altos: make check-avr-mem utility executable

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Allow pyro flight state config to be set
Keith Packard [Tue, 23 Oct 2012 04:38:18 +0000 (21:38 -0700)]
altos: Allow pyro flight state config to be set

Without these lines, flight state compares can't be shown or set.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Let AVR products override the stack size. Set telepyro to 104
Keith Packard [Tue, 23 Oct 2012 04:37:25 +0000 (21:37 -0700)]
altos: Let AVR products override the stack size. Set telepyro to 104

Otherwise, telepyro doesn't have enough ram...

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltoslib: capitalize 'Invalid' state name appropriately
Keith Packard [Tue, 23 Oct 2012 04:36:12 +0000 (21:36 -0700)]
altoslib: capitalize 'Invalid' state name appropriately

It shouldn't ever appear, but it seemed wrong to have it not match the
rest of the strings.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltosui/altoslib: Add support for configuring pyro channels
Keith Packard [Tue, 23 Oct 2012 04:35:06 +0000 (21:35 -0700)]
altosui/altoslib: Add support for configuring pyro channels

This provides a UI on devices which have pyro channels other than
main/apogee.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Add state comparisons to pyro channel conditions
Keith Packard [Mon, 22 Oct 2012 15:52:08 +0000 (08:52 -0700)]
altos: Add state comparisons to pyro channel conditions

Let pyro channels block waiting for flight state changes. This
allows for pyro channels to be synchronized with the main iginiter
channels.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltosdroid: add autogenerated BuildInfo.java
Mike Beattie [Sun, 21 Oct 2012 22:55:07 +0000 (11:55 +1300)]
altosdroid: add autogenerated BuildInfo.java

* Generated by shell script that parses git describe
* Makefile rule to call script on every run
* also includes eclipse hooks to call shell script on build

Signed-off-by: Mike Beattie <mike@ethernal.org>
11 years agoaltosdroid: AltosState now has speed and max_speed funcs
Keith Packard [Mon, 22 Oct 2012 03:57:21 +0000 (20:57 -0700)]
altosdroid: AltosState now has speed and max_speed funcs

These pull out the appropriate baro/accel speed values and may use
some fancier values in future.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltoslib: Add AltosRecordNone.java
Keith Packard [Mon, 22 Oct 2012 02:51:02 +0000 (19:51 -0700)]
altoslib: Add AltosRecordNone.java

oops. forgot a file.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos/test: Use MMA655X in ao_flight_test_mm. Add run-mm to plot mm data
Keith Packard [Mon, 22 Oct 2012 00:26:16 +0000 (17:26 -0700)]
altos/test: Use MMA655X in ao_flight_test_mm. Add run-mm to plot mm data

Pull MMA655X data out of eeprom file when available. Switch build to
using MMA655x by default.

Clone run-one to plot a single mm flight

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltosui: Handle .mega files in Landed tab 'Graph Flight' button
Keith Packard [Mon, 22 Oct 2012 00:00:08 +0000 (17:00 -0700)]
altosui: Handle .mega files in Landed tab 'Graph Flight' button

Need to check for .mega files here too.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Document mega log packet types
Keith Packard [Sun, 21 Oct 2012 23:55:00 +0000 (16:55 -0700)]
altos: Document mega log packet types

Just add comments to ao_log.h so it's easy to remember which labels go
with each record.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltoslib: Parse GPS .mega file entries for reply/graphing
Keith Packard [Sun, 21 Oct 2012 23:53:23 +0000 (16:53 -0700)]
altoslib: Parse GPS .mega file entries for reply/graphing

The .mega file parsing had a pile of leftovers from when it was cloned
from the .eeprom file parsing code. Replace all of that with the right
parsing bits so that GPS data will be presented correctly.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltoslib: Move computed state from AltosRecord to AltosState
Keith Packard [Sun, 21 Oct 2012 23:13:14 +0000 (16:13 -0700)]
altoslib: Move computed state from AltosRecord to AltosState

Make AltosRecord simply track the raw data and have AltosState hold
all computed values, including cross-packet averages and computed speeds.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltoslib: Compute accelerometer speed from megametrum eeprom data
Keith Packard [Sun, 21 Oct 2012 21:11:07 +0000 (14:11 -0700)]
altoslib: Compute accelerometer speed from megametrum eeprom data

Duplicates code from the TM eeprom state tracking code.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltoslib: remove a couple of TM log record types from MM log parsing
Keith Packard [Sun, 21 Oct 2012 21:10:32 +0000 (14:10 -0700)]
altoslib: remove a couple of TM log record types from MM log parsing

PRESSURE and DEPLOY log records don't occurin MM eeprom files.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltoslib: MegaMetrum eeprom never loses GPS date
Keith Packard [Sun, 21 Oct 2012 20:42:00 +0000 (13:42 -0700)]
altoslib: MegaMetrum eeprom never loses GPS date

TeleMetrum had a firmware bug that would fail to record the GPS date
and time correctly, that was hacked around in altosui, but isn't
needed for MegaMetrum. Remove those hacks from the MM path.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltosui: Correct megametrum eeprom filename date
Keith Packard [Sun, 21 Oct 2012 20:02:40 +0000 (13:02 -0700)]
altosui: Correct megametrum eeprom filename date

Was fetching day-of-month from the year field

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltosui: Add new filename filters
Keith Packard [Sun, 21 Oct 2012 20:02:05 +0000 (13:02 -0700)]
altosui: Add new filename filters

Allow the user to restrict filenames to telem, eeprom or mega files

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos/stm: Stop spewing clock out PA8 pin
Keith Packard [Sun, 21 Oct 2012 20:01:03 +0000 (13:01 -0700)]
altos/stm: Stop spewing clock out PA8 pin

This was used to debug the clock bringup, but is not useful anymore,
and probably a bad idea to boot.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoMerge branch 'master' into pwmin-new pwmin-new 1.1.9.1
Keith Packard [Thu, 18 Oct 2012 23:49:28 +0000 (16:49 -0700)]
Merge branch 'master' into pwmin-new

11 years agoaltosui: Re-add a couple of "unused" values
Keith Packard [Thu, 18 Oct 2012 23:19:38 +0000 (16:19 -0700)]
altosui: Re-add a couple of "unused" values

The values in these calls aren't needed, but the side-effects are, so
add them back in.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoBump version to 1.1.9.1
Keith Packard [Thu, 18 Oct 2012 23:02:59 +0000 (16:02 -0700)]
Bump version to 1.1.9.1

Prepare for Rocketober/Thrustration

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos/megametrum: Switch back to using the MS5607
Keith Packard [Thu, 18 Oct 2012 22:34:41 +0000 (15:34 -0700)]
altos/megametrum: Switch back to using the MS5607

We're planning to ship the MS5607

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoMerge branch 'master' into mm-ms5611
Keith Packard [Thu, 18 Oct 2012 22:18:52 +0000 (15:18 -0700)]
Merge branch 'master' into mm-ms5611

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Build telescience-pwm product when possible
Keith Packard [Wed, 17 Oct 2012 05:33:34 +0000 (22:33 -0700)]
altos: Build telescience-pwm product when possible

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Add telescience-pwm product
Keith Packard [Wed, 17 Oct 2012 05:21:04 +0000 (22:21 -0700)]
altos: Add telescience-pwm product

Split out special PWM-sampling telescience product

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Only enable PWM on telescience_pwm product
Keith Packard [Wed, 17 Oct 2012 05:17:25 +0000 (22:17 -0700)]
altos: Only enable PWM on telescience_pwm product

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agotelescience: correctly calculating rate values with higher resolution
Robert Garbee [Thu, 19 Jul 2012 00:41:00 +0000 (18:41 -0600)]
telescience: correctly calculating rate values with higher resolution

11 years agoICP3 working
Robert Garbee [Wed, 18 Jul 2012 20:24:05 +0000 (14:24 -0600)]
ICP3 working

11 years agoTimer 3 working with slower clock and all 16 bits.
Robert Garbee [Wed, 18 Jul 2012 19:41:27 +0000 (13:41 -0600)]
Timer 3 working with slower clock and all 16 bits.

11 years agofirst work on PWM input to TeleScience, 'p' command displays timer 1
Robert Garbee [Tue, 17 Jul 2012 19:23:48 +0000 (13:23 -0600)]
first work on PWM input to TeleScience, 'p' command displays timer 1

11 years agotelescience: steal last adc channel for icp3 most recent value
Robert Garbee [Thu, 19 Jul 2012 17:40:20 +0000 (11:40 -0600)]
telescience: steal last adc channel for icp3 most recent value
Make the ICP3 rpm counter use in ao_adc_avr.c optional

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltosui: Accept serial number of zero for eeprom download
Keith Packard [Wed, 17 Oct 2012 04:54:23 +0000 (21:54 -0700)]
altosui: Accept serial number of zero for eeprom download

AVR-based products don't have a valid serial number, and so usually
report 0. Accept this by making the 'no serial number' case check for
negative values.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos/avr: Use ISR_BLOCK to disable interrupts during slave ISR
Keith Packard [Wed, 17 Oct 2012 04:08:58 +0000 (21:08 -0700)]
altos/avr: Use ISR_BLOCK to disable interrupts during slave ISR

This avoids enabling and then immediatly disabling them

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltosui: Print exception stack trace when tracking flights
Keith Packard [Wed, 17 Oct 2012 00:14:05 +0000 (17:14 -0700)]
altosui: Print exception stack trace when tracking flights

More useful in fixing the problem

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltosui: Handle missing pad distance in descent tab
Keith Packard [Wed, 17 Oct 2012 00:13:04 +0000 (17:13 -0700)]
altosui: Handle missing pad distance in descent tab

When the GPS isn't locked, the distance from the pad cannot be
computed and is left missing. Not crashing in this case is more useful.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos/telelco: Make the RSSI led turn red when no packet is received
Keith Packard [Mon, 15 Oct 2012 07:24:57 +0000 (00:24 -0700)]
altos/telelco: Make the RSSI led turn red when no packet is received

This involved splitting out the notion of ever having received an
answer and having received an answer from the last query.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos/telelco: 10ms is not enough time to get a packet back
Keith Packard [Mon, 15 Oct 2012 07:24:28 +0000 (00:24 -0700)]
altos/telelco: 10ms is not enough time to get a packet back

Not reliable, so bump to 20ms

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos/telelco: Only display every 10th box number during scan
Keith Packard [Mon, 15 Oct 2012 07:07:57 +0000 (00:07 -0700)]
altos/telelco: Only display every 10th box number during scan

This reduces the scan time to about 4 seconds, which seems tolerable

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos/telelco: Crank up SPI speed to cc1111
Keith Packard [Mon, 15 Oct 2012 07:06:57 +0000 (00:06 -0700)]
altos/telelco: Crank up SPI speed to cc1111

The cc1111 can handle up to 3MHz, so use 2MHz. Also, crank down the
packet wait time to 10ms, which should be plenty long for the remote
box to receive and return a packet.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos/stm: Declare all SPI bus speeds
Keith Packard [Mon, 15 Oct 2012 07:06:10 +0000 (00:06 -0700)]
altos/stm: Declare all SPI bus speeds

Just list them all so users can pick what they like

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos/telelco: Actually set pad when it changes
Keith Packard [Mon, 15 Oct 2012 06:40:58 +0000 (23:40 -0700)]
altos/telelco: Actually set pad when it changes

Oops. Lost the actual assignment to the current pad

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos/telelco: Handle case where no boxes are present
Keith Packard [Mon, 15 Oct 2012 06:24:49 +0000 (23:24 -0700)]
altos/telelco: Handle case where no boxes are present

Don't infinite loop looking for something which isn't there

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos/telelco: Only present valid pads
Keith Packard [Mon, 15 Oct 2012 06:16:45 +0000 (23:16 -0700)]
altos/telelco: Only present valid pads

Limit pad display to valid pads, skipping missing ones.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos/telefire: Report valid channels instead of valid pins
Keith Packard [Mon, 15 Oct 2012 06:04:44 +0000 (23:04 -0700)]
altos/telefire: Report valid channels instead of valid pins

Now that pins don't match channels 1:1, make sure that the report back
to the LCO names the channels instead of the pin numbers.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos/test: Display MPU6000 values in ao_flight_test_mm output
Keith Packard [Sat, 13 Oct 2012 22:04:46 +0000 (15:04 -0700)]
altos/test: Display MPU6000 values in ao_flight_test_mm output

No computation yet, just making the values visible in the output

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Define full-scale gyro and accel values for MPU6000
Keith Packard [Sat, 13 Oct 2012 22:04:00 +0000 (15:04 -0700)]
altos: Define full-scale gyro and accel values for MPU6000

This lets other code convert MPU6000 readings into canonical units

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: When missing MMA655x, create fake Z accel value
Keith Packard [Sat, 13 Oct 2012 22:02:42 +0000 (15:02 -0700)]
altos: When missing MMA655x, create fake Z accel value

This avoids overwriting the MPU6000 y acceleration value so that other
computations using that value can work unmodified.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos/test: Add ao_flight_test_mm
Keith Packard [Sat, 13 Oct 2012 20:39:03 +0000 (13:39 -0700)]
altos/test: Add ao_flight_test_mm

This reads mega metrum eeprom files and runs the flight code over it

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Eliminate implicit 1 byte offset in uint16/int16 functions
Keith Packard [Sat, 13 Oct 2012 20:37:29 +0000 (13:37 -0700)]
altos: Eliminate implicit 1 byte offset in uint16/int16 functions

Make callers explicitly compute the full offset

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Split out ms5607 conversion code for use in ao_flight_test
Keith Packard [Sat, 13 Oct 2012 20:35:42 +0000 (13:35 -0700)]
altos: Split out ms5607 conversion code for use in ao_flight_test

Makes the conversion code available even where the driver isn't needed

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: struct ao_log_mega doesn't have a ground temp value
Keith Packard [Sat, 13 Oct 2012 20:34:28 +0000 (13:34 -0700)]
altos: struct ao_log_mega doesn't have a ground temp value

There's no averaged ground temperature recorded in the flight system
to save there, so just remove the field

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Document a few member offsets in struct ao_log_record
Keith Packard [Sat, 13 Oct 2012 20:33:45 +0000 (13:33 -0700)]
altos: Document a few member offsets in struct ao_log_record

Incomplete, but useful even so

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltosui: Parse .mega files from command line
Keith Packard [Sat, 13 Oct 2012 20:32:56 +0000 (13:32 -0700)]
altosui: Parse .mega files from command line

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Add .gitignore for micropeak
Keith Packard [Fri, 12 Oct 2012 21:27:14 +0000 (14:27 -0700)]
altos: Add .gitignore for micropeak

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Add (untested) driver for AT24C i2c flash parts
Keith Packard [Fri, 12 Oct 2012 21:26:08 +0000 (14:26 -0700)]
altos: Add (untested) driver for AT24C i2c flash parts

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Add initial micropeak implementation
Keith Packard [Fri, 12 Oct 2012 21:22:41 +0000 (14:22 -0700)]
altos: Add initial micropeak implementation

Blinks out max height in decimeters, stores previous flight data to
internal eeprom.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Allow products to define which LED to panic with
Keith Packard [Fri, 12 Oct 2012 21:18:37 +0000 (14:18 -0700)]
altos: Allow products to define which LED to panic with

Continue to use AO_LED_RED by default.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Megametrum uses altitude-pa.h, not altitude.h
Keith Packard [Fri, 12 Oct 2012 21:08:19 +0000 (14:08 -0700)]
altos: Megametrum uses altitude-pa.h, not altitude.h

Make sure megametrum gets rebuilt as needed when the various
altitude-pa related files change

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Add attiny architecture files
Keith Packard [Fri, 12 Oct 2012 21:04:57 +0000 (14:04 -0700)]
altos: Add attiny architecture files

These are designed to work with the ATtiny85 processor, but can
presuambly be easily adapted to others in that series

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Include struct ao_data declaration only when used
Keith Packard [Fri, 12 Oct 2012 21:03:28 +0000 (14:03 -0700)]
altos: Include struct ao_data declaration only when used

Leave it out for products that don't have a ring of sensor data

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Clean up types in Pa conversion testing code. Only test to 40km
Keith Packard [Fri, 12 Oct 2012 21:02:29 +0000 (14:02 -0700)]
altos: Clean up types in Pa conversion testing code. Only test to 40km

A couple of missing 'int' declarations.
Only test to 40km as above that there aren't enough data points to do
anything reasonable

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Elide ao_altitude_to_pa in flight firmware
Keith Packard [Fri, 12 Oct 2012 21:01:16 +0000 (14:01 -0700)]
altos: Elide ao_altitude_to_pa in flight firmware

Only the conversion testing code needs to get back from altitude to
pressure, so don't include that code in other environments.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Parameterize altitude table access and initialization
Keith Packard [Fri, 12 Oct 2012 20:59:50 +0000 (13:59 -0700)]
altos: Parameterize altitude table access and initialization

This allows projects to store the altitude data in different
representations or with different access modes.

By default, altitude data is stored in meters, but the initializers
include decimeter values so those can be used instead if desired.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Use alt_t for all Pascal-based altitude data
Keith Packard [Fri, 12 Oct 2012 20:57:49 +0000 (13:57 -0700)]
altos: Use alt_t for all Pascal-based altitude data

This allows alt_t to be overridden for systems using the MS5607/MS5611
sensors

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Allow for other mutex implementations
Keith Packard [Fri, 12 Oct 2012 20:55:33 +0000 (13:55 -0700)]
altos: Allow for other mutex implementations

Allow projects to replace ao_mutex_get and ao_mutex_put with macros

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Allow projects to specify clock at other than 100Hz
Keith Packard [Fri, 12 Oct 2012 20:54:37 +0000 (13:54 -0700)]
altos: Allow projects to specify clock at other than 100Hz

Leave the default at 100Hz, but allow it to be overridden

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Prepare ms5607 driver for use in non-tasking products
Keith Packard [Fri, 12 Oct 2012 20:37:07 +0000 (13:37 -0700)]
altos: Prepare ms5607 driver for use in non-tasking products

Micropeak doesn't have tasking, prepare the ms5607 driver for that

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Split task definitions out to ao_task.h
Keith Packard [Fri, 12 Oct 2012 20:31:17 +0000 (13:31 -0700)]
altos: Split task definitions out to ao_task.h

And only include them if using tasks

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos/telefire: Add siren/strobe support
Keith Packard [Wed, 10 Oct 2012 21:28:07 +0000 (14:28 -0700)]
altos/telefire: Add siren/strobe support

This also involved hacking up the code to allow for non-zero offsets
for the pad firing and continuity pins.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Fix up ms5607 and mma655x commands to work again
Keith Packard [Tue, 9 Oct 2012 06:24:19 +0000 (23:24 -0700)]
altos: Fix up ms5607 and mma655x commands to work again

These just display the most recently fetched values

Signed-off-by: Keith Packard <keithp@keithp.com>