fw/altos
3 years agoaltos: Remove ao_led_toggle API from general code
Keith Packard [Sat, 8 Aug 2020 01:17:07 +0000 (18:17 -0700)]
altos: Remove ao_led_toggle API from general code

The generic implementation would need to record LED status as it
cannot be read back from the device on most hardware. Just get rid of
it and let attiny keep its implementation (which does work).

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoao-tools: Add TeleGPS log parsing to ao-eeprom
Keith Packard [Sat, 8 Aug 2020 01:15:47 +0000 (18:15 -0700)]
ao-tools: Add TeleGPS log parsing to ao-eeprom

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos: add noreturn attribute to ao_panic
Keith Packard [Thu, 6 Aug 2020 17:44:49 +0000 (10:44 -0700)]
altos: add noreturn attribute to ao_panic

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos/stm32l0: Add LPUART driver
Keith Packard [Thu, 6 Aug 2020 05:32:14 +0000 (22:32 -0700)]
altos/stm32l0: Add LPUART driver

This is a simpler UART which micropeak has connected to the LED and
we'll use for transmitting the log on power up

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos/stm32l0: Provide ao_spi_speed inline as per new clocking API
Keith Packard [Thu, 6 Aug 2020 00:17:47 +0000 (17:17 -0700)]
altos/stm32l0: Provide ao_spi_speed inline as per new clocking API

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos/micropeak-v2.0: Finish hardware bring-up
Keith Packard [Tue, 23 Jun 2020 23:22:21 +0000 (16:22 -0700)]
altos/micropeak-v2.0: Finish hardware bring-up

All of the hardware is working:

 * serial
 * SPI
 * ms56067
 * ADC
 * flash
 * clocking
 * timer

Now we just need an application

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos/stm32l0: Add adc and flash drivers
Keith Packard [Tue, 23 Jun 2020 23:21:57 +0000 (16:21 -0700)]
altos/stm32l0: Add adc and flash drivers

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos/stm32l0: Remove some unused code in ao_timer.c
Keith Packard [Tue, 23 Jun 2020 23:21:26 +0000 (16:21 -0700)]
altos/stm32l0: Remove some unused code in ao_timer.c

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos/stm32l0: Remove some unused code in USART driver
Keith Packard [Tue, 23 Jun 2020 23:20:56 +0000 (16:20 -0700)]
altos/stm32l0: Remove some unused code in USART driver

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos/stm32l0: Get exti working
Keith Packard [Tue, 23 Jun 2020 23:20:26 +0000 (16:20 -0700)]
altos/stm32l0: Get exti working

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos/stm32l0: Get SPI driver working
Keith Packard [Tue, 23 Jun 2020 23:19:47 +0000 (16:19 -0700)]
altos/stm32l0: Get SPI driver working

This isn't using DMA, but it seems to work now.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos/stm32l0: Some device addrs were wrong
Keith Packard [Tue, 23 Jun 2020 23:19:11 +0000 (16:19 -0700)]
altos/stm32l0: Some device addrs were wrong

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos/stm32l0: More DMA fixes
Keith Packard [Tue, 23 Jun 2020 23:18:27 +0000 (16:18 -0700)]
altos/stm32l0: More DMA fixes

This code still doesn't work, but it should be closer'

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos: Micropeak v2.0 doesn't have a flash loader anymore
Keith Packard [Tue, 23 Jun 2020 23:17:03 +0000 (16:17 -0700)]
altos: Micropeak v2.0 doesn't have a flash loader anymore

The current version doesn't have USB, so the existing flash loader
protocol won't work anyways.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos/ao_storage: Allow apps to #define storage parameters
Keith Packard [Tue, 23 Jun 2020 23:16:28 +0000 (16:16 -0700)]
altos/ao_storage: Allow apps to #define storage parameters

This avoids placing them in RAM.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos/ao_storage: allow erased byte value to be set by application
Keith Packard [Tue, 23 Jun 2020 23:15:28 +0000 (16:15 -0700)]
altos/ao_storage: allow erased byte value to be set by application

