fw/altos
11 years agoaltosdroid: Release v1.2, push to play store. altosdroid_v1.2
Mike Beattie [Sun, 21 Apr 2013 02:52:56 +0000 (14:52 +1200)]
altosdroid: Release v1.2, push to play store.

Signed-off-by: Mike Beattie <mike@ethernal.org>
11 years agoMerge branch 'altosdroid'
Mike Beattie [Sun, 21 Apr 2013 02:51:07 +0000 (14:51 +1200)]
Merge branch 'altosdroid'

11 years agoaltosdroid: Make the service class implement locationlistener
Mike Beattie [Sun, 21 Apr 2013 02:46:41 +0000 (14:46 +1200)]
altosdroid: Make the service class implement locationlistener

Signed-off-by: Mike Beattie <mike@ethernal.org>
11 years agoaltosdroid: fix up 'send last' code.
Mike Beattie [Sun, 21 Apr 2013 02:44:07 +0000 (14:44 +1200)]
altosdroid: fix up 'send last' code.

Signed-off-by: Mike Beattie <mike@ethernal.org>
11 years agoaltosdroid: check for mAltosVoice being null.
Mike Beattie [Sun, 21 Apr 2013 02:41:50 +0000 (14:41 +1200)]
altosdroid: check for mAltosVoice being null.

Signed-off-by: Mike Beattie <mike@ethernal.org>
11 years agoaltosdroid: set tab height based on screen density.
Mike Beattie [Sun, 21 Apr 2013 02:41:28 +0000 (14:41 +1200)]
altosdroid: set tab height based on screen density.

Signed-off-by: Mike Beattie <mike@ethernal.org>
11 years agoaltosdroid: Add filters for TeleBT bluetooth devices.
Mike Beattie [Sun, 21 Apr 2013 02:40:58 +0000 (14:40 +1200)]
altosdroid: Add filters for TeleBT bluetooth devices.

Signed-off-by: Mike Beattie <mike@ethernal.org>
11 years agoaltosdroid: incorrect property syntax in pad xml
Mike Beattie [Sun, 21 Apr 2013 02:40:33 +0000 (14:40 +1200)]
altosdroid: incorrect property syntax in pad xml

Signed-off-by: Mike Beattie <mike@ethernal.org>
11 years agoaltosdroid: whitespace and import tidyup
Mike Beattie [Sun, 21 Apr 2013 02:40:03 +0000 (14:40 +1200)]
altosdroid: whitespace and import tidyup

Signed-off-by: Mike Beattie <mike@ethernal.org>
11 years agoaltosdroid: Update distance/bearing on map tab
Keith Packard [Sat, 20 Apr 2013 22:16:50 +0000 (17:16 -0500)]
altosdroid: Update distance/bearing on map tab

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoimprove text in telebt turn-on script
Bdale Garbee [Sat, 20 Apr 2013 18:22:38 +0000 (12:22 -0600)]
improve text in telebt turn-on script

11 years agoMerge branch 'master' into droid-gps
Keith Packard [Wed, 17 Apr 2013 17:41:05 +0000 (10:41 -0700)]
Merge branch 'master' into droid-gps

11 years agoaltosdroid: Fix integer formatting in tabs
Keith Packard [Wed, 17 Apr 2013 17:38:54 +0000 (10:38 -0700)]
altosdroid: Fix integer formatting in tabs

Was trying to use AltosDroid.number for integers, which didn't work as
it expected doubles.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltosui: Disable main deploy setting for TeleGPS
Keith Packard [Wed, 17 Apr 2013 00:47:17 +0000 (17:47 -0700)]
altosui: Disable main deploy setting for TeleGPS

Just like all of the other flight computer settings, disable the main
deploy altitude configuration for TeleGPS.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltosui: Handle broken network in map tile loading
Keith Packard [Wed, 17 Apr 2013 00:33:42 +0000 (17:33 -0700)]
altosui: Handle broken network in map tile loading

Handle missing pngfiles in AltosSetMapCache by checking ImageIO.read
for null return.

Do incremental map tile downloading asynchronously so that the UI
doesn't lock up when the network is slow

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltosdroid: Check for missing values
Keith Packard [Tue, 16 Apr 2013 21:22:23 +0000 (14:22 -0700)]
altosdroid: Check for missing values

