summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* altos: Rename 'log' in ao_log_fireone to 'ao_fireone_data'Keith Packard2019-09-23
| | | | | | Avoids conflict with global 'log' function Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Switch all main() to return 'int'Keith Packard2019-09-23
| | | | | | Makes gcc happy Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add missing build files for avr/attiny devicesKeith Packard2019-09-18
| | | | | | These were sitting in my src directory but not in git Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add EasyMega v3.0 bits (not setup correctly yet)Keith Packard2019-09-16
| | | | | | | This adds a new directory for EasyMega v3.0, replacing the mpu9250 with a bmx160. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Integrate BMX160 into data codeKeith Packard2019-09-16
| | | | | | Get conversion functions written and fix up a few warnings Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add bmx160 driverKeith Packard2019-09-16
| | | | | | This just adds the driver, it doesn't hook it up yet Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Replace ao_xmem functions with direct mem callsKeith Packard2019-09-15
| | | | | | We no longer need to wrap these functions Signed-off-by: Keith Packard <keithp@keithp.com>
* drivers: Use 'main_value' instead of 'main'Keith Packard2019-09-15
| | | | | | GCC can emit a warning when programs redefine 'main'. Signed-off-by: Keith Packard <keithp@keithp.com>
* Add .gitignore files for new projectsKeith Packard2019-08-28
| | | | | | | | | EasyMega v2.0 TeleFireEight v2.0 TeleFireOne v1.0 TeleLco v0.2 with cc1200 radio Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Use fast timer for buttons instead of edge-triggered ISRKeith Packard2019-08-12
| | | | | | | | | | | | | If the button bounces between the triggering interrupt and the button state check, we could lose the final state change of the button and send an incorrect event to the application. In the worst case, the button would end up in exactly the wrong state, toggling in the wrong direction. Use the fast timer to poll all buttons instead so that there is only one check of each button at each poll interval (instead of the interrupt and the state check). This makes buttons reliably debounced. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Record all failed sensors and report status at power upKeith Packard2019-07-16
| | | | | | | | Use DATA bits to mark which sensors have failed, then report that in beeps at startup time to help diagnose hardware failures while still allowing the board to be used over USB. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/micropeak-v2.0: Reduce power usageKeith Packard2019-07-16
| | | | | | | This gets power consumption down under 1mA on the pad. Not really low enough to sell, but I think this is about as low as the chip will go. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stmf0: Allow SPI to be powered down when idle if desiredKeith Packard2019-07-16
| | | | | | | Set SPI_1_POWER_MANAGE and/or SPI_2_POWER_MANAGE to have the spi blocks powered down when not in use. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stmf0: Add 'ao_serial_shutdown'Keith Packard2019-07-16
| | | | | | This powers down the UART logic on request. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stmf0: Leave power interface disabled until neededKeith Packard2019-07-16
| | | | | | | | We only need the power interface when placing the chip in the lowest power state, so don't power up the power interface clock at startup, instead wait until later. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Allow ms5607 driver to either set ao_sensor_errors or panicKeith Packard2019-07-15
| | | | | | | | | | Products that want to remain usable (over USB) after a sensor failure don't want to panic when the ms5607 fails, but products with limited ROM space don't want to have extra code to check for the sensor failure and panic. Change the MS5607 driver to allow either option, and then make the micropeak based devices use it. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/micropeak-v2: Update .gitignoreKeith Packard2019-06-18
| | | | | | Ignore built stuff Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/micropeak-v2: Correct AO_LOG_ID valueKeith Packard2019-06-18
| | | | | | Typo wasn't caught by the compiler (thanks!) Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/micropeak-v2: Erase log space at end of BOOST_DELAYKeith Packard2019-06-18
| | | | | | | We have to erase the log before the flight starts, so this seems like the latest possible moment. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Don't dump MS5607 eeprom in 'B' commandKeith Packard2019-06-18
| | | | | | MicroPeak v2 now has config stuff where these values get shown Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/micropeak-v2.0: expose log and config commands over USBKeith Packard2019-06-18
| | | | | | This lets AltosUI handle the eeprom data Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/micropeak-v2.0: Go into standby mode after landingKeith Packard2019-06-18
| | | | | | | This is the lowest power state we can reach, and consumes about 15µA or less. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/micropeak-v2.0: Fix LED blinking sequence at power-onKeith Packard2019-06-18
| | | | | | 'pips' happens between altitude report and data dump. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/micropeak-v2.0: Wait for the power supply to stabilize before measuringKeith Packard2019-06-18
| | | | | | | | If we don't wait before measuring the battery, it will often read under 3.2V right at boot time, which puts MicroPeak in flight mode instead of USB mode. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/micropeak-v2.0: Don't run flight code when plugged inKeith Packard2019-06-17
| | | | | | No sense running the flight code when there's a USB cable attached. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Support ao_ms5607_dump when no ms5607 taskKeith Packard2019-06-17
| | | | | | | | | MicroPeak v2.0 has tasking support, but doesn't have a separate ms5607 task. That means the device isn't getting initialized when not running the flight code, so in cmd mode we need to make sure it's initialized, and we also need to actually fetch a value to display. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Directly compute radio tuning values from frequencyKeith Packard2019-05-03
| | | | | | | | | | | | The 8051 compiler doesn't support 64-bit ints, so the old code used an iterative method in 32-bit values. That could take a long time when the frequency was mis-entered in Hz or MHz instead of kHz. This direct-computation uses 64-bit ints, but takes a fixed amount of time for any inputs. Signed-off-by: Keith Packard <keithp@keithp.com>
* Add TeleStatic-v3.0 makefilesKeith Packard2019-04-23
|
* altos: Add preliminary TeleStatic v3.0 codeKeith Packard2019-04-21
| | | | | | | This adds the pin definitions and all of the code except for the ads131a04 driver. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/telefireone-v2.0: Include MAX6691 data in ringKeith Packard2019-04-21
| | | | | | | Define HAS_MAX6691 which tells the data code to pull the MAX6691 data into the data ring for logging etc. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Change MAX6691 driver to run its own threadKeith Packard2019-04-21
| | | | | | | This just captures temp data continuously; it takes 100ms to get the temp data from the sensor, so the maximum rate is around 10 samples/sec. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Add MAX6691 and ADS131A0X data to ring if presentKeith Packard2019-04-21
| | | | | | | Add these two devices as potential data sources to be added into the ring if available. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/telefireone-v2.0: Definitions needed for MAX6691 driverKeith Packard2019-04-21
| | | | | | | Fix the DMA channel definition (STM starts values at 1 for unknown reasons). Add definition of the power enable bit for the timer. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: get ao_max6691 driver workingKeith Packard2019-04-21
| | | | | | | | | | | | | | | | | | The driver uses a timer connected to a DMA engine to measure pulse widths from the chip. We get 11 pulses for 4 channels; the first pulse is caused by the timer starting up, the next two are the marker pulse and then 8 more indicating the end of the high and low periods for each channel. The driver API returns the 8 pulse widths; the caller is expected to know what to do with those values as using them requires knowing the value of the configuration resistor and the characteristics of the thermistors. The test code assumes a 1k configuration resistor, using that it computes the resistance of the four thermistors. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Work on MAX6691 driverKeith Packard2019-04-21
|
* altos/lambdakey-v1.0: Fix obvious build errorsKeith Packard2019-04-21
| | | | | | | The code is too large to run on this device at this point, but at least it doesn't fail to compile? Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: Use ao_data_accel_invert when changing orientation valueKeith Packard2019-04-18
| | | | | | | | Instead of using AO_ACCEL_INVERT, use the macro which flips the values around. This fixes a bug with ADXL375 flight computers (EasyMega v2.0) where the accel cal values would be scrambled when changing orientation. Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stm32f4-disco: Remove schemeKeith Packard2019-03-18
| | | | | | This demo doesn't need a lisp interpreter Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stm32f4: Working on USBKeith Packard2019-03-18
| | | | | | Reset now works, still no packets Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stm32f4: Wrong value for CK48MSEL_PLL_QKeith Packard2019-03-18
| | | | | | This meant that the USB clock wasn't actually getting started... Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stm32f4: Need to read-back register after clock enableKeith Packard2019-03-18
| | | | | | | This was reported as necessary; I have no idea, but it's not expensive, so why not... Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/stm32f4: Add -mfloat-abi=hard compile optionKeith Packard2019-03-18
| | | | Signed-off-by: Keith Packard <keithp@keithp.com>
* altos: ARM ABI requires 8-byte aligned stackKeith Packard2019-03-18
| | | | | | This makes doubles on the stack (as for var-args functions) work Signed-off-by: Keith Packard <keithp@keithp.com>
* altos/drivers/ao_led.c: Declare LED port as void * to allow any SoC to use ↵Keith Packard2019-03-12
| | | | | | | | this code The generic LED code needs a generic type for the GPIO port. Signed-off-by: Keith Packard <keithp@keithp.com>
* Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altosBdale Garbee2019-02-25
|\
| * altos: add ao_time_ns APIKeith Packard2019-02-25
| | | | | | | | | | | | | | This provides nano-second resolution times by reading the systick value (which runs at 250ns ticks on stm). Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos: Change default time type to 32-bitsKeith Packard2019-02-25
| | | | | | | | | | | | | | Offers additional range for internal use without increasing cost on 32-bit platforms. Signed-off-by: Keith Packard <keithp@keithp.com>
| * altos: Fix several mis-specified time typesKeith Packard2019-02-25
| | | | | | | | | | | | Make sure AO_TICK_TYPE is used "everywhere", instead of uint16_t or other. Signed-off-by: Keith Packard <keithp@keithp.com>
* | altos: ads124s0x successfully reading dataBdale Garbee2019-02-24
|/
* altos: snapshot - working on ads124x0x driverBdale Garbee2019-02-24
|