1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2024-12-10 18:24:11 +01:00
Commit Graph

932 Commits

Author SHA1 Message Date
peabody124
b85e322206 Flight/FlightSituation: Remove unused module
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1774 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-27 07:28:21 +00:00
peabody124
da583e0914 Flight/Guidance: Disable by default
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1768 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-26 03:07:40 +00:00
peabody124
6d811cc4db OP-140 AHRS: Don't run INSGPS until OP says board is initialized. This will
also block heart beat.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1767 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-26 03:06:57 +00:00
peabody124
8475a68958 Flight/Stabilization: Keep command and error in deg/s for rate stabilization
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1766 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-26 03:06:54 +00:00
peabody124
a3ea9a5461 AHRS: Add a weak mag correction in indoor mode to remove gyro bias and try and
get a reliable heading

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1765 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-26 03:06:51 +00:00
peabody124
77b68e5169 Flight/Guidance: Initial template for guidance module
Flight: Create PositionDesired (the active waypoint) UAVObject and make the FlightSituationActual no update since it not used.
Flight: New velocity desired object that passes information between the look computing the desired velocity and the PID loop to get it (updated at different rates)
UAVObjects/PositionActual: Remove unused GPS fields
UAVObjects/PositionActual VelocityActual: Split the velocity into a separate object.  ALso make sure all the information telemetered around is in cm to avoid using floats.
UAVObject/GuidanceSettings: New guidance settings object for the guidance module
Flight/Posix: Add the new objects to the Posix sim
Flight/Guidance: Computes a desired velocity based on position error than runs a PID loop to control roll and pitch to achieve that velocity.  All distances are in cm, and updated the PositionActual fields to reflect this and use int32.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1760 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-26 03:06:27 +00:00
kokomojoe
ca4f3b53fa OP-21/Flight Bootloader - added compiler and linker options to remove unused functions. Code is now smaller.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1759 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-26 02:34:04 +00:00
zedamota
9b05282be5 OP-21/Flight Bootloader - should make things cross platform.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1758 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-26 00:39:01 +00:00
zedamota
0371808099 OP-21/Flight Bootloader - should make things cross platform.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1757 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-26 00:36:42 +00:00
peabody124
a01783b2a8 OP-140 AHRS: Explicilty deal with if it is initialized or not, use that to
determine retransmitting calibration, home location and such.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1755 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-25 21:05:38 +00:00
peabody124
9b28f2d72c OP-167 OP-157 AHRS/Calibration: Added mag scale and really cleaned up calibration.
Calibration should take less time now too (using second moments to estimate
variance in one pass).  Now need to change to multiple messages to get the
calibration in to keep the request message size minimal.  Also currently
running sensor calibrate doesn't store the gyro bias so if you want to use this
you'll have to tweak it manually.  I'll fix that step tomorrow.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1741 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-25 09:20:38 +00:00
edouard
eedf85a5ac OP-138 Start of the new Mixer configuration interface, for fixed wing only. This does not work yet, takes a long time to fully implement.
The system settings UAVObject is updated, you will have to recompile your firmware. If you want to take a look and let me know, please do!



git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1737 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-24 20:39:37 +00:00
zedamota
095cbb4dd5 OP-21/Flight Bootloader - Now pulls SS pin low again if no AHRS is found.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1733 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-24 15:46:59 +00:00
corvus
1472b342c1 1.0 Featur Freeze -
Removing some Experimental and Incomplete Modules and their UAVObjects not suited for 1.0
- they will be moved into an experimental branch:

Navigation     : experimental code only
FlightSituation: experimental code only 
Guidance       : preliminary draft - possibly to be replaced by peabody124 position hold code if finished in time.



git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1729 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-23 22:05:03 +00:00
corvus
e44045f422 OP-165 : Guidance Module
Creating GuidanceModule together with PositionDesired UAVObject (as discussed),
so dschin and me can work on it :-)
Will compile and (on sim_posix) execute, but PID logic is yet untested and preliminary.