External flash is usually 0xff for erased bytes, but other memory may
use different values

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoremove ao_delay_until from ao.h
Keith Packard [Tue, 23 Jun 2020 23:15:14 +0000 (16:15 -0700)]
remove ao_delay_until from ao.h

3 years agoaltos: Add ao_delay_until to ao_notask
Keith Packard [Tue, 23 Jun 2020 00:42:03 +0000 (17:42 -0700)]
altos: Add ao_delay_until to ao_notask

Used on micropeak

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos: Move empty ao_mutex_get/put to ao_notask.h
Keith Packard [Tue, 23 Jun 2020 00:41:11 +0000 (17:41 -0700)]
altos: Move empty ao_mutex_get/put to ao_notask.h

Make it work on any no-task project.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos: Declare ao_delay_until API in ao.h
Keith Packard [Sat, 20 Jun 2020 22:15:35 +0000 (15:15 -0700)]
altos: Declare ao_delay_until API in ao.h

This uses AO_TICK_TYPE which isn't defined until we get to ao.h

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos: Switch micropeak v2.0 to stm32l0
Keith Packard [Sat, 20 Jun 2020 22:14:26 +0000 (15:14 -0700)]
altos: Switch micropeak v2.0 to stm32l0

The stm32f042 takes too much power for micropeak. Try the stm32l0
instead.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos: Add initial stm32l0 support
Keith Packard [Sat, 20 Jun 2020 22:13:09 +0000 (15:13 -0700)]
altos: Add initial stm32l0 support

A low-power cortex M0 chip for MicroPeak v2.0

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos: Fix a bunch of time variables to be AO_TICK_TYPE
Keith Packard [Sat, 20 Jun 2020 22:00:28 +0000 (15:00 -0700)]
altos: Fix a bunch of time variables to be AO_TICK_TYPE

The default tick type is now 32 bits, so all of these
variables were mis-typed at 16 bits.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos/stm: Fix stack validation code
Keith Packard [Sat, 8 Aug 2020 03:08:34 +0000 (20:08 -0700)]
altos/stm: Fix stack validation code

This is not included by default, and broke at some point.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agodoc: EasyMotor and EasyTimer have the same mounting geometry as EasyMini
Bdale Garbee [Mon, 3 Aug 2020 18:43:22 +0000 (12:43 -0600)]
doc: EasyMotor and EasyTimer have the same mounting geometry as EasyMini

3 years agoaltos/stmf0, stm32f0: Call ao_boot_chain to start application
Keith Packard [Mon, 3 Aug 2020 00:29:44 +0000 (17:29 -0700)]
altos/stmf0, stm32f0: Call ao_boot_chain to start application

This used to be done inside ao_boot_check_chain or ao_boot_check_pin,
but it made more sense to have it done in _start instead. stm and lpc
were adjusted, but stmf0 and stm32f4 were missed.

This caused boards using this process to wedge in the boot loader.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltosui: Re-set pad orientation labels after product name is set
Keith Packard [Sun, 2 Aug 2020 20:31:58 +0000 (13:31 -0700)]
altosui: Re-set pad orientation labels after product name is set

We don't know what product is being configured until after we query
the configuration, which means we need to re-set the orientation label
once that has been fetched.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos: Use new ao_spi_speed inline to set SPI speeds using spec'd frequencies
Keith Packard [Wed, 29 Jul 2020 17:53:39 +0000 (10:53 -0700)]
altos: Use new ao_spi_speed inline to set SPI speeds using spec'd frequencies

Instead of hand-adjusting SPI speeds for each driver and product based
on processor supported rates, create an inline function that takes the
maximum frequency supported by the device and maps that to a value
supported by the SoC. This ensures that we don't accidentally drive devices
faster than they want (as could happen with AO_SPI_SPEED_FAST), but do go
as fast as possible in every configuration. Using an inline function means
the value is computed at compile time.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos: Support flash parts > 8MB
Keith Packard [Wed, 29 Jul 2020 06:44:33 +0000 (23:44 -0700)]
altos: Support flash parts > 8MB

