Peter Barker
54e3959a99
AP_Compass: move enabled parameter into compass library
2019-04-02 10:24:49 +11:00
Mirko Denecke
9c8a7efbc6
AP_Compass: remove unused field
2019-03-26 16:09:11 +11:00
Peter Barker
2d16c37844
AP_Compass: examples: compass init never fails
2019-03-13 13:06:50 +11:00
Peter Barker
f8be4efed4
AP_Compass: init never fails; return void rather than bool
2019-03-13 13:06:50 +11:00
Siddharth Purohit
6ff8f52957
AP_Compass: add support for AK09916 connected over fourth IMU over I2C
2019-03-06 20:47:10 +11:00
Siddharth Purohit
104c433081
AP_Compass: AK09916 fix sample register structure
2019-03-06 20:47:10 +11:00
Siddharth Purohit
cff8bf14b7
AP_Compass: add support for AK09916 via invensensev2 aux bus
2019-03-06 20:47:10 +11:00
Andrew Tridgell
7f3103073a
AP_Compass: setup for fmuv6
2019-02-26 16:18:26 +11:00
Peter Barker
7184d5e860
AP_Compass: add missing override keywords
2019-02-22 15:01:09 +00:00
Peter Barker
97f2d946ab
AP_Compass: remove unused variables from AP_Compass_RM3100.h
2019-02-20 19:23:54 +11:00
Peter Barker
f0fd6fd996
AP_Compass: remove keywords.txt
2019-02-17 00:29:38 -08:00
Peter Barker
7ab6a5d94d
AP_Compass: uavcan: reindent after WITH_SEMAPHORE change (NFC)
2019-02-16 14:33:11 +11:00
Peter Barker
5b06d01402
AP_Compass: uavcan: use WITH_SEMAPHORE in place of give/take _registry
2019-02-16 14:33:11 +11:00
Tom Pittenger
2cd485e7ae
AP_Compass: unify singleton naming to _singleton and get_singleton()
2019-02-10 19:09:58 -07:00
thomass
513964cdad
AP_Compass: RM3100 simplify unisgned to signed integer conversion
2019-02-10 08:00:49 +11:00
thomass
97f3627bd5
AP_Compass: RM3100 added default cycle count value check on initialization as a whoami substitute
2019-02-10 08:00:49 +11:00
thomass
488133c396
AP_Compass: RM3100 make compliant with common methods for accumulating and draining samples
2019-02-10 08:00:49 +11:00
thomass
ede80773b9
AP_Compass: RM3100 stop passing frontend for compliance with backend class
2019-02-10 08:00:49 +11:00
thomass
8155c8b178
AP_Compass: added backend implementation for RM3100 compass
2019-02-10 08:00:49 +11:00
Andrew Tridgell
4003ea841c
AP_Compass: change to 3 compasses in SITL
2019-02-09 13:04:52 +11:00
Andrew Tridgell
700519d805
AP_Compass: raise default max compass offsets
...
the larger offset doesn't present any problems for the compass
drivers, and helps on planes with magnetic hatches
2019-02-03 04:57:25 -08:00
Andrew Tridgell
a21f4dc0c9
AP_Compass: update COMPASS_LEARN docs
2019-01-27 14:31:28 +11:00
Andrew Tridgell
1b95f17940
AP_Compass: removed F4Light
2019-01-21 21:57:21 +11:00
Peter Barker
6fc76a32af
GLOBAL: use AP::logger() and strip redundant Log_ from methods
2019-01-18 18:08:20 +11:00
Peter Barker
b47733142f
GLOBAL: rename DataFlash_Class to AP_Logger
2019-01-18 18:08:20 +11:00
Randy Mackay
68363ff4a2
AP_Compass: devid param desc include ReadOnly
2018-12-27 10:08:11 +09:00
Andrew Tridgell
3d9126ec4a
AP_Compass: run lsm303d at 91Hz, not 100Hz
...
Peter and I have discovered an odd behaviour with the lsm303d mag. If
you fetch data a bit too soon then it will give a peridic oscillation
in the output.
Checking the data ready bit in the status register doesn't help. The
only fix I've found is to run the sampling at a bit lower rate
2018-11-30 11:39:54 +11:00
Peter Barker
e7a981d2c3
AP_Compass: add override keyword where required
2018-11-08 11:30:12 +11:00
Phillip Kocmoud
27a2b8a350
AP_Compass: Increase default MAX compass offset
...
After discussing the @tridge and @rmackay9 it was suggested that raising the maximum allowable compass offset value would allow users of the LIS3MDL and possibly others with larger compass offsets to fly with the default setting.
This has been deemed a fairly safe change that still allows for sufficient overhead to prevent saturation.
2018-10-30 09:25:51 +09:00
Lucas De Marchi
9d95579b2d
AP_Compass: update TYPEMASK documentation
...
Add missing drivers IST8308 and MAG3110.
2018-10-25 20:19:30 -07:00
Lucas De Marchi
34fb98b1e0
AP_Compass: probe for IST8308 on external buses
2018-10-25 20:19:30 -07:00
Lucas De Marchi
c3d87f91fc
AP_Compass: add support to IST8308
2018-10-25 20:19:30 -07:00
Andrew Tridgell
70246cf954
AP_Compass: added notify events (LEDs and buzzer) for learning
2018-10-24 07:25:42 +10:00
Andrew Tridgell
23ddd994ec
AP_Compass: allow multiple COMPASS_LEARN runs per boot
2018-10-24 07:25:42 +10:00
Andrew Tridgell
026089747d
AP_Compass: use LEARN_NONE on learn completion
...
master doesn't yet have the statistical EKF learning
2018-10-24 07:25:42 +10:00
Andrew Tridgell
0a7170774a
AP_Compass: allow learning of all compasses
...
slave secondary compasses to primary
2018-10-24 07:25:42 +10:00
Andrew Tridgell
5ac6309848
AP_Compass: enable in-flight compass learning system
...
using COMPASS_LEARN=3
2018-10-24 07:25:42 +10:00
Andrew Tridgell
84d7160128
AP_Compass: use new accumulate functions for UAVCAN
2018-10-19 16:03:45 +11:00
Andrew Tridgell
579a84b53e
AP_Compass: use new accumulate functions for AK8963
2018-10-19 16:03:45 +11:00
Andrew Tridgell
55e4b64755
AP_Compass: don't apply offsets twice in SITL
2018-10-19 16:03:45 +11:00
Andrew Tridgell
925555c995
AP_Compass: move accum fields to frontend
...
this is needed to ensure they are per-instance. Without this the SITL
backend produces zero for all but the first instance. The same would
be true for any multi-instance backend
2018-10-17 12:54:22 +11:00
Andrew Tridgell
83065d5e88
AP_Compass: convert SITL to new accumulate approach
2018-10-17 12:54:22 +11:00
Andrew Tridgell
a260792e9e
AP_Compass: use WITH_SEMAPHORE()
...
and removed usage of hal.util->new_semaphore()
2018-10-17 12:54:22 +11:00
vierfuffzig
b455c7a769
AP_Compass: add rotation option for AK8963_MPU9250
...
allows using non-neutrally rotated AK8963 compass on MPU9250 as internal
reference: https://github.com/ArduPilot/ardupilot/pull/9459
2018-10-17 09:35:49 +11:00
Andrew Tridgell
0b9d0a4559
AP_Compass: removed incorrect semaphore take() in QMC5883L driver
2018-10-16 10:47:26 -07:00
Lucas De Marchi
1a9c386df2
AP_Compass: MMC3416: use common method to accumulate samples
2018-10-15 14:41:09 -07:00
Lucas De Marchi
e83b345cbb
AP_Compass: MAG3110: use common method to accumulate samples
2018-10-15 14:41:09 -07:00
Lucas De Marchi
ac2771b311
AP_Compass: LSM9DS1: use common method to accumulate samples
2018-10-15 14:41:09 -07:00
Lucas De Marchi
2324a28e39
AP_Compass: LSM303D: use common method to accumulate samples
2018-10-15 14:41:09 -07:00
Lucas De Marchi
38d1f8705f
AP_Compass: LIS3MDL: use common method to accumulate samples
2018-10-15 14:41:09 -07:00
Lucas De Marchi
b05b3b9932
AP_Compass: IST8310: use common method to accumulate samples
2018-10-15 14:41:09 -07:00
Lucas De Marchi
8d54276263
AP_Compass: BMM150: use common method to accumulate samples
2018-10-15 14:41:09 -07:00
Lucas De Marchi
565df5ec94
AP_Compass: AK09916: use common method to accumulate samples
2018-10-15 14:41:09 -07:00
Lucas De Marchi
e769c6932f
AP_Compass: QMC5883L: use common method to accumulate samples
2018-10-15 14:41:09 -07:00
Lucas De Marchi
c0bccdaed6
AP_Compass: HMC5843: use common method to accumulate samples
2018-10-15 14:41:09 -07:00
Lucas De Marchi
329516373c
AP_Compass: add common method to accumulate and drain samples
...
Instead of repeating on each driver the same sequence of steps,
let's move them to the common parent class. This only implements
it, but no driver was ported yet.
2018-10-15 14:41:09 -07:00
Andrew Tridgell
2f2be6afda
AP_Compass: use rotation_equal() from AP_Compass
2018-10-01 14:26:56 +09:00
Andrew Tridgell
803f255c73
AP_Compass: fixed handling of duplication rotations
...
we have some rotations that are duplicated, such as ROLL_180_YAW_90
and PITCH_180_YAW_270. This copes with those in the auto-orientation
code
2018-10-01 14:26:56 +09:00
Lucas De Marchi
93d99dacd1
AP_Compass: UAVCAN: remove additional semaphore
...
We already inherit from AP_Compass_Backend, so use the semaphore from
there to synchronize with the main thread, like the other backends.
2018-09-06 08:23:02 +10:00
Lucas De Marchi
cd9b08dbae
AP_Compass: rename variable for more buses
...
"all_external" reflects better the fact that we can have more than 2
buses (and now we are using the foreach macro).
2018-09-06 08:23:02 +10:00
Lucas De Marchi
de535dc573
AP_Compass: remove unused external and name arguments
...
Aka "fix copy and pasta".
2018-09-06 08:23:02 +10:00
Lucas De Marchi
4039b51810
AP_Compass: stop passing frontend pointer
...
Let AP_Compass_Backend call AP::compass() *once* instead of passing
the frontend pointer over and over.
2018-09-06 08:23:02 +10:00
Lucas De Marchi
585b6dce0d
AP_Compass: support more external compasses on aerofc
...
Let it probe on external bus. Aerofc has an HMC5883 on internal bus, but
we don't want it enabled as it interferes with the internal baro. Also
the rotation for the compass that comes with Aero RTF is different from
the other that got added later. That means people would need to orient a
third party IST8310-based compass differently on Aero RTF than on other
boards... that's a problem of having orientation based on the chip that
can't be solved on this commit.
2018-09-06 08:23:02 +10:00
liang.tang
2c0b9a16a5
AP_Compass: fix UAVCAN mag message handlers
2018-09-05 17:22:34 +10:00
Siddharth Purohit
14b701cff8
AP_Compass: move UAVCAN mag subscribers and handlers to Compass Backend
2018-08-29 22:54:59 +01:00
Francisco Ferreira
317e8e0296
AP_Compass: adapt to changes in AP_BoardConfig_CAN
2018-08-12 13:35:03 +01:00
Andrew Tridgell
3ed7c060df
AP_Compass: address review comments
2018-08-07 10:00:10 +10:00
Jonathan Challinger
cefd998177
AP_Compass: add expected DEV_ID parameters
2018-08-07 10:00:10 +10:00
Jonathan Challinger
878e84a015
AP_Compass: correct edge case where checks pass when saved dev_id != detected dev_id
2018-08-07 10:00:10 +10:00
Randy Mackay
c88926f227
Compass: remove accumulate from example sketch
2018-08-06 11:05:34 +10:00
Randy Mackay
99b54935db
Compass: remove accumulate
...
this method is a noop on all backends
2018-08-06 11:05:34 +10:00
Andrew Tridgell
2ded88e611
AP_Compass: allow override of QMC5883L orientation
2018-07-30 17:26:19 +10:00
Randy Mackay
cb3731e08e
Compass: fix compile warning in calibrator output
2018-07-30 14:57:01 +10:00
Andrew Tridgell
e39d070b78
AP_Compass: clear DEV_ID for undetected compasses
...
this prevents user confusion with the number of compasses detected
2018-07-30 13:07:55 +10:00
Andrew Tridgell
b181340fd9
AP_Compass: allow override of COMPASS_AUTO_ROT
2018-07-28 18:05:12 +10:00
Andrew Tridgell
cbd6f4cc21
AP_Compass: fixed compass for tailsitters in SITL
2018-07-20 14:21:06 +10:00
Andrew Tridgell
027beb0dc1
AP_Compass: rename COMPASS_ROT_AUTO to COMPASS_AUTO_ROT
...
request from Randy
2018-07-18 16:07:19 +10:00
Andrew Tridgell
15d2daabf0
AP_Compass: don't do auto-orientation if using ROTATION_CUSTOM
2018-07-18 16:07:19 +10:00
Andrew Tridgell
a73492b40a
AP_Compass: fixed newline in statustext
2018-07-18 16:07:19 +10:00
Andrew Tridgell
196ba0e858
AP_Compass: make COMPASS_ROT_AUTO take 3 values
...
0 for disabled, 1 for check only, 2 for check and fix
2018-07-18 16:07:19 +10:00
Andrew Tridgell
d15a4ad92a
AP_Compass: improved error reporting, check all compasses
...
this uses extensions to the MAG_CAL_REPORT message to convey failures
of orientation checking.
It also checks all compasses, external or internal. It only tries to
fix the orientation if it is external
2018-07-18 16:07:19 +10:00
Andrew Tridgell
a5749c1869
AP_Compass: allow diagonals and off-diagonals to be calculated on rot change
...
this re-runs the fit on change in orientation
2018-07-18 16:07:19 +10:00
Andrew Tridgell
b4c7d1925e
AP_Compass: allow for runtime changes to SIM_MAG_DIA_?
...
this makes for easier testing
2018-07-18 16:07:19 +10:00
Andrew Tridgell
3c2e8baee2
AP_Compass: improved orientation reporting
...
and fail magcal if we fail orientation detection for an external
compass
2018-07-18 16:07:19 +10:00
Andrew Tridgell
8b0f40b402
AP_Compass: implement automatic compass orientation
...
this automatically determines the compass orientation when doing a 3D
compass calibration, if COMPASS_ROT_AUTO is enabled.
2018-07-18 16:07:19 +10:00
Andrew Tridgell
4acc06df87
AP_Compass: support diagonal, off-diagonal and rotation in SITL
...
compass
2018-07-18 16:07:19 +10:00
Andrew Tridgell
3c0ed01fd0
AP_Compass: prevent use of null dev_icm device in ICM20948 driver
2018-07-14 17:51:50 +10:00
Andrew Tridgell
71647cfc6b
AP_Compass: removed HMC5843 compass probe error
2018-07-14 17:51:50 +10:00
Andrew Tridgell
ff6d639ed7
AP_Compass: separated out external compass probing
...
this allows any ChibiOS board to specify that it wants to probe for
all possible external compass types with a define in hwdef.dat
It also implements duplicate compass detection for all i2c drivers,
ensuring we can't get a load of a driver on the same bus/address twice
2018-07-14 17:51:50 +10:00
Andrew Tridgell
7ec6522b9d
AP_Compass: default to right mag offsets for SITL
2018-07-13 10:19:01 +10:00
Andrew Tridgell
2fe2c8fbda
AP_Compass: initialise compass IDs saved in SITL
...
this ensures we don't get uncalibrates compasses in SITL
2018-07-13 10:19:01 +10:00
Andrew Tridgell
823c4523b3
AP_Compass: added SITL device IDs
2018-07-13 10:19:01 +10:00
Andrew Tridgell
f88a4b3a2f
AP_Compass: fixed compass orientations on PH4
2018-07-10 18:29:14 +10:00
Andrew Tridgell
8fd69250bd
AP_Compass: use I2C bus masks
...
this allows for external compasses on all external I2C ports, while
retaining existing device ordering
2018-07-10 15:39:47 +10:00
Peter Barker
051c811bfb
AP_Compass: make compass_cal_requires_reboot const
2018-07-03 13:44:11 +10:00
Peter Barker
4c2925d693
AP_Compass: remove pointless initialisations
...
If you are allocating one of these on the stack you're doing something
wrong.
2018-07-02 10:44:34 +10:00
Lucas De Marchi
49d08ba72a
Global: remove minlure
...
Minlure is a port of ArduPilot to Minnow Board connected to daughter
board. Very few of those were produced and nobody is flying with it.
It served its purpose and all the the improvements to ArduPilot remain
regardless of it not being supported anymore. Now it's just adding
maintenance work with no clear benefit, so pull the plug.
2018-06-26 07:32:08 -07:00
Peter Barker
9eb53e333b
AP_Compass: tidy consistency calculations
...
AP_Compass: normalize vectors in-place to save a few bytes (thanks MdB)
2018-06-26 18:37:55 +10:00
Patrick José Pereira
e456655932
AP_Compass: Use SITL singleton
...
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2018-06-26 00:02:01 +01:00
Andrew Tridgell
b225868711
AP_Compass: detect conflict between AK09916 and ICM20948
...
this detects if we have both a AK09916 and an ICM20948 on the same i2c
bus. If that is found then the ICM20948 is disabled as it otherwise we
will have two devices on the same i2c address
2018-06-12 09:04:43 +10:00
Eugene Shamaev
df6b7ed5ea
AP_Compass_UAVCAN: update
2018-06-09 22:46:48 -07:00
Eugene Shamaev
9195ba80fc
AP_Compass: helper func
2018-06-09 22:46:48 -07:00
Eugene Shamaev
baa6daf270
AP_Compass: reducing indenting by linearizing the logic
2018-06-09 22:46:48 -07:00
Andrew Tridgell
2d9df83ed5
AP_Compass: probe for ist8310 on bus 2 as well as 0 for fmuv5
2018-06-06 15:01:38 +10:00
Andrew Tridgell
99540a184c
AP_Compass: enable FMUv5 compass
2018-06-06 07:15:41 +10:00
Andrew Tridgell
ccdfc75dd9
AP_Compass: placeholder for FMUv5
2018-06-06 07:15:41 +10:00
Peter Barker
a3a1967e05
AP_Compass: add AP::compass() singleton getter
2018-05-17 15:37:14 +10:00
Francisco Ferreira
0a3af28d17
AP_Compass: remove Qualcomm board support
2018-05-17 09:57:20 +10:00
mirkix
85fe07f1f0
AP_Compass: enable probe HMC5843 for PocketPilot
2018-05-12 07:16:50 +10:00
night-ghost
4cffbf52d3
AP_COMPASS: fix MAG3110 driver
2018-05-07 11:45:29 +10:00
night-ghost
a05c79f1d8
Compass: fix HAL_F4light compilation errors
2018-04-30 08:32:58 +10:00
Jacob Walser
44d0f7b2a1
AP_Compass: update ORIENT @Values
2018-04-24 13:04:37 +01:00
Jacob Walser
6699c59ad3
AP_Compass: add support for custom board orientations
2018-04-24 13:04:37 +01:00
kozinalexey
444c0bb54c
AP_Compass: added ChibiOS external compass config
2018-04-14 11:09:34 +10:00
Andrew Tridgell
eccc4f375b
AP_Compass: fixed build warning
2018-04-12 11:50:44 +10:00
night-ghost
677f2bebc3
AP_Compass: added autodetect of all known compasses on external bus
2018-04-11 15:00:36 +10:00
night-ghost
f26bb0cfbe
AP_Compass: added range filter to backend, added its use in some sensors (thanks khancyr for style correction)
2018-04-11 14:46:42 +10:00
Peter Barker
face8151b7
AP_Compass: include required header
2018-04-09 11:34:35 +10:00
Michael du Breuil
c66d15efd7
AP_Compass: Read current for compensation from the battery singleton
2018-03-27 22:12:21 +01:00
Nathan E
dcf127b73d
Compass: clarify compass orientation description
...
Resolves an error directing users to reference the flight controller (instead of the frame) for COMPASS_ORIENT.
Changed wing to side for all vehicles
2018-03-21 09:01:45 +09:00
LinJieqiang
c73e7f0cf3
add IST8310 compass sensors in AP_Compass.cpp
2018-03-09 11:25:35 -08:00
Andrew Tridgell
8b3db7c09f
AP_Compass: allow for HAL_COMPASS_NONE
2018-03-02 12:52:50 +11:00
Andrew Tridgell
487b615faa
AP_Compass: allow for override of MAG_BOARD_ORIENTATION
2018-03-02 12:52:50 +11:00
Peter Barker
46dbb248f9
AP_Compass: correct compiler warnings
...
In file included from ../../libraries/AP_Compass/AP_Compass.h:14:
../../libraries/AP_Compass/Compass_PerMotor.h:57:13: warning: private
field 'channel' is not used [-Wunused-private-field]
uint8_t channel;
AP_Compass: fix compiler warning
../../libraries/AP_Compass/AP_Compass_MAG3110.h:52:11: warning: private
field 'compass_len' is not used [-Wunused-private-field]
float compass_len;
^
2018-03-02 09:26:37 +09:00
Andrew Tridgell
f61591c426
AP_Compass: added SP01 board type
2018-02-14 18:27:00 +11:00
Andrew Tridgell
52815cd952
AP_Compass: fixed compass orientation for mini-pix
2018-02-14 18:27:00 +11:00
ljwang
231aa16835
AP_Compass: support mini-pix
2018-02-14 18:27:00 +11:00
Randy Mackay
3bec25da85
AP_Compass: resolve compiler warnings
2018-02-10 08:54:34 +09:00
Andrew Tridgell
2c8e6bb834
AP_Compass: use generic defines for BMM150
2018-02-08 17:36:33 +11:00
Andrew Tridgell
57a3bc1397
AP_Compass: new compass learning system
...
this learns compass offsets using magnetic tables and compass
observations
2018-02-08 17:36:33 +11:00
Andrew Tridgell
ca30f6aec8
AP_Compass: added per-motor compass calibration
...
this allows for a motor calibration vector per motor
2018-02-08 17:36:33 +11:00
Andrew Tridgell
2cc0f25ca0
AP_Compass: support PCNC1
2018-02-08 17:36:33 +11:00
Andrew Tridgell
0d8cdd2728
AP_Compass: fixed warning
2018-02-07 20:33:45 +11:00
Andrew Tridgell
23803df038
AP_Compass: allows boards to define orientation of HMC5843
2018-02-07 20:33:45 +11:00
Siddharth Purohit
f0f4239d4a
AP_Compass: skip using posix headers for non posix systems
2018-02-07 20:33:45 +11:00
LukeMike
432f6c2a4a
VRBRAIN / APCompass: added compass sensor init for VR Brain boards
2018-02-05 08:26:49 +11:00
Andrew Tridgell
2067e25523
AP_Compass: make length filter in MAG3110 optional
...
compile time for now, later can may become parameter
2018-02-02 21:07:40 +11:00
night-ghost
b6bf90ab93
AP_Compass: mAG3110 driver
2018-02-02 21:07:40 +11:00
Andrew Tridgell
20d75f52c2
AP_Compass: use calloc in preferance to malloc
2018-01-17 11:22:05 +11:00
Andrew Tridgell
b741c6c29e
AP_Compass: fixed build error on ChibiOS
2018-01-15 11:46:02 +11:00
Andrew Tridgell
8e87c30a33
AP_Compass: fixed MindPX-v2 compass orientations
2018-01-15 11:46:02 +11:00
Andrew Tridgell
36a141f9f1
AP_Compass: support MindPX-v2
2018-01-15 11:46:02 +11:00
Andrew Tridgell
743714de4c
AP_Compass: support ChibiOS FMUv4
2018-01-15 11:46:02 +11:00
Andrew Tridgell
5d9fa7f85b
AP_Compass: support ChibiOS
2018-01-15 11:46:02 +11:00
Randy Mackay
86cbc445bd
AP_Compass: ICM20948 default rotation to Pitch180Yaw90
2018-01-12 08:16:41 +09:00
Andrew Tridgell
f326377a5c
AP_Compass: removed create() method for objects
...
See discussion here:
https://github.com/ArduPilot/ardupilot/issues/7331
we were getting some uninitialised variables. While it only showed up in
AP_SbusOut, it means we can't be sure it won't happen on other objects,
so safest to remove the approach
Thanks to assistance from Lucas, Peter and Francisco
2017-12-14 08:12:28 +11:00
Mark Whitehorn
b0e2f06a7a
AP_Compass: add LIS3MDL probe for Pixracer
2017-12-08 09:49:25 +11:00
HeBin
26de6de848
AP_Compass: add Robsense PhenixPro Devkit Board support
2017-11-22 10:10:21 -08:00
Georgii Staroselskii
710594eee3
AP_Compass: enable compass on Edge
2017-10-20 13:03:08 -07:00
Andrew Tridgell
5646afac1c
AP_Compass: avoid double detection of the AK09916
...
with an ICM20948 we can double detect the compass due to the i2c pass-thru
2017-10-04 11:49:06 +11:00
Lucas De Marchi
2fc6e52431
AP_Compass: use IST8310 and HMC5883 as external mags
2017-09-27 09:25:34 -07:00
Francisco Ferreira
6e286a2e66
AP_Compass: re-enable QMC5883 compass driver by default
...
This reverts commit a657daf635
2017-09-27 12:24:36 +01:00
Lucas De Marchi
69b6d95cb2
global: use static method to construct AP_Board_Config{,_CAN}
2017-09-26 03:01:21 +01:00
Lucas De Marchi
c1a957fbf3
global: use static method to construct Compass
2017-09-26 03:01:21 +01:00
Lucas De Marchi
320260a151
AP_Compass: add static create method
2017-09-26 03:01:21 +01:00
Andrew Tridgell
678bd084b7
AP_Compass: added IST8310 on FMUv3 I2C
2017-09-23 08:07:18 +10:00
Rufus Wong
9491f7da55
AP_Compass: Add break to prevent fallthrough of PIXRACER to PIXHAWK_PRO
2017-09-18 19:57:22 +10:00
Lucas De Marchi
b1740e2d9c
AP_Compass: remove raspilot
2017-09-12 15:06:19 -07:00
Lucas De Marchi
d5f57fdd93
AP_Compass: AK8963: remove fallback to timer thread
...
Now that the bus thread from the AuxiliaryBus is implemented we can
remove the fallback.
2017-09-11 09:52:41 -07:00
davidaroyer
ad18e99bef
AP_Compass: add support for Aerotenna OcPoC-Zynq hardware
2017-09-08 07:30:49 -07:00
Michael du Breuil
fb77d0739e
AP_Compass: Remove unused time calls, stash the time in the read loop
2017-09-07 19:53:14 +01:00
Mark Whitehorn
3642ecd9ef
AP_COMPASS: fix errors in addition of alternate LIS3MDL I2C address
...
testing shows ROTATION_YAW_90 is correct for mRo Neo M8N GPS/compass
2017-08-10 19:46:26 +10:00
Mark Whitehorn
a6e9baa8f6
AP_Compass: probe for LIS3MDL in mRo Neo-M8N GPS module
2017-08-10 19:46:26 +10:00
Francisco Ferreira
6cf8791eb5
AP_Compass: correct comment in LIS3MDL driver
...
Commit 17f2393c1b
decreased timer frequency but didn't change comment to match
2017-08-04 19:56:26 +01:00
Lucas De Marchi
6bab28397a
AP_Compass: remove user of timesliced logic
2017-08-02 08:00:53 -07:00
ljwang
5a7ec7d429
Delete write registers at start,using another way to repair
2017-08-02 16:15:14 +10:00
ljwang
648871a388
Fixed the QMC5883 identification,add check ID
2017-08-02 16:15:14 +10:00
Randy Mackay
a657daf635
Compass: disable QMC5883 compass driver by default
...
This driver causes occasional heading issues so disabling until these are resolved
2017-07-25 09:27:29 +09:00
Kevin Lopez Alvarez
df406c4389
AP_Compass : increase max possible offset
2017-07-24 13:48:20 +10:00
Kevin Lopez Alvarez
17f2393c1b
AP_Compass: Decrease LIS3MDL ODR and timer
2017-07-24 13:48:20 +10:00
Kevin Lopez Alvarez
08b531e6a8
AP_Compass: LIS3MDL correct orientation
2017-07-24 13:48:20 +10:00
Kevin Lopez Alvarez
cf8c1c2665
AP_Compass: Remove comments and use correct board number
2017-07-24 13:47:44 +10:00
Kevin Lopez Alvarez
1467daee2a
AP_Compass: add ppro support
...
disable lis3mdl for now
2017-07-24 13:47:06 +10:00
Andrew Tridgell
732dc5984a
AP_Compass: added COMPASS_TYPEMASK parameter
...
this allows driver type to be disabled, to avoid probing them and
wasting CPU on sensors that are not being used
This also moves UAVCAN compass to be detected last, as discussed in the
dev call
2017-07-19 15:53:22 +10:00
Peter Barker
6b53b5b5f3
AP_Compass: make handle_mag_cal_command return type stricter
2017-07-17 14:17:19 +01:00
ljwang
603e903ccd
AP_Compass: QMC5883 Add internal i2c bus and fix rotation error
2017-07-12 12:56:59 +10:00
Eugene Shamaev
aa1f6a7587
AP_Compass: united enumeration on startup, multiple CAN drivers, correct dev_id based on network and node ID
2017-07-03 11:44:32 +01:00
Miguel Arroyo
ee328c9683
AP_Compass: move SITL Compass to standard sensor backend model
2017-06-29 09:22:08 +10:00
Andrew Tridgell
f3d995a716
AP_Compass: improved robustness of BMM150 detection code
...
cope with bus errors on startup
2017-06-21 16:25:37 +10:00
Andrew Tridgell
68460144df
AP_Compass: added retries on init in BMM150
2017-06-21 16:25:37 +10:00
Andrew Tridgell
9b093c4a33
AP_Compass: fixed a numerical issue in BMM150 driver
...
we were getting the following:
ret=-32768 z=5 rhall=6267 z1=23743 z2=712 z3=-1035 z4=0 xyz1=6264 dividend=163840 dividend2=-1073577207 divisor=5253
the signed/unsigned casts for rhall and xyz1 did not produce the
desired result
2017-06-21 16:25:37 +10:00
Andrew Tridgell
0623db98d6
AP_Compass: cope with bus errors in BMM150
...
if we have bus errors the BMM150 can get confused, giving rubbish
output. This uses the checked register code to reset, and a full soft
reset after 250ms of no samples.
2017-06-21 16:25:37 +10:00
Andrew Tridgell
fa3d40af8a
AP_Compass: fixed shift typo
...
this doesn't affect LE MCUs like STM32
2017-06-21 16:25:37 +10:00
Andrew Tridgell
a0e4ec0f3a
AP_Compass: fixed bitmask typo
2017-06-18 18:15:47 +10:00
Touch
5da2e0b3fb
Update code format
2017-06-18 17:25:20 +10:00
ljwang
8fff1ec4d4
add QMC5883L driver for GPS compass module
2017-06-18 17:25:20 +10:00
ljwang
e648f2e61e
add QMC5883L driver for GPS compass module
2017-06-18 17:25:20 +10:00
Andrew Tridgell
bcd305c821
AP_Compass: fixes for merge with master
2017-06-09 14:56:33 +10:00
Andrew Tridgell
04430457d5
AP_Compass: attempts to diagnose the twitches in MMC3416
2017-06-09 14:56:33 +10:00
Andrew Tridgell
36932a2959
AP_Compass: implement full state machine for MMC3416
...
this uses 100Hz readings most of the time, but does slow offset
readings every 50 samples
2017-06-09 14:56:33 +10:00
Andrew Tridgell
167988b5c4
AP_Compass: implement MMC3416 temperature compensation
...
this is much slower, but removes temperature offset
2017-06-09 14:56:33 +10:00
Andrew Tridgell
736fb715ec
AP_Compass: MMC3416 magnetometer driver
2017-06-09 14:56:33 +10:00
Randy Mackay
1ce2a7fcee
AP_Compass: resolve AK09916 driver compiler warning
2017-06-07 20:38:12 +09:00
Andrew Tridgell
d946d5da6f
AP_Compass: enable AK09916 inside a ICM20948
...
the ICM20948 has an AK09916 which can be accessed via I2C bypass
2017-06-07 17:39:45 +10:00
mirkix
d9d3d97e54
AP_Compass: BeagleBone Blue add external compass HMC5843
2017-06-01 17:11:34 +01:00
Dr.-Ing. Amilcar Do Carmo Lucas
4c45b1c7ca
AP_Compass: Use SI units conventions in parameter units
...
Follow the rules from:
http://physics.nist.gov/cuu/Units/units.html
http://physics.nist.gov/cuu/Units/outside.html
and
http://physics.nist.gov/cuu/Units/checklist.html
one further constrain is that only printable (7bit) ASCII characters are allowed
2017-05-17 18:07:25 +10:00
murata
46cba2c970
libraries: Delete the setting value for specific editor.
2017-05-11 13:18:41 -07:00
Peter Barker
b39da462ec
AP_Compass: use HAL_SEMAPHORE_BLOCK_FOREVER macro
2017-05-08 10:23:03 +09:00
Andrew Tridgell
45f27ceb9c
AP_Compass: rename macros to avoid conflicts
...
these macros were also defined in NuttX in clock.h
2017-05-06 15:21:14 +10:00
Eugene Shamaev
b3d9126407
AP_Compass: removal of legacy UAVCAN support
2017-04-17 17:27:18 +10:00
Pierre Kancir
d3e27d8720
AP_Compass: example fix travis warning
...
missing function declaration
implicit cast
some style fix
2017-04-13 19:56:16 +01:00
Eugene Shamaev
3e044c7b8a
AP_Compass: support for UAVCAN connected magnetometers
2017-04-10 22:38:12 +01:00
Andrew Tridgell
ee2afd3242
AP_Compass: added COMPASS_OFFS_MAX
...
this allows setup of airframes with hatch magnets
2017-04-04 00:49:34 +01:00
Lucas De Marchi
5787b5a5c5
AP_Compass: IST8310: rename macros
...
Having "BIT" in the name gives the impression we are using the macro is
the bit position; however they have the values for those actions, not
the bit position. Rename BIT to VAL to be less confusing.
2017-03-24 12:06:19 +11:00
Lucas De Marchi
4bba643abb
AP_Compass: IST8310: use variable periodic callback
...
This is the equivalent of sleep and wait for the conversion time,
after had triggered a new sample request. However it also has the added
benefits of sharing a thread with other sensors on the same bus.
Now we don't read the status register anymore since we have a guaranteed
wait time.
2017-03-24 12:06:19 +11:00
Lucas De Marchi
ce1a13aa8f
AP_Compass: IST8310: use FSR to reject samples
2017-03-24 12:06:19 +11:00
Lucas De Marchi
d84851d8fa
AP_Compass: IST8310: improve initialization
...
- Make sure device is reset while initializing.
- Give better names to register macros
- Average X, Y and Z by 16: sensor is internally running at 200 sps
(theoretical, ~160 pratical). The wait time is ~6msec averaging
by 16. We do 10msec.
2017-03-24 12:06:19 +11:00
Tom Pittenger
c0691afc1f
AP_Compass: reject outlier data in IST8310 data by detecting >14bit data
2017-03-24 12:06:19 +11:00
Tom Pittenger
8415fde697
AP_Compass: IST8310 chip does not follow right-hand rule format, flip z
2017-03-24 12:06:19 +11:00
Lucas De Marchi
b339050e45
AP_Compass: IST8310: account for errors in measurment requests
...
If we don't recover for errors in the request for new sample, we may get
stuck with no sample anymore. Recover from bad transfers.
2017-03-24 12:06:19 +11:00
Lucas De Marchi
156efd6fec
AP_Compass: use IST8310 for aerofc
2017-03-24 12:06:19 +11:00
Andrew Tridgell
37c9e08316
AP_Compass: support AUAV21 board
2017-03-01 17:24:10 +11:00
Jacob Walser
7121910fa7
AP_Compass: Set default learn parameter to disabled for Sub
2017-02-21 11:26:14 +11:00
murata
bc7b2144e7
AP_Compass: Change from magic number 0 to definition name.
2017-02-18 14:12:36 +00:00
Lucas De Marchi
dd98fc75a9
AP_Compass: BMM150: fix sampling time
...
We configure the sensor with an ODR of 30 Hz. There's no need to keep
calling the update function at 100Hz.
2017-02-11 01:37:49 -08:00
Andrew Tridgell
64a8f00a77
AP_Compass: disable esoteric compass drivers on FMUv2
2017-01-29 16:31:06 +11:00
murata
af47a8e91c
AP_Compass: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
Randy Mackay
855125381d
AP_Compass: relax compass cal fitness and consistency checks
2017-01-27 11:20:02 +09:00
Randy Mackay
53d1585ebf
Compass: relax compass consistency checks for pixracer
2017-01-21 12:10:00 +09:00
Randy Mackay
0c4e3cd8e4
Compass: pixracer calibration fitness default relaxed
2017-01-21 10:15:11 +09:00
Andrew Tridgell
58a0a6a2fc
AP_Compass: disable lis3mdl for now
...
pending investigation of possible hw error
2017-01-14 12:40:04 +11:00
Lucas De Marchi
5472bc4de1
Global: change Device::PeriodicCb signature
...
Remove bool return as it's never being used and not supported on PX4.
2017-01-14 10:03:54 +11:00
murata
a2649949df
AP_Compass: Changed if statements to switch statement.
2016-12-19 22:28:34 +00:00
Andrew Tridgell
790d186c6c
AP_Compass: switched to unified Invensese driver for AK8963
2016-12-16 12:31:34 +11:00
Andrew Tridgell
a440ac4c9d
AP_Compass: use a set_and_notify for external and IDs
...
ensure that GCS that connects quickly gets the right value
fixes issue #5364
2016-12-09 14:36:01 -08:00
Lucas De Marchi
899fce53ff
AP_Compass: IST8310: minor fixes and refactors
...
- Inline code that needs to take and release the lock in init()
function, just like other drivers
- Minor changes to coding style and renames to be similar to other
drivers
2016-12-09 10:08:37 -08:00
Georgii Staroselskii
f061572e13
AP_Compass: add IST8310 support
...
One needs to specify I2C address and a bus number in AP_Compass.cpp to use it.
2016-12-09 10:08:37 -08:00
Pierre Kancir
385e5badd8
Ap_Compass: LIS3MDL fix order
2016-12-06 09:31:21 -08:00
Pierre Kancir
c49c851a57
Ap_Compass: AK09916 fix order
2016-12-06 09:31:21 -08:00
Andrew Tridgell
a1bce2b54d
AP_Compass: use get_random16()
2016-12-02 09:49:38 +11:00
Andrew Tridgell
4f1f6ec019
AP_Compass: added retries during init for i2c devices
...
higher in init, lower for run
2016-12-02 09:47:51 +11:00
Georgii Staroselskii
865ff753f3
AP_Compass: use LSM9DS1 as primary for Navio 2
...
This compass has been proved to work better on Navio boards. Users also
don't like high offsets (even though, they don't really mean much in
this context) reported by AK8963 in MPU9250 on Navio 2.
2016-11-30 12:04:53 -08:00
Alexey Bulatov
96db31635d
AP_Compass: set orientation ROLL_180 for LSM9DS1 on Navio2
2016-11-30 12:04:04 -08:00
Alexey Bulatov
163fa07ac0
AP_Compass: make orientation of LSM9DS1 compass configurable
2016-11-30 12:02:07 -08:00
Randy Mackay
5009e83b6d
AP_Compass: fix build warning for HMC5843
2016-11-30 18:00:12 +09:00
Andrew Tridgell
28b3de91cf
AP_Compass: fixed orientation of internal i2c compass for FMUv1
...
thanks to Peter for noticing
2016-11-28 13:02:15 +11:00
Andrew Tridgell
7d57f00ca0
AP_Compass: removed debug line
...
this is now common when using in-tree drivers
2016-11-25 18:23:53 +11:00
Andrew Tridgell
f62972d966
AP_Compass: fixed build on bhat
...
enable both compasses if found
2016-11-25 17:50:24 +11:00
Andrew Tridgell
1f403b02ef
AP_Compass: switch to continuous 155Hz mode for LIS3MDL
2016-11-25 17:50:24 +11:00
Andrew Tridgell
62805f59fa
AP_Compass: added AK09916 driver
...
yet another magnetometer!
2016-11-25 17:50:24 +11:00
Andrew Tridgell
17a117b324
AP_Compass: be a bit less verbose in startup
2016-11-25 17:50:23 +11:00
Andrew Tridgell
0e4b8781b2
AP_Compass: auto-detect LIS3MDL compass
2016-11-25 17:50:23 +11:00
Andrew Tridgell
b6b2919126
AP_Compass: don't panic on too many compasses
...
just use the first ones found. Panicing because you have too many
isn't useful
2016-11-25 17:50:23 +11:00
Andrew Tridgell
40ef68f104
AP_Compass: added a LIS3MDL compass driver
2016-11-25 17:50:23 +11:00
Lucas De Marchi
c6b0a71c47
AP_Compass: Calibrator: use inplace initializer on array
2016-11-18 20:03:30 -02:00
Siddharth Bharat Purohit
b36ee10e7c
AP_Compass: fix wrong memset in compass calibrator
2016-11-18 20:03:30 -02:00
Andrew Tridgell
e4454c5056
AP_Compass: setup for new PX4 board IDs
2016-11-11 08:08:55 +11:00
Andrew Tridgell
0eac781559
AP_Compass: don't run the AK8963 on the external MPU9250
...
this saves us one mag slot for another external mag, and leaves the
primary MPU9250 undisturbed by the mag traffic on the bus
2016-11-10 13:05:22 +11:00
Andrew Tridgell
3d5c57c5dc
AP_Compass: fixed orientation of PH2 in-tree compass drivers
2016-11-10 11:44:52 +11:00
Andrew Tridgell
4ba00720aa
AP_Compass: make init() private
...
not called from frontend
2016-11-10 11:44:52 +11:00