git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1722 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-22 22:16:48 +00:00
les
ef7ee86d45 Mixer: zero throttle shuts off motors and changed MixernMatrix to MixernVector
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1710 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-21 19:31:17 +00:00
peabody124
a1a3b0774f Flight/AHRS: Update code to coding conventions.
find ./flight/AHRS/ \! \( -name '*~' -a -prune \) -type f    | xargs -I{} bash -c 'echo {}; dos2unix {}; gnuindent -npro -kr -i8 -ts8 -sob -ss -ncs -cp1 -il0 {};'

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1707 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-21 19:29:39 +00:00
peabody124
833e8428d2 Flight/Libraries: Updated to coding conventions
find ./flight/Libraries/ \! \( -name '*~' -a -prune \) -type f    | xargs -I{} bash -c 'echo {}; dos2unix {}; gnuindent -npro -kr -i8 -ts8 -sob -ss -ncs -cp1 -il0 {};'

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1706 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-21 19:29:35 +00:00
chebuzz
862e35def1 OP/PiOS.posix - Somebody added UAVObjects but did not add them to the posix sim
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1702 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-21 14:16:14 +00:00
peabody124
f96654ace1 Adding mixerstatus/mixersetting uavobject files that were missed
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1701 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-21 07:08:51 +00:00
les
875437f483 Added matrix based actuator mixing. Note the makefile is set to use the original actuator code.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1698 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-20 19:27:08 +00:00
sambas
24840b461d OP-22 Flight/PiOS: added failsafe and recovery "watchdog" timer
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1697 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-20 18:00:31 +00:00
zedamota
5fb45f835e OP-21/Flight Bootloader - Bug fix, 1 more
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1696 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-20 17:09:06 +00:00
zedamota
87dc0908ce OP-21/Flight Bootloader - Bug fix
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1695 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-20 16:29:34 +00:00
zedamota
3ba6372dc4 OP-21/Flight Bootloader - Clean up and linker files for the AHRS
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1691 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-19 18:27:53 +00:00
zedamota
128df749f0 OP-21/Flight Bootloader - small bug fix
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1683 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-18 23:38:45 +00:00
zedamota
c9752a6a3a OP-21/Flight Bootloader - some changes for the bootloader to work
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1682 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-18 23:11:42 +00:00
zedamota
1b9811aa0e OP-21/Flight Bootloader - AHRS programming fully working
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1681 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-18 23:10:26 +00:00
zedamota
97b44ffb04 OP-21/Flight Bootloader - Various fixes.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1678 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-18 00:46:34 +00:00
peabody124
11f2b1a8dc Flight/Stabilization: Dont cap error at maximum stabilization value - that is to scale control throws. Create another variable if we want this.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1676 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-17 18:15:02 +00:00
peabody124
0ea95fbad1 AHRS: Separate covariance prediction from state prediction to get updated state out of spi a few milliseconds sooner.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1675 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-17 18:15:00 +00:00
peabody124
92c36114f3 AHRS: No longer reinit after a comms glitch. Allow time for EKF to converge (2-3 seconds) after power up.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1674 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-17 18:14:20 +00:00
peabody124
8e0c5136c0 AHRS/Comms: Make the polling delay 1ms instead of 20ms to make sure if a message isn't ready we don't pause for a long time.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1673 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-17 18:12:25 +00:00
andrew
da1a762072 Added basic code for Yaw stabilisation in manual mode for Helis.
This is functionally the same as having a heading hold gyro in hardware.
Code is copied from the simple stabilisation routine and is a bit rough at the minute, but initial testing looks good.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1670 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-17 05:52:34 +00:00
peabody124
41b7a99883 Flight/Stabilization: Yaw rate stabilization error should be normalized by dt
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1669 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-17 02:00:55 +00:00
peabody124
a6ca5b82e7 OP-155 Flight/HID: Make the HID stall when buffer full. Not sure the consequences on ground (i.e. if it handles the stall correctly)
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1665 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-16 20:23:02 +00:00
zedamota
e8d6e7c557 Flight - Centralized board specific files, BL and User FW uses the same board definitions, no need to have 2.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1663 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-16 19:19:38 +00:00
peabody124
3b015b41c5 Flight: Got a much nicer arming/disarming system going. Made it a separate flag in the end to allow testing the stabilization code with motors not running. Also changes maxRoll/maxPitch/maxYaw to uint8 to keep object size smaller - no reason for float precision for this.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1660 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-16 15:41:11 +00:00
peabody124
a6e71177e4 AHRS: Yaw stabilization now supports rate stabilization or heading hold. Also need to cleanly support rate stabilization on all the other axis. Les suggested this be in manual mode which will require changing the logic somewhat (essentially for vtol it will always be running through the Stabilization module) in an aircraft dependent manner. An alternative would be a stabilization flag indicating to do full attitude hold, attitude + yaw stabilization, or all axis gyro stabilization. This would be my preference.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1659 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-16 15:41:08 +00:00
peabody124
110c46216e OP-155 Flight: Increase the pios_com buffer size to support these larger objects. If this gets worse and we don't want to use as much OP memory we can make it stall the USB bus when the buffer is full.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1657 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-16 05:57:03 +00:00
peabody124
832b61ab86 OP-117 AHRS: Binary streaming of the raw data within EKF. Doesn't keep up while running this but does give accurate data that went into algorithm. Once we can dynamically change sampling rate will be good.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1655 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-16 05:26:14 +00:00
peabody124
0b8756d55c OP-148 AHRS/Comms: For now don't retransmit calibration after comms glitch as this re-zeros gyro bias and makes attitude stutter. Need to explicitly communicate when comms glitches and query if AHRS actually rebooted.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1654 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-16 05:26:12 +00:00
peabody124
885c966e53 AHRS: Added a tracker for number of ADC updates the EKF misses. Also updated the Telemetry autogenerated files to accomodate the 11500 baud rate.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1652 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-16 02:59:00 +00:00
peabody124
ff1b303083 AHRS: Only do EKF correction with mag when new data available
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1651 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-16 02:58:56 +00:00
peabody124
19e80da928 AHRS: Update UAVObject with information about AHRS rate
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1650 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-16 01:54:21 +00:00
zedamota
4d0d865c31 OP-21/Flight Bootloader - fix to paths
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1647 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-15 18:03:52 +00:00
pip
82be9117d6 Added USART baudrate defines into pios_board.h & '#if defined's into pios_board.c
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1646 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-15 17:37:50 +00:00
pip
d2bc126e68 Added PIOS_COM_AUX_BAUDRATE to pios_board.h & '#if defined' to pios_board.c for easier baudrate setting.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1645 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-15 17:33:00 +00:00
pip
73c8194acc Added PIOS_COM_TELEM_BAUDRATE, PIOS_COM_GPS_BAUDRATE, PIOS_COM_AUX_BAUDRATE & PIOS_COM_SPEKTRUM_BAUDRATE defines in pios_board.h with '#if defines' in pios_board.c for easier baudrate changing.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1644 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-15 17:18:38 +00:00
zedamota
3e89e388fa OP-21/Flight Bootloader
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1643 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-15 17:09:27 +00:00
zedamota
c72a5b1cfe OP-21/Flight Bootloader
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1642 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-15 17:08:24 +00:00
zedamota
f972b78bfb OP-21/Flight Bootloader
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1641 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-15 17:07:43 +00:00
pip
cf864225fe Added easier to find USART baudrate setting PIOS_USART_BAUDRATE.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1640 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-15 17:07:37 +00:00
zedamota
50b7931a1c OP-21/Flight Bootloader - new bootloaders
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1639 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-15 17:06:51 +00:00
pip
89fb0b8582 Made pios_hmc5843_data_ready volatile (accessed by both interrupts and main exec loop).
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1638 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-15 17:00:36 +00:00
zedamota
df88140f51 OP-21/Flight Bootloader - Remove deprecated bootloaders
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1637 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-15 16:58:00 +00:00
stac
1017d0294b ahrs: always enable -g for gdb debug symbols
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1635 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-15 15:45:41 +00:00
stac
7886a617dc Revert "ahrs: No longer support -O0 since it doesn't fit"
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1634 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-15 15:45:39 +00:00
pip
22b9b2512e Added a 115200 baud telemetry option to the OP main board/UAVTalk.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1632 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-15 14:43:42 +00:00
stac
73787f7f15 ahrs: No longer support -O0 since it doesn't fit
Leaving debug on allows the -g option to be enabled
so that we can have symbols in gdb even though we're
forcing the optimization flags to -Os.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1631 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-15 14:21:06 +00:00
stac
cdb8aa37a0 ahrs: Only read mag data when it has been updated
The AHRS mainloop was reading the mag data on every
loop regardless of whether new data was actually
available.  Now that the MAG_DRDY signal is monitored,
we can read only at the rate (10Hz) new data is actually
produced by the sensor.