When displaying numbers, check for MISSING values and display nothing

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoMerge branch 'master' into droid-gps
Keith Packard [Tue, 16 Apr 2013 06:26:33 +0000 (23:26 -0700)]
Merge branch 'master' into droid-gps

11 years agoaltosui: remove debug message from AltosFlightUI
Keith Packard [Tue, 16 Apr 2013 06:25:55 +0000 (23:25 -0700)]
altosui: remove debug message from AltosFlightUI

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoMerge branch 'master' into droid-gps
Keith Packard [Tue, 16 Apr 2013 06:19:44 +0000 (23:19 -0700)]
Merge branch 'master' into droid-gps

11 years agoaltoslib: Check for null state.gps before accessing it in eeprom records
Keith Packard [Tue, 16 Apr 2013 06:14:22 +0000 (23:14 -0700)]
altoslib: Check for null state.gps before accessing it in eeprom records

Used to be we'd set state.gps to garbage before seeing the first GPS
record; now we leave it null, which will cause crashes for code that
doesn't expect it. The code for reading and replaying eeprom data was
not checking and was nicely crashing as a result.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoMerge branch 'master' into droid-gps
Keith Packard [Mon, 15 Apr 2013 03:02:10 +0000 (20:02 -0700)]
Merge branch 'master' into droid-gps

11 years agomicropeak: Oops. Lost the call to actually start downloading data
Keith Packard [Sun, 14 Apr 2013 21:54:52 +0000 (14:54 -0700)]
micropeak: Oops. Lost the call to actually start downloading data

Lost when adding the 'help' text somehow; presumably a debugging issue.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltosdroid: Update UI even if no telem has been received. Center map.
Keith Packard [Sat, 13 Apr 2013 19:13:18 +0000 (12:13 -0700)]
altosdroid: Update UI even if no telem has been received. Center map.

This allows the receiver location to be displayed even when telemetry
is not.

Center the map on the first valid location, either receiver or
rocket. Update center if a significantly more precise location is received.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltosdroid: Get rid of a couple of startup messages
Keith Packard [Sat, 13 Apr 2013 18:45:23 +0000 (11:45 -0700)]
altosdroid: Get rid of a couple of startup messages

These are just annoying

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltosdroid: Show our position in the map tab. Squeeze to fit phones
Keith Packard [Sat, 13 Apr 2013 18:39:14 +0000 (11:39 -0700)]
altosdroid: Show our position in the map tab. Squeeze to fit phones

Shrink everything to fit on phones, then add phone location to the map tab

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoMerge branch 'master' into droid-gps
Keith Packard [Sat, 13 Apr 2013 17:51:04 +0000 (10:51 -0700)]
Merge branch 'master' into droid-gps

11 years agoaltosdroid: Shrink text so it fits on my phone
Keith Packard [Sat, 13 Apr 2013 17:50:26 +0000 (10:50 -0700)]
altosdroid: Shrink text so it fits on my phone

Yes, this is a hack; will try to figure out how to make it resizeable

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoWindows: Add all of the AltusMetrum USB IDs to telemetrum.inf
Keith Packard [Sat, 13 Apr 2013 17:39:14 +0000 (10:39 -0700)]
Windows: Add all of the AltusMetrum USB IDs to telemetrum.inf

This should make Windows load the driver

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agolibaltos: Retry Windows serial port open five times
Keith Packard [Fri, 12 Apr 2013 05:16:03 +0000 (22:16 -0700)]
libaltos: Retry Windows serial port open five times

Maybe this helps?

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Make sure the packet format is set reasonably for radio test
Keith Packard [Fri, 12 Apr 2013 10:09:16 +0000 (03:09 -0700)]
altos: Make sure the packet format is set reasonably for radio test

Dunno if this matters, but it might as well be set reasonably

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltoslib: Remove spurious debug message
Keith Packard [Fri, 12 Apr 2013 07:55:59 +0000 (00:55 -0700)]
altoslib: Remove spurious debug message

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Don't include bufio debug commands by default
Keith Packard [Fri, 12 Apr 2013 09:42:37 +0000 (02:42 -0700)]
altos: Don't include bufio debug commands by default

