fw/altos
2 years agoBump version to 1.0.9.4 1.0.9.4
Keith Packard [Thu, 29 Mar 2012 04:45:44 +0000 (21:45 -0700)]
Bump version to 1.0.9.4

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

2 years agoaltos: Add ao_freq.c to megametrum build
Keith Packard [Thu, 29 Mar 2012 04:45:02 +0000 (21:45 -0700)]
altos: Add ao_freq.c to megametrum build

I think this will be needed to compute radio settings on the cc1120

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

2 years agostm-demo does not use altitude.h
Keith Packard [Sun, 25 Mar 2012 20:08:05 +0000 (13:08 -0700)]
stm-demo does not use altitude.h

2 years agoUse -Os for STM apps. Fix altos.ld to matchall .rodata* sections
Keith Packard [Fri, 23 Mar 2012 08:42:32 +0000 (01:42 -0700)]
Use -Os for STM apps. Fix altos.ld to matchall .rodata* sections

Without .rodata*, it would stick the flash copy of the data on top of
any further .rodata* sections. Fortunately, the linker catches that
and complains...

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

2 years agoGet config stuff hooked up for MegaMetrum
Keith Packard [Fri, 23 Mar 2012 07:55:53 +0000 (00:55 -0700)]
Get config stuff hooked up for MegaMetrum

This stubs out enough stuff to let ao_config link and work

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

2 years agoAdd preliminary MegaMetrum v0.1 support
Keith Packard [Fri, 23 Mar 2012 07:43:47 +0000 (00:43 -0700)]
Add preliminary MegaMetrum v0.1 support

This turns on an LED, enables the internal R/C clock, hooks USART3 to
the GPS chip and USART1 to the console.

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

2 years agoUse new Makefile.defs in stm-demo
Keith Packard [Fri, 23 Mar 2012 07:43:17 +0000 (00:43 -0700)]
Use new Makefile.defs in stm-demo

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

2 years agoUse 16-bits for STM32 LED mask. Export serial I/O functions
Keith Packard [Fri, 23 Mar 2012 07:42:13 +0000 (00:42 -0700)]
Use 16-bits for STM32 LED mask. Export serial I/O functions

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

2 years agoAllow skytraq to be on non-default serial port
Keith Packard [Fri, 23 Mar 2012 07:40:48 +0000 (00:40 -0700)]
Allow skytraq to be on non-default serial port

Provide ao_gps_getchar, ao_gps_putchar and ao_gps_set_speed hooks to
let product specify functions for serial access.

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

2 years agoAllow for more than 8 LEDs
Keith Packard [Fri, 23 Mar 2012 07:40:09 +0000 (00:40 -0700)]
Allow for more than 8 LEDs

Provide hook for architecture-specific LED mask (AO_LED_TYPE)

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

2 years agoClean up STM build by moving common defs to Makefile.defs
Keith Packard [Fri, 23 Mar 2012 07:19:06 +0000 (00:19 -0700)]
Clean up STM build by moving common defs to Makefile.defs

Shortens default Makefile a bit

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

2 years agoMake stm-demo display a scrolling message
Keith Packard [Fri, 23 Mar 2012 07:04:47 +0000 (00:04 -0700)]
Make stm-demo display a scrolling message

Instead of trying to frob the LEDs, which are now owned by the serial
port.

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

2 years agoFlush LCD changes each time the text is updated
Keith Packard [Fri, 23 Mar 2012 07:04:21 +0000 (00:04 -0700)]
Flush LCD changes each time the text is updated

Rather than requiring the caller to do it.

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

2 years agoAutomatically set ALTERNATE pin mode when setting alternate function
Keith Packard [Fri, 23 Mar 2012 07:03:29 +0000 (00:03 -0700)]
Automatically set ALTERNATE pin mode when setting alternate function

When selecting an alternate function, set the pin to alternate mode as
well; there's no sense requiring two separate calls everywhere.

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

2 years agoAllow any STM usart to be used for stdio
Keith Packard [Fri, 23 Mar 2012 07:02:38 +0000 (00:02 -0700)]
Allow any STM usart to be used for stdio

This also adds the alternate pin configurations for the other two
usarts

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

