| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
|
|
|
|
|
|
|
| |
This turns on telemetry, APRS, RDF and data logging for telegps.
Data is logged as soon as GPS has a date to create the right
filename, using files of the form YYYYMMDD.LOG which just barely fits
in a FAT filename.
Telemetry/RDF/APRS are all separately controllable.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This involved figuring out which GPIO signal would reliably indicate
that the transmitter was finished; I ended up using the PA_PD bit for
this.
This also converts all of the radio users to the long packet support
as the CC115L has only a 64-byte fifo, not large enough to hold either
an RDF tone or a regular AltOS telemetry packet.
This also renames the public API for sending APRS packets from
ao_radio_send_lots to ao_radio_send_aprs, which is at least more
accurate. The workings of that API haven't changed, just the name.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
|
| |
These expose the raw cc115l and rfpa0133 register settings so that we
can calibrate them against measured power outputs.
I've tested them to verify that they change how much power the board
consumes, so they're clearly doing something...
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Allow the bufio code to signal a fatal error if someone misuses the API
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Use the new radio recv define to skip disabling the receiver when
there isn't a receiver.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
The CC115L is xmit only, so split out the functions and provide
defines to check for xmit or recv separately as needed.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
No configuration of power level yet, just the bare driver.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Made the interface use void * for pointers and uint16_t for lengths
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
This gets the long-term averages for the 6dof sensors recorded into
the first flight log record.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Having long-term ground averages recorded to the eeprom file will make
post-flight analysis of the data better.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|\ |
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We need 32 bits to hold intermediate values, even if the final
altitude is reported in only 16 bits.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This provides a separate configuration value for APRS, allowing the
interval between APRS reports to vary.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|\| | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
AO_READ_AGAIN doesn't fit in a char anymore now that stdio is 8-bit
clean, everyone using pollchar must use an 'int' variable to capture
the whole value from pollchar.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Avoids ambiguity with stored flight info, which starts lines with 'flight'.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Each printf call costs quite a bit of code space on the cc1111, so
instead of making multiple short calls, make one longer one.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| | |
| | |
| | |
| | |
| | |
| | | |
If you're using APRS, presumably you want to watch the rocket going up too.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
But, only when APRS is available so that TeleMetrum and TeleMini don't
change behaviour
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Send APRS packet once every 2 seconds
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|/ /
| |
| |
| |
| |
| |
| | |
This adds an arbitrary-length packet writing function to the radio
code.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When set, this causes the task switching code to avoid blocking IRQs
while looking for an idle task as that can increase IRQ latencies
enough to drop characters at 115200 baud on the cc1111. Note that this
*also* eliminates the ability to use low power modes as we cannot know
at any point whether some interrupt has come along and woken a task.
Has no effect when using task queues as those require IRQs to be
blocked while looking at the queue. Shouldn't be a problem there
though as the check for no running tasks is very cheap.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| |
| |
| |
| |
| |
| | |
This eliminates the libc generic version in TeleTerra
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We were stealing one value (0xff) in the return value from pollchar to
indicate 'not ready yet'. Instead of doing that, use the integer value
-1 and have pollchar return an int instead of a char. That
necessitated cleaning a few other bits to make sure that 0xff wouldn't
get promoted to -1 on accident.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|/
|
|
|
|
|
| |
Two implementations of the same function, one in cc1111/ao_dbg.c and
the other in core/ao_send_packet.c.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
This lets us connect to Tm even if someone messes up the RF
calibration or callsign info
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
For products not supporting LEGACY_MONITOR, remove the (undefined)
structs from the ao_monitor union.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
No need for this, the variables aren't changed at interrupt time.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Cache the next wakeup time and check that before jumping to the task
code.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Otherwise, we run the risk of an interrupt waking a task after we've
decided to idle the CPU.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Keeps the cast from being separated from the value when used
in expressions.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Stop using cli/sei, which are avr-specific
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
| |
This replaces the array-based scheduler with a queue-based one
instead. It should have the same basic scheduling semantics, but it
walks shorter lists for each operation, making it much more efficient
when the system has a lot of tasks.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
This marks the lowest portion of the stack as inaccessible to the CPU,
causing the processor to fault when it reaches it. The fault then
generates a panic message so that the user can know what happened.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
sdcc offers __critical as a machine-independent way to block
interrupts, but as gcc doesn't, we need to use a compiler-independent
construct instead. ao_arch_critical has been around since the AVR
port, but some old __critical usages remained.
This fixes a bunch of random hangs when communicating with MM over USB
or the radio as the various stdio loops were running without
interrupts blocked between the test and the sleep.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Add sample-based profiling, using a 1kHz timer
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
This eliminates the packet sequence matching for the first packet,
allowing outstanding send data to arrive from the master instead of
ignoring packets with data until they match the seqno
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Without these lines, flight state compares can't be shown or set.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
Let pyro channels block waiting for flight state changes. This
allows for pyro channels to be synchronized with the main iginiter
channels.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Just add comments to ao_log.h so it's easy to remember which labels go
with each record.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|\
| |
| |
| | |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| |
| |
| |
| |
| |
| |
| | |
This avoids overwriting the MPU6000 y acceleration value so that other
computations using that value can work unmodified.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| |
| |
| |
| |
| |
| |
| | |
There's no averaged ground temperature recorded in the flight system
to save there, so just remove the field
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| |
| |
| |
| |
| |
| | |
Incomplete, but useful even so
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| |
| |
| |
| |
| |
| | |
Continue to use AO_LED_RED by default.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| |
| |
| |
| |
| |
| | |
Leave it out for products that don't have a ring of sensor data
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
A couple of missing 'int' declarations.
Only test to 40km as above that there aren't enough data points to do
anything reasonable
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| |
| |
| |
| |
| |
| |
| | |
Only the conversion testing code needs to get back from altitude to
pressure, so don't include that code in other environments.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This allows projects to store the altitude data in different
representations or with different access modes.
By default, altitude data is stored in meters, but the initializers
include decimeter values so those can be used instead if desired.
Signed-off-by: Keith Packard <keithp@keithp.com>
|