The number of sectors (64kB) units in the connected flash
part can be larger than 255, so switch from 8-bits to 32-bits for
holding this value.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos: Protect shared storage_data with mutex
Keith Packard [Wed, 29 Jul 2020 06:43:04 +0000 (23:43 -0700)]
altos: Protect shared storage_data with mutex

As storage_data is shared between all threads, protect it
with a mutex to avoid collisions.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos/stm: Increase MISO DMA priority to very high
Keith Packard [Wed, 29 Jul 2020 06:40:36 +0000 (23:40 -0700)]
altos/stm: Increase MISO DMA priority to very high

We're still losing incoming bytes in full duplex mode.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoMerge branch 'master' of ssh://git.gag.com/scm/git/fw/altos
Bdale Garbee [Wed, 22 Jul 2020 21:23:02 +0000 (15:23 -0600)]
Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altos

3 years agoao-bringup: ensure TeleMega turnon scripts are using the right test versions
Bdale Garbee [Wed, 22 Jul 2020 21:22:21 +0000 (15:22 -0600)]
ao-bringup: ensure TeleMega turnon scripts are using the right test versions

3 years agoaltos: Add 'booster' mode for dual-deploy igniters
Keith Packard [Wed, 22 Jul 2020 16:04:30 +0000 (09:04 -0700)]
altos: Add 'booster' mode for dual-deploy igniters

Booster mode triggers the 'main' channel at first motor burnout
allowing the use of a simple flight computer in the booster while
providing both a separation charge and an apogee event for recovery.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos: Use state transitions to directly drive igniters
Keith Packard [Wed, 22 Jul 2020 15:57:05 +0000 (08:57 -0700)]
altos: Use state transitions to directly drive igniters

Instead of a separate igniter API, have the igniter code monitor
flight state changes to trigger igniter events. This simplifes the
code while allowing further changes in the igniter code.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoReleasing: save .map files too
Keith Packard [Wed, 22 Jul 2020 15:56:10 +0000 (08:56 -0700)]
Releasing: save .map files too

These are useful to debug issues with linker scripts or library problems

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoAdd support for TLS if needed
Keith Packard [Thu, 16 Jul 2020 17:23:34 +0000 (10:23 -0700)]
Add support for TLS if needed

Define USE_TLS if you want TLS support from altos.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltosui: Spurious ; in altos-windows.nsi.in kept out TM v3.0 ihx
Keith Packard [Thu, 16 Jul 2020 16:29:52 +0000 (09:29 -0700)]
altosui: Spurious ; in altos-windows.nsi.in kept out TM v3.0 ihx

Looks like a semicolon got stuck in this file, which commented out the
TeleMetrum v3.0 firmware from being included in the windows build

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoVersion 1.9.4
Keith Packard [Thu, 2 Jul 2020 22:26:10 +0000 (15:26 -0700)]
Version 1.9.4

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agodoc: Doc updates for 1.9.4
Keith Packard [Thu, 2 Jul 2020 22:18:56 +0000 (15:18 -0700)]
doc: Doc updates for 1.9.4

Add release notes

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos: Make AO_STORAGE_TEST use a separate buffer
Keith Packard [Thu, 2 Jul 2020 22:24:01 +0000 (15:24 -0700)]
altos: Make AO_STORAGE_TEST use a separate buffer

The storage test code needs a buffer which can hold an entire erase
block from memory, which means 256 bytes.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos: Reduce flash temp buffer to make space for Em v1.0 ISR stack
Keith Packard [Thu, 2 Jul 2020 22:11:42 +0000 (15:11 -0700)]
altos: Reduce flash temp buffer to make space for Em v1.0 ISR stack

EasyMini has limited RAM; small enough that increasing the size of the
storage buffer from 128 to 256 bytes left too little space at the top
of memory for the interrupt stack, causing EasyMini v1.0 to crash at
boot.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoAdd telemetrum v3.0 firmware to release
Keith Packard [Tue, 23 Jun 2020 00:33:08 +0000 (17:33 -0700)]
Add telemetrum v3.0 firmware to release

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoao-bringup: first cut at turn-on scripts for EasyTimer v1
Bdale Garbee [Tue, 16 Jun 2020 18:28:39 +0000 (12:28 -0600)]
ao-bringup: first cut at turn-on scripts for EasyTimer v1