2 years agoAllow for more than one serial port in core AltOS
Keith Packard [Fri, 23 Mar 2012 07:01:50 +0000 (00:01 -0700)]
Allow for more than one serial port in core AltOS

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

2 years agoMove LCD string output code to ao_lcd_font.c
Keith Packard [Fri, 23 Mar 2012 03:02:30 +0000 (20:02 -0700)]
Move LCD string output code to ao_lcd_font.c

It's all very specific to the 14-segment display, so
stick it there.

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

2 years agoAdd LCD device driver to STM32L port
Keith Packard [Fri, 23 Mar 2012 02:43:29 +0000 (19:43 -0700)]
Add LCD device driver to STM32L port

This enables the 6-digit 14-character display on the STM32L discovery
board and provides an ascii output to it.

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

2 years agoAdd defines for LCD controller and RTC clocking
Keith Packard [Fri, 23 Mar 2012 02:42:18 +0000 (19:42 -0700)]
Add defines for LCD controller and RTC clocking

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

2 years agoActually enable usarts with the new usart code
Keith Packard [Fri, 23 Mar 2012 02:41:23 +0000 (19:41 -0700)]
Actually enable usarts with the new usart code

And move USART1 to PB6/PB7 to avoid conflicting with
the LCD pins.

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

2 years agoClean up multiple serial port support for STM32L
Keith Packard [Wed, 21 Mar 2012 23:24:06 +0000 (16:24 -0700)]
Clean up multiple serial port support for STM32L

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

2 years agoAdd support for multiple serial ports on STM32L
Keith Packard [Wed, 21 Mar 2012 23:18:26 +0000 (16:18 -0700)]
Add support for multiple serial ports on STM32L

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

2 years agoSave/restore PRIMASK register on Cortex-M3
Keith Packard [Mon, 19 Mar 2012 18:25:40 +0000 (11:25 -0700)]
Save/restore PRIMASK register on Cortex-M3

This preserves the interrupt-enabled bit across context switches

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

2 years agoDon't disable interrupts before saving interrupt flag on AVR
Keith Packard [Mon, 19 Mar 2012 18:24:43 +0000 (11:24 -0700)]
Don't disable interrupts before saving interrupt flag on AVR

This ignores the interrupt disabled state, so we'd always leave
ao_yield with interrupts disabled.

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

2 years agoAdd .gitignore file to stm-bringup
Keith Packard [Mon, 19 Mar 2012 05:29:51 +0000 (22:29 -0700)]
Add .gitignore file to stm-bringup

Ignore generated binaries

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

2 years agoFix STM LED driver and blink LEDs on discovery board
Keith Packard [Mon, 19 Mar 2012 05:26:43 +0000 (22:26 -0700)]
Fix STM LED driver and blink LEDs on discovery board

This adds a task to blink the LEDs, after first fixing up the LED
output code to enable the GPIO and talk to the right pins for the
discovery board.

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

2 years agoBasic OS running on STM32L
Keith Packard [Mon, 19 Mar 2012 05:10:02 +0000 (22:10 -0700)]
Basic OS running on STM32L

This gets stm-demo working

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

2 years agoAdd AO_PANIC_STACK
Keith Packard [Mon, 19 Mar 2012 05:09:20 +0000 (22:09 -0700)]
Add AO_PANIC_STACK

Provide a panic code for stack overflow.

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

2 years agoWhen debugging, send ao_panic message to ao_debug_out
Keith Packard [Mon, 19 Mar 2012 05:08:48 +0000 (22:08 -0700)]
When debugging, send ao_panic message to ao_debug_out

Use the low-level debug hooks to get the panic state sent to the
serial port.

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

2 years agoWhen debugging, send pre-init output to ao_debug_out
Keith Packard [Mon, 19 Mar 2012 05:07:07 +0000 (22:07 -0700)]
When debugging, send pre-init output to ao_debug_out

Before tasking is running, send output to ao_debug_out to help debug
system initialization.

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

2 years agoIncorrect type in ao_task_info for wchan
Keith Packard [Mon, 19 Mar 2012 05:05:46 +0000 (22:05 -0700)]
Incorrect type in ao_task_info for wchan

Would truncate 32-bit pointers on arm.

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

