| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
This ensures that the final MOSI pin value will be high after a
receive is finished.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
This shares the checksum testing across all three lines, saving
another 103 bytes.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
This cuts another 78 bytes
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Just mess around with the code to make it smaller. These patches save
173 bytes.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
Lots of fun stuff here -- multiple panes of information.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
This matches what the docs suggest
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Full scale is 4.95V, not 3.333V.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
Hook up the teleterra buttons and have them beep
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Initialize the flash storage and flight state reporting beeper.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Initialize the LCD for testing.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Come up in pad mode unless someone talks to us while in idle mode.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
This is an alternate firmware load for telemetrum v1.1.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Make all monitoring programs define whether they want all of the old
telemetry formats too.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
This includes most of the necessary drivers.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
This is required for all cc1111 builds now; it provides xdata string
functions.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
The arch-specific section just puts a single nibble to the device.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
TeleScience and TelePyro now work.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
This is useful for debugging the SPI and flash drivers, but not
necessary in production code.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
The stack used during system initialization lives at the top of RAM,
so leave some space for that.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Not that we have any way of knowing how much stack we're using, but at
least this seems to work.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
This is mostly for debugging with flash writes disabled.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
This allows products to include the 'w' command for testing flash
writing as needed.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
I don't know why this is necessary, but the receive buffer gets
'extra' data added somehow.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
This makes the board work even when disconnected from TeleMetrum.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
This code was left in a bit of a mess; just clean it up.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
The USART is used for SPI to talk to the flash part.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Wrap the argument to ao_arch_critical in do { } while (0); to make
sure it gets correctly checked as a statement.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Cleans up the formating a bit.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
| |
SPI transactions generally require a read followed by a write, with
the chip select held the whole time. As a result, the SPI bus must be
held across multiple transactions. To make this reliable, the caller
must hold the SPI mutex, instead of the underlying SPI driver.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
Instead of waiting for the previous telemetry interval to expire,
immediately switch to the new telemetry rate. This will provide
more telemetry data early in the boost.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
v1.0 boards have noisy accelerometer data caused by interactions
between RF transmission and the accelerometer measurements; this noise
generates a negative bias in the accelerometer readings. The net
effect is that the estimated speed is lower than the actual speed,
causing early an apogee estimate.
By increasing the sigma value for accelerometer data, the kalman
filter 'trusts' the acceleration data less, putting more weight on the
barometer data. This causes the estimated time of apogee to be closer
to the correct value.
This reduces the response to changes in acceleration.
This new value is applied solely to TeleMetrum v1.0 boards. v1.1
boards correct for this error, and hence can use the correct sigma
value for the accelerometer.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
An ejection charge looks an awful lot like an extra (really small)
motor burn. Ignore them by averaging the acceleration during
fast/coast using a /64 exponential decay filter.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These are significantly smaller than the general pointer versions from
libc on the cc1111.
Signed-off-by: Keith Packard <keithp@keithp.com>
Conflicts:
src/Makefile.proto
src/cc1111/ao_adc.c
src/cc1111/ao_packet_master.c
src/core/ao.h
Fix up the new makefiles
|
|\
| |
| |
| |
| |
| |
| | |
Conflicts:
configure.ac
fix version number
|
| |
| |
| |
| |
| |
| |
| | |
Hold the radio mutex while firing igniters to reduce potential
interactions between the two.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| |
| |
| |
| |
| |
| |
| | |
Instead of immediately trying to send RDF at apogee, start it after
the usual RDF interval to avoid doing RDF while firing the apogee igniter.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/core/ao_cmd.c
Use ao_arch_reboot after waiting for a second
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Leave the packet link disabled until we've checked the
accelerometer. That way, we cannot accidentally get to idle mode when
the rocket is on the rail.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
TM and Tm go into idle mode if they receive a packet after boot
time. When tebooting the device over the packet link, the packet
master would be (rapidly) polling the device for additional data and
so the device would invariably receive a packet during bootup and go
into idle mode again.
Delay the reboot by a second to give the controller time to disable
the master end of the packet link.
Signed-off-by: Keith Packard <keithp@keithp.com>
|