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

258 Commits

Author SHA1 Message Date
peabody124
cfd20922cd AHRS: Added the filtered data to the attitude raw object. Even though this seems like an oxymoron it's still raw to the EKF algorithm, and nice to see the real values after filtering to make sure nothing weird is going on. However, if people don't like this I'm open to suggestions/patches. I'd maybe suggest the whole attituderaw object be converted to ahrsraw anyway since it's more like that (eg. none of the values are actually attitude estimates).
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1325 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-18 14:54:24 +00:00
peabody124
fda6fc8371 Merge branch 'mac_support'
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1324 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-18 14:29:53 +00:00
FredericG
b46bc68e96 "addr" field of I2C transaction struct now takes real I2C address, and not address that is pre-shifted to accommodate the R/W bit
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1321 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-18 10:04:55 +00:00
FredericG
be2f5bbf70 ET OSD: Adapt to new I2C API
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1316 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-18 09:31:54 +00:00
stac
3125ecfc4e AHRSComms: altitude sensor data is now sent to AHRS
Altitude/pressure sensor data is sent to the AHRS whenever
the AltitudeActual object is updated.

Altitude, Pressure and Temperature are sent as floats.
Same as in the UAVObject that goes to the GCS.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1291 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-15 01:02:13 +00:00
stac
c3e509c2cb attituderaw: Replace HeadingActual with AttitudeRaw
AttitudeRaw now includes:
 - magnetometers XYZ (in mG)
 - gyros XYZ (raw ADC samples)
 - accelerometers XYZ (raw ADC samples)
 - placeholder for gyro temp sensors (read as zero for now)

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1289 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-14 23:42:14 +00:00
stac
5d635d4233 uavobjects: regenerate existing uavobjects
No functional change, uavobjects were not regenerated since last
change to the object generator.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1288 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-14 23:42:07 +00:00
peabody124
a084d21804 Merge branch 'watchdog'
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1281 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-13 05:18:17 +00:00
cwabbott
c1cf1ec71b PiOS/Win32: Most stable version of port.c so far. Changed Makefile.win32 to use mingw32-gcc to avoid conflicts.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1278 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-12 14:32:52 +00:00
stac
f74c6ffdd5 i2c: rewrite i2c layer
The STM32 I2C block has a number of errata associated with it.
These errata are primarily related to timing sensitivities between
the peripheral and the interrupt handler.  In particular, the
correct generation of the stop bit relies on the I2C IRQ running
immediately and not being held off for any reason.

NOTE: The I2C interrupts must be the highest priority IRQs in the
      system to ensure correct operation.

I2C protocol is now implemented as a formal state machine.
See: stm32_i2c_fsm.{dot,jpg} for FSM description.

I2C init is now expressed by const initializers in pios_board.c
for both OP and AHRS boards.

I2C device drivers (ie. bmp085/hmc5843) now pass in const arrays
of an unlimited number of bus transfers to be done atomically.
The I2C adapter driver now handles all bus-level locking across the
list of transactions.  Generation of start/restart/stop conditions
are handled automatically over the list of transactions.

Timeouts have been removed from the API for now.  May be added
back later.

This driver has run error free on both the OP and AHRS boards for
up to 48hrs but it still sometimes fails earlier than that on the OP
board.  There is another possible set of improvements to the driver
that could employ the DMA engine for transfers of >= 2bytes.  This
change would reduce the timing sensitivities between the peripheral
and the driver but unfortunately, both the SPI and I2C interfaces
share the DMA1 engine.  That means only one of these two peripherals
can use the DMA engine and right now, SPI between OP and AHRS is
already using it.

