| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
| |
This filters altitudes more accurately and also allows tracking of
acceleration, which is used to discard height data generated by
ejection charge noise
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Finally found a couple of decent references on how to set the model
(process) error covariance matrix. The current process matrix turns
out to be correct for a continuous kalman filter (which isn't
realizable, of course). For a discrete filter, the error in modeled
acceleration (we model it as a constant) needs to be propogated to the
speed and position portions of the matrix.
The correct matrix is seen in this paper:
On Reduced-Order Kalman Filters For GPS Position Filtering
J. Shima
6/2/2001
This references an older paper which is supposed to describe the
derivation of the matrix:
Singer, R.A., “Estimating Optimal Tracking Filter Performance for Manned Maneuvering Targets,”
IEEE Transactions of Aerospace and Electronic Systems, AES-5, July 1970, pp. 473-483.
This change has a minor effect on the computed correction
coefficients; it should respond more reasonably to acceleration
changes now.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This saves a ring of 16 samples while waiting for boost, and then goes
back through those looking for the first sample higher than the ground
and writes the remaining ones to the log so that we get a more
complete log of the flight
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Reading the incoming data bypasses the SPI API and touches the SPI
data register directly; which port that is needs to be specified in
the pins file
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| | |\ |
|
| | |\ \ |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Otherwise, the whole log looks like a an extra altitude digit.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
I prototyped the mpserial interface on a breadboard and tuned the
circuit to register the LED correctly. Then adjusted the serial code
to send bits at the right speed and format.
The logging contents are now in hexdecimal with a CCITT CRC-16
computed to verify correct reception.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This logs barometric data every 192ms (more or less) to the 504
remaining bytes of internal EEPROM storage in the ATtiny85. This
provides 48.192 seconds of logging.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Sometimes the radio will give a spurious wakeup indicating that a
preamble seems to have arrived, but no packet data will appear. In
this case, abandon the packet reception and go back to waiting for a
preamble again. This releases the SPI bus for other users and also
avoids missing packets.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|\| | | | |
|
| | |_|/
| |/| |
| | | |
| | | |
| | | |
| | | | |
Hard to get interrupts when listening to the wrong pin
Signed-off-by: Keith Packard <keithp@gag.com>
|
|\| | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
It's on A0, not C5
Signed-off-by: Keith Packard <keithp@gag.com>
|
| | |/
| |/|
| | |
| | |
| | |
| | | |
RDF function had changed, and APRS isn't available on megadongle.
Signed-off-by: Keith Packard <keithp@gag.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>
|
| | |
| | |
| | |
| | |
| | |
| | | |
I turned it off during radio testing and forgot to fix that before committing...
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| |\ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When the radio drops out of RX or TX mode due to an error, it changes
the MARC status, and sends pulse down a configured GPIO. Use this to
tell when something 'bad' happened during TX or RX so that we can
recover from losing the SPI bus in the middle of transmission or
reception.
Without this, the radio would change state and we'd never know,
leaving the radio code waiting for an interrupt that would never arrive.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This selects lat/lon and altitude near the rounding boundary to check
that the resulting APRS data is correctly computed.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
HAS_BOOT_RADIO causes the m25 driver to abort any ongoing receive in
case that is holding the SPI bus.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Apply rounding once at the start of the computation, then truncate
after that.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
These take CPU time and memory and are intended only for debugging
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
There's no configuration to take a callsign from...
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Instead of hard-coding my own call sign...
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>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This fixes the FIFO management, ensuring that the data are streamed
into the radio fast enough to keep the packet continuous. Sounds like
it works, but testing with an actual APRS receiver is required.
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>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Make all variables static, const-ify constants, change the public
name of the single entry point.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| | | | |
| | | | |
| | | | |
| | | | | |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| | | | |
| | | | |
| | | | |
| | | | | |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
We're generating a lovely square wave, which appears to be decoded
just fine thankyouverymuch.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| | | | |
| | | | |
| | | | |
| | | | | |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Getting down to a reasonable amount of code.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Merge all of the data into a single printf call
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Any useful data will be sent over the digital link; APRS is strictly
for position tracking
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
altos: Switch APRS to standard position reporting form
Stop using NMEA sentences for position
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This has defines for the planned APRS interface
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Note that two of them are in NMEA form, which some receivers appear
not to parse
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This moves some test code out of ao_aprs.c and into ao_aprs_test.c,
and then adds Makefile fragments to compile and run the resulting
program, creating a wav file as output
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This generates a .wav file containing a single APRS packet. This has
been tested and appears to be successfully decoded by an APRS receiver.
Signed-off-by: Keith Packard <keithp@keithp.com>
|