We shouldn't need these

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Stick a mutex around FAT operations
Keith Packard [Fri, 12 Apr 2013 09:35:15 +0000 (02:35 -0700)]
altos: Stick a mutex around FAT operations

This allows the command line and logging operations to occur safely in parallel

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Delay while waking up SD card a bit
Keith Packard [Fri, 12 Apr 2013 08:55:33 +0000 (01:55 -0700)]
altos: Delay while waking up SD card a bit

This seems to make bringing the card from idle to ready mode more
reliable. If you spam the card with requests, it will eventually
whinge and shut down communications.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltosdroid: The Map already draws our location; no receiver marker needed
Keith Packard [Fri, 12 Apr 2013 08:04:55 +0000 (01:04 -0700)]
altosdroid: The Map already draws our location; no receiver marker needed

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltosdroid: Check state.gps != null before using it
Keith Packard [Fri, 12 Apr 2013 08:00:36 +0000 (01:00 -0700)]
altosdroid: Check state.gps != null before using it

Avoid crashing.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltoslib: Remove spurious debug message
Keith Packard [Fri, 12 Apr 2013 07:55:59 +0000 (00:55 -0700)]
altoslib: Remove spurious debug message

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltosdroid: Compute course from android device to rocket, display it
Keith Packard [Fri, 12 Apr 2013 07:19:24 +0000 (00:19 -0700)]
altosdroid: Compute course from android device to rocket, display it

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltoslib: Add range and elevation to AltosGreatCircle
Keith Packard [Fri, 12 Apr 2013 06:56:47 +0000 (23:56 -0700)]
altoslib: Add range and elevation to AltosGreatCircle

Move the computations from AltosState here so they can be re-used elsewhere.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltosdroid: Mike was right -- only need one LocationListener
Keith Packard [Fri, 12 Apr 2013 05:39:14 +0000 (22:39 -0700)]
altosdroid: Mike was right -- only need one LocationListener

I mis-read the docs and thought we needed two listeners, one for GPS
and one for network position. Looks like we don't

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltosdroid: Send LOCATION and CRC_ERROR messages to UI.
Keith Packard [Fri, 12 Apr 2013 05:34:36 +0000 (22:34 -0700)]
altosdroid: Send LOCATION and CRC_ERROR messages to UI.

This collects all position changes and crc error increments and sends
them along to the UI for presentation.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltosdroid: Hook up the position listeners
Keith Packard [Fri, 12 Apr 2013 05:16:25 +0000 (22:16 -0700)]
altosdroid: Hook up the position listeners

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agodoc: Add an outline of an AltosDroid chapter
Keith Packard [Tue, 9 Apr 2013 21:53:25 +0000 (14:53 -0700)]
doc: Add an outline of an AltosDroid chapter

Not much content yet, but I think this is pretty much the sections we need

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltoslib/altosui: Adapt monitor idle to new AltosListenerState
Keith Packard [Tue, 9 Apr 2013 07:38:25 +0000 (00:38 -0700)]
altoslib/altosui: Adapt monitor idle to new AltosListenerState

Move the receiver battery monitoring to the new spot

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltoslib/altosui: Carry receiver status around in AltosListenerState
Keith Packard [Tue, 9 Apr 2013 07:28:05 +0000 (00:28 -0700)]
altoslib/altosui: Carry receiver status around in AltosListenerState

This moves the crc_errors into the new structure and adds a receiver
battery voltage value there as well. Now the receiver status can be
monitored separately from the flight status. That also means that code
receiving state updates should be prepared to accept missing listener
or flight state values.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Monitor battery voltage on telebt
Keith Packard [Tue, 9 Apr 2013 00:42:18 +0000 (17:42 -0700)]
altos: Monitor battery voltage on telebt

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoMerge branch 'master' of ssh://git.gag.com/scm/git/fw/altos
Bdale Garbee [Tue, 9 Apr 2013 00:02:37 +0000 (18:02 -0600)]
Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altos

