fw/altos
8 years agoaltosuilib: Make map-cache per-window instead of global
Keith Packard [Sat, 14 Jun 2014 04:26:33 +0000 (21:26 -0700)]
altosuilib: Make map-cache per-window instead of global

This consumes more memory, but avoids cache conflicts between windows

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agotelegps: Shuffle menu entries around
Keith Packard [Sat, 14 Jun 2014 04:25:41 +0000 (21:25 -0700)]
telegps: Shuffle menu entries around

I think this makes them a bit more logical

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltosdroid: Improve voice for TeleGPS
Keith Packard [Fri, 13 Jun 2014 22:54:08 +0000 (15:54 -0700)]
altosdroid: Improve voice for TeleGPS

This avoids making lots of useless voice announcements for TeleGPS

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltosdroid: Don't crash when the map is touched
Keith Packard [Fri, 13 Jun 2014 22:53:30 +0000 (15:53 -0700)]
altosdroid: Don't crash when the map is touched

The map 'canScroll' method was crashing when dereferencing a null
value somewhere. Just check all of them and bail instead of crashing.

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agotelegps: Add status tab
Keith Packard [Fri, 13 Jun 2014 22:23:30 +0000 (15:23 -0700)]
telegps: Add status tab

This includes pad-relative information, battery voltage and version information

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltoslib: Correctly save firmware version in AltosState
Keith Packard [Fri, 13 Jun 2014 22:22:25 +0000 (15:22 -0700)]
altoslib: Correctly save firmware version in AltosState

It wasn't getting cloned

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltoslib: Add conversion class for voltages
Keith Packard [Fri, 13 Jun 2014 22:21:28 +0000 (15:21 -0700)]
altoslib: Add conversion class for voltages

Provide a common presentation for voltage values

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltosuilib: Build some common classes for displaying values in flight window
Keith Packard [Fri, 13 Jun 2014 22:20:20 +0000 (15:20 -0700)]
altosuilib: Build some common classes for displaying values in flight window

Right now, all of the flight displays have piles of custom code for
displaying values. These new widgets should be able to replace most of
that.

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agotelegps: Show flight number in monitor window
Keith Packard [Fri, 13 Jun 2014 07:28:38 +0000 (00:28 -0700)]
telegps: Show flight number in monitor window

This lets the user find the flight by number

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agotelegps: Disconnect telemetry device when closing monitor window
Keith Packard [Fri, 13 Jun 2014 07:28:09 +0000 (00:28 -0700)]
telegps: Disconnect telemetry device when closing monitor window

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltoslib: Remove telem monitoring when closing log file
Keith Packard [Fri, 13 Jun 2014 07:27:19 +0000 (00:27 -0700)]
altoslib: Remove telem monitoring when closing log file

If we don't remove the telemetry monitor, the telemetry device will
still be sending telemetry, which isn't good.

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltoslib: Call state.set_serial first for telemetry parsing
Keith Packard [Fri, 13 Jun 2014 07:01:46 +0000 (00:01 -0700)]
altoslib: Call state.set_serial first for telemetry parsing

If we ever get around to supporting multiple simultaneous remote
devices, we'll need to notice that the serial changed right away

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos/telegps: Create new flight if current flight is erased
Keith Packard [Fri, 13 Jun 2014 06:59:37 +0000 (23:59 -0700)]
altos/telegps: Create new flight if current flight is erased

telegps is unique in that USB may be connected while a flight is
active and sensible things should happen. If a flight is being
recorded and gets erased, then a new flight should be started.

This is done by hooking in the flight erase code and calling out to
the tracker code to figure out whether to switch to a new flight or not.

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos: Define ao_log_mutex in ao_log.c rather than every log product
Keith Packard [Fri, 13 Jun 2014 06:56:07 +0000 (23:56 -0700)]
altos: Define ao_log_mutex in ao_log.c rather than every log product

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos/telegps: Keep ring of recent GPS positions to detect motion quickly
Keith Packard [Fri, 13 Jun 2014 04:54:13 +0000 (21:54 -0700)]
altos/telegps: Keep ring of recent GPS positions to detect motion quickly