2 years agoAdd stm-demo program
Keith Packard [Sat, 17 Mar 2012 07:06:59 +0000 (00:06 -0700)]
Add stm-demo program

This runs AltOS and talks over the serial port.

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

2 years agoThese were moved to the src/stm directory
Keith Packard [Sat, 17 Mar 2012 03:24:29 +0000 (20:24 -0700)]
These were moved to the src/stm directory

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

2 years agoAdd stm bringup timers and move most of the setup code to the stm dir
Keith Packard [Sat, 17 Mar 2012 03:23:31 +0000 (20:23 -0700)]
Add stm bringup timers and move most of the setup code to the stm dir

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

2 years agoAdd STM platform and stm-bringup demo program
Keith Packard [Sat, 17 Mar 2012 03:21:09 +0000 (20:21 -0700)]
Add STM platform and stm-bringup demo program

The stm-bringup doesn't run altos, it just initializes the device and
writes stuff over a serial port. Works on the STM32L Discovery board
at least, should do stuff on other boards too.

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

2 years agoAdd example STM32L programs
Keith Packard [Fri, 16 Mar 2012 21:25:37 +0000 (14:25 -0700)]
Add example STM32L programs

This loads to flash and sends data over the serial link.

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

2 years ago'stdin' is a special name in some compiler environments, don't use it.
Keith Packard [Wed, 22 Feb 2012 10:26:03 +0000 (23:26 +1300)]
'stdin' is a special name in some compiler environments, don't use it.

Switch to 'in' in the prototype for altos_serial_set_stdin.

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

2 years agoaltosui: Disable launch controller button
Keith Packard [Wed, 28 Mar 2012 07:49:29 +0000 (00:49 -0700)]
altosui: Disable launch controller button

The launch controller should just be a separate program.

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