11 years agoaltos: Create telebt-v1.0 product. Remove old telebt products
Keith Packard [Mon, 8 Apr 2013 23:48:40 +0000 (16:48 -0700)]
altos: Create telebt-v1.0 product. Remove old telebt products

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Create telebt-v1.0 product. Remove old telebt products
Keith Packard [Mon, 8 Apr 2013 23:48:40 +0000 (16:48 -0700)]
altos: Create telebt-v1.0 product. Remove old telebt products

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Try RDF mode for TX calibration
Keith Packard [Sun, 7 Apr 2013 06:48:36 +0000 (23:48 -0700)]
altos: Try RDF mode for TX calibration

Trying to get the radio to stop modulating the carrier when
calibrating the radio, we'll try RDF mode which says no preamble or
sync data. This might shift the frequency though?

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltosui: Graph TeleMini flights without crashing
Keith Packard [Wed, 3 Apr 2013 00:44:06 +0000 (17:44 -0700)]
altosui: Graph TeleMini flights without crashing

Adding maps to the graph UI failed to check for missing GPS data in a
couple of places causing crashes when fed a TeleMini file.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltosui: Display current GPS in 'pad' tab for 'startup' staten
Keith Packard [Wed, 3 Apr 2013 00:29:40 +0000 (17:29 -0700)]
altosui: Display current GPS in 'pad' tab for 'startup' staten

This is the state for telegps, so just display the current GPS info as
we don't know where it started at.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltosui: Hide flight-related tabs for telegps
Keith Packard [Tue, 2 Apr 2013 23:48:05 +0000 (16:48 -0700)]
altosui: Hide flight-related tabs for telegps

Products without a flight state don't need ascent/descent/landed tabs.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltosui: Don't display missing sensor data
Keith Packard [Tue, 2 Apr 2013 23:47:07 +0000 (16:47 -0700)]
altosui: Don't display missing sensor data

For devices without sensors, don't display temperature, barometric and
accelerometer-derived values.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltoslib: Make any incoming telem packet update the RSSI value
Keith Packard [Tue, 2 Apr 2013 23:44:58 +0000 (16:44 -0700)]
altoslib: Make any incoming telem packet update the RSSI value

Every packet has RSSI info, so use the latest one available. This
makes telegps RSSI available as it never sends sensor packets (having
no sensors).

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoSet telegps USB id to 0025
Keith Packard [Tue, 2 Apr 2013 23:43:53 +0000 (16:43 -0700)]
Set telegps USB id to 0025

It was accidentally using the same ID as megadongle...

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Shorten SD initialization timeouts.
Keith Packard [Tue, 2 Apr 2013 23:41:29 +0000 (16:41 -0700)]
altos: Shorten SD initialization timeouts.

This makes failure when no card is present much quicker.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Horrible kludge -- disable radio while talking with SD card
Keith Packard [Mon, 1 Apr 2013 09:39:35 +0000 (02:39 -0700)]
altos: Horrible kludge -- disable radio while talking with SD card

The SD card really doesn't like the RFI generated by our enormous
radio, so just lock the radio out while working with the card.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Add defines for the specific pins used for telegps SPI
Keith Packard [Mon, 1 Apr 2013 09:10:14 +0000 (02:10 -0700)]
altos: Add defines for the specific pins used for telegps SPI

These aren't needed at this point, but who knows?

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Retry SD card I/O. Use time for timeouts instead of counts
Keith Packard [Mon, 1 Apr 2013 09:08:18 +0000 (02:08 -0700)]
altos: Retry SD card I/O. Use time for timeouts instead of counts

Sometimes I/O operations may fail; give the card a chance and retry
the operation in case it works the next time.

Replace the loop counts with loops that check the clock so that
they'll have consistent timeouts even if the CPU or SPI speed changes.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Provide build hooks for sampling profiler in telegps
Keith Packard [Mon, 1 Apr 2013 09:07:06 +0000 (02:07 -0700)]
altos: Provide build hooks for sampling profiler in telegps

Might prove useful if the CPU is ever doing anything?

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Add a FAT test that re-writes the same file multiple times
Keith Packard [Mon, 1 Apr 2013 09:06:03 +0000 (02:06 -0700)]
altos: Add a FAT test that re-writes the same file multiple times