Instead of comparing only against the last logged value, keep a ring
and start logging as soon as we move away from the furthest one in the ring.

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos/telegps: Set default log to 496kB for 4 logs
Keith Packard [Fri, 13 Jun 2014 04:53:07 +0000 (21:53 -0700)]
altos/telegps: Set default log to 496kB for 4 logs

This leaves space for four flight logs.

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos: Show current flight number for TeleGPS
Keith Packard [Fri, 13 Jun 2014 04:52:13 +0000 (21:52 -0700)]
altos: Show current flight number for TeleGPS

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agodebian: Fix build depends icotool -> icoutils
Keith Packard [Thu, 12 Jun 2014 22:59:20 +0000 (15:59 -0700)]
debian: Fix build depends icotool -> icoutils

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos/telegps: Don't log data when plugged in to USB
Keith Packard [Thu, 12 Jun 2014 21:34:02 +0000 (14:34 -0700)]
altos/telegps: Don't log data when plugged in to USB

We don't want to accidentally log stuff when you're just trying to
charge the battery.

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agotelegps: Don't re-add frequency menu when already present.
Keith Packard [Thu, 12 Jun 2014 21:32:15 +0000 (14:32 -0700)]
telegps: Don't re-add frequency menu when already present.

If the receiver disappears, we'll stop tracking, but won't pull the
frequency menu down. Doing that would take a bit of work, and it
doesn't seem worth the effort. As a kludge-around, avoid re-creating
the frequency menu if it's already displayed when we connect to
another device.

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltosui/telegps: Reduce CPU time needed for flight displays
Keith Packard [Thu, 12 Jun 2014 21:12:08 +0000 (14:12 -0700)]
altosui/telegps: Reduce CPU time needed for flight displays

Don't update displays which aren't shown; track hierarchy changes to
trigger display from most recent state data.

Don't update values which haven't changed; remember previous values
and compare with new before updating widget contents.

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agodoc: Add TeleGPS screenshots
Keith Packard [Thu, 12 Jun 2014 06:28:55 +0000 (23:28 -0700)]
doc: Add TeleGPS screenshots

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agodoc: Update altusmetrum docs and screen shots for 1.4
Keith Packard [Thu, 12 Jun 2014 06:28:36 +0000 (23:28 -0700)]
doc: Update altusmetrum docs and screen shots for 1.4

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agotelegps: Remove 'Flight' from titles
Keith Packard [Thu, 12 Jun 2014 06:27:16 +0000 (23:27 -0700)]
telegps: Remove 'Flight' from titles

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos/telegps: Build .ihx versions for TeleGPS
Keith Packard [Thu, 12 Jun 2014 06:26:36 +0000 (23:26 -0700)]
altos/telegps: Build .ihx versions for TeleGPS

Needed to load with java

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltosuilib: Repaint map when starting line draw
Keith Packard [Thu, 12 Jun 2014 06:04:46 +0000 (23:04 -0700)]
altosuilib: Repaint map when starting line draw

Starting line draw will remove any existing line, so repaint to get
rid of it

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltoslib: Report GPS height when baro height is not available
Keith Packard [Thu, 12 Jun 2014 06:04:11 +0000 (23:04 -0700)]
altoslib: Report GPS height when baro height is not available

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltosui: Don't list tracker parameters when configuring altimeter
Keith Packard [Thu, 12 Jun 2014 04:37:23 +0000 (21:37 -0700)]
altosui: Don't list tracker parameters when configuring altimeter

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltosuilib: Handle font and units changes in maps and stats table
Keith Packard [Thu, 12 Jun 2014 03:36:49 +0000 (20:36 -0700)]
altosuilib: Handle font and units changes in maps and stats table

Add AltosFontListener and AltosUnitsListener bits as needed

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agodoc: Update 1.4 release notes to include a few more changes
Keith Packard [Thu, 12 Jun 2014 02:57:24 +0000 (19:57 -0700)]
doc: Update 1.4 release notes to include a few more changes