3 years agoVersion 1.9.3
Keith Packard [Tue, 16 Jun 2020 02:11:49 +0000 (19:11 -0700)]
Version 1.9.3

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agodoc: Update doc for 1.9.3
Keith Packard [Sun, 14 Jun 2020 05:50:40 +0000 (22:50 -0700)]
doc: Update doc for 1.9.3

Add release notes.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoUpdate 1.9.3 release notes
Keith Packard [Sun, 14 Jun 2020 04:37:44 +0000 (21:37 -0700)]
Update 1.9.3 release notes

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos: Leave floating printf enabled on m3 devices
Keith Packard [Sun, 14 Jun 2020 07:04:31 +0000 (00:04 -0700)]
altos: Leave floating printf enabled on m3 devices

These devices all use floating point computations, so leave the
floating point printf included in case they print one of those
values. If we run short on flash space, we can switch back.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos: Fix printf format mis-matches
Keith Packard [Sun, 14 Jun 2020 06:39:00 +0000 (23:39 -0700)]
altos: Fix printf format mis-matches

Lots of values passed to printf are 'long' instead of 'int', so
fix the formats to use the right size indicator.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos: Remove newlib-nano defines from Makedefs.in
Keith Packard [Sun, 14 Jun 2020 06:36:13 +0000 (23:36 -0700)]
altos: Remove newlib-nano defines from Makedefs.in

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos/test: Ignore ao_flight_test_mini binary
Keith Packard [Sun, 14 Jun 2020 06:13:35 +0000 (23:13 -0700)]
altos/test: Ignore ao_flight_test_mini binary

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agomap-server: Manifest files are generated now
Keith Packard [Sun, 14 Jun 2020 06:12:55 +0000 (23:12 -0700)]
map-server: Manifest files are generated now

Ignore in .gitignore
Remove in 'make clean'

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoAdd EasyTimer firmware to packages and Releasing
Keith Packard [Sun, 14 Jun 2020 06:11:49 +0000 (23:11 -0700)]
Add EasyTimer firmware to packages and Releasing

Make sure we include EasyTimer bits where required

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoCheck for picolibc when testing arm compilers
Keith Packard [Sun, 14 Jun 2020 06:09:54 +0000 (23:09 -0700)]
Check for picolibc when testing arm compilers

Remove configuration checks for newlib as picolibc doesn't need
separate configuration variables.

Make sure test program actually links as this tests to make sure
picolibc is working.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agodoc: Update for EasyTimer
Keith Packard [Sun, 14 Jun 2020 05:40:42 +0000 (22:40 -0700)]
doc: Update for EasyTimer

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agodoc: Avoid mis-interpretation of '+' in device wiring tables
Keith Packard [Sun, 14 Jun 2020 05:39:35 +0000 (22:39 -0700)]
doc: Avoid mis-interpretation of '+' in device wiring tables

Looks like asciidoctor does something magic with '+' characters in
table contents. Avoid this by using +++. Sigh.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos: Fix HAS_FLIGHT_DEBUG for easytimer
Keith Packard [Tue, 9 Jun 2020 18:48:17 +0000 (11:48 -0700)]
altos: Fix HAS_FLIGHT_DEBUG for easytimer

Remove baro-specific bits of the debug output when
there's no barometer.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos: Don't include baro-specific config values for easytimer
Keith Packard [Tue, 9 Jun 2020 18:47:22 +0000 (11:47 -0700)]
altos: Don't include baro-specific config values for easytimer

These settings aren't used on easytimer, so don't include them in the
configuration system. This makes sure they don't appear in altosui.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltosui: Remove six-axis pad orientation for easy timer
Keith Packard [Tue, 9 Jun 2020 18:46:31 +0000 (11:46 -0700)]
altosui: Remove six-axis pad orientation for easy timer

Wait until easytimer actually has six-axis support

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltoslib: Fix easytimer voltage conversions
Keith Packard [Tue, 9 Jun 2020 18:45:53 +0000 (11:45 -0700)]
altoslib: Fix easytimer voltage conversions