This caught a bunch of FAT cluster chain allocation bugs.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Support open on multiple simultaneous FAT files
Keith Packard [Mon, 1 Apr 2013 09:03:57 +0000 (02:03 -0700)]
altos: Support open on multiple simultaneous FAT files

Need to be able to see the contents of a log file, even if the logger
is running.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Make sure FAT cluster allocation works for size zero files
Keith Packard [Mon, 1 Apr 2013 09:02:14 +0000 (02:02 -0700)]
altos: Make sure FAT cluster allocation works for size zero files

There were some rounding errors mis-computing the number of clusters
needed, and the logic to figure out how to re-connect a chain was broken.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: let FAT tracing work in ao_fat_test as needed
Keith Packard [Mon, 1 Apr 2013 09:00:21 +0000 (02:00 -0700)]
altos: let FAT tracing work in ao_fat_test as needed

This allows the FAT DBG hooks to be enabled even if some other module
turned DBG off.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Flush the on-board mega log after every sample interval.
Keith Packard [Mon, 1 Apr 2013 08:58:37 +0000 (01:58 -0700)]
altos: Flush the on-board mega log after every sample interval.

SPI flash parts don't need flushing, but the SD card does. Make sure
the SD card contents are sane after every logging interval has passed
by flushing all dirty blocks to the device.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Create the log file if it doesn't already exist
Keith Packard [Sun, 31 Mar 2013 23:11:27 +0000 (16:11 -0700)]
altos: Create the log file if it doesn't already exist

open will return failure unless the file already exists.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Make ao_fat_readdir return real error values instead of 1/0
Keith Packard [Sun, 31 Mar 2013 23:10:33 +0000 (16:10 -0700)]
altos: Make ao_fat_readdir return real error values instead of 1/0

This way, we can distinguish between 'something bad happened' and
'you're at the end of the directory'.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Increase SD card timeout at startup time
Keith Packard [Sun, 31 Mar 2013 20:55:16 +0000 (13:55 -0700)]
altos: Increase SD card timeout at startup time

Sometimes the SD card takes 'a while' to go into idle mode at first
power up. Just hang around waiting for a long time.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Fix command-line FAT filename parsing
Keith Packard [Sun, 31 Mar 2013 19:46:41 +0000 (12:46 -0700)]
altos: Fix command-line FAT filename parsing

Pad extension with spaces

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoao-tools/ao-stmload: Be smarter about ELF parsing. Retry open on failure.
Keith Packard [Sat, 23 Mar 2013 09:10:38 +0000 (02:10 -0700)]
ao-tools/ao-stmload: Be smarter about ELF parsing. Retry open on failure.

Figuring out what goes where is tricky; turns out we want to pull all
of the sections that map inside any program area that is supposed to
be loaded from the file.

So, we walk the program headers, then walk all of the section headers
looking for those that suck data from the same portion of the
file. Compute where in ROM each relevant section goes and build a full
ROM image in memory using that.

This patch also adds code to close and re-open the device if the first
open failed to do what we want. Much nicer to have the computer figure
out when the open succeeded rather than having people re-run the app.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Unmount file system after each testing pass in ao_fat_test
Keith Packard [Sun, 31 Mar 2013 19:39:32 +0000 (12:39 -0700)]
altos: Unmount file system after each testing pass in ao_fat_test

Otherwise, we use stale data and 'bad things' happen.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Don't add fat commands when building ao_fat_test
Keith Packard [Sun, 31 Mar 2013 19:29:37 +0000 (12:29 -0700)]
altos: Don't add fat commands when building ao_fat_test

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos/stm: Always check for idle IN buffer before sending
Keith Packard [Sun, 24 Mar 2013 22:04:57 +0000 (15:04 -0700)]
altos/stm: Always check for idle IN buffer before sending

Unlike the AVR and CC1111 USB drivers, the STM usb driver queues IN
bytes in a local buffer instead of in the driver; this means that the
driver is queuing bytes while the previous IN packet is queued for the
host, which allows for overlapping execution.

