| Commit message (Collapse) | Author | Age |
|
|
|
|
|
| |
Let them appear at the right time.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
We only use this for baro-only devices to avoid firing drogue charges
at mach transitions; we trust the combination of accel+baro to do the
right thing when available.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of completely eliminating the baro sensor above mach speed,
just derate it a bit so that the accel will dominate for speed
computation and keep the device from false-triggering across mach
transitions.
When we completely ignored the baro sensor above mach, and the flight
spent considerable time in that speed range, then the estimated height
could be far from the real value. When the estimated speed dropped
back down and the baro values were brought back into the computation,
then the resulting rapid shift in estimated speed could trigger
accidental apogee detection.
By mixing in a bit of baro data even above mach, we keep the estimated
height closer to the baro value and prevent this error, at least in
flights measured so far.
The flight known to have this problem is:
2015-09-26-serial-2093-flight-0012.eeprom
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
We don't use the error value in flight for those models anyways; it's
only useful on baro-only hardware.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Subtracting two 16-bit unsigned values to perform time comparisons
yields mystic results unless we carefully cast that to int16_t.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
The ADC in the STM32F0 is different than the LPC, with a range of
0-4095 instead of 0-32767.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Re-label everything to have the correct names. This doesn't actually
change the code at all, so the eeprom and telemetry is all compatible.
Matching changes on the host side will be required to actually process
the data correctly, of course.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|/ |
|
| |
|
|
|
|
|
|
| |
Instead of having to add it to each product using this variable.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
This allows other systems to see what baud rate the host has requested.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
| |
TeleGPS v2 uses the STMF0 processor instead of the LPC11, which means
the ADC range is different. As the raw ADC value was getting sent to
represent battery voltage in the config packet, we need to scale that
for the different processor. This patch allows that to happen.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Blinks an LED briefly once every three seconds when GPS is locked.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Defines the functions in this file.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
MicroPeak v2 uses this rate.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Allow use of regular serial API for sending data.
Allow application to specify different storage size.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
These were getting accidentally used by ao_pad.c
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| |
|
| |
|
| |
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
Keeping the scanout running reasonably means keeping interrupt latency
constant, and that requires leaving the CPU running. Don't wait for
interrupts when the system is running in this mode.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Allow the ground software to know which TeleMini version is in use,
even though they are very similar with only ADC values differing.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
In case they don't have both a red and green LED.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
With these two changes, the readline function can be used by other
code.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Gcc 5.4.1 tracks alignment of data through assignments, so that a
uint32_t pointer which comes from byte-aligned uint8_t data:
extern uint8_t foo[];
uint32_t *q = (void *) foo;
Fetches and stores through this pointer are done bytewise. This is
slow (meh), but if q references a device register, things to bad very
quickly.
This patch works around this bug in the compiler by adding
__attribute__((aligned(4))) tags to some variables, or changing them
from uint8_t to uint32_t. Places doing this will now be caught as I've
added -Wcast-align to the compiler flags. That required adding (void
*) casts, after the relevant code was checked to make sure the
compiler could tell that the addresses were aligned.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
A couple of fixups for ao_flight_test to dump pyro info only when
running in debug mode, and to change the aprs testing
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
| |
If the log is full at startup, we want to transmit flight 0 to let the
ground station know. However, we don't want to switch to flight 0 in
flight, so save the initial telemetry flight number (0 or the real
flight number) at startup and use that throughout the flight.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
This exposes the cc1200 radio test function so we can load special
test firmware in telemini to do the radio cal as it has no USB to
perform that interactively.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
When monitoring telemetry, the frame needs to be sent together on one
line, not split with the output of a command (like 'a') mixed in.
Use a mutex for products with monitoring to keep command output and
telemetry output each on separate lines.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
This leaves the command line available for diagnostics when debugging.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Add the timeout value and task id
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
| |
ao_delay() is implemented on top of ao_sleep_for, and ao_sleep_for
uses the timeout value of 0 to indicate an infinite timeout. Calls to
ao_delay for 0 ticks would unintentionally hit this case and end up
waiting forever.x
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
List manipulation operations are not atomic, so interrupts need to be
blocked while changing them.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
The comment got moved to the wrong place
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
Interrupts may not be blocked in the timer ISR, but they need to be
while walking the pending timer list and moving tasks back to the run
queue.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
Add #define AO_MMA655X_INVERT 0 to existing products which didn't
declare it at all. This will make sure the value is set correctly for
each new board.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
This allows applications to request that the flow control bits be
driven from software rather than hardware, permitting more flexible
pin configuration.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
sdcc can't handle this.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
Puts TeleLCOTwo in a low power state (drawing about 80µA) after a
timeout (default two minutes) to keep from killing the battery if the
device is left turned on.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
This allows for a configuration without adjustable box numbers on
either end of the link, simplifying the UI.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Detherm has no ADC connections, so we don't need to disable the ADC
when going to landed state.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
| |
We use a separate stack pointer for task code, which means we can
verify that it is in range in any interrupt handler. This adds checks
for the task stack (under #ifdef DEBUG) that run in ao_wakeup as well
as at every timer interrupt.
Signed-off-by: Keith Packard <keithp@keithp.com>
|