pyro firing time.
flight erase on TeleMega/TeleMetrum v2

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltosui: Add pyro firing time configuration
Keith Packard [Thu, 12 Jun 2014 02:51:37 +0000 (19:51 -0700)]
altosui: Add pyro firing time configuration

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltosdroid: Altosdroid build doesn't work in parallel, so stop trying
Keith Packard [Thu, 12 Jun 2014 01:58:09 +0000 (18:58 -0700)]
altosdroid: Altosdroid build doesn't work in parallel, so stop trying

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos: Re-enable telemini v2.0 builds
Keith Packard [Thu, 12 Jun 2014 01:53:42 +0000 (18:53 -0700)]
altos: Re-enable telemini v2.0 builds

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos/telemini-v2.0: Disable beep frequency config on TeleMini v2.0
Keith Packard [Thu, 12 Jun 2014 01:53:10 +0000 (18:53 -0700)]
altos/telemini-v2.0: Disable beep frequency config on TeleMini v2.0

Not enough flash otherwise.

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltosuilib: Remove old widget-based map UI
Keith Packard [Thu, 12 Jun 2014 01:51:19 +0000 (18:51 -0700)]
altosuilib: Remove old widget-based map UI

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos: Disable TeleMini v2.0 build for now
Keith Packard [Thu, 12 Jun 2014 01:50:07 +0000 (18:50 -0700)]
altos: Disable TeleMini v2.0 build for now

8 years agoaltoslib: Use GPS seconds as an additional sort key for TeleGPS eeprom
Keith Packard [Thu, 12 Jun 2014 01:48:11 +0000 (18:48 -0700)]
altoslib: Use GPS seconds as an additional sort key for TeleGPS eeprom

Long idle periods with TeleGPS can easily overflow 16 bits of tick
count. Using the GPS seconds provides an additional sort which will
span the tick wrap-around.

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltosuilib: Rewrite map GUI bits
Keith Packard [Thu, 12 Jun 2014 01:46:47 +0000 (18:46 -0700)]
altosuilib: Rewrite map GUI bits

Use a single large Canvas and draw images on top by hand.

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agotelegps: Add statistics tab to graph UI
Keith Packard [Tue, 10 Jun 2014 18:36:03 +0000 (11:36 -0700)]
telegps: Add statistics tab to graph UI

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltosuilib: Move AltosFlightStatsTable to altosuilib
Keith Packard [Tue, 10 Jun 2014 18:35:30 +0000 (11:35 -0700)]
altosuilib: Move AltosFlightStatsTable to altosuilib

So that TeleGPS can share it

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltosuilib: Skip voice announcements for invalid values
Keith Packard [Tue, 10 Jun 2014 18:34:21 +0000 (11:34 -0700)]
altosuilib: Skip voice announcements for invalid values

When height and speed values aren't available, don't say anything

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltosui: Show "Missing" instead of huge numbers in descent/landed tabs
Keith Packard [Tue, 10 Jun 2014 18:32:57 +0000 (11:32 -0700)]
altosui: Show "Missing" instead of huge numbers in descent/landed tabs

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltoslib: Use GPS speed/height values when other sensors are missing
Keith Packard [Tue, 10 Jun 2014 18:31:53 +0000 (11:31 -0700)]
altoslib: Use GPS speed/height values when other sensors are missing

This lets TeleGPS report height/speed values without needing to
customize every AltosState user to pull out GPS values when the other
sensors aren't present.

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltosuilib: Split battery graph enable out from other adc enables
Keith Packard [Tue, 10 Jun 2014 18:30:36 +0000 (11:30 -0700)]
altosuilib: Split battery graph enable out from other adc enables

This lets TeleGPS just show the battery voltage values without also
adding enable lines for the other flight computer ADC values like
ignitor voltages.

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltoslib: Check for time going backwards when replaying from file
Keith Packard [Tue, 10 Jun 2014 17:19:43 +0000 (10:19 -0700)]
altoslib: Check for time going backwards when replaying from file

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltoslib: Add new 'stateless' flight state for TeleGPS
Keith Packard [Tue, 10 Jun 2014 17:18:44 +0000 (10:18 -0700)]
altoslib: Add new 'stateless' flight state for TeleGPS

TeleGPS has no flight state, so add a new 'stateless' state for code
to handle this case differently than any of the existing states

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltoslib: TeleGPS no longer logs satellite information
Keith Packard [Tue, 10 Jun 2014 17:15:47 +0000 (10:15 -0700)]
altoslib: TeleGPS no longer logs satellite information