Failures are currently fatal and will lock up the CPU.  This allows
useful information to be obtained in the failure cases.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1241 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-08 04:15:08 +00:00
stac
f66e2cbd86 battery: fix doxygen header info
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1239 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-08 04:14:56 +00:00
stac
a320a3e4d4 build: Turn modules back on
The modules were disabled for some reason in r1172.
This just turns them back on for the real targets.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1237 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-08 04:14:53 +00:00
peabody124
0eac218572 Small update to make ManualControl get the command after setting it. That way if the flight system isn't meant to overwrite it (i.e. flying via GCS) it uses the right value. I think this should actually be the default behavior of UAVObject set... awaiting feedback from Vassilis.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1214 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-05 19:56:36 +00:00
cwabbott
d910b8f756 slight changes to get PiOS.win32 to compile
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1205 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-04 14:21:58 +00:00
cwabbott
c2508bbb9e PiOS for win32
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1200 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-03 19:29:14 +00:00
sambas
7f6336d324 OP-22 Flight/PiOS: Spektrum reworked, input is mapped to old aux in receiver connector, works nicely with calibration plugin. Also bind works, just needs config flag to bind on powerup
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1189 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-01 10:34:07 +00:00
peabody124
47da7326e7 Damn thought I'd commited this
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1176 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-29 13:50:24 +00:00
corvus
02a78f0470 moved Vassilis stabilization module as of r1153 into Stabilization/simple
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1173 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-28 15:03:55 +00:00
corvus
9ad9ffd466 moved new stabilization code into experimental subdirectory
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1172 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-28 15:00:51 +00:00
corvus
c8486d08e4 Fixed some bugs in OpenPilot Core.
- syntax error in pios_board_posix.c introduced with Doxygen comment blocks
- platform dependant code had been added to openpilot.c instead of pios_board.c
- redundant header inclusion (stm32... already included by PiOS)


git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1171 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-28 14:34:48 +00:00
dankers
32e6d53b23 Small comment issue that was causing build to fail
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1170 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-28 11:28:18 +00:00
edouard
9145a4b1a6 Doxygen work: created "OpenPilot System" group for system libraries and core files. Changed a typo on the Osd Doxygen. Let me know if you're OK with this approach.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1169 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-28 07:28:21 +00:00
peabody124
27bcd20882 HID working on Mac for telemetry. Need to tweak GCS code for Win/Linux
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1166 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-27 20:50:20 +00:00
FredericG
efaa6c910b MKSerial: also report ground-speed
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1162 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-27 09:49:47 +00:00
peabody124
eb41a84acf And this
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1161 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-27 08:09:43 +00:00
peabody124
7d7802593e Oops, sorry missed these files
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1160 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-27 08:08:50 +00:00
peabody124
840f7ff456 A version of the firmware that successfully Acks back and forth over HID. Still need to refine the PIOS interface and make GCS strip out the report ID data (if necessary). Also note: currently if you run too many modules the watchdog timer kicks in. I haven't determined if this is due to an interrupt binding up or what (and why it doesn't happen more often since I can't find any code that explicitly resets the WWDG).
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1157 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-27 06:22:34 +00:00
peabody124
c46dcea73a Pretty major update of the USB HID core. Removed a lot of old code related to custom drivers and BSL (which will be brought back under HID). Device enumerates but still not communicating. Hopefully nothing broken, lots changed.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1155 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-27 03:19:07 +00:00
corvus
2621d07574 Added UAVObjects: FlightSituationActual NavigationSettings NavigationDesired
- Added FlighSituation Module (development module for sensor fusion, mostly stub, possibly renamed later)
- Added Navigation Module (development module for navigating towards a point in space - DEVELOPMENT CODE, NOT STABLE YET (I am testing around with this)) 
- Changed Stabilization Module (uses local reference frame now. Stable except for code cleanup/review. Tested in simulator and outperforms old code.)



git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1154 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-26 21:26:28 +00:00
peabody124
d928676f5e More documentation updates, standardizing format to include addtogroup at the beginning of headers so files are associated with modules
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1121 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-16 19:53:35 +00:00
sambas
f5c24d169e flight/osd: Parse config into setupbits and parameter slots
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1115 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-16 15:24:29 +00:00
peabody124
99e94228a9 More doxygen updates
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1106 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-16 05:31:11 +00:00
peabody124
1cd81e211f Added Doxygen comments for OpenPilot modules
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1101 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-16 01:02:34 +00:00
corvus
aa53b57d55 Changed the Build directory for posix port from Build/ to Build.posix/
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1090 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-14 10:08:03 +00:00
corvus
fa57e42efa Deleted OpenPilot.posix branch. Integrated portability modifications into main tree
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1086 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-13 16:23:41 +00:00
FredericG
5bb4fedc7f attitude seq field was removed
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1065 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-11 12:25:43 +00:00
vassilis
9f2a01a78a Flight/Servo Fix Servo driver buffer overflow, was messing up the I2C and altitude readings, now working fine. Servo index used to be 1-8 but the Servo driver was indexing a buffer out of bounds. Changed everything to use index 0-7 for servo outputs.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1061 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-11 01:54:43 +00:00
stac
3896baa908 usb hid: fix compiling with ALLOW_HID_TELEMETRY
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1060 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-10 14:56:27 +00:00
sambas
9003cd8eca OP-97 flight/GPS: GeoidSeparation added, need to think that precision problem
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1056 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-10 07:27:07 +00:00
stac
17bea4cb91 ahrscomms: connect the OP board to the AHRS board
The AHRS comms module now sync's with the AHRS and
exchanges interesting data periodically.  Whenever
the link to the AHRS is down, the AHRSComms alarm is
raised.