This also enables future improvements that will remove the
filtering work that is still being done on the mag data on
every iteration.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1630 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-15 14:21:05 +00:00
stac
55d90970ed hmc5843: hide internal #defines and functions
Way too much was being exposed in the API for the
HMC5843.  This commit properly hides internal
details of the driver.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1629 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-15 14:21:04 +00:00
stac
0e7a801e9e hmc5843: Add support for DRDY signal from magnetometer
The DRDY signal from the magnetometer is connected to PB8
on the STM32.  This pin is now configured as an external
interrupt and is now used to signal when new data is
available from the magnetometer.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1628 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-15 14:21:02 +00:00
stac
4ac001553d hmc5843: convert line endings from CRLF to LF
No functional changes.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1627 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-15 14:21:00 +00:00
stac
ac6989fbeb bmp085: fix configuration of EOC interrupt
The EOC EXTI interrupt configuration was incorrectly
pointing at GPIOG pin 8 rather than GPIOC pin 15.
This was preventing the EOC interrupt from working
properly.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1626 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-15 14:20:59 +00:00
stac
88e73906d0 i2c: Add recovery code for i2c bus errors
I2C bus errors are now recoverable.  The bus is properly reset
and an error indication is now provided to the caller whenever
a bus error occurs during processing of the transaction list.

For now, the users of the I2C layer just retry infinitely on
failure.  The BMP085 and HMC5843 code should be changed to
report errors to its callers to allow a more sensible retry
strategy.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1625 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-15 14:20:57 +00:00
stac
0122394481 i2c: consolidate handling of AUTO transitions
AUTO transitions in the FSM are now handled immediately
after processing each newly injected event rather than only
at the end of the EV ISR.

This consolidation allows the upcoming addition of event
injection from both the EV and ER ISR contexts.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1624 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-15 14:20:56 +00:00
stac
7d5463e5e6 i2c: Move polling for bus stopped from ISR to task/mainloop
Occasionally, the I2C driver races with the STM32 I2C peripheral
at the end of a bus cycle.  This leaves the bus in an errored
state and the stop condition is not properly asserted on the bus.

The polling for the stopped condition was previously implemented
in ISR context since it was expected to be nearly instananeous.
In the error condition, however, the stop condition will never
happen.  The polling for this case is now done by the initiating
task (or mainloop on the AHRS) to prevent the timeout condition
from triggering the watchdog.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1623 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-15 14:20:55 +00:00
stac
65ad2caf8a i2c: Make transaction initiator available in txn list
The info field in the pios_i2c_txn list can now be used
to provide a const string which describes the context
for this transaction.