This doubles the amount of space available to log position information

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltoslib/altosui/telegps: Switch TeleGPS config to motion/interval
Keith Packard [Tue, 10 Jun 2014 17:14:07 +0000 (10:14 -0700)]
altoslib/altosui/telegps: Switch TeleGPS config to motion/interval

TeleGPS had configurable boost-detect values; those have been replaced
with a configurable stop-tracking motion limit and logging/telemetry
interval value.

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltoslib/altosui/telegps: Change log size configuration
Keith Packard [Tue, 10 Jun 2014 17:11:03 +0000 (10:11 -0700)]
altoslib/altosui/telegps: Change log size configuration

* Use new log-space value provided by firmware when available.

* Divide that up into 1-8 flights and offer those sizes as options to
  the user instead of a fixed set of sizes.

* Show how many flights each selection will store

* This also checks values provided by the user

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos: Set TeleGPS default log size to half of avaiable memory
Keith Packard [Tue, 10 Jun 2014 16:55:04 +0000 (09:55 -0700)]
altos: Set TeleGPS default log size to half of avaiable memory

LPC11U14 doesn't have on-chip config space, so we're consuming a block
of external flash. As a result, only 1984kB are available for
logging. Set the default log size to half of that to store two flights.

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos: Simplify tracker logic, removing boost detect
Keith Packard [Tue, 10 Jun 2014 16:52:15 +0000 (09:52 -0700)]
altos: Simplify tracker logic, removing boost detect

This removes the ao_flight_state value from the tracker code and makes
it simply log position information when the device has moved within
the last 10 log intervals. This also changes the configuration
parameters to define what 'motionless' means, and what interval to
configure the GPS receiver for, log data and send telemetry.

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoRevert adding state to GPS location packets
Keith Packard [Tue, 10 Jun 2014 16:47:04 +0000 (09:47 -0700)]
Revert adding state to GPS location packets

TeleGPS no longer has ao_flight_state

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoRevert "ao-tools: Parse TeleGPS state value from gps location packet"
Keith Packard [Tue, 10 Jun 2014 16:44:57 +0000 (09:44 -0700)]
Revert "ao-tools: Parse TeleGPS state value from gps location packet"

This reverts commit 428d09294ba0395fedd71346ad00fd90a4cdde97.

8 years agoaltos: Make extra pyro channel firing time configurable
Keith Packard [Tue, 10 Jun 2014 16:42:43 +0000 (09:42 -0700)]
altos: Make extra pyro channel firing time configurable

This adds a 'I' parameter to set the extra pyro channel firing time
(in ticks). This has no effect on the main/drogue channels.

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos: Report total available log space in version command
Keith Packard [Tue, 10 Jun 2014 16:37:43 +0000 (09:37 -0700)]
altos: Report total available log space in version command

This provides a more accurate means of determining available log space
than guessing whether some portion of the flash chip holds
configuration data.

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoRevert "altos: Write current flight state to GPS data from GPS drivers"
Keith Packard [Tue, 10 Jun 2014 16:36:59 +0000 (09:36 -0700)]
Revert "altos: Write current flight state to GPS data from GPS drivers"

This reverts commit db6003d34595fbd103d5b131912b6a797254f1c5.

8 years agoRevert "altoslib: Parse TeleGPS state value from GPS telemetry packet"
Keith Packard [Sun, 8 Jun 2014 23:08:30 +0000 (16:08 -0700)]
Revert "altoslib: Parse TeleGPS state value from GPS telemetry packet"

This reverts commit d69547796caf74405f8304d23d4ae318315bbd7b.

8 years agoBump to version 1.3.2.4 1.3.2.4
Keith Packard [Sun, 8 Jun 2014 05:37:30 +0000 (22:37 -0700)]
Bump to version 1.3.2.4

8 years agoaltoslib: Recover battery voltage from TeleGPS configuration packet
Keith Packard [Sun, 8 Jun 2014 05:25:17 +0000 (22:25 -0700)]
altoslib: Recover battery voltage from TeleGPS configuration packet