This is fairly basic for now but provides the last
piece of the infrastructure to move data back/forth
between the OP and the AHRS.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1014 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-04 02:21:49 +00:00
stac
a3a2dbd634 spi: Add support for hardware CRC generation/checking
PIOS SPI devices may now make use of automatic CRC generation
and checking on block transfers.  Only supports CRC8 for now.

Since the SPI interface CRC calculation continues across message
boundaries (ie. not reset on every transfer), we must manually reset
the CRC registers for every transfer to allow the two sides of the
link to resynchronize.

Unfortunately, resetting the CRC registers requires disabling the
SPI peripheral which must now be done on every block transfer.

Note: The last byte of the tx buffer is never sent and is assumed to
      be a place holder for the tx CRC8.
Note: The last byte of the rx buffer is expected to hold the rx CRC8.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1011 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-04 02:21:42 +00:00
stac
548a32f18b attitude: Rename Attitude module to AHRSComms
The Attitude module will soon be handling updates for all UAVObjects
that require data from the AHRS.  To reflect this expansion of scope,
it has been renamed to AHRSComms.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1009 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-04 02:21:37 +00:00
stac
1425ab1786 ahrs status: Add AhrsStatus UAVObject
This object currently only holds the serial number of the attached
AHRS board.  This will be retrieved each time communications are
(re)established with the AHRS board.

This will eventually be extended to hold some statistics for OP to
AHRS comms.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1008 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-04 02:21:34 +00:00
stac
1bbc8381c0 heading: Add HeadingActual UAVobject
This object currently holds only the raw magnetometer readings and
an instantaneous heading calculation which are only really useful
for debugging.  The contents of this object will change often as
development progresses.

Note: The magnetometer values are often garbage due to a problem
with i2c software on the AHRS.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1007 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-04 02:21:31 +00:00
stac
0e6294ca27 spi: remove internal pull-up from input data lines
The input data lines between the OP and AHRS boards had internal
pull-ups enabled.  This seemed to be causing issues early on
during development of the inter-board comms.  Not sure if this
is still necessary but this is how the current code was tested.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1006 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-04 02:21:26 +00:00
stac
89a6d6d912 ahrs spi: Add definition of OP<->AHRS SPI protocol
This defines the SPI message format as well as a few
initial messages for moving data across the link.

The v0 messages are place holders for firmware download
in the bootloader.

The v1 messages are to be used by the main application.

Note: This is not the final protocol definition.
      Subject to change without notice.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1004 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-04 02:21:15 +00:00
stac
3eceef43d3 spi: Connect device specific DMA IRQ handlers
Mark the device specific DMA IRQ handlers as strongly linked
aliases for the genericly named interrupt vector symbol.

Here's how this works...
 * The address of the symbol DMA1_Channel2_IRQHandler is written
   into the DMA1/Channel2 interrupt vector by the linker script.
 * The startup_*.S file specifies Default_Handler() as a weakly
   linked alias for DMA1_Channel2_IRQHandler.
 * We now override the weakly linked alias with the strongly linked
   PIOS_SPI_sdcard_irq_handler().
 * This results in the address of PIOS_SPI_sdcard_irq_handler() being
   written to the vector table for the DMA1/Channel2 interrupt.
 * The PIOS_SPI_sdcard_irq_handler() function is now called whenever
   the DMA1/Channel2 interrupt fires.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1003 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-04 02:21:13 +00:00
stac
b084fc4be5 alarms: Add alarm for AHRS Communications
The AHRSComms alarm will be raised whenever the OP board
is not able to communicate with the AHRS board.

The navigation software on the OP board could use this
alarm to trigger its best attempt at an emergency landing.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1002 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-04 02:21:11 +00:00
stac
1cc6981ee5 attitude: Remove seq field from uavobject
The sequence number field for the attitude solution is
likely unnecessary.  Removed.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1000 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-04 02:21:04 +00:00
sambas
1a7a9aa250 flight/osd: config write retry routine, my original empty config array.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@986 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-07-02 18:49:42 +00:00