It also means that when the local buffer is full, we must check to see
if the host has picked up the previous IN packet before trying to
queue another IN packet for transmission. This is done by always
waiting for the IN buffer to be ready before sending data.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos/stm: Add debugging mechanism to STM USB driver
Keith Packard [Sun, 24 Mar 2013 22:03:59 +0000 (15:03 -0700)]
altos/stm: Add debugging mechanism to STM USB driver

This adds a pile of debugging hooks to the USB driver to try and
isolate various lockup-related issues. It's all disabled by default,
of course.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Do not release interrupts from any pollchar function
Keith Packard [Sun, 24 Mar 2013 22:00:20 +0000 (15:00 -0700)]
altos: Do not release interrupts from any pollchar function

getchar relies on interrupts being blocked across the pollchar calls
and into the sleep call or it may go to sleep with data pending.

This prefixes all pollchar functions with _ to indicate that they are
to be called with interrupts blocked and eliminates all interrupt
manipulation calls from within the pollchar functions.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Add sdcard read/write tracing
Keith Packard [Sun, 31 Mar 2013 19:23:31 +0000 (12:23 -0700)]
altos: Add sdcard read/write tracing

This just dumps info in trace mode about read and write commands

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Move fat mount information to separate command.
Keith Packard [Sun, 31 Mar 2013 19:22:28 +0000 (12:22 -0700)]
altos: Move fat mount information to separate command.

This makes the mount report precise error information and then prints
that with the 'M' command.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Disable CC115L debug commands
Keith Packard [Sun, 31 Mar 2013 19:21:03 +0000 (12:21 -0700)]
altos: Disable CC115L debug commands

now that it appears to work, leave these disabled by default

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Add SD card writing function
Keith Packard [Sun, 31 Mar 2013 17:35:47 +0000 (10:35 -0700)]
altos: Add SD card writing function

Now that the FAT code seems to be operational, go back and add
SD writing.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Add logging and telem to telegps
Keith Packard [Sat, 30 Mar 2013 08:33:49 +0000 (01:33 -0700)]
altos: Add logging and telem to telegps

This turns on telemetry, APRS, RDF and data logging for telegps.

Data is logged as soon as GPS has a date to create the right
filename, using files of the form YYYYMMDD.LOG which just barely fits
in a FAT filename.

Telemetry/RDF/APRS are all separately controllable.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Export ao_fat_sync and ao_fat_full functions
Keith Packard [Sat, 30 Mar 2013 08:32:30 +0000 (01:32 -0700)]
altos: Export ao_fat_sync and ao_fat_full functions

ao_fat_sync() flushes the bufio data to disk along with any fsinfo
changes. ao_fat_full() returns whether the file system is full.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Lock cc115l radio mutex when using global radio values
Keith Packard [Sat, 30 Mar 2013 08:31:12 +0000 (01:31 -0700)]
altos: Lock cc115l radio mutex when using global radio values

This moves the locking up above the global state variable uses so that
multiple radio users (as if we had any) won't collide.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Configure cc115l sync byte count for each radio mode
Keith Packard [Sat, 30 Mar 2013 08:30:18 +0000 (01:30 -0700)]
altos: Configure cc115l sync byte count for each radio mode

two sync bytes for packet mode, disable sync for rdf/aprs mode.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Get CC115L radio working.
Keith Packard [Sat, 30 Mar 2013 00:05:36 +0000 (17:05 -0700)]
altos: Get CC115L radio working.

This involved figuring out which GPIO signal would reliably indicate
that the transmitter was finished; I ended up using the PA_PD bit for
this.

This also converts all of the radio users to the long packet support
as the CC115L has only a 64-byte fifo, not large enough to hold either
an RDF tone or a regular AltOS telemetry packet.

This also renames the public API for sending APRS packets from
ao_radio_send_lots to ao_radio_send_aprs, which is at least more
accurate. The workings of that API haven't changed, just the name.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Add temporary RF power settings
Keith Packard [Fri, 29 Mar 2013 19:13:59 +0000 (12:13 -0700)]
altos: Add temporary RF power settings

These expose the raw cc115l and rfpa0133 register settings so that we
can calibrate them against measured power outputs.

I've tested them to verify that they change how much power the board
consumes, so they're clearly doing something...

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Add FAT32 support. And lots more testing.
Keith Packard [Fri, 29 Mar 2013 07:32:23 +0000 (00:32 -0700)]
altos: Add FAT32 support. And lots more testing.