Battery and pyros all use the same circuit (100k/27k).

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoAdd some release note notes
Keith Packard [Tue, 9 Jun 2020 05:08:28 +0000 (22:08 -0700)]
Add some release note notes

3 years agoaltoslib: Add EasyTimer idle monitor support
Keith Packard [Tue, 9 Jun 2020 03:55:28 +0000 (20:55 -0700)]
altoslib: Add EasyTimer idle monitor support

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoAdd EasyTimer configuration support
Keith Packard [Sat, 6 Jun 2020 00:15:10 +0000 (17:15 -0700)]
Add EasyTimer configuration support

Needed six-axis pad orientation support

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos: Leave accel data in ring raw; swap for orientation on fetch
Keith Packard [Tue, 9 Jun 2020 04:26:23 +0000 (21:26 -0700)]
altos: Leave accel data in ring raw; swap for orientation on fetch

Instead of re-writing the acceleration data in the ring to adjust for
pad orientation, just leave it alone and flip it each time it is
fetched. Much simpler this way.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos: Handle flight_log_max not being multiple of ao_storage_block
Keith Packard [Tue, 9 Jun 2020 04:05:17 +0000 (21:05 -0700)]
altos: Handle flight_log_max not being multiple of ao_storage_block

In this case, flight records start in the middle of an erase block, but
now end at the erase block before the next flight.

When checking for an empty log slot, the entire erase block containing
the start of the flight is checked to make sure it's clear, skipping
it if not.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos: Round selected log size down to ao_storage_block multiple
Keith Packard [Tue, 9 Jun 2020 04:03:31 +0000 (21:03 -0700)]
altos: Round selected log size down to ao_storage_block multiple

There was some (broken) code that complained if the value set wasn't
correct, that has been replaced by code that accepts any value and
just rounds it down to a multiple of ao_storage_block. The code also
stops complaining when set to the current value when storage isn't
empty.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos: Move ao_storage_erase to shared code. Add len
Keith Packard [Tue, 9 Jun 2020 04:01:31 +0000 (21:01 -0700)]
altos: Move ao_storage_erase to shared code. Add len

This makes ao_storage_erase take an arbitrary length. The new version
erases each storage block if there's any un-erased data present, and
then also checks after erasing to make sure the block is clear.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltosui: Adjust max log setting for storage block size
Keith Packard [Tue, 9 Jun 2020 03:52:09 +0000 (20:52 -0700)]
altosui: Adjust max log setting for storage block size

Need to round log sizes down to a multiple of the block size so that
erasing works sensibly on the device.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltoslib: Remember flight list in AltosConfigData
Keith Packard [Tue, 9 Jun 2020 03:49:42 +0000 (20:49 -0700)]
altoslib: Remember flight list in AltosConfigData

Do this instead of having to re-fetch and re-parse in AltosEepromList

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos: Initialize pyro code for easytimer-v1
Keith Packard [Thu, 28 May 2020 23:45:00 +0000 (16:45 -0700)]
altos: Initialize pyro code for easytimer-v1

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoeasytimer-v1: Enable pyro commands
Keith Packard [Thu, 28 May 2020 23:23:44 +0000 (16:23 -0700)]
easytimer-v1: Enable pyro commands

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos: Fix ao_ignite.c to work without HAS_IGNITE
Keith Packard [Thu, 28 May 2020 23:23:09 +0000 (16:23 -0700)]
altos: Fix ao_ignite.c to work without HAS_IGNITE

Need to register commands even if HAS_IGNITE is not set

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos: Build easytimer-v1 by default
Keith Packard [Thu, 28 May 2020 22:48:16 +0000 (15:48 -0700)]
altos: Build easytimer-v1 by default

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos: add easytimer-v1 source directory
Bdale Garbee [Wed, 8 Apr 2020 19:43:22 +0000 (13:43 -0600)]
altos: add easytimer-v1 source directory

3 years agoaltos: Allow flight support without logging
Keith Packard [Thu, 28 May 2020 23:03:23 +0000 (16:03 -0700)]
altos: Allow flight support without logging

