fw/altos
10 years agoupdate Changelog for 1.2.1 release, again 1.2.1
Bdale Garbee [Tue, 21 May 2013 15:32:22 +0000 (09:32 -0600)]
update Changelog for 1.2.1 release, again

10 years agoMerge branch 'branch-1.2' of ssh://git.gag.com/scm/git/fw/altos into branch-1.2
Bdale Garbee [Tue, 21 May 2013 15:31:48 +0000 (09:31 -0600)]
Merge branch 'branch-1.2' of ssh://git.gag.com/scm/git/fw/altos into branch-1.2

10 years agoupdate changelog for 1.2.1 release
Bdale Garbee [Tue, 21 May 2013 15:29:30 +0000 (09:29 -0600)]
update changelog for 1.2.1 release

10 years agoupdate configure.ac to reflect version 1.2.1
Bdale Garbee [Tue, 21 May 2013 15:28:53 +0000 (09:28 -0600)]
update configure.ac to reflect version 1.2.1

10 years agodoc: Update description of graph window to note new tabs (config and map)
Keith Packard [Tue, 21 May 2013 04:41:01 +0000 (21:41 -0700)]
doc: Update description of graph window to note new tabs (config and map)

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoCreate release notes for 1.2.1
Keith Packard [Tue, 21 May 2013 04:37:20 +0000 (21:37 -0700)]
Create release notes for 1.2.1

Move most of the 1.2 content to the 1.2.1 block

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos/telemega: The last two igniters are apogee and main
Keith Packard [Mon, 20 May 2013 03:35:42 +0000 (20:35 -0700)]
altos/telemega: The last two igniters are apogee and main

Not the first two. TeleMega v0.3 has these marked on the silk

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agolibaltos: Build the linux library targets when doing a 'fat' build
Keith Packard [Fri, 17 May 2013 10:27:20 +0000 (03:27 -0700)]
libaltos: Build the linux library targets when doing a 'fat' build

These are necessary for the fat release, so make sure they're built then.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agolibaltos: use PurgeComm in Windows altos_close to abort in-progress ops
Keith Packard [Fri, 17 May 2013 10:34:50 +0000 (03:34 -0700)]
libaltos: use PurgeComm in Windows altos_close to abort in-progress ops

Instead of manually signalling the related events, use PurgeComm which
can then abort the operations itself. Also make sure all of the
relevant handles are set to INVALID before closing them to avoid race conditions.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos/cc1111: Hack on USB driver to make Windows happy
Keith Packard [Fri, 17 May 2013 10:21:08 +0000 (03:21 -0700)]
altos/cc1111: Hack on USB driver to make Windows happy

The Windows modem driver is quite chatty at startup time, getting and
setting the comm parameters each time the device is opened. Sometimes,
when setting the parameters, the cc1111 would STALL EP0.

Most of the time, Windows would happily pass this as an error back to
AltosUI which would then re-try the open (and succeed, most of the
time).

Sometimes, Windows would stall for 30 seconds before passing the error
back. This made the whole UI freeze, and I suspect most people assumed
our app had died.

A bit of analysis with the beagle USB sniffer and I discovered the
STALL settings, but there wasn't any correlation between the data on
the wire and when the STALL would be generated.

So, I found a couple of other cc1111 USB stacks on the net and just
looked to see how our driver differed. There wasn't anything clearly
related, but there were a list of small differences:

 1) Other drivers didn't bother waiting for the hardware to
    ack the USBADDR setting; doing it this way means we can set
    the address *before* acking the setup packet. It'll get
    set eventually, at which point the device will start responding to
    packets again.

    Easy to fix, and saves a bit of code space too.

 2) The other drivers set the STALL bit for setup packets which aren't
    understood. This shouldn't have any effect on 'good' systems as
    those shouldn't ever be generating bogus setup packets anyways.

    The driver already handled the STALL state in the interrupt
    handler, the only requirement was to figure out when to explicitly
    set the STALL bit.

    That required moving the state updating code from the start of the
    ep0 setup handling to the end, after the setup packet had been
    examined and data queued in or out as appropriate.

 3) Our driver explicitly queued an IN packet for any setup request
    that wasn't waiting for an OUT pack. This appears to tie in with
    the USBADDR change above as before I made that change, this change
    caused the driver to fail to respond to most setup packets.

    This was simple once the above change was made, just move the
    generation of the IN packet inside the code that switched to the
    IN state.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoupdate ChangeLog for release