Generalizes the FAT code to deal with either 16-bit or 32-bit
versions. The testing code now runs over a variety of disk images to
check for compatibility on all of them.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: seek forward on FAT cluster chain instead of restarting
Keith Packard [Fri, 29 Mar 2013 00:38:14 +0000 (17:38 -0700)]
altos: seek forward on FAT cluster chain instead of restarting

This improves sequential file performance by taking advantage of any
previous cached cluster/offset pair and starting from there when the
cluster changes rather than starting from scratch at the begining again.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Add a simple cache for the FAT position->cluster computation
Keith Packard [Thu, 28 Mar 2013 23:57:02 +0000 (16:57 -0700)]
altos: Add a simple cache for the FAT position->cluster computation

This improves read/write performance with large files by not
re-walking the cluster chain for every operation

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Clean up fat driver API. Improve fat test
Keith Packard [Thu, 28 Mar 2013 23:05:24 +0000 (16:05 -0700)]
altos: Clean up fat driver API. Improve fat test

Make FAT api provide reasonable error return values, change the tests
to write and then read a pile of files, checking that the contents are
correct (using md5sum).

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Add sanity checking to busy counts in bufio driver
Keith Packard [Thu, 28 Mar 2013 22:55:35 +0000 (15:55 -0700)]
altos: Add sanity checking to busy counts in bufio driver

Make sure the busy counts don't underflow or overflow.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltosui: Don't deref null pyros when saving altimeter config
Keith Packard [Thu, 28 Mar 2013 05:11:53 +0000 (22:11 -0700)]
altosui: Don't deref null pyros when saving altimeter config

The check for no pyro config is to compare npyros against zero rather
than check the length of the pyros array as the latter may be null.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Use FTDW, clear DATA bit. Disable backup write protection
Keith Packard [Thu, 28 Mar 2013 01:43:42 +0000 (18:43 -0700)]
altos: Use FTDW, clear DATA bit. Disable backup write protection

The newer(?) chips in telegps didn't like the previous programming
scheme, so go back to fixed time for write, which does an implicit
erase before every write. Also clear the DATA bit, which is only
needed for double word erase/programming.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Teleshield has a radio, set HAS_RADIO in ao_pins.h
Keith Packard [Wed, 27 Mar 2013 08:25:24 +0000 (01:25 -0700)]
altos: Teleshield has a radio, set HAS_RADIO in ao_pins.h

Otherwise, lots of random code won't know about the radio..

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Add new panic flag for bufio misuse
Keith Packard [Wed, 27 Mar 2013 08:15:04 +0000 (01:15 -0700)]
altos: Add new panic flag for bufio misuse

Allow the bufio code to signal a fatal error if someone misuses the API

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Hook up the FAT16 and SD card support to telegps
Keith Packard [Wed, 27 Mar 2013 08:14:15 +0000 (01:14 -0700)]
altos: Hook up the FAT16 and SD card support to telegps

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Add SDCARD and FAT16 filesystem support
Keith Packard [Wed, 27 Mar 2013 08:12:33 +0000 (01:12 -0700)]
altos: Add SDCARD and FAT16 filesystem support

This adds a fairly primitive FAT16 file system implementation
along with support for SD cards.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Fix config to not abort radio recv when no recv is available
Keith Packard [Tue, 26 Mar 2013 21:28:37 +0000 (14:28 -0700)]
altos: Fix config to not abort radio recv when no recv is available

Use the new radio recv define to skip disabling the receiver when
there isn't a receiver.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos: Allow radio recv and xmit to be separately configured
Keith Packard [Tue, 26 Mar 2013 21:27:46 +0000 (14:27 -0700)]
altos: Allow radio recv and xmit to be separately configured

The CC115L is xmit only, so split out the functions and provide
defines to check for xmit or recv separately as needed.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoaltos/stm: Ensure SPI always sends 0xff during receive
Keith Packard [Tue, 26 Mar 2013 21:26:38 +0000 (14:26 -0700)]
altos/stm: Ensure SPI always sends 0xff during receive

SD cards require 0xff when fetching data

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