EasyTimer flies rockets, but doesn't have SPI flash for logging.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos: Allow BMX160 to be used as primary accel
Keith Packard [Thu, 28 May 2020 23:02:54 +0000 (16:02 -0700)]
altos: Allow BMX160 to be used as primary accel

EasyTimer doesn't have a high-g part.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos: Allow igniter status beeping with only 'extra' channels
Keith Packard [Thu, 28 May 2020 23:01:45 +0000 (16:01 -0700)]
altos: Allow igniter status beeping with only 'extra' channels

EasyTimer doesn't have main/apogee charges.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos: Allow accel-only flight code
Keith Packard [Tue, 13 Aug 2019 00:00:47 +0000 (17:00 -0700)]
altos: Allow accel-only flight code

EasyTimer won't have a baro sensor, so we need some way to track at least
the ascent part of a flight.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos: Allow MPU9250 SPI speed to be set by application
Keith Packard [Thu, 28 May 2020 23:00:04 +0000 (16:00 -0700)]
altos: Allow MPU9250 SPI speed to be set by application

Rather than requiring 1MHz

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoao-tools/ao-usbload: stubs in man page for missing options
Keith Packard [Thu, 9 Apr 2020 00:20:23 +0000 (17:20 -0700)]
ao-tools/ao-usbload: stubs in man page for missing options

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoMark stm_interrupt_vector as const so it is READONLY
Keith Packard [Mon, 4 May 2020 18:58:54 +0000 (11:58 -0700)]
Mark stm_interrupt_vector as const so it is READONLY

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoaltos: Move from newlib-nano to picolibc
Keith Packard [Mon, 16 Sep 2019 00:05:17 +0000 (17:05 -0700)]
altos: Move from newlib-nano to picolibc

Use picolibc.ld, which involved some .ld file hacking, including:

 1) Defining ao_boot RAM address in the .ld file and declaring it 'extern'
 2) Changing how m0 interrupt vector got moved to ram
 3) Using -Taltos.ld instead of -Wl,-Taltos.ld so picolibc.specs wouldn't add picolibc.ld
 4) Placing romconfig vars in '.init.1' and '.init.2' sections instead of '.romconfig'
 5) Place code needing to run out of RAM in section .srodata instead of .ramtext

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoignore .map files
Keith Packard [Mon, 4 May 2020 17:36:41 +0000 (10:36 -0700)]
ignore .map files

3 years agoaltos/lpc: Add explicit defines for all register groups
Keith Packard [Mon, 4 May 2020 03:01:14 +0000 (20:01 -0700)]
altos/lpc: Add explicit defines for all register groups

This lets the compiler see the constant address, rather than
having the linker stick it in later.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agoCreate map file for all programs
Keith Packard [Mon, 4 May 2020 17:35:23 +0000 (10:35 -0700)]
Create map file for all programs

3 years agoaltos/stm: Make ao_eeprom_total a #define instead of a const variable
Keith Packard [Mon, 4 May 2020 01:31:19 +0000 (18:31 -0700)]
altos/stm: Make ao_eeprom_total a #define instead of a const variable

This is unused outside of ao_eeprom_stm.c, and as global const takes
up space in flash.

Signed-off-by: Keith Packard <keithp@keithp.com>
3 years agopoint turnon_telemetrum_v2 to correct test script for v2.0
Bdale Garbee [Thu, 14 May 2020 18:44:27 +0000 (12:44 -0600)]
point turnon_telemetrum_v2 to correct test script for v2.0

4 years agoao-tools: Declare ao_verbose as extern in shared header.
Keith Packard [Fri, 17 Apr 2020 19:53:47 +0000 (12:53 -0700)]
ao-tools: Declare ao_verbose as extern in shared header.

gcc-10 disables 'common' behavior by defaul, so we need to only define
variables in one location now.

Signed-off-by: Keith Packard <keithp@keithp.com>
4 years agoao-tools: Use array indexing instead of addition to make gcc-10 happy
Keith Packard [Fri, 17 Apr 2020 19:51:13 +0000 (12:51 -0700)]
ao-tools: Use array indexing instead of addition to make gcc-10 happy