TeleGPS stuffs battery voltage in the apogee_delay slot of the
configuration packet. Pull it out from there and stick it into the
current state.

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltoslib: TeleMega uses 5.6k/10k divider for v_batt
Keith Packard [Sun, 8 Jun 2014 05:24:08 +0000 (22:24 -0700)]
altoslib: TeleMega uses 5.6k/10k divider for v_batt

I suspect the 15 and 27 values are a 'close approximation' for integer
work on the cc1111 devices

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos: Enable ADC for TeleGPS v1.0 battery voltage measuring
Keith Packard [Sun, 8 Jun 2014 05:23:19 +0000 (22:23 -0700)]
altos: Enable ADC for TeleGPS v1.0 battery voltage measuring

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos: Encode TeleGPS battery voltage in configuration packet
Keith Packard [Sun, 8 Jun 2014 04:57:43 +0000 (21:57 -0700)]
altos: Encode TeleGPS battery voltage in configuration packet

TeleGPS doesn't need apogee delay, so re-purpose it for the battery voltage

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltoslib: Parse TeleGPS state value from GPS telemetry packet
Keith Packard [Sun, 8 Jun 2014 04:13:40 +0000 (21:13 -0700)]
altoslib: Parse TeleGPS state value from GPS telemetry packet

TeleGPS adds 0x80 to the state value to signify that this otherwise
unused byte contains the current state value

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoao-tools: Parse TeleGPS state value from gps location packet
Keith Packard [Sun, 8 Jun 2014 04:12:44 +0000 (21:12 -0700)]
ao-tools: Parse TeleGPS state value from gps location packet

TeleGPS encodes state in a spare gps location packet byte, masking in
0x80 to signify that the state value is valid

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos: Make telegps builds depend on ao_tracker.h
Keith Packard [Sun, 8 Jun 2014 04:12:09 +0000 (21:12 -0700)]
altos: Make telegps builds depend on ao_tracker.h

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos: Reduce tracker GPS buffer to 4 samples
Keith Packard [Sun, 8 Jun 2014 04:11:33 +0000 (21:11 -0700)]
altos: Reduce tracker GPS buffer to 4 samples

We just don't have enough RAM for 8 samples.

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos: Define lat/lon sum variables as 64-bit instead of 16
Keith Packard [Sun, 8 Jun 2014 04:05:01 +0000 (21:05 -0700)]
altos: Define lat/lon sum variables as 64-bit instead of 16

Oops. 16 bits won't hold position information...

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos: Use 0x80 to indicate valid state value in the GPS location packet
Keith Packard [Sun, 8 Jun 2014 04:02:26 +0000 (21:02 -0700)]
altos: Use 0x80 to indicate valid state value in the GPS location packet

And only set this for tracker products; other products place state in
separate state packets

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoSet version to 1.3.2.3 1.3.2.3
Keith Packard [Sat, 7 Jun 2014 19:17:46 +0000 (12:17 -0700)]
Set version to 1.3.2.3

Mayhem 2014 Saturday 2014-6-7

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agotelegps: Track graph windows as one of the TeleGPS windows
Keith Packard [Sat, 7 Jun 2014 18:52:28 +0000 (11:52 -0700)]
telegps: Track graph windows as one of the TeleGPS windows

TeleGPS exits when the number of windows goes to zero; track graphing
windows in addition to the usual flight monitoring windows.

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltosuilib: Fix crash when initializing site map cache
Keith Packard [Sat, 7 Jun 2014 18:50:42 +0000 (11:50 -0700)]
altosuilib: Fix crash when initializing site map cache

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltosuilib: Add GPS altitude as a possible graph value
Keith Packard [Sat, 7 Jun 2014 18:50:04 +0000 (11:50 -0700)]
altosuilib: Add GPS altitude as a possible graph value

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltosuilib: Show GPS instead of (missing) flight data for TeleGPS graphs
Keith Packard [Sat, 7 Jun 2014 18:49:14 +0000 (11:49 -0700)]
altosuilib: Show GPS instead of (missing) flight data for TeleGPS graphs

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltoslib: Record whether flight data includes sensor values in AltosFlightStats
Keith Packard [Sat, 7 Jun 2014 18:47:11 +0000 (11:47 -0700)]
altoslib: Record whether flight data includes sensor values in AltosFlightStats