2 years agoaltosui: Add Configure Ground Station dialog (trac #29)
Keith Packard [Wed, 28 Mar 2012 07:37:52 +0000 (00:37 -0700)]
altosui: Add Configure Ground Station dialog (trac #29)

Allows the user to configure the teledongle frequency without opening
up the flight monitor window, and also shows the teledongle fixed
values like radio calibration, serial number and software version.

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

2 years agoaltos: Make sure config values are loaded in 'c s' command
Keith Packard [Wed, 28 Mar 2012 07:38:37 +0000 (00:38 -0700)]
altos: Make sure config values are loaded in 'c s' command

ao_config_get may not have been called when ao_config_show is invoked
by the user, so make sure the config values are loaded before showing
uninitialized data.

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

2 years agoaltosui: Sanity check values from device configuration
Keith Packard [Wed, 28 Mar 2012 05:54:17 +0000 (22:54 -0700)]
altosui: Sanity check values from device configuration

If someone has down-graded and re up-graded the firmware, the config
entries may be garbage. Sanity check them to avoid crashing the UI.

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

2 years agoaltos: Reset config version if it's too large as well
Keith Packard [Wed, 28 Mar 2012 05:53:08 +0000 (22:53 -0700)]
altos: Reset config version if it's too large as well

Any future config values will get trashed if we down grade the
firmware, so we must reset the firmware version whenever it gets
written.

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

2 years agoaltosui: Make 'monitor idle' work with older TeleMetrum firmware (trac #28)
Keith Packard [Wed, 28 Mar 2012 05:02:13 +0000 (22:02 -0700)]
altosui: Make 'monitor idle' work with older TeleMetrum firmware (trac #28)

Older TM firmware did not have the 'done' line at the end of the GPS
report, rather it would just stop after showing the Flags value. Check
the TM version and stop looking for GPS data when the Flags line appears.

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

2 years agoaltosui: Mark data 'Age' in monitor idle UI too
Keith Packard [Wed, 28 Mar 2012 04:49:58 +0000 (21:49 -0700)]
altosui: Mark data 'Age' in monitor idle UI too

Just like with the flight monitor UI, it's nice to know how old the
data in the monitor idle UI is, in case the data link to the TM isn't reliable.

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

2 years agoaltosui: Catch attempt to set radio frequency to 0.0 -- use default
Keith Packard [Wed, 28 Mar 2012 04:48:43 +0000 (21:48 -0700)]
altosui: Catch attempt to set radio frequency to 0.0 -- use default

Monitor idle was setting the frequency to 0, which takes a while with
the new native radio frequency setting code. Don't do that, instead
pull out the preferred frequency for that, as is done in other places
where a frequency of 0.0 is used.

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

2 years agoaltosui: Find actual landing time when computing stats (trac #23)
Keith Packard [Wed, 28 Mar 2012 04:13:31 +0000 (21:13 -0700)]
altosui: Find actual landing time when computing stats (trac #23)

Look for the last time the height went from >10m to <2m from the
nominal landing altitude and use that as the landing time when
computing things like main descent speed, time under main etc.

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

2 years agoaltosui: Change flight data saving UI to separate download/delete selections
Keith Packard [Wed, 28 Mar 2012 01:24:51 +0000 (18:24 -0700)]
altosui: Change flight data saving UI to separate download/delete selections

First pop up a dialog to select flights for download. Download
them. Then, after that, pop up a *new* dialog to select flights for
delete. Offer to delete all of the downloaded flights by default. Then
delete the flights.

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

2 years agoaltos: Optimize ao_freq_to_set a bit
Keith Packard [Wed, 28 Mar 2012 01:19:05 +0000 (18:19 -0700)]
altos: Optimize ao_freq_to_set a bit

Reduces size from 327 bytes to 287 bytes

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

2 years agoaltosui: Show only supported telemetry version
Keith Packard [Tue, 27 Mar 2012 18:58:39 +0000 (11:58 -0700)]
altosui: Show only supported telemetry version

Make it clear in the UI which telemetry versions are supported,
providing the combobox only for new firmware which supports all versions.

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

2 years agoaltosui: Configure radio with new direct frequency setting
Keith Packard [Tue, 27 Mar 2012 17:38:32 +0000 (10:38 -0700)]
altosui: Configure radio with new direct frequency setting

Instead of computing the radio setting in altosui, let the radio do it directly.

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

2 years agoDo radio settings solely by frequency
Keith Packard [Tue, 27 Mar 2012 06:35:35 +0000 (23:35 -0700)]
Do radio settings solely by frequency

Compute the radio setting needed based on the calibration value
provided and the requested frequency.

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

2 years agoaltosui: Use ConcurrentHashMap for maps
Keith Packard [Tue, 27 Mar 2012 05:05:04 +0000 (22:05 -0700)]
altosui: Use ConcurrentHashMap for maps

This data structure is accessed by multiple threads, so it needs to be
re-entrant.

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

2 years agoaltosui: Show time since last packet in flight status window
Keith Packard [Tue, 27 Mar 2012 05:04:13 +0000 (22:04 -0700)]
altosui: Show time since last packet in flight status window

Makes it easy to see when the UI is wedged, and when telemetry data
are being successfully received.

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

2 years agoaltosui: Restructure telemetry classes to be more sane
Keith Packard [Tue, 27 Mar 2012 03:11:34 +0000 (20:11 -0700)]
altosui: Restructure telemetry classes to be more sane

 * Make AltosTelemetryRecord be a class, rather than an interface.

 * Inherit from this for AltosTelemetryRecordLegacy and
   AltosTelemetryRecordRaw.

 * Remove bogus AltosTelemetryRecordGeneral class.

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

2 years agoaltos: Require callsign match in packet code
Keith Packard [Wed, 28 Sep 2011 06:50:43 +0000 (23:50 -0700)]
altos: Require callsign match in packet code

Ignore packets with mismatching callsigns to avoid accidental
connections between devices controlled by different stations.

As a special case, if the device is configured with the default
callsign (N0CALL), then let anyone connect. This allows configuration
of new devices without needing to change the ground station callsign.

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

2 years agodoc: Add companion SPI message protocol doc
Keith Packard [Fri, 13 Jan 2012 18:40:30 +0000 (10:40 -0800)]
doc: Add companion SPI message protocol doc

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

2 years agoupdate turnon_telemetrum to v1.2, add more turnon scripts
Bdale Garbee [Fri, 13 Jan 2012 17:44:23 +0000 (10:44 -0700)]
update turnon_telemetrum to v1.2, add more turnon scripts

2 years agoaltos: Set correct registers for serial0 baud
Keith Packard [Wed, 4 Jan 2012 06:27:59 +0000 (22:27 -0800)]
altos: Set correct registers for serial0 baud

oops. not going to work very well setting serial 1.

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

2 years agoaltos: flush stdout when fifo from arduino serial port is empty
Keith Packard [Wed, 4 Jan 2012 04:46:25 +0000 (20:46 -0800)]
altos: flush stdout when fifo from arduino serial port is empty

This avoids leaving bytes pending inside altos

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

2 years agoBuild teleshield by default
Keith Packard [Wed, 4 Jan 2012 04:42:41 +0000 (20:42 -0800)]
Build teleshield by default

2 years agoaltos: Add support for UART0 in async mode
Keith Packard [Wed, 4 Jan 2012 04:41:15 +0000 (20:41 -0800)]
altos: Add support for UART0 in async mode

And copy bytes from it to stdout.

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

2 years agoaltos: More _asm -> __asm changes
Keith Packard [Fri, 30 Dec 2011 23:42:28 +0000 (15:42 -0800)]
altos: More _asm -> __asm changes

Missed a few last time

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

2 years agoaltos: Clean up for SDCC 3.1 - more keywords
Keith Packard [Fri, 30 Dec 2011 23:38:32 +0000 (15:38 -0800)]
altos: Clean up for SDCC 3.1 - more keywords

_asm -> __asm
sbit -> __sbit
remove variables named 'data'

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

2 years agoaltos: SDCC 3.1 wants __at instead of at
Keith Packard [Fri, 30 Dec 2011 20:27:35 +0000 (12:27 -0800)]
altos: SDCC 3.1 wants __at instead of at

Older SDCC would accept __at, so just replace all occurances unconditionally.

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

2 years agoaltos: Switch teleshield to use radio slave mode
Keith Packard [Tue, 27 Dec 2011 23:47:54 +0000 (15:47 -0800)]
altos: Switch teleshield to use radio slave mode

And bring it up at startup time by default

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

2 years agoaltos: Add teleshield directory and bring-up code
Keith Packard [Tue, 27 Dec 2011 23:37:28 +0000 (15:37 -0800)]
altos: Add teleshield directory and bring-up code

This is cobbled together from various existing bits, but should at
least provide some ability to test a teleshield board.

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

2 years agoaltos: Create TeleMetrum v1.2 directory
Keith Packard [Sun, 18 Dec 2011 01:05:06 +0000 (17:05 -0800)]
altos: Create TeleMetrum v1.2 directory

The hardware is software-compatible with v1.1, but it's nice to have
the right version number in all of the files.

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

2 years agoaltosui: googleearth doesn't accept spaces between coordinates anymore
Keith Packard [Sun, 18 Dec 2011 00:58:04 +0000 (16:58 -0800)]
altosui: googleearth doesn't accept spaces between coordinates anymore

it got pickier for some reason; let's not put spaces in now.

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

2 years agoaltos: Fix pad orientation for pre-1.1 boards
Keith Packard [Mon, 14 Nov 2011 07:03:22 +0000 (23:03 -0800)]
altos: Fix pad orientation for pre-1.1 boards

They use a different code path for accel as they don't have the
VCC compensation code in place.

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

2 years agoaltos: Add startup and config (view only) pages to TT
Keith Packard [Sun, 13 Nov 2011 03:19:40 +0000 (19:19 -0800)]
altos: Add startup and config (view only) pages to TT

The config page needs a pile of work before it's useful.

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

2 years agoaltos: Enable packet master and debug in TT
Keith Packard [Sun, 13 Nov 2011 03:18:53 +0000 (19:18 -0800)]
altos: Enable packet master and debug in TT

The code was already getting linked in, so we might as well use it.

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

2 years agoaltos: Fix sdcdb settings for telemetrum v1.0
Keith Packard [Sun, 13 Nov 2011 03:18:23 +0000 (19:18 -0800)]
altos: Fix sdcdb settings for telemetrum v1.0

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

2 years agoaltos: Trim skytraq NMEA messages. Shrink NMEA header matching code
Keith Packard [Sun, 13 Nov 2011 02:54:14 +0000 (18:54 -0800)]
altos: Trim skytraq NMEA messages. Shrink NMEA header matching code

Tell the skytraq to not bother sending a bunch of the NMEA messages
that we don't parse.

Explicitly look for 'G' follows by 'P' instead of having some general
header matching code.

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

2 years agoaltos: Allow TT/TBT reports to escape landed state
Keith Packard [Sun, 13 Nov 2011 02:52:02 +0000 (18:52 -0800)]
altos: Allow TT/TBT reports to escape landed state

The TM altitude reporting code kept beeping out state and altitude
forever, which isn't very useful on TBT or TT.

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

2 years agoaltos: Remove LCD debugging code
Keith Packard [Sun, 13 Nov 2011 02:51:31 +0000 (18:51 -0800)]
altos: Remove LCD debugging code

This isn't needed anymore.

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

2 years agoaltosui: Add ao_lcd_cursor_on/off
Keith Packard [Sun, 13 Nov 2011 02:51:03 +0000 (18:51 -0800)]
altosui: Add ao_lcd_cursor_on/off

This shows or hides a blinking cursor on the LCD.

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

2 years agoaltos: Add configurable set of channels for TT
Keith Packard [Sun, 13 Nov 2011 02:49:17 +0000 (18:49 -0800)]
altos: Add configurable set of channels for TT

This adds the channel list for TT, which will be configured by
AltosUI.

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

2 years agoaltos: Export 'ao_cmd_is_white' for use by other code
Keith Packard [Sun, 13 Nov 2011 02:48:07 +0000 (18:48 -0800)]
altos: Export 'ao_cmd_is_white' for use by other code

This function tests the current input character.

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

2 years agoaltos: Set default flight log max to 127k on TM v0.1
Keith Packard [Sun, 13 Nov 2011 02:47:08 +0000 (18:47 -0800)]
altos: Set default flight log max to 127k on TM v0.1

The flash part on v0.1 boards is only 128kB.

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

2 years agoaltos: Handle internal and external telem monitoring requests
Keith Packard [Sun, 13 Nov 2011 02:44:36 +0000 (18:44 -0800)]
altos: Handle internal and external telem monitoring requests

Record separate internal vs external monitoring state, allowing
both to happen at the same time, and when either is turned off, the
other keeps working.

This also adds disable/enable so that other radio users can
temporarily take over the radio; monitoring will resume when the other
radio user is finished.

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

2 years agoaltos: Check pdata+xdata memory usage during build
Keith Packard [Sun, 13 Nov 2011 02:37:53 +0000 (18:37 -0800)]
altos: Check pdata+xdata memory usage during build

The sdcc linker doesn't check the sum of pdata+xdata memory usage, it
only ensures that xdata itself is small enough. This doesn't keep
xdata below the end of usable ram on the cc1111 though (0xfe000).

Fix up the check-stack program to also make sure all of xdata fits in
available memory.

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

2 years agoaltos: Set SPI fill value each time it is used.
Keith Packard [Sun, 13 Nov 2011 02:32:49 +0000 (18:32 -0800)]
altos: Set SPI fill value each time it is used.

This ensures that the final MOSI pin value will be high after a
receive is finished.

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

2 years agoaltos: Initialize DMA config address at boot time
Keith Packard [Sun, 13 Nov 2011 02:31:46 +0000 (18:31 -0800)]
altos: Initialize DMA config address at boot time

Instead of resetting these each time a transfer is started, just set
them once at boot time.

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

2 years agoaltos: debounce buttons
Keith Packard [Sun, 13 Nov 2011 02:30:56 +0000 (18:30 -0800)]
altos: debounce buttons

Provide API to clear out any button events that happen during startup,
and then discard button events 'too close' together.

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

2 years agoaltos: Build TeleTerra v0.2 by default
Keith Packard [Sun, 13 Nov 2011 02:29:38 +0000 (18:29 -0800)]
altos: Build TeleTerra v0.2 by default

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

2 years agoaltosui: Deal with serial port exceptions a bit better
Keith Packard [Sun, 13 Nov 2011 02:10:18 +0000 (18:10 -0800)]
altosui: Deal with serial port exceptions a bit better

This catches a few exceptions and tries to make sure the serial port
is closed afterwards.

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

2 years agoaltos: Make ao_xmem funcs require __xdata void * instead of casting
Keith Packard [Sat, 12 Nov 2011 06:30:17 +0000 (22:30 -0800)]
altos: Make ao_xmem funcs require __xdata void * instead of casting

Having an explicit cast in the ao_xmem wrapper macros caused the
compiler to generate garbage values for pdata addresses, making the
upper byte 0x00 instead of the required 0xf0. Removing the
casts from the ao_xmem macros exposed this problem, so a new
PDATA_TO_XDATA macros was added, along with a CODE_TO_XDATA macro
which serve to cast pointers, with suitable address modifications, so
that things work again.

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

2 years agoaltosui: Make UI Look&Feel configurable
Keith Packard [Sat, 12 Nov 2011 06:24:22 +0000 (22:24 -0800)]
altosui: Make UI Look&Feel configurable

Saves the preferred style and uses that for all current and new windows.

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

2 years agoaltos: Shrink Skytraq NMEA parsing - common nmea_finish code
Keith Packard [Sat, 12 Nov 2011 01:18:08 +0000 (17:18 -0800)]
altos: Shrink Skytraq NMEA parsing - common nmea_finish code

This shares the checksum testing across all three lines, saving
another 103 bytes.

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

2 years agoaltos: shrink Skytraq NMEA parsing more
Keith Packard [Sat, 12 Nov 2011 01:11:39 +0000 (17:11 -0800)]
altos: shrink Skytraq NMEA parsing more

This cuts another 78 bytes

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

2 years agoaltos: Shrink code size of Skytraq NMEA parser
Keith Packard [Sat, 12 Nov 2011 00:54:18 +0000 (16:54 -0800)]
altos: Shrink code size of Skytraq NMEA parser

Just mess around with the code to make it smaller. These patches save
173 bytes.

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

2 years agoaltos: A bunch of missing .gitignore files (mostly)
Keith Packard [Thu, 27 Oct 2011 08:01:11 +0000 (01:01 -0700)]
altos: A bunch of missing .gitignore files (mostly)

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

2 years agoaltos: Add i2c driver for avr chip
Keith Packard [Thu, 27 Oct 2011 07:57:45 +0000 (00:57 -0700)]
altos: Add i2c driver for avr chip

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

2 years agoaltosui: Only update GPS data when new GPS information arrives
Keith Packard [Thu, 27 Oct 2011 07:49:23 +0000 (00:49 -0700)]
altosui: Only update GPS data when new GPS information arrives

Track which telemetry packets are actually producing new GPS
information and only update the GPS average position and count of
stable GPS reports with new GPS info, instead of on every telemetry packet.

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

2 years agoaltos: Fix distance/bearing computations. Deal with large values
Keith Packard [Thu, 27 Oct 2011 07:35:35 +0000 (00:35 -0700)]
altos: Fix distance/bearing computations. Deal with large values

Lots of little math errors dealing with large distances; easily tested
as the GPS currently reports lat 24 lon 121, which is a long ways from
Portland.

Now reports distances in km when large, otherwise in m.

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

3 years agoaltos: Bring up basic TeleTerra v0.2 UI multiarch
Keith Packard [Thu, 27 Oct 2011 05:49:11 +0000 (22:49 -0700)]
altos: Bring up basic TeleTerra v0.2 UI

Lots of fun stuff here -- multiple panes of information.

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

3 years agoaltos: Flip button IRQ initialization around
Keith Packard [Sun, 23 Oct 2011 22:24:02 +0000 (15:24 -0700)]
altos: Flip button IRQ initialization around

This matches what the docs suggest

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

3 years agoaltos: Fix battery voltage computation.
Keith Packard [Sun, 23 Oct 2011 22:20:50 +0000 (15:20 -0700)]
altos: Fix battery voltage computation.

Full scale is 4.95V, not 3.333V.

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

3 years agoaltos: Add battery voltage sampling driver
Keith Packard [Sun, 23 Oct 2011 21:51:32 +0000 (14:51 -0700)]
altos: Add battery voltage sampling driver

For devices without a full ADC compliment, this just samples the
battery pin and converts to mV.

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

3 years agoaltos: Add button driver and sample user
Keith Packard [Sun, 23 Oct 2011 21:08:59 +0000 (14:08 -0700)]
altos: Add button driver and sample user

Hook up the teleterra buttons and have them beep

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