| Commit message (Collapse) | Author | Age |
|
|
|
|
|
| |
This provides for redundant charges for either apogee or main.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Replacing a hand-coded memset with a function call, using static space
instead of stack space for an array.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
Eliminate separate 'cmd' and 'help' struct entries.
Use \0 trick in cmd strings to eliminate whitespace.
Edit help text.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The flight code mashed together data processing, filtering and actual
flight managament into one giant pile. Split things up so that we
have:
ao_sample.c: Sensor data processing. Reads the ring, handles calibration
ao_kalman.c: Filter the data to track the accel/speed/height values
ao_flight.c: Flight state management, specific to rocketry.
The plan is to re-use ao_sample.c and ao_kalman.c for hardware not
specifically designed for rocketry, like TeleNano.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Also, remove accel cal code from boards without accel
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Switch to using { func, "X args\0Desc" } to specify command, saving
a char field by looking at help[0] instead, and reduce help length by
doing alignment with printf instead of hardcoded spaces.
|
|
|
|
|
|
|
|
| |
New boards have no config space values at all, and so they need each
value to be set. Yes, this should be fixed so that there aren't two
copies of these assignments.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
Instead of having everyone wait on the raw ADC ring, have the flight
code wait on that and have everyone else wait for the flight code to
finish looking at the data and move its pointer forwards.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Make sure the amount of memory requested for a single log isn't more
than is available on the device.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
This adds the logging support for dealing with multiple flights
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
This parameter will permit available storage to be split into multiple
separate flight logs.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
This reworks the storage API so that you erase blocks and then store
data to them so that the M25P80 driver will work.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
This supports flash chips that require larger erase blocks.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
This removes the config-specific APIs and exposes global variables for
the available storage space, block size and config storage location.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of aborting the DMA and radio operation and expecting that to
be handled reasonably by the radio receiving task, rewrite things so
that the abort function just wakes the receiving task while that
terminates the DMA and cleans up the radio.
This eliminates all kinds of nasty bugs dealing with radio abort
smashing the radio registers at the wrong time, or interrupting a
radio transmission.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The device serial number and radio calibration values are stored in
flash, mostly so that TeleDongle gets them saved.
Placing them in well-known locations (starting at 0xa0) makes it
possible to find the previous configuration and to re-write it
easily, without requiring the .map file.
altosui doesn't have the .map file parsing code, so it relies upon
this new technique. As a benefit, it reads the old values from the
device before reprogramming it.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
| |
In monitor mode, the current receive operation must be aborted so that
the radio channel change can take effect without receiving a
telemetry packet on the old channel. Aborting any in-progress radio
operation will make sure that happens.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Writing the 'Saved\r\n' string would fill the packet buffer and cause
a flush to occur, which would need to wait for the radio link to
receive and transmit a packet. The radio link always re-fetches the
radio channel number when lighting up the radio, so it need to look in
the config space. If the config mutex was held by the config writing
process while the radio was trying to get the channel number, then
we'd get a deadlock.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
This creates per-product subdirectories and recompiles everything for
each product, allowing per-product compile-time changes for things
like peripheral pin assignments and attached serial devices.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
This moves the initial radio calibration value into const memory where
it will be used if no eeprom configuration value is available, either
on an unprogrammed board with eeprom or a device without an eeprom.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Place more often used values at top, and consistently call the radio
value 'calibration' instead of 'frequency'.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
| |
The crystal we use is only good for 20ppm, which generates a fairly
significant error bounds at our RF frequency. This commit adds a
configuration variable that sets the RF frequency control variable so
that the output frequency can be adjusted.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
| |
|
| |
|
|
|
|
|
|
|
| |
Calibration now uses two values, one upside right and the other upside
down instead of a single horizontal value. This allows the use of
other accelerometers and compensates for variations in the divider
circuit to provide more accurate data.
|
|
|
|
|
|
|
| |
Provide for a delay after apogee before the drogue charge is
fired. This allows TM to be used as a back-up altimeter.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
Signed-off-by: Keith Packard <keithp@keithp.com>
|