Provide a way to elide the usual flight data from a graph for TeleGPS

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltoslib: Add TeleGPS log parsing code
Keith Packard [Sat, 7 Jun 2014 18:46:32 +0000 (11:46 -0700)]
altoslib:  Add TeleGPS log parsing code

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltoslib: All products with logging have the 'l' command
Keith Packard [Sat, 7 Jun 2014 18:44:55 +0000 (11:44 -0700)]
altoslib: All products with logging have the 'l' command

Instead of listing products with the 'l' command, just exclude
products that don't have logging from using the 'l' command to collect
the number of stored flights.

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos: Switch TeleGPS to GPS logging format
Keith Packard [Sat, 7 Jun 2014 18:44:07 +0000 (11:44 -0700)]
altos: Switch TeleGPS to GPS logging format

It's customized for TeleGPS uses

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos: Update other CONFIG_EEPROM users to set LOG_ERASE_MARK
Keith Packard [Sat, 7 Jun 2014 18:41:59 +0000 (11:41 -0700)]
altos: Update other CONFIG_EEPROM users to set LOG_ERASE_MARK

All products placing config and erase marks in on-CPU EEPROM needs to
configure the erase code correctly.

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos: Write tracker logging from tracker thread directly
Keith Packard [Sat, 7 Jun 2014 18:40:41 +0000 (11:40 -0700)]
altos: Write tracker logging from tracker thread directly

Also, logs 8 pre-launch GPS packets so we can get the ground position.

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos: Write current flight state to GPS data from GPS drivers
Keith Packard [Sat, 7 Jun 2014 18:39:10 +0000 (11:39 -0700)]
altos: Write current flight state to GPS data from GPS drivers

This will be useful with TeleGPS which has no other packet containing
flight state.

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos: Add TeleGPS logging format
Keith Packard [Sat, 7 Jun 2014 18:34:29 +0000 (11:34 -0700)]
altos: Add TeleGPS logging format

This is mostly like the mega format, but places the flight state in a
spare byte of the GPS data and writes the gps starting location to the
flight packet.

Log data is written by the main tracker thread; there's no reason for
a separate thread given the GPS update rate and the lack of flight
controls. This means ao_log_gps has an API to be called from there,
rather than a thread to run.

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos/telemega-v1.0: Adjust config params to make flight erase work
Keith Packard [Sat, 7 Jun 2014 18:01:14 +0000 (11:01 -0700)]
altos/telemega-v1.0: Adjust config params to make flight erase work

Flight erase records are supposed to be written after the ao_config to
eeprom in telemega. They were getting written in the middle of one of
the pyro channel config blocks. Put a bunch of space between the two
by making the config max 1024 bytes instead of 128 bytes.

Set the log erase marker to 0x55 -- eeprom comes from the factory as
0x00, so we use any value other than 0x55 to indicate 'unused' erase
slots.

Save space for more flight erase blocks; we've  got plenty.

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos: Clear out eeprom erase records when writing entry 0
Keith Packard [Sat, 7 Jun 2014 17:54:14 +0000 (10:54 -0700)]
altos: Clear out eeprom erase records when writing entry 0

When writing config/erase to eeprom, there's no 'erase' operation as
on-chip eeprom is writable at a byte level. As such, we can't tell
when the erase blocks get reset when the config gets written. When
this happens, erase block 0 gets written explicitly, so just use that
call to trigger explicit erasing of the data.

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos: Allow value other than 0 for marking erased flights
Keith Packard [Sat, 7 Jun 2014 17:09:51 +0000 (10:09 -0700)]
altos: Allow value other than 0 for marking erased flights

on-chip eeprom doesn't erase to 0xff, so let TeleMega use a different
value.

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos: Allow AO_CONFIG_MAX_SIZE to be configured. Validate it.
Keith Packard [Sat, 7 Jun 2014 17:05:21 +0000 (10:05 -0700)]
altos: Allow AO_CONFIG_MAX_SIZE to be configured. Validate it.

TeleMega config is 200 bytes. AO_CONFIG_MAX_SIZE was 128. That didn't
work out well when logging erased flight information. Allow TeleMega
to use a larger value (1k), and then do a compiler hack to make sure
the defined value is at least as large as the ao_config structure.

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos: Move ao_tracker.c to kernel
Keith Packard [Sat, 7 Jun 2014 14:41:11 +0000 (07:41 -0700)]
altos: Move ao_tracker.c to kernel

