summaryrefslogtreecommitdiff
path: root/src/core
Commit message (Collapse)AuthorAge
...
* altos: Megametrum ADC values are 12 bits, discard low 4 for telemetryKeith Packard2012-07-17
| | | | | | | We've only got space for 8 bits for the ADC values for pyro channels, discard the low 4 bits instead of the low 8 bits. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Place STM config values at fixed addresses for re-useKeith Packard2012-07-17
| | | | | | | | Just like cc1111, stick the serial number and radio calibration values at known fixed addresses so that when re-flashing the board, we can go find the existing values. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Enable pyro channel control in telepyroKeith Packard2012-07-16
| | | | | | This should make the board actually work now. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add manual firing command for extra pyro channelsKeith Packard2012-07-16
| | | | | | | In parallel with the existing igniter commands, this tests the programmable pyro channels Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Use 'HAS_ORIENT' to enable orientation selection in pyro codeKeith Packard2012-07-16
| | | | | | Don't expose orientation options when no orientation data is available Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Pass flight dynamics to companion boardsKeith Packard2012-07-16
| | | | | | Necessary for TelePyro Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Make ao_tick_count visibleKeith Packard2012-07-16
| | | | | | | Necessary to fetch it when interrupts are already disabled as we can't call ao_time then. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Make storage addresses datatype configurableKeith Packard2012-07-16
| | | | | | No sense using 32 bits for tiny hardware Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: No space for pyro help on TP v0.1Keith Packard2012-07-16
| | | | | | | AVR doesn't have enough ram to hold the help messages, and we can't use them in flash. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Remove unused 'func' from ao_config_setKeith Packard2012-07-16
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* src: Add explicit 'pin' argument to ao_enable_outputKeith Packard2012-07-14
| | | | | | | This lets the cc1111 use the atomic bit operation instead of a mask, which is immune to interrupt issues as well as being a shorter code sequence. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add arbitrary pyro channel supportKeith Packard2012-07-14
| | | | | | | Programmed by specifying a conjunction of flight conditions that trigger the igniter to fire. Signed-off-by: Keith Packard <keithp@keithp.com>
* Report RSSI values in monitor idle UI (trac #44)Keith Packard2012-07-11
| | | | | | | | This adds a new 's' command to TeleDongle to report RSSI value from last received packet, and then has AltosUI request that value when closing the remote link. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Fix gcc compiler warnings in GPS codeKeith Packard2012-07-11
| | | | | | unused variables and mis-matches in printf format codes. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Create macros to convert from/to radio RSSI representationKeith Packard2012-07-11
| | | | | | | | AO_RSSI_FROM_RADIO and AO_RADIO_FROM_RSSI. Removes a bunch of open-coded versions of the same function. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: remove optimization for 'help' that confuses cc1111 compilerKeith Packard2012-07-11
| | | | | | The cc1111 compiler gets this very wrong and prints piles of garbage Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Force 434.550Mhz by connecting debug gnd and clk (trac #41)Keith Packard2012-07-10
| | | | | | | | Check for pin P2_2 low at startup and set the frequency to 434.550MHz. This value won't get written to flash, so rebooting again will restore the configured frequency. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Continuously update ground state while on pad (trac #42)Keith Packard2012-07-10
| | | | | | | | Average data for 5 seconds, wait 5 seconds and if still in pad mode, replace the existing data with the new data. This should avoid averaging in boost data while still keeping things reasonably current. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Set HAS_FLIGHT_DEBUG=1 to include the flight debugging commandsKeith Packard2012-07-10
| | | | | | | This leaves USB enabled, and adds the 'F' command to dump internal flight state. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Signal continuity over radio in pad mode (trac #40)Keith Packard2012-07-10
| | | | | | | This is especially useful for telemini which has no beeper, allowing you to hear the continuity signal while at the pad over the air. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add 'void' parameter to ao_fec_decode callback parameterKeith Packard2012-07-10
| | | | | | This keeps the compiler from whinging about the lack of a prototype. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Save some memory.Keith Packard2012-07-10
| | | | | | | A few minor space savings in ao_cmd.c and ao_config.c. Don't build unused conversion functions ao_altitude_to_pres and ao_temp_to_dC Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Eliminate compiler warnings when building ao_flight_testKeith Packard2012-07-10
| | | | | | We turn on a pile of warnings for that. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Rename *_mm.c back to *.cKeith Packard2012-07-10
| | | | | | Was just a temporary hack to keep cc1111 products building during MM development. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: remove stale ao_flight.c and ao_sample.cKeith Packard2012-07-10
| | | | | | The mega-metrum versions are now the official versions Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Viterbi performance improvments. Down to 5.7ms for command decodeKeith Packard2012-07-03
| | | | | | | | Stealing more of Phil's good ideas, decoding a command mode packet has been reduced from 9ms to 5.7ms. Lots more comments to help future-me figure out how this code works. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Do not block igniters on the radio mutex.Keith Packard2012-07-02
| | | | | | | | Blocking igniters on the radio mutex fails when doing igniter testing over the RF link; the packet receiver task will never release the mutex and the CPU at the same time, causing the system to lock up. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Allow megametrum to be built without using the mag sensorKeith Packard2012-06-27
| | | | | | | I'm having trouble getting it working reliably, so we'll like disable it for now. This patch makes that possible. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Unroll viterbi state loop for >30% performance boostKeith Packard2012-06-27
| | | | | | 9.3ms vs 14.7ms, a clear win. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Clean up radio CRC handlingKeith Packard2012-06-27
| | | | | | | Make the FEC code just set the CRC_OK bit like the cc1111 radio does; eliminates a bunch of weird conventions across the FEC API. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Don't try to grab radio while firing MM ignitersKeith Packard2012-06-27
| | | | | | | If you're in idle mode, you stop forever as the packet mode receiver will own the radio mutex forever. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: ao_ignite.c is no longer cc1111 specificKeith Packard2012-06-26
| | | | | | Move it to core Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add debugging code to check for stack overflowKeith Packard2012-06-26
| | | | | | | | Stack overflow often happens from interrupt handlers sitting on top of a task stack. Check for this during ao_wakeup as that is often called during interrupt processing. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Make gcc happy with ao_telemetry_set_intervalKeith Packard2012-06-26
| | | | | | Using unsigned locals made GCC sad as it was compared with a signed value. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Turn radio-related bits of ao_flight_mm.cKeith Packard2012-06-26
| | | | | | Now that MM has full radio functionality, we can make it work right. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: custom hex printer for telemetry packetsKeith Packard2012-06-26
| | | | | | Using printf is way too slow with pdclib; just hand-write hex byte output. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Optimize FEC encode and decodeKeith Packard2012-06-26
| | | | | | | | | | | | | Integrate interleaving, CRC and padding within the decode/encode functions. Provide for ISR priorities so that the 1120 RX interrupt takes precedence over the other interrupts or we risk losing bits. Optimize the viterbi decoder a bit (goes from 10ms per packet to 7ms per packet). Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add GPS logging code for MegaMetrumKeith Packard2012-06-26
| | | | | | | MM uses a different logging format with larger log blocks, so restructure the GPS logging code to fill them up Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Make cc1111 radio control functions staticKeith Packard2012-06-26
| | | | | | No need to publish these; they're all private to cc1111 Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: rename ao_viterbi.c to ao_fec_rx.cKeith Packard2012-06-26
| | | | | | Keep it parallel with ao_fec_tx.c Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Incremental viterbi decodeKeith Packard2012-06-25
| | | | | | | | Decode radio input one interleave block at a time. This overlaps the decode computation with the packet reception, leading to lower latency in an attempt to keep up with the transmitter. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: decode cc1120 received packetsKeith Packard2012-06-25
| | | | | | Call the fec decode function, compute RSSI and check CRC Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Get cc1120 packet reception workingKeith Packard2012-06-25
| | | | | | Interrupt-per-bit, but it seems to work Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Forgot ao_telemetry.hKeith Packard2012-06-25
| | | | | | Not much builds without this... Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: improve FEC apis to reduce data copyingKeith Packard2012-06-23
| | | | | | | | | Integrate interleaving and whitening into encode and decode steps. Add CRC checking function for receive. Make ao_fec_test program round-trip the data and verify correctness. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: fix comment about decoding last byte of FEC dataKeith Packard2012-06-23
| | | | | | There aren't *any* forward bits to use when decoding the last byte. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: optimize Viterbi implementationKeith Packard2012-06-23
| | | | | | Minimize data usage, make data arrays static Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: incremental viterbi decodeKeith Packard2012-06-23
| | | | | | | Decode bits incrementally. Don't bother decoding the last byte; it's always a pad byte. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Start optimizing viterbi decoderKeith Packard2012-06-22
| | | | | | | | Only need two cost arrays (previous and next). Create constant full-width decoder table instead of expanding bits into bytes for each decode step. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add the simplest possible viterbi decoderKeith Packard2012-06-22
| | | | | | | I think I understand how it works now. It's not exactly speedy, and it uses a lot of memory. Signed-off-by: Keith Packard <keithp@keithp.com>