This is very helpful when diagnosing an error that occurs
somewhere in the middle of the I2C FSM since the FSM runs
primarily in the ISR where the original context for the
transactions is no longer available in the traceback.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1622 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-15 14:20:53 +00:00
stac
85c60479c1 i2c: rename FSM faulted state
Differentiate the _FSM_ faulted from the (soon to
exist _BUS_ faulted state.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1621 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-15 14:20:52 +00:00
stac
139da048f6 ahrs: remove unused debug code
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1620 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-15 14:20:51 +00:00
pip
cc3860daaf Added 'uint32_t PIOS_SYS_getCPUFlashSize(void)' into pios_sys.c/h files.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1616 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-14 09:18:55 +00:00
peabody124
c5fe985a45 AHRS: Gets timing working correctly to compute the EKF rate and idle time in real values
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1615 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-14 07:03:36 +00:00
peabody124
0875dc8442 AHRS: First pass refactoring the ADC code into another function. Still want to clean up a few constants make the downsampling go into a smaller circularbuffer nicely.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1614 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-14 07:03:34 +00:00
peabody124
1051d894b9 AHRS: Merged in some new code from Dschin that expliclity writes the prediction terms in the covariance matrix. Also made changes to compile with -Os. Now runs around 125 - 150 Hz depending on corrections used (this will become adjustable from GCS shortly).
Squashed commit of the following:

commit 897e3365ab6c762584c34238efd12dc144e72af0
Author: James Cotton <peabody124@gmail.com>
Date:   Mon Sep 13 22:15:21 2010 -0500

    AHRS: Getting it running nice and quickly.

commit 53d72fb849164730c89873cab81c9e09be0b112b
Author: James Cotton <peabody124@gmail.com>
Date:   Mon Sep 13 15:57:46 2010 -0500

    AHRS: Make more variables volatile for -Os.

commit 4fa90821b5d3d8c2ea5e67756313a8a63c0eeb8c
Author: James Cotton <peabody124@gmail.com>
Date:   Mon Sep 13 15:11:31 2010 -0500

    AHRS/Makefile: -O0 not added to allow me to try various space flags that don't break code.

commit 5bd17a304dc28dc271c2f3e8c6cb8ad4a830404f
Author: James Cotton <peabody124@gmail.com>
Date:   Mon Sep 13 14:44:05 2010 -0500

    AHRS: Make debuggign USART easy to disable

commit 5453f2a7939492769fe9e9cc822e69c107320670
Author: James Cotton <peabody124@gmail.com>
Date:   Mon Sep 13 14:38:37 2010 -0500

    AHRS: Explicitly expand covariance prediction.  Brings computations from 160 to 90.  Makes it not fit in AHRS though.

commit b6712da7eece2a464a2073d24b77be22bfa47094
Author: James Cotton <peabody124@gmail.com>
Date:   Sun Sep 12 22:59:42 2010 -0500

    AHRS: Make it easy to comment out the I2C/Magnetometers.

commit 8c84d0091f3d6f6bedc7a0224a4ed9cb099b022b
Author: James Cotton <peabody124@gmail.com>
Date:   Thu Sep 9 00:49:50 2010 -0500

    AHRS: Small change to INSGPS analysis tools

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1613 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-14 06:42:56 +00:00
pip
7da2fc2ba7 made ahrs_state 'volatile' in ahrs.c to prevent compiler optimization lockup
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1612 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-13 20:56:58 +00:00
pip
8bfaa997d3 made curr_state 'volatile' in pios_i2c_priv.h to prevernt compiler optimization lockup.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1611 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-13 20:52:56 +00:00
peabody124
4a4932e5ff AHRS/FSM: Small initialization detail to make compile with -Os
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1610 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-13 19:04:37 +00:00
zedamota
66560786f4 Flight - #ifdefs to make it work with both normal and bootloader packet formats.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1609 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-13 17:08:52 +00:00
chebuzz
3b5b129445 Fix POSIX simulator to work with new VTOL UAVObjects
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1607 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-13 14:00:53 +00:00
peabody124
47a7b8548b Flight: Safety feature for VTOL. Don't enable motor until throttle brought above .5 then below or to zero.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1604 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-12 22:18:21 +00:00
peabody124
76971a807c AHRS: Some more tweaking of the timings.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1603 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-12 22:18:18 +00:00
zedamota
257b4d2c95 flight - BL AHRS Comms - fixes to make it compile, not tested yet.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1601 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-12 21:08:43 +00:00
peabody124
ba34bb8c24 AHRS: Oops, didn't notice the message processing was removed from end of loop. Adding back.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1597 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-12 12:44:57 +00:00
pip
d0b8a9755d Added USB_LED_ON/USB_LED_OFF and checks to see if they are defined to the PIOS_USB_HID_ChangeConnectionState function ..
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1596 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-12 10:47:20 +00:00
pip
9fca16db41 Added an RTOS detection is 2 places because I'm using this file on the modem (without an RTOS). #if defined(PIOS_INCLUDE_FREERTOS) ...
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1595 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-12 10:33:45 +00:00
peabody124
59758122e1 AHRS: Cannot process messages while idling as this makes the main loop execution time non-deterministic based on OP (i.e. could get three messages and push the time up). It would be a nice featuer since you can get a raw and EKF update in the same step, but if the AHRS_Comm loop is fast (which is should be to keep update latency low) then this will hammer the AHRS with redunant requests.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1594 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-12 02:54:51 +00:00
peabody124
e90e714c2b Flight: Tweaked the throttle handling and VTOL use of it to make sure engines can be shut off easily in stabilization mode.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1593 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-12 02:54:49 +00:00
peabody124
56131476ef AHRS: Switch to sampling at 2khz, plenty of CPU usage. However need to make EKF rate different for outdoor mode with this patch because otherwise will drop samples :-(
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1592 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-12 02:54:47 +00:00
peabody124
5d1ebf76ea Flight/VTOLmixer: Fix bug in mixer that messed up roll mixing. Also changed minimum to -1 so that neutral can be position motors come on and -1 the off position. Also made failsafe throttle value -1 to be consistent.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1591 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-12 02:54:44 +00:00
peabody124
c376711405 Flight/Stabilization: Make the derivative account for the sampling time (dAngle/dt) for the PID loop since integral does and also make the integral bounds uavobject settings. It was originally bounded by constant/Ki but I'm not sure why as you change the gain of the error integral you also want to decrease the maximum error it can cause.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1590 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-12 02:54:41 +00:00
peabody124
8999355327 Flight: Made actuator a periodic task. I don't think the queue is low enough latency - should figure out how to make this happen as callback is the right way to go.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1589 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-12 02:54:38 +00:00
peabody124
dceb20b16d Flight: VTOLStatus object that returns the thrusts on all the engines
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1588 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-12 02:54:34 +00:00
peabody124
bba3b0c64a Flight: VTOLSetings object to contain the mixer settings for VTOL crafts
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1587 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-12 02:54:30 +00:00
stac
d18e0c3ef8 ahrscomms: Add low-level message code for bootloader msgs
Implement low-level utility functions for sending/receiving
the opahrs proto v0 (bootloader) messages.  These are used
by the OP firmware loader and the AHRS bootloader.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1586 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-11 23:06:31 +00:00
stac
c3c8a30bfc ahrscomms: fix return values on error
Some functions were returning -1 instead of one of the
valud enum values.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1585 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-11 23:06:29 +00:00
stac
6bf3038f3f ahrscomms: provide helper function for simple requests
This cleans up some of the boiler plate code that is
repeasted for simple (empty) requests that expect a
response.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1584 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-11 23:06:28 +00:00
stac
7ecbb5f5b8 opahrs_proto: Add new boot and versions messages
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1583 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-11 23:06:26 +00:00
stac
d1dc300081 ahrscomms: remove unused sync and switch_proto messages
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1582 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-11 23:06:25 +00:00
stac
80c92ba54b ahrs: process SPI messages while idle
This makes the AHRS continually process SPI messages
while waiting for new samples to be ready.  This has
the side effect of making the CPU utilization on the
AHRS pin at 99-100% (ie. we make use of all of our
otherwise idle time).

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1581 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-11 23:06:23 +00:00
stac
93ef510946 ahrscomms: use relative delays to avoid slipping
Change from using vTaskDelay to using vTaskDelayUntil to
ensure that we're trying to stay periodic rather than
just waiting a fixed amount of time after each loop of
processing.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1580 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-11 23:06:22 +00:00
dschin
e6fea9bb76 Changed the feedback gain matrix K to a global variable in insgps so that it may be inspected.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1577 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-10 20:46:46 +00:00
zedamota
aa1af2b9f3 OP-21/Flight Bootloader - Changes to make it independent of RTOS
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1570 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-09 18:44:55 +00:00
peabody124
6cdb9b0b48 AHRS: Added Matlab code to analyze the INSGPS friendly data dump format and plot the important variables. This requires "DUMP_FRIENDLY" be enabled in the file.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1560 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-08 06:15:21 +00:00
peabody124
e499f33fd5 AHRS: Improved code to stream raw data from AHRS and added a matlab function to acquire and analyze the data. The QT program to analyze it should work but QextSerial seems to have a bug and drops or inserts data
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1559 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-08 06:15:18 +00:00
peabody124
9895b403c7 Ground/SerialLogging: Improved the serial dump from AHRS to have a big random frame header and to detect it on the logging program.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1556 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-07 16:33:10 +00:00
cwabbott
c2e93aa810 PiOS/win32: Made the process priority "high priority" for OpenPilot.exe to help with accurate timing. Also removed some unneeded debugging code from tasks.c.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1553 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-06 21:23:02 +00:00
peabody124
e06162fa3a Flight/AHRS: Reorganized the code a little to make sure indoor used by default unless GPS updates come
in.  Also change the velocity variance in indoor mode to lower to make it get a better attitude estimate (primarily faster convergence - probably will tweak this in the future dynamically).  Finally decreased barometer variance - in scope it's actually quite reasonable, normally within +/- .5 m.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1546 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-06 07:54:19 +00:00
peabody124
e260077247 Flight/ManualControl: Making failsafe test (which must explicitly look at receiver inputs instead of throttle values in case of reversal) also consider readonly flag to detect GCS control.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1545 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-06 02:58:41 +00:00
peabody124
61854ac6ab Flight: Support for quadcoptors. The format of this control will change to support octo's and more flexible tuning.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1544 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-06 02:58:39 +00:00
stac
95595664c3 telemetry: fix comments around #ifdef
No functional changes.

The closing comment on some of the USB_HID related
ifdefs was outdated.  Fixed.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1541 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-05 23:10:34 +00:00
zedamota
492227c916 OP-21/Flight Bootloader - Donwload function is now interrupt driven. Had to increase IN polling interval due to some problems.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1530 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-05 00:17:20 +00:00
peabody124
f9a0b799a2 Foolishly forgot object like I always do
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1529 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-04 22:01:11 +00:00
peabody124
d3b677298c Flight/ManualControl: Added a hysteresis loop to the manual control connection/disconnection status. I seem to get glitching without it - probably because of the receiver catching noise. It still occasionally glitches but I don't want to make it longer. Probably should be an adjustable setting.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1527 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-04 17:08:04 +00:00
peabody124
c21d058110 Flight: Added ability to use a third accessory input. Currently using that to select tuning roll/pitch bias and PID tuning. I also _STRONGLY_ recommend if you enable these accessory channels (and thus these features) you make the saved meta data for the StabilizationSettings and AttitudeSettings read-only, so only on flights where you mean to can you change these settings. I'm also not convinced about the interface - it seems like flicking TX switches to get into adjustments is a recipe for disaster. Probably need to just control through GCS.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1526 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-04 17:08:02 +00:00
peabody124
45e8131a30 Flight: Added ability to use additional TX inputs to tune attitude bias. Note this form of the calibration is temporary and will likely be replaced by a rotation matrix to deal with more general rotations.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1525 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-04 17:07:59 +00:00
peabody124
8dbc382e5b Ground/CoordinateConversions: Shows correct location now. I just typed in a 3.14 constants and forgot to change to M_PI.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1520 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-04 05:58:43 +00:00
peabody124
b4ff14b725 Ground/GCSControl: Swapped sign conventions of sticks to match the sign convention of roll/pitch/yaw. I.e. now right on the roll causes a + roll, pulling down on the pitch causes + pitch.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1518 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-04 02:19:06 +00:00
peabody124
404e0c2f44 OP-132 AHRS: Changes to the Indoor flight handling to only use the barometer indoors and update with a zero for velocity and high variance.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1517 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-04 02:19:04 +00:00
peabody124
a406034ed9 OP-132 Flight/AHRS: Changed the heuristics regarding GPS quality and INSGPS updates. Now if satellites < 7 or PDOP > 3.5 it does not perform GPS updates. Professor is working on some code to fix parts of the covariance matrix. If indoor updates high a 0 position and velocity and high variance.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1515 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-04 02:19:00 +00:00
zedamota
8233f87b0a OP-21/Flight Bootloader - Download function fixed.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1513 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-04 01:06:40 +00:00
dschin
84d054c4ed gdb command file to enable debugging with interrupts in Eclipse
See http://forums.openpilot.org/topic/1671-debugging-with-interrupts-in-eclipse/
for details.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1511 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-03 13:10:04 +00:00
cwabbott
d7a3ffb464 flight/PiOS.win32: update Makefile.win32 with new UAVObjects, also change UAVObject headers to have a newline at the end.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1510 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-02 23:55:24 +00:00
zedamota
749267aee5 OP-21/Flight Bootloader - Minor bug fix.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1508 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-02 22:43:32 +00:00
zedamota
7a66232be0 OP-21/Flight Bootloader - Complete recoding. WARNING- As with all flash memories, the one in your OP HW as limited write cycles. Errors in this bootloader may damage your HW if it falls under a write or erase dead loop. This is still under development, for devs only.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1507 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-02 20:13:41 +00:00
peabody124
d3bb821e82 Flight/ManualControl: Change to ManualControl module to make warning only kick in if input is less than the max and min for throttle. Disable going to (unimplemented) auto mode. Commiting based on one yay and no nay.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1505 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-02 16:33:02 +00:00
peabody124
a377bea862 Ground/CoordinateConversions: Found out from Dschin that rotation matrix inverse is rotation matrix transpose. Now should convert correctly from NED to ECEF. I will check tomorrow by frolicking around with a plane.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1494 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-09-01 03:12:06 +00:00
peabody124
ec7d059de8 Posix: Corrected makefile after UAVObjects mashup
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1489 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-31 17:21:44 +00:00
peabody124
b853c392f3 Flight: Was only returning half of the serial number (thanks for catching that Pip)
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1476 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-31 02:33:47 +00:00
peabody124
12657440c3 OP-132 AHRS: Added an indoor flight mode and also add an ad-hoc quality heuristic to the GPS signal to increase the measurement variance from GPS when fix quality is poor or when in indoor flight mode. In addition corrected the indentation to conform to the tab/space convention forum discussion.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1474 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-31 02:11:09 +00:00
pip
7813414f29 added casting to prevent int overflows when calculating the watchdog delay
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1467 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-30 16:48:33 +00:00
pip
ba5f1b37ee changed pios watchdog from 8-bit to 16-bit ms capability, plus moved the .h file from the .c folder into the inc folder
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1466 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-30 16:29:36 +00:00
andrew
65dc5e9b04 Yaw stabilisation for the simple algorithm was calculating the error and not taking into account that 350º error is the same as -10º error.
The resultant error could range from -360º -> +360º
Since this is only used for Helicopters / multi rotors, and the aircraft can rotate in any direction, I added the modulo logic so that it is now from -180º -> +180º this should now take quickest path to correct the error.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1464 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-30 01:20:43 +00:00
andrew
3c6d9d6976 manual control was mapping tx input as -180º -> 180º for AttitudeDesired.Yaw.
The Wiki (http://wiki.openpilot.org/Unit_Standards) states this should be 0 - 360º
Made the code match the wiki.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1463 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-30 01:16:00 +00:00
cwabbott
f55e9cf819 Fixed a slight problem with the .metadata folder, the flight project wasn't pointing to the correct folder again.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1462 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-29 23:16:19 +00:00
dankers
7a1353506e Just added my plugins dir to what was already there, no guarantees to fix things!
Might just make them worse!


git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1460 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-29 22:15:38 +00:00
stac
78befcba73 conversions: fix return code for ECEF2LLA
As pointed out by osnwt in the forum, the
criteria for success of this function was
wrong.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1456 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-29 14:51:07 +00:00
peabody124
f202884ce8 AHRS: Numerous changes. Added CPU load monitoring for AHRS as well as some friendly debugging output options. Also added a new CalibrationMode setting to AHRS (Echo) to speed up sensor calibration. Cleaned up the 6 point calibration interface to make it more friendly, but I think Edouard will clobber it with something nice and sexy :).
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1455 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-29 06:38:30 +00:00
stac
ecac1fb79d nmea: parse GSV sentences and populate GPSSatellites object
This creates a new UAVObject called GPSSatellites to hold
information about which satellites the GPS receiver can see
and the quality of their signals.

NMEA GSV sentences are now parsed.  The full set of GSV data
may be split across multiple GSV sentences, each containing
info for at most 4 satellites.  Once an entire set of GSV
records has been collected, the GPSSatellites UAVObject is
updated.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1453 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-29 01:46:14 +00:00
stac
2ead641136 nmea: minor bug fixes and robustness improvements
Remove asserts on bad data, only assert on coding errors.
Remove unnecessary inline qualifier to reduce code size.
Handle more lat/lon precisions in conversion to fixed-point.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1452 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-29 01:46:11 +00:00
stac
679f59f19d uavobjectparser: fix alignment of field init in generated code
Change from spaces to <TAB> to match the formatting in
the template.  No functional changes, just whitespace.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1451 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-29 01:46:09 +00:00
peabody124
8128c3bbfa OP-118 AHRS: Added 6 point calibration routine to AHRS config widget. To use it, click "Cal Mode", then place the AHRS on each of 6 sides of a cube then click save position. Finally click compute to push the updated scale abd bias terms to the AHRS. Also fixed a bug in UAVObjectField that would not allow you to setDouble for extra fields.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1449 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-28 18:48:51 +00:00
andrew
3530428982 Fixed the bounding of servo outputs for the case when max < min
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1444 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-28 05:11:19 +00:00
peabody124
00cad250ea Adding gpstime.h for flight.
Seriously - I'm sorry I missed all these files.  I suck.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1443 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-28 00:58:04 +00:00
peabody124
ced0a4b952 AHRS: Fixed silly bug that made the default mag variance be zero - explains "hopping around" default behavior. Still should run calibration though.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1439 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-27 21:05:41 +00:00
peabody124
5f9289f0c0 Flight: Keep getting WMM memory usage down
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1438 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-27 21:05:38 +00:00
zedamota
2142467751 OP-21/Flight Bootloader - Added more Led status modes. Fixed downloading for bigger packet format.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1436 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-27 20:03:51 +00:00
peabody124
16361dea12 AHRS: Making AHRS populate the NED/Vel fields of PositionActual. May rename object to PositionVelocityActual. Also created a GPSTime object which is populated from the GPRMC command. Also added a GPZDA parsing command, but by default OP GPS doesn't send this command. Made the computation of the world magnetic model use the current time to set the magnetic vector. Note: currently if you set your home location and save it to SD, this will not recompute the vector over time. I'm not sure how sensitive this is.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1435 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-27 19:59:25 +00:00
stac
a19c225697 ahrscomms: reduce retries and retry delay
The number of retries and delay between retries was
increased in a previous commit.  This doesn't appear
to be necessary so I'm reverting the increases.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1432 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-27 02:15:02 +00:00
stac
24a4c6b791 gps: Update GPSPosition instead of PositionActual
GPS module now updates GPSPosition UAVObject
rather than the PositionActual object.  The
GPSPosition object is intended to be consumed
only by the AHRS.  The AHRS will use this (and
other inputs) to compute a filtered version of
the position in the PositionActual object.

This commit will cause temporary breakage of the
GPS functionality in the GCS until the PositionActual
object is properly updated by the AHRS.  Most of the
GCS should continue to use PositionActual.  The only
exception to this might be any tool for specifically
visualizing the raw GPS state.

GPS.c is now only responsible for receiving a
complete NMEA sentence from the COM interface.

NMEA parsing is now factored out into NMEA.[ch]
which is where GPSPosition is now updated based
on the complete NMEA sentences obtained from the
GPS.

Latitude and Longitude are now encoded in a
fixed-point notation in units of degrees x 10^-7
to prevent truncation of precision due to encoding
into a float.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1431 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-27 02:15:00 +00:00
stac
47df1faa8d ahrs: whitespace adjustments
No functional changes.  Whitespace/tab fixups only.
Use TRUE/FALSE instead of 1/0.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1430 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-27 02:14:58 +00:00
stac
670452307d ahrs: remove unnecessary memset() of rx message buffer
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1429 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-27 02:14:56 +00:00
stac
0a7088c24a ahrs: fix type on flags, remove redundant code
No need to have boolean flags being floats.
Some of the attitude message was being populated twice.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1428 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-27 02:14:54 +00:00
peabody124
a0b21bef45 Flight: Got read only check working for UAVObjects and modified the ManualControl Module to use it. Edouard - please check over this.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1427 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-27 00:15:48 +00:00
peabody124
a8df6e2c4d OP-128 Flight Documentation: Added description to all the UAVObject (now mandatory) and changed the parser to populate this information into the autogenerated files. Also added a function to test if an object is read only for flight.
Since there are a lot of autogenerated changes the important ones are:

  flight/OpenPilot/UAVObjects/inc/uavobjecttemplate.h - added description and define to make the ObjectReadOnly query
  flight/OpenPilot/UAVObjects/uavobjecttemplate.c

  flight/OpenPilot/UAVObjects/uavobjectmanager.c - added the UAVObjReadOnly query

  ground/src/libs/uavobjgenerator/uavobjectparser.cpp - added parsing of description field

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1425 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-27 00:15:42 +00:00
zedamota
7f76b7f5a0 OP-21/Flight Bootloader - Fixed an error introduced on last rev.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1417 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-26 16:26:51 +00:00
peabody124
c07e1416b7 AHRS: Serial output option for AHRS and corresponding serial logger.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1414 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-26 06:25:11 +00:00
andrew
2361af19fb First attempt at ccpm mixing for single rotor helicopter.
This has throttle and pitch curves implemented and can be configured for many swashplate configurations.

This has flown a 450 clone (with training wheels) and the ccpm worked well.

Still need to neaten up some stuff and work out how to implement yaw stabilisation in manual mode.


git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1412 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-26 06:00:57 +00:00
zedamota
d71ade8227 OP-21/Flight Bootloader - Now if USB not connected it jumps directly to FW. If connected it will wait 5 seconds for command, then jumps. Also changed led flashing to PWM and created a timer for the delays.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1409 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-25 22:31:14 +00:00
peabody124
8dd81443be OP-122 Flight: Same changes regarding 62 byte limit applied to the receiving code on the device.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1405 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-25 05:32:56 +00:00
peabody124
dd491160c5 OP-121 OP-122 Flight: Improved the Blocking/Nonblocking behavior for USB to be correct. I'd like a mutex still around the transmission buffer but don't want to slow down the interrupt.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1404 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-25 05:32:54 +00:00
peabody124
4ca10e92c7 OP-121 OP-122 Flight: Improved USB HID communication.
1. Added reenumeration function and call it on USB init (device will appear after reprogramming now)
  2. Moved buffer.c to general flight/Libraries location
  3. Removed the 62 byte transmission limitation by adding a transmission buffer
  4. Sped up USB communication by increasing endpoint polling frequency

Note, that the nonblocking and blocking USB send functions are not blocking entirely correcting.  The blocking calls the nonblocking, and the nonblocking blocks until the last chunk has started tranmission if it's a big transmission.  The buffering I added would generalize to non-blocking nicely, but would require using the EP1(IN) callback to handle most of the tranmission.  This creates a lot of issues if one function is pushing data onto the buffer and the interrupt is sending.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1403 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-25 05:32:52 +00:00
andrew
b467b419e6 OP-103, UAVObject update.
Adding settings for configuring CCPM mixing for Helicopters to ActuatorSettings and SystemSettings UAVObjects.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1402 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-25 00:55:15 +00:00
zedamota
6da48dcc1a OP-21/Flight Bootloader Changed packet size to 64byte
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1398 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-24 18:26:44 +00:00
zedamota
f91ae974a7 OP-21/Bootloader Small change. Now turns off interrupts before jumping to code.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1393 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-23 21:30:09 +00:00
peabody124
2db294caf7 OP-125 Flight: Changed GPS stack size to a bit closer to what the internal model needs to get rid of out of memory warning, but it could still use 1k less if it pulled all the constants from flash when needed and computed the time difference when called. Also changed ManualControl so it checks the active control values to determine the warning, so if GCS is controlling the warning light goes out.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1387 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-23 06:03:19 +00:00
peabody124
beac0c0ea9 AHRS: Get the signs for the simple algorithm correct
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1385 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-23 04:12:14 +00:00
peabody124
e94d3d3846 AHRS/Flight: Allow selecting simple algorithm as well as INSGPS
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1384 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-23 03:51:08 +00:00
peabody124
bd8fffe4d0 AHRS/Flight: Renamed AttitudeSettings to AhrsSettings to make it more intuitive. Added the ability to change the algorithm from GCS.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1383 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-23 03:39:13 +00:00
peabody124
b32184d1ec OP-119 Flight: Converted HomeLocation object to use cm for the home base instead of floating point.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1382 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-23 02:49:53 +00:00
peabody124
2596f43511 OP-120 AHRS: Moved conversion of quaternion to RPY over from AHRS to OP to minimize transfer and computational load on AHRS.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1381 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-23 02:35:39 +00:00
peabody124
0d11493337 Flight: Added mixer settings for elevon. Also added bound checking on servo outputs which becomes important when multiple things are mixed and you want to use the full range.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1380 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-23 01:54:58 +00:00
cwabbott
19f6db79be Added ManualControl to the win32 and posix makefiles. Also fixed a compiler error about "No newline at end of file."
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1379 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-23 00:52:56 +00:00
zedamota
002c746076 OP-21/Bootloader deleted old one, commited new one. Partly functional, but slow due to current packet size.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1378 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-22 19:51:55 +00:00
peabody124
2e705e6836 OP-116 AHRS: Made data going to the AHRS in NED format. Once the final estimate object is created I'll repeat the same calculation to populate it, although we want to avoid going back to LLA format on the OP because the CPU requirements are excessive.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1376 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-22 19:01:36 +00:00
zedamota
6adc834d9b OP-21/Flight Prep work for the USB HID bootloader
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1375 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-22 18:57:29 +00:00
zedamota
2daa229a2d OP-21/Flight Prep work for the USB HID bootloader
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1374 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-22 18:56:00 +00:00
zedamota
b0d1d0dd09 OP-21/Flight Prep work for the USB HID bootloader
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1373 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-22 18:54:57 +00:00
peabody124
60332efec0 OP-118 AHRS: Missed the auto generated files for the default values. Also no idea why last patch changed navigationsettings - either make uavobjects does differently on different platforms or someone forgot to run make uavobjects.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1372 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-22 17:02:12 +00:00
peabody124
0862d64b8c OP-118 AHRS: Made default calibration values friendly for people. Also fixed bug that would repeatedly trigger calibration when it was requested.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1371 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-22 16:43:00 +00:00
sambas
7859a130e8 Fixed bug that caused Object Browser to crash
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1369 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-22 08:59:18 +00:00
pip
78868216ca Fixed UART-1 structure definition error (pios_usart_cfg pios_usart_serial_cfg)
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1368 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-22 08:59:00 +00:00
cwabbott
e27adf700b Fix posix and win32 makefiles for recent UAVObject changes.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1367 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-22 00:59:12 +00:00
peabody124
5662d85c4e OP-120 AHRS: Tightened up the communication protocol so it runs more quickly. Looks ok in gdb but GCS not crashing right now (rendering error) so I can't test it properly.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1366 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-22 00:21:54 +00:00
corvus
9bb085b7fc Documentation: Added Flowchart for HiTL mode
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1365 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-21 23:05:12 +00:00
peabody124
8897c441fa OP-118 AHRS: Added AHRSCalibration object and messages associated with that to AHRS. Also made AHRS run calibration only when requested. We will create a GCS plugin that runs through computing the calibration settings. To compute the variances on the AHRS set the measure variances to true, wait ten seconds, then set it to false to read it back.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1363 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-21 21:46:02 +00:00
patrick
564a68e825 PipBee: Updating project files to fix compile errors. Routine just toggles each LED successively. There is a known error when enabling the PIOS_COM_Init(); or more specifically PIOS_USART_Init(); which blocks at some point when called. This may be due to the pios_board.c defines which I will check later today.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1361 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-21 20:01:37 +00:00
pip
227b389e99 Attempt 2 - trying to get LEDs to flash
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1359 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-21 18:14:18 +00:00
pip
519ce846ee Just trying to get a simple 'Hello World' program going (LED flashing)
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1358 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-21 17:14:34 +00:00
stac
b36d251bd9 ahrs: remove debug code in attitude handler
Debug code was previously using the q4 element
in the attitude message to encode a cycle counter
to measure performance on the AHRS.  This is no
longer valid.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1357 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-21 16:23:14 +00:00
stac
26e257d340 spi: slow down OP <-> AHRS spi link
Issues have been reported with CRC errors
on the SPI link between the OP and AHRS
boards.  Slowing the link down eliminates
the errors in my testing.

If we speed this link back up in the future,
further investigation will be required to
diagnose the source of the CRC errors.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1356 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-21 16:19:20 +00:00
stac
635df28c34 GPSPosition: Add new UAVObject for GPSPosition
This object is not yet populated or used.  This
will soon hold the raw position data from the GPS
receiver.  PositionActual will be converted to
hold the computed position from the AHRS.

Contents of this object are still subject to change.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1355 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-21 16:19:18 +00:00
stac
7f85143bd2 OPModule: updated GPSPosition object
Updated GPSPosition module to reflect the planned use
of a fixed a fixed point encoding for lat/lon.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1354 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-21 16:19:16 +00:00
stac
f388deef34 hmc5843: standardize line endings
This file had mixed line endings.  Now they're all the same.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1353 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-21 16:19:14 +00:00
stac
a960d6e1b1 GPS: fix typo desimal->decimal throughout
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1352 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-21 16:19:12 +00:00
stac
7b2111e512 baroaltitude: rename AltitudeActual to BaroAltitude
This is to align the object names to matches the UAVObject
architecture doc.  No functional changes.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1351 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-21 16:19:10 +00:00
stac
47c36b3da0 i2c: fix error in FSM for restarted reads
The transition from the ADDR state to the read state
was broken for non-final reads.  The FSM diagram was
also wrong for this transition.

Since reads are always the last transaction in a sequence
in our current usage, this doesn't actually fix any known
bugs.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1350 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-21 16:19:06 +00:00
stac
98822bff98 i2c: force bus free on warm starts
Since the i2c bus is bidirectional, there are certain
states (eg. part way through a read) where the slave
device is in control of driving the SDA line.

On a cold start (power on), the slave devices are all
quiescent and will not drive the bus.  However, on a warm
start (eg. watchdog or jtag restart), it is possible that as
the CPU boots, the slave device may be holding the SDA line
low.  This is a bus busy condition and will prevent the I2C
bus master in the CPU from being able to seize the bus during
init.

The fix for this is to clock the i2c bus sufficiently to ensure
that the the slave device finishes its transaction and releases
the bus.

Once the slave has released the bus, the bus master can properly
initialize and assert a STOP condition on the bus.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1349 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-21 16:19:02 +00:00
peabody124
ba4dc14cea OP-124 Flight: Added fields to the AHRSStatus to track failures of each of the SPI message types.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1347 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-21 09:21:39 +00:00
peabody124
bb79ba66fa OP-119 AHRS: Converted the big data structures for the WMM calculation to be allocated on the stack, which forced a dependency on FreeRTOS :-( but keeps things on the heap. Also changed the HomeLocation object to include a Set field. When this is false, OP will try and update it whenever it gets a 3D fix. If it is saved to disk with this field as true, then it won't need to get a lock to send the magnetic flux vector to the AHRS.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1346 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-21 08:35:44 +00:00