A struct with a trailing zero-length array (for variable-length data) is
treated as a zero-sized object when doing pointer arithmetic, but treated
correctly when treated as an array. This generates a warning from gcc-10

load->data + address - load->address

while this, which is 'the same', does not:

&load->data[address - load->address]

Signed-off-by: Keith Packard <keithp@keithp.com>
4 years agoStart release notes for 1.9.4 bdale-easytimer
Keith Packard [Thu, 26 Mar 2020 17:09:51 +0000 (10:09 -0700)]
Start release notes for 1.9.4

4 years agoaltosui: Report baro ground alt for 'Pad Altitude' when GPS missing
Keith Packard [Thu, 26 Mar 2020 17:01:48 +0000 (10:01 -0700)]
altosui: Report baro ground alt for 'Pad Altitude' when GPS missing

The 'Pad Altitude' field in the pad tab of AltosUI was originally one
of three fields designed to report the GPS position of the pad. When
TeleMini was added, the code was updated to separate the lat/lon from
altitude display, but the pad_alt field in AltosState used for that
was still only computed from GPS data.

This fix gets rid of the confusing 'pad_alt' field in AltosState and
has the 'Pad Altitude' data select either GPS ground altitude or baro
ground altitude, depending on whether GPS data is available.

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

4 years agomap-server: Create Manifest.txt at build time
Keith Packard [Sun, 22 Mar 2020 04:13:08 +0000 (21:13 -0700)]
map-server: Create Manifest.txt at build time

This ensures the libraries have the right names

Signed-off-by: Keith Packard <keithp@keithp.com>
4 years agodoc: start release notes for 1.9.3
Keith Packard [Thu, 5 Mar 2020 02:52:35 +0000 (18:52 -0800)]
doc: start release notes for 1.9.3

Signed-off-by: Keith Packard <keithp@keithp.com>
4 years agodoc: Document APRS offset configuration value
Keith Packard [Thu, 5 Mar 2020 02:51:00 +0000 (18:51 -0800)]
doc: Document APRS offset configuration value

Update screen shots including this as well.

Signed-off-by: Keith Packard <keithp@keithp.com>
4 years agoaltoslib, altosui, telegps: Add configuration support for APRS offset
Keith Packard [Thu, 5 Mar 2020 02:23:14 +0000 (18:23 -0800)]
altoslib, altosui, telegps: Add configuration support for APRS offset

Configure the position within each minute that APRS transmissions
occur

Signed-off-by: Keith Packard <keithp@keithp.com>
4 years agoaltos: add APRS 'offset' value to set APRS transmision time
Keith Packard [Thu, 5 Mar 2020 01:26:49 +0000 (17:26 -0800)]
altos: add APRS 'offset' value to set APRS transmision time

This value is the offset from the top of the minute for the first APRS
packet in the minute. Subsequent packets will be transmitted
'interval' seconds apart for the rest of the minute.

This allows multiple transmitters to be configured to share the same
frequency and not transmit at the same time.

Note that this offset only works when the device has GPS lock.

Signed-off-by: Keith Packard <keithp@keithp.com>
4 years agoMerge branch 'master' of ssh://git.gag.com/scm/git/fw/altos
Bdale Garbee [Wed, 26 Feb 2020 06:55:29 +0000 (23:55 -0700)]
Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altos

4 years agoBump version to 1.9.2, android 27
Keith Packard [Wed, 26 Feb 2020 01:08:58 +0000 (17:08 -0800)]
Bump version to 1.9.2, android 27

Signed-off-by: Keith Packard <keithp@keithp.com>
4 years agoBump java lib versions in preparation for 1.9.2
Keith Packard [Wed, 26 Feb 2020 01:07:15 +0000 (17:07 -0800)]
Bump java lib versions in preparation for 1.9.2

Quite a few changes; let's bump the version so we don't end up with
the wrong version on some machine.

Signed-off-by: Keith Packard <keithp@keithp.com>
4 years agolibaltos: Create altos_pause_one_second API
Keith Packard [Wed, 26 Feb 2020 06:51:54 +0000 (22:51 -0800)]
libaltos: Create altos_pause_one_second API

This is to wait for the reading thread to stop using the file object
while cleaning up.

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