Doesn't make sense to be in product

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos: Add telegps-v1.0 code and loader 1.3.2.2
Keith Packard [Fri, 6 Jun 2014 04:42:10 +0000 (21:42 -0700)]
altos: Add telegps-v1.0 code and loader

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos/telegps-v0.3: Remove ao_flight_number from main program
Keith Packard [Fri, 6 Jun 2014 04:40:39 +0000 (21:40 -0700)]
altos/telegps-v0.3: Remove ao_flight_number from main program

We've got logging enabled now

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos/telegps-v0.3: Disable APRS by default. Set log max to 1M
Keith Packard [Fri, 6 Jun 2014 04:39:50 +0000 (21:39 -0700)]
altos/telegps-v0.3: Disable APRS by default. Set log max to 1M

And adjust default radio cal to be a bit closer

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos: Force telemetry on by default for v0.3 TeleGPS boards
Keith Packard [Fri, 6 Jun 2014 04:37:38 +0000 (21:37 -0700)]
altos: Force telemetry on by default for v0.3 TeleGPS boards

These don't have a USB connect indicator, so just turn on telemetry by
default

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos/lpc: HAS_USB_CONNECT has been changed to mean a custom pin
Keith Packard [Fri, 6 Jun 2014 04:36:16 +0000 (21:36 -0700)]
altos/lpc: HAS_USB_CONNECT has been changed to mean a custom pin

The LPC stuff isn't actually very useful and TeleGPS uses a custom pin
instead, and was using HAS_USB_CONNECT to mean the same thing. That
wasn't good.

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos: Fix config to set default log size for all devices with log
Keith Packard [Fri, 6 Jun 2014 04:35:41 +0000 (21:35 -0700)]
altos: Fix config to set default log size for all devices with log

Not just devices with flight

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos: Add AO_LOG_FLIGHT packet to TeleGPS logs
Keith Packard [Fri, 6 Jun 2014 01:55:26 +0000 (18:55 -0700)]
altos: Add AO_LOG_FLIGHT packet to TeleGPS logs

This encodes the flight number for tracking of data files.

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos/telegps-v0.3: Add tracker task
Keith Packard [Fri, 6 Jun 2014 01:49:59 +0000 (18:49 -0700)]
altos/telegps-v0.3: Add tracker task

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos: Add debug to tracker to force launch
Keith Packard [Fri, 6 Jun 2014 01:49:01 +0000 (18:49 -0700)]
altos: Add debug to tracker to force launch

This lets us test the move from pad to drogue state

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos: tracker distance computation flipped arguments around
Keith Packard [Fri, 6 Jun 2014 01:47:27 +0000 (18:47 -0700)]
altos: tracker distance computation flipped arguments around

ao_distance takes (lat, lon, lat, lon) not (lat, lat, lon, lon)

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos: Fix tracker start state
Keith Packard [Fri, 6 Jun 2014 01:45:18 +0000 (18:45 -0700)]
altos: Fix tracker start state

Make sure log can start by scanning existing logs
Enable RDF by default
Turn off telemetry until we decide whether to turn it on in the loop
Allow TeleGPS v0.3 to run without ADC

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos: Stick flight state in GPS location packets
Keith Packard [Fri, 6 Jun 2014 01:44:26 +0000 (18:44 -0700)]
altos: Stick flight state in GPS location packets

Useful for TeleGPS

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos: Have tracker average 5 GPS samples before moving to pad mode
Keith Packard [Fri, 6 Jun 2014 01:35:45 +0000 (18:35 -0700)]
altos: Have tracker average 5 GPS samples before moving to pad mode

Avoids early GPS noise right after lock

Signed-off-by: Keith Packard <keithp@keithp.com>
8 years agoaltos: Change tracker not-moving speed to 2m/s and document
Keith Packard [Fri, 6 Jun 2014 01:33:33 +0000 (18:33 -0700)]
altos: Change tracker not-moving speed to 2m/s and document

Just adjust to avoid sensing motion from GPS noise

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