Bdale Garbee [Thu, 16 May 2013 06:34:26 +0000 (00:34 -0600)]
update ChangeLog for release

10 years agoaltos: Set u-blox navigation settings
Keith Packard [Tue, 14 May 2013 15:51:22 +0000 (08:51 -0700)]
altos: Set u-blox navigation settings

Airborne mode, < 4g (as good as it gets)
Only use 3D fixes (2D isn't very useful)

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Use symbolic names for ublox packet id
Keith Packard [Tue, 14 May 2013 15:35:24 +0000 (08:35 -0700)]
altos: Use symbolic names for ublox packet id

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: Generate useful KML files from TeleGPS logs
Keith Packard [Tue, 14 May 2013 08:06:20 +0000 (01:06 -0700)]
altosui: Generate useful KML files from TeleGPS logs

Use GPS altitude when baro altitude is not present.
Don't require flight number.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: Use GPS alt + baro height for KML altitude
Keith Packard [Tue, 14 May 2013 07:38:34 +0000 (00:38 -0700)]
altosui: Use GPS alt + baro height for KML altitude

GPS altitude is generally more absolutely correct than baro altitude,
so use that as the nominal pad altitude when generating a KML
file. This results in a KML file that has the flight trace start and
end closer to the ground, which is always nice.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltoslib: Use sequence numbers to track GPS updates to AltosRecord
Keith Packard [Tue, 14 May 2013 07:24:53 +0000 (00:24 -0700)]
altoslib: Use sequence numbers to track GPS updates to AltosRecord

State objects now record what GPS sequence ID they have to know when
the GPS data has been updated. Record objects bump the GPS sequence
each time new GPS data is recorded. This way, record objects aren't
modified as they're iterated over to generate the list of state
objects which makes it possible to iterate multiple times and get the
same resulting set of states.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos/test: ao_gps_test_ublox uses ao_gps_blox.h
Keith Packard [Tue, 14 May 2013 05:59:26 +0000 (22:59 -0700)]
altos/test: ao_gps_test_ublox uses ao_gps_blox.h

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Struct used for u-blox testing had lat/lon swapped
Keith Packard [Tue, 14 May 2013 05:58:18 +0000 (22:58 -0700)]
altos: Struct used for u-blox testing had lat/lon swapped

The structs in ao_gps_ublox.h are used only by the test framework, but
it's useful to have that look right anyways.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Switch TeleMega v0.3 to u-blox
Keith Packard [Tue, 14 May 2013 05:33:12 +0000 (22:33 -0700)]
altos: Switch TeleMega v0.3 to u-blox

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Provide a define for the number of sat infos in a telem packet
Keith Packard [Tue, 14 May 2013 05:32:25 +0000 (22:32 -0700)]
altos: Provide a define for the number of sat infos in a telem packet

12 fit, but it's best to use a symbolic constant

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Add U-Blox GPS driver
Keith Packard [Tue, 14 May 2013 05:31:31 +0000 (22:31 -0700)]
altos: Add U-Blox GPS driver

Uses binary mode.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Don't bother fixing telelco-v0.1, just disable it
Keith Packard [Tue, 14 May 2013 05:29:22 +0000 (22:29 -0700)]
altos: Don't bother fixing telelco-v0.1, just disable it

Lots of stuff to do to make this old project build; just disable it
instead of fixing

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosuilib: Mistake in the MegaDongle listing -- was set to TeleMega
Keith Packard [Tue, 14 May 2013 05:28:27 +0000 (22:28 -0700)]
altosuilib: Mistake in the MegaDongle listing -- was set to TeleMega

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltoslib: Correct hexfile address ranges
Keith Packard [Tue, 14 May 2013 05:27:00 +0000 (22:27 -0700)]
altoslib: Correct hexfile address ranges

Stop trying to use sentinal values for addresses and just keep a
boolean tracking whether they've been initialized. Avoids precision
errors in the variables.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: Wait for valid callsign/flight when graphing
Keith Packard [Sat, 11 May 2013 02:21:18 +0000 (19:21 -0700)]
altosui: Wait for valid callsign/flight when graphing

Wait for the data record to indicate that the flight value is valid
before setting the graph callsign/flight/serial data.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoMerge branch 'master-fixes' into stm-flash-fixes
Keith Packard [Fri, 10 May 2013 04:06:52 +0000 (21:06 -0700)]
Merge branch 'master-fixes' into stm-flash-fixes

10 years agomicropeak: Use new 'last logdir' preference for MicroPeak save/load dialogs
Keith Packard [Fri, 10 May 2013 04:06:23 +0000 (21:06 -0700)]
micropeak: Use new 'last logdir' preference for MicroPeak save/load dialogs

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoInformation from configure about android build was misprinted
Keith Packard [Fri, 10 May 2013 04:04:52 +0000 (21:04 -0700)]
Information from configure about android build was misprinted

A typo in the script caused it to print either 'yes' or ''

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltoslib: Add non-persistent 'last logdir' preference
Keith Packard [Fri, 10 May 2013 04:04:11 +0000 (21:04 -0700)]
altoslib: Add non-persistent 'last logdir' preference

This is used to record the last directory for reading or writing log
files so that the UI can pop back to the same place next time.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoAdd altosdroid notebook entry for imperial units
Keith Packard [Fri, 10 May 2013 04:03:38 +0000 (21:03 -0700)]
Add altosdroid notebook entry for imperial units

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Wait after configuring boot pin before testing it
Keith Packard [Mon, 29 Apr 2013 06:06:24 +0000 (23:06 -0700)]
altos: Wait after configuring boot pin before testing it

Clearly the pin isn't quite ready just after it's been configured, so
hang around for a while (100 nops) to let things setting down before
testing the value of the pin. Makes booting a lot more reliable.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos/stm: Create per-product flash loaders
Keith Packard [Sat, 27 Apr 2013 22:33:04 +0000 (15:33 -0700)]
altos/stm: Create per-product flash loaders

Split the flash loader prototype into pieces so that each product can
build a custom flash loader with very little code.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Add ao_boot_chain to telemega v0.3
Keith Packard [Sat, 27 Apr 2013 07:37:15 +0000 (00:37 -0700)]
altos: Add ao_boot_chain to telemega v0.3

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoao-tools/ao-stmload: Add --verbose flag
Keith Packard [Sat, 27 Apr 2013 07:26:11 +0000 (00:26 -0700)]
ao-tools/ao-stmload: Add --verbose flag

This dumps out the serial communication so you can see where things go wrong.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Remove stdio from stm-flash
Keith Packard [Sat, 27 Apr 2013 07:25:36 +0000 (00:25 -0700)]
altos: Remove stdio from stm-flash

This saves enough memory to fit in under 4kB

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Get rodata into flash, make sure sections are aligned
Keith Packard [Sat, 27 Apr 2013 07:24:08 +0000 (00:24 -0700)]
altos: Get rodata into flash, make sure sections are aligned

.rodata* needs to be in flash; otherwise strings get left in ram.
Failing to align sections makes the initialized data get dumped into
the wrong place in memory.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Make stm-bringup build again
Keith Packard [Sat, 27 Apr 2013 07:23:14 +0000 (00:23 -0700)]
altos: Make stm-bringup build again

stm requires AO_BOOT_LOADER_BASE now

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Run self loader when application sets boot addr to 0
Keith Packard [Sat, 27 Apr 2013 07:20:47 +0000 (00:20 -0700)]
altos: Run self loader when application sets boot addr to 0

This causes the flash loader startup code to fall into the loader when
the application sets the boot address to zero.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Allow STM usb driver to be used without stdio
Keith Packard [Sat, 27 Apr 2013 07:19:13 +0000 (00:19 -0700)]
altos: Allow STM usb driver to be used without stdio

This lets the self flashing loader be linked without any of the stdio
code, which saves a bunch of memory.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos/stm-flash: Check target flash address against AO_BOOT_APPLICATION_BASE
Keith Packard [Tue, 23 Apr 2013 02:08:35 +0000 (20:08 -0600)]
altos/stm-flash: Check target flash address against AO_BOOT_APPLICATION_BASE

Allows that value to change

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoao-tools/ao-stmload: application base moved to 0x08001000
Keith Packard [Tue, 23 Apr 2013 01:59:12 +0000 (20:59 -0500)]
ao-tools/ao-stmload: application base moved to 0x08001000

And, use a symbolic name so it can be easily moved in the future

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoao-tools: reboot to loader now uses 'X' instead of 'L'
Keith Packard [Tue, 23 Apr 2013 01:56:00 +0000 (20:56 -0500)]
ao-tools: reboot to loader now uses 'X' instead of 'L'

'L' is used by lots of other commands; switch to 'X' which is free.

Sigh. Someday we'll have words for commands instead of just letters

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Use flash loader on all STM products
Keith Packard [Tue, 23 Apr 2013 01:35:57 +0000 (20:35 -0500)]
altos: Use flash loader on all STM products

Includes the boot chain stuff

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos/stm: Provide another 4kB of flash space for apps
Keith Packard [Tue, 23 Apr 2013 01:33:33 +0000 (20:33 -0500)]
altos/stm: Provide another 4kB of flash space for apps

With the flash loader now < 4kB, we can use the spare 4kB for applications

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos/stm: Shrink stm flash loader to < 4kB
Keith Packard [Tue, 23 Apr 2013 01:32:18 +0000 (20:32 -0500)]
altos/stm: Shrink stm flash loader to < 4kB

Saves 4kB of flash space for applications.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos/stm: Allow core timer to be excluded from build
Keith Packard [Tue, 23 Apr 2013 01:30:31 +0000 (20:30 -0500)]
altos/stm: Allow core timer to be excluded from build

This removes all of the support for the base 100Hz timer from the
system, saving space when not needed

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos/stm: Don't define task macros when not tasking
Keith Packard [Tue, 23 Apr 2013 01:29:56 +0000 (20:29 -0500)]
altos/stm: Don't define task macros when not tasking

The necessary data structures aren't defined in this case.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Eliminate stdio looping when system has a single stdio source
Keith Packard [Tue, 23 Apr 2013 01:27:52 +0000 (20:27 -0500)]
altos: Eliminate stdio looping when system has a single stdio source

No need to loop if there's only one

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Move ao_notask to core
Keith Packard [Tue, 23 Apr 2013 01:24:48 +0000 (20:24 -0500)]
altos: Move ao_notask to core

The STM flash loader wants to be taskless too, share this very simple
implementation of sleep/wakeup.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoao-tools/ao-stmload: Remove IRC dregs in source code
Keith Packard [Sun, 24 Mar 2013 23:16:55 +0000 (16:16 -0700)]
ao-tools/ao-stmload: Remove IRC dregs in source code

oops.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui/altoslib: Move more flashing code from altosui to altoslib
Keith Packard [Sun, 24 Mar 2013 23:15:21 +0000 (16:15 -0700)]
altosui/altoslib: Move more flashing code from altosui to altoslib

Required a bit of refactoring to eliminate swing types from the
flashing code, but nothing major.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui & altoslib: Move a pile of debug/programming bits to altoslib
Keith Packard [Sun, 24 Mar 2013 23:01:08 +0000 (16:01 -0700)]
altosui & altoslib: Move a pile of debug/programming bits to altoslib

Prepare to create external Java utilities to flash devices

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: Support 32-bit ihx files
Keith Packard [Sun, 24 Mar 2013 22:35:15 +0000 (15:35 -0700)]
altosui: Support 32-bit ihx files

This just borrows the same 32-bit ihx parsing changes from ao-tools.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoao-tools/ao-stmload: Fix ELF, add IHX, add self-flashing
Keith Packard [Sun, 24 Mar 2013 22:33:31 +0000 (15:33 -0700)]
ao-tools/ao-stmload: Fix ELF, add IHX, add self-flashing

This splits loading into ELF and IHX paths, and splits flashing into
stlink and self-flashing paths.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoao-tools/lib: Add loading support for 32-bit ihx files
Keith Packard [Sun, 24 Mar 2013 22:30:24 +0000 (15:30 -0700)]
ao-tools/lib: Add loading support for 32-bit ihx files

These place the upper 16 bits of the address in a special record. That
requires handling records in file order, so don't sort them in address
order anymore, instead find the bounds of the loaded data by scanning
them all.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos/stm: Add comments to the .ld files explaining how the romconfig stuff works
Keith Packard [Sun, 24 Mar 2013 22:27:42 +0000 (15:27 -0700)]
altos/stm: Add comments to the .ld files explaining how the romconfig stuff works

Would be nice to be able to explicitly define addresses for the
romconfig variables, but I can't figure out how to make that
work. Instead, just explicitly load the files in teh right order to
make things land in the right places.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos/stm: Add .elf to .ihx rule
Keith Packard [Sun, 24 Mar 2013 22:26:26 +0000 (15:26 -0700)]
altos/stm: Add .elf to .ihx rule

Uses objcopy -O ihex to extract the initialized bits from an elf file

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Switch ao_stm_flash to read/write binary blocks
Keith Packard [Sun, 24 Mar 2013 22:24:42 +0000 (15:24 -0700)]
altos: Switch ao_stm_flash to read/write binary blocks

Change from development testing code to something that actually reads
and writes data from the USB link.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Create ihx version of stm-demo
Keith Packard [Sun, 24 Mar 2013 22:21:58 +0000 (15:21 -0700)]
altos: Create ihx version of stm-demo

Both ao-stmload and the eventual java loader will support ihx files.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Add erase command to stm-flash app. Validate addresses.
Keith Packard [Sat, 23 Mar 2013 09:23:03 +0000 (02:23 -0700)]
altos: Add erase command to stm-flash app. Validate addresses.

This also leaves the code writing fixed values and printing read data
in ascii instead of binary. Useful for debugging, will want changing
for the product.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Fix STM flash programming
Keith Packard [Sat, 23 Mar 2013 09:21:27 +0000 (02:21 -0700)]
altos: Fix STM flash programming

Wait for flash to go non-busy after writing or erasing a page and
before jumping back out of the RAM code.

Export a separate 'erase' operation for testing.

Re-lock flash after every operation.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Validate boot chain start address
Keith Packard [Sat, 23 Mar 2013 09:18:55 +0000 (02:18 -0700)]
altos: Validate boot chain start address

If the first block of boot memory has been smashed, and the start
address is bogus, don't bother trying to jump to the
application. This makes the system more resiliant to flash failures,
presuming the loader erases the first block, programs the other blocks
and then finally comes back to program the first block.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Mark .boot section as (NOLOAD)
Keith Packard [Sat, 23 Mar 2013 09:17:04 +0000 (02:17 -0700)]
altos: Mark .boot section as (NOLOAD)

For some reason, the silly linker marks things in section .boot as
data rather than bss, so they'd end up initialized by default. Force
them to be NOLOAD so they preserve values across reboot so that boot
chaining works properly.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Fix up stm-flash output file name. Use discovery LED pins
Keith Packard [Sat, 23 Mar 2013 09:15:35 +0000 (02:15 -0700)]
altos: Fix up stm-flash output file name. Use discovery LED pins

Include the AltOS version in the file name, just like any other AltOS
program.

Switch the LEDs to the discovery board as we're using
that. Eventually, we'll stop using LEDs entirely.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Add actual flashing functions to stm-flash app
Keith Packard [Tue, 12 Mar 2013 01:14:28 +0000 (18:14 -0700)]
altos: Add actual flashing functions to stm-flash app

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Clean up boot loader support
Keith Packard [Mon, 11 Mar 2013 20:21:04 +0000 (13:21 -0700)]
altos: Clean up boot loader support

Split out code into separate files.
Add support for getting back to boot loader from application.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Add program flash function
Keith Packard [Mon, 11 Mar 2013 07:01:52 +0000 (00:01 -0700)]
altos: Add program flash function

And get it loaded to RAM so it can execute correctly.

Nothing calls it yet...

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Make stm-flash capable of switching to application
Keith Packard [Mon, 11 Mar 2013 04:02:59 +0000 (21:02 -0700)]
altos: Make stm-flash capable of switching to application

This shrinks the base OS load down a bit as well so that stm-flash
fits comfortably in the first 8kB of memory.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoAdd STM self-flashing loader
Keith Packard [Sun, 24 Feb 2013 08:18:14 +0000 (00:18 -0800)]
Add STM self-flashing loader

This allows the real application to get loaded at 0x2000 and jumps to
that at startup time if the boot pin is set appropriately

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Sanity check barometer before going to pad mode
Keith Packard [Wed, 8 May 2013 02:29:06 +0000 (19:29 -0700)]
altos: Sanity check barometer before going to pad mode

Make sure the barometer is reporting some sensible value before
letting TM try to fly the rocket.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Elide M25 debug output from storage info command
Keith Packard [Wed, 8 May 2013 02:28:07 +0000 (19:28 -0700)]
altos: Elide M25 debug output from storage info command

This is just chip-specific info that no UI actually needs. It takes a
bunch of ROM to write it though, making TeleMetrum not have much space left.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Set APRS deviation to 3kHz
Keith Packard [Mon, 6 May 2013 23:08:52 +0000 (16:08 -0700)]
altos: Set APRS deviation to 3kHz

I finally found a bunch of references to APRS on the net and they all
appear to assume a 3kHz deviation. Let's see if this works better with
Yaesu radios.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos/test: Fix warning in ao_aprs_test
Keith Packard [Fri, 3 May 2013 08:07:06 +0000 (01:07 -0700)]
altos/test: Fix warning in ao_aprs_test

Was not forward-declaring ao_radio_send_aprs, causing a warning

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Use SYSTICK on STM32L
Keith Packard [Wed, 1 May 2013 15:58:17 +0000 (08:58 -0700)]
altos: Use SYSTICK on STM32L

It's probably more power efficient than using one of the timers, and
it's certainly easier to configure.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Mark GPS telemetry packets with GPS time stamp
Keith Packard [Wed, 1 May 2013 15:56:57 +0000 (08:56 -0700)]
altos: Mark GPS telemetry packets with GPS time stamp

This provides a reasonable accurate indication of the system time when
the GPS location data was received, and also makes sure GPS packets
get some timestamp when no other telemetry is being transmitted.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltoslib: Update GPS state even if new state is unlocked
Keith Packard [Wed, 1 May 2013 03:25:20 +0000 (20:25 -0700)]
altoslib: Update GPS state even if new state is unlocked

Otherwise, we can't see fine GPS details while GPS is unlocked, and
that's annoying

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Use separate exception stack on STM32L
Keith Packard [Wed, 1 May 2013 02:04:26 +0000 (19:04 -0700)]
altos: Use separate exception stack on STM32L

This reserves 512 bytes of memory for a stack, then makes sure that
exceptions continue to use that stack while processes use the per-task
stack.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Reduce stack usage of FAT driver and logger
Keith Packard [Wed, 1 May 2013 01:57:53 +0000 (18:57 -0700)]
altos: Reduce stack usage of FAT driver and logger

Move some large stack arrays to static storage.
Also eliminates some printf error messages which don't seem that
useful except for debugging.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Open up the DVGA gain to use all of the available settings
Keith Packard [Tue, 30 Apr 2013 07:12:44 +0000 (00:12 -0700)]
altos: Open up the DVGA gain to use all of the available settings

We usually work in RF quiet areas; let the AGC hardware try all of the
available gain settings.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Stop using telelco v0.2 top LEDS for radio TX/RX
Keith Packard [Tue, 30 Apr 2013 07:06:08 +0000 (00:06 -0700)]
altos: Stop using telelco v0.2 top LEDS for radio TX/RX

The top LEDs are now used for signal strength; a red LED indicates
failed communcations, so we don't need to blink stuff and annoy the user.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Make cc1120 driver return false on recv timeout
Keith Packard [Tue, 30 Apr 2013 07:05:33 +0000 (00:05 -0700)]
altos: Make cc1120 driver return false on recv timeout

Was returning an uninitialized value, which was often not zero

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Reconfigure CC1120 receiver to match our usage
Keith Packard [Tue, 30 Apr 2013 06:53:43 +0000 (23:53 -0700)]
altos: Reconfigure CC1120 receiver to match our usage

Open up the AGC to the full range.
Set the AGC ref based on our receive BW (100kHz).

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Compute "real" RSSI value in radio code as needed
Keith Packard [Tue, 30 Apr 2013 06:20:25 +0000 (23:20 -0700)]
altos: Compute "real" RSSI value in radio code as needed

Instead of dragging around the weird CC1111 RSSI values, just compute
a dBm value in a signed 8-bit integer, ao_radio_rssi. Use that
everywhere we need RSSI internally. We leave the weird CC1111 value in
the packet reply as that's what the host expects.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosdroid: Add Notebook entry for reloading telem data option
Keith Packard [Tue, 30 Apr 2013 03:24:16 +0000 (20:24 -0700)]
altosdroid: Add Notebook entry for reloading telem data option

This lets the user recover the rocket flight data after stopping the
application but before recovering the rocket.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: More .gitignore bits
Keith Packard [Mon, 29 Apr 2013 06:30:29 +0000 (23:30 -0700)]
altos: More .gitignore bits

stm-demo

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Add a bunch of .gitignore files
Keith Packard [Mon, 29 Apr 2013 06:27:32 +0000 (23:27 -0700)]
altos: Add a bunch of .gitignore files

Ignore ao_product.h and built binaries

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Add ublox checksum app to generate ublox config lines
Keith Packard [Mon, 29 Apr 2013 06:25:37 +0000 (23:25 -0700)]
altos: Add ublox checksum app to generate ublox config lines

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Add .gitignore to kalman test dir
Keith Packard [Mon, 29 Apr 2013 06:22:41 +0000 (23:22 -0700)]
altos: Add .gitignore to kalman test dir

10 years agoaltos: Build test framework for kalman filter
Keith Packard [Mon, 29 Apr 2013 06:21:17 +0000 (23:21 -0700)]
altos: Build test framework for kalman filter

This has some known flight data and generates kalman filter
information for them to test

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Ignore ao_aes_test binary
Keith Packard [Mon, 29 Apr 2013 06:15:28 +0000 (23:15 -0700)]
altos: Ignore ao_aes_test binary

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos/test: Add telemega plot helper script
Keith Packard [Mon, 29 Apr 2013 06:14:50 +0000 (23:14 -0700)]
altos/test: Add telemega plot helper script

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Add nickle micropeak log parsing code
Keith Packard [Mon, 29 Apr 2013 06:11:27 +0000 (23:11 -0700)]
altos: Add nickle micropeak log parsing code

I think this was just some debugging stuff, but it doesn't seem useless

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Add telelco-v0.2 project
Keith Packard [Mon, 29 Apr 2013 06:09:54 +0000 (23:09 -0700)]
altos: Add telelco-v0.2 project

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Allow LCD segments to not be multiplexed across digits
Keith Packard [Mon, 29 Apr 2013 06:08:03 +0000 (23:08 -0700)]
altos: Allow LCD segments to not be multiplexed across digits

This allows each LCD segment to be individually configured as to which
COM and which SEG drives it, permitting maximum flexibility in wiring.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Clear any broken cc1120 TX fifo bits before transmitting
Keith Packard [Mon, 29 Apr 2013 06:05:18 +0000 (23:05 -0700)]
altos: Clear any broken cc1120 TX fifo bits before transmitting

This just goes and clears the transmitter before using it, just in
case it got wedged somehow. It also clears the bits while waiting for
the radio to go idle, otherwise it'd never make it.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Make cc1120 driver wait for TX finished
Keith Packard [Mon, 29 Apr 2013 06:03:57 +0000 (23:03 -0700)]
altos: Make cc1120 driver wait for TX finished

Otherwise, we may come in and try to use the radio again too quickly,
causing it to go into a TX fifo error state.

This change watches the MARC status until the transmitter is
explicitly marked as finished.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Provide timeout value to ao_radio_recv
Keith Packard [Mon, 29 Apr 2013 06:02:12 +0000 (23:02 -0700)]
altos: Provide timeout value to ao_radio_recv

Instead of using ao_alarm around calls to ao_radio_recv, provide an
explicit timeout value as needed by radio functions with more
complicated system interaction than the cc1111. The timeout is 8 bits
of clock ticks.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Build test framework for AES code
Keith Packard [Mon, 29 Apr 2013 05:52:23 +0000 (22:52 -0700)]
altos: Build test framework for AES code

Simple CBC-CMAC test with a constant 0 key and constant 0 data for now.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Make telemega-v0.3 binary use the right name
Keith Packard [Sun, 28 Apr 2013 06:23:33 +0000 (23:23 -0700)]
altos: Make telemega-v0.3 binary use the right name

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos/stm: Remove USB EP0 task
Keith Packard [Tue, 23 Apr 2013 01:23:48 +0000 (20:23 -0500)]
altos/stm: Remove USB EP0 task

Handl EP0 actions from interrupt handler. This allows USB to be used
in a taskless environment, like the STM flash loader

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