Commit Graph

1068 Commits

Author SHA1 Message Date
Peter Barker 7088286ebf AP_Compass: use new vector methods to make for more compact code
The check for zero-length magnetic field on the primary is redundant given the one on the loop
2023-04-19 14:25:06 +10:00
Andrew Tridgell ba450fa08b AP_Compass: text messages and more defines 2023-04-11 10:31:31 +10:00
Andrew Tridgell e469ed9bd7 AP_Compass: rename more variables, types and defines 2023-04-11 10:31:31 +10:00
Andrew Tridgell dc40e1e7c3 AP_Compass: change UAVCAN_ENABLED to DRONECAN_ENABLED 2023-04-11 10:31:31 +10:00
Andrew Tridgell 992409328f AP_Compass: update header references 2023-04-11 10:31:31 +10:00
Andrew Tridgell 2e8ea6ac47 AP_Compass: rename UAVCAN drivers to DroneCAN 2023-04-11 10:31:31 +10:00
Andrew Tridgell 34f70b98b3 AP_Compass: rename AP_UAVCAN to AP_DroneCAN 2023-04-08 07:11:23 +10:00
bugobliterator 7112d156ed AP_Compass: replace libuavcan with libcanard based driver 2023-03-29 17:16:39 +11:00
Peter Barker 4755f76126 AP_Compass: specify compass feature enables for periph in chibios_hwdef.py 2023-03-12 09:35:35 +11:00
Andrew Tridgell 9cda7b5ccc AP_Compass: drop MMC5xx3 sample rate to 100Hz
this was consuming too much of the I2C bus sampling at 1kHz
2023-03-06 17:24:29 -08:00
Peter Barker 252498fb29 AP_Compass: move removal of BMM150 down into hwdef
There's no reason apart from space to not have this in
2023-03-01 18:28:29 +11:00
Peter Barker 1889d3dea5 AP_Compass: add and use AP_COMPASS_MMC5XX3_ENABLED 2023-02-22 19:40:13 +11:00
Peter Barker 69bc24bc16 AP_Compass: add and use AP_COMPASS_RM3100_ENABLED 2023-02-22 19:40:13 +11:00
Peter Barker 2c93b7809c AP_Compass: use AP_COMPASS_EXTERNALAHRS_ENABLED more
Also rename driver name from serial to externalahrs for consistency
2023-02-22 19:40:13 +11:00
Peter Barker aac6228f58 AP_Compass: add and use AP_COMPASS_MAG3110_ENABLED 2023-02-22 19:40:13 +11:00
Peter Barker 89a9636c46 AP_Compass: add and use AP_COMPASS_QMC5883L_ENABLED 2023-02-22 19:40:13 +11:00
Peter Barker b6e2586f50 AP_Compass: add and use AP_COMPASS_MMC3416 2023-02-22 19:40:13 +11:00
Peter Barker ee6b44113d AP_Compass: add and use AP_COMPASS_ICM20948_ENABLED 2023-02-22 19:40:13 +11:00
Peter Barker ad9521c1c4 AP_Compass: add and use AP_COMPASS_AK09916_ENABLED 2023-02-22 19:40:13 +11:00
Peter Barker 1abce258e4 AP_Compass: mark all_external as used even if it is not 2023-02-22 19:40:13 +11:00
Peter Barker 430f19222a AP_Compass: don't define driver backend type if it is not compiled in
Catches places where code isn't disabled properly
2023-02-22 19:40:13 +11:00
Peter Barker 7d244e3451 AP_Compass: add and use AP_COMPASS_LIS3MDL_ENABLED 2023-02-17 23:05:48 +11:00
Peter Barker fe9461242e AP_Compass: add and use AP_COMPASS_LSM9DS1_ENABLED 2023-02-15 20:03:55 +11:00
Peter Barker b26d771c9f AP_Compass: add and use AP_COMPASS_IST8310_ENABLED 2023-02-14 12:23:55 +11:00
Peter Barker 9035de80ca AP_Compass: do not detect extra bmm150 instances on SkyViper-v2450 2023-02-09 17:52:52 +11:00
Peter Barker feb809fbb7 AP_Compass: add and use AP_COMPASS_BMM150_ENABLED 2023-02-09 17:52:52 +11:00
Peter Barker 22feb3c08a AP_Compass: add and use AP_COMPASS_AK8963_ENABLED 2023-02-07 10:21:06 +11:00
Peter Barker 8155e0ab3b AP_Compass: avoid using struct Location
clang reports this could be a problem when compiling under some EABIs.  Remove it from most places as it is just noise, replace with class where we want to avoid including Location.h
2023-02-04 22:51:54 +11:00
Peter Barker ff99ff34c7 AP_Compass: add and use AP_COMPASS_HMC5843_ENABLED 2023-02-01 18:47:37 +11:00
Peter Barker 669ce03de3 AP_Compass: make DRIVER_IST8308 an invalid symbol if not compiled in 2023-01-31 11:08:28 +11:00
Peter Barker cbd1264f90 AP_Compass: add and use AP_COMPASS_LSM303D_ENABLED 2023-01-31 11:08:28 +11:00
Andrew Tridgell 07d56d83e7 AP_Compass: allow enabling of only some ExternalAHRS sensors 2023-01-30 09:22:02 +11:00
Peter Barker e60e646a4e AP_Compass: create and use AP_COMPASS_IST8308_ENABLED 2023-01-25 19:58:02 +11:00
Andrew Tridgell f203cf321f AP_Compass: fixed field orientation for MMC3416
the sensor is not FRD, and needs Y axis reversed to follow ArduPilot
FRD convention for magnetometers
2023-01-23 20:10:16 +11:00
Andrew Tridgell 863b4bf928 AP_Compass: fixed zero compass diagonals
this fixes a regression from 4.2 to 4.3.

previously we automatically set the diagnoals to 1,1,1 if they were
0,0,0. We don't do that any more. I was helping a user who had copied
an old config with 0,0,0 for diagonals and did not understand two
things:

- the compass did not work in 4.3
- large vehicle mag cal didn't work
2023-01-17 12:05:19 +11:00
Peter Barker c0d9201740 AP_Compass: rename HAL_INS_ENABLED to AP_INERTIALSENSOR_ENABLED 2023-01-03 10:28:42 +11:00
Peter Barker 3adbaddab0 AP_Compass: regularise compass defines
start to make compass backends look like backends from our other libraries
2022-11-15 16:44:38 +11:00
Peter Barker aef745c693 AP_Compass: fix compilation when removing diagonals state 2022-11-09 21:14:04 +11:00
Peter Barker 35afd258ca AP_Compass: change namespace of MultiCopter and FixedWing params
this stops the libraries knowing anything about AP_Vehicle
2022-11-09 19:04:37 +11:00
Peter Barker 2f29dd9b18 AP_Compass: include cleanups 2022-11-08 09:49:19 +11:00
bugobliterator 61e2e8cd3d AP_Compass: add option to skip auto detect internal mag 2022-11-01 10:41:59 +11:00
Peter Barker dc85169cb1 AP_Compass: send report if we are in the BAD_RADIUS state 2022-10-06 10:31:09 +11:00
Peter Barker 05a638a639 AP_Compass: correct is_calibrating check
before this we only ever looked at the first backend
2022-10-06 08:21:03 +11:00
Peter Barker 75919171b7 AP_Compass: remove default clause from calibrator status switch
bad_radius should almost certainly be treated just like bad orientation
2022-10-06 08:21:03 +11:00
Peter Barker d6c5a0ab2b AP_Compass: correct compilation when COMPASS_MAX_INSTANCE>1 and no diagonals 2022-10-06 08:21:03 +11:00
jackhong12 4a4f361a17 all: use CLASS_NO_COPY() macro 2022-10-04 11:23:04 +11:00
Andrew Tridgell 0b9769e658 AP_Compass: removed diagonals and offdiagonals on AP_Periph 2022-09-30 21:25:36 +10:00
Andrew Tridgell af224dab1e AP_Compass: fixed AP_Periph compass
diagonals are no longer initialised to 1.0, which leaves us with zero
compass after matrix mul
2022-09-30 21:25:36 +10:00
Iampete1 df470f6a34 AP_Compass: params always use set method 2022-08-03 13:43:48 +01:00
Andrew Tridgell b6bcd6346d AP_Compass: switch to a general method of heater compensation
this allows any board to easily setup heater compensation for an
internal compass. The offsets are in body frame (previously in sensor
frame) and are sensor specific using bus device IDs
2022-08-02 17:26:46 +10:00
Iampete1 cdf930effe AP_Compass: defualt diagonals vector to 1.0 2022-07-28 16:51:33 +10:00
Henry Wurzburg 4c44b6ad1a AP_Compass: expand description of custom orientation parameters 2022-07-21 15:45:28 +01:00
Peter Barker 16ea4f03b6 AP_Compass: fix clang++ warnings on static inits
these are static variables so don't need zeroing anyway...
2022-06-28 10:20:30 +10:00
Andrew Tridgell 4d031a0c9e AP_Compass: HAL_COMPASS_DISABLE_IST8310_INTERNAL_PROBE for Pixhawk6C 2022-06-23 12:37:24 +10:00
Andrew Tridgell e48f405c08 AP_Compass: removed "AK09916 Wrong id" message
we don't need this on every board that doesn't have an I2C AK09916
2022-06-23 12:37:24 +10:00
Ruffalo-sunghwan 499c5dfc96 AP_Compass : correct comment spelling 2022-05-24 20:27:45 +09:00
murata a19d4b65fc AP_Compass: Console output can be disabled 2022-05-17 09:53:06 +10:00
Peter Barker 437b313544 AP_Compass: do not use GSF if any model has been clipped 2022-05-11 17:45:47 +10:00
Peter Barker 3ec0e27e4f AP_Compass: move logging of compass ERR flags into AP_Compass 2022-05-10 19:46:40 +10:00
Peter Barker 57f8b7c2a8 AP_Compass: split AP_HAL_SITL and AP_SIM_ENABLED 2022-03-17 14:39:55 +11:00
Michael du Breuil 041b2b594b AP_Compass: Fix compass priority instance message to make sense to users 2022-03-08 10:32:05 +11:00
Iampete1 6c48c346c1 AP_Compass: convert param to new custom rotation 2022-03-02 18:16:42 +11:00
Iampete1 209ad965be AP_Compass: remove custom rotations 2022-03-02 18:16:42 +11:00
Peter Barker 7d3f3b6888 AP_Compass: include cleanups 2022-03-01 11:21:33 +11:00
Joshua Henderson dc8df8f147 AP_Compass: add define for COMPASS_ENABLE 2022-02-08 10:41:02 +11:00
Peter Barker ef2fd1f4ba AP_Compass: remove HAL_COMPASS_DEFAULT define
this doesn't actually allow you to specify a default, despite the name
and a couple of hwdefs trying to use it that way.

This would have stopped being useful when we did the
compass-prority-table stuff - or before.
2022-02-01 12:10:38 +11:00
Peter Barker 38abec2133 AP_Compass: rename AP_AHRS::get_position to get_location 2022-01-25 10:47:22 +11:00
Andrew Tridgell 3f2a72f9db AP_Compass: only magcal detected compasses
inflight compass learning with COMPASS_LEARN=3 was not working with
less than 3 compasses, as the force_use parameter was preventing
skipping compasses. This fixes it to calibate all detected compasses
that have USE enabled
2022-01-18 12:01:14 +11:00
Peter Barker ed608d37f6 AP_Compass: add and use AP_SIM_COMPASS_ENABLED 2022-01-17 15:24:02 +11:00
Willian Galvani c285f4c748 AP_Compass: Retry reading MMC5983 ID up to 10 times 2022-01-12 11:03:15 -05:00
Andrew Tridgell 45bfc75e4b AP_Compass: added register checking for AK09916 mode
this allows AK09916 on I2C to recover from a power outage in flight
2021-12-28 16:04:36 +11:00
Jaaaky d27f122295 AP_Compass: Fix multi #include's 2021-12-21 10:38:46 +11:00
bugobliterator 957da68da5 AP_Compass: fix compilation issue with declaring var after goto 2021-12-15 22:11:10 +11:00
Hwurzburg 8ddb12d9cb AP_Compass: change UAVCAN in metadata to DroneCAN 2021-12-15 09:53:21 +11:00
Peter Barker 31dd17a743 AP_Compass: avoid loaded-value checks in case of HAL_USE_EMPTY_STORAGE 2021-12-14 11:13:28 +11:00
Andrew Tridgell 8eb40bafc5 AP_Compass: revert compass parameter changes 2021-12-04 16:51:53 +11:00
Iampete1 7ad1886667 AP_Compass: reinstate MOTCT underscore 2021-12-02 12:27:09 +11:00
Iampete1 bf21ce8af6 AP_Compass: add new line after old param metadata 2021-12-02 12:27:09 +11:00
Iampete1 e24c90a871 AP_Compass: reinstate old param descriptions 2021-11-30 08:14:43 +09:00
Iampete1 6ba87dfe9a AP_Compass: add param conversion 2021-11-30 08:14:43 +09:00
Iampete1 2fa2e70e7e AP_Compass: SITL: use new scale param 2021-11-30 08:14:43 +09:00
Iampete1 071ff39ff8 AP_Compass: move instance params to shared table 2021-11-30 08:14:43 +09:00
Andrew Tridgell a4a0607160 AP_Compass: added AP_RM3100_REVERSAL_MASK
this allows for fixing setups where the RM3100 has been installed on a
board with one or more axes reversed
2021-11-24 07:17:13 +11:00
Patrick José Pereira 91ea129be3 AP_Compass: Add support to AK09915
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2021-11-10 18:11:34 -03:00
Willian Galvani 4c756fd7ef AP_Compass: update MMMC5XX3 driver to support only mmc5983
Registers changed
Product ID changed
Data is now Big endian
Results are now 18 bits instead of 16, but we only consume 16.
Added SPI support

Co-authored-by: Patrick Pereira <patrickelectric@gmail.com>
Co-authored-by: Jacob Walser <jwalser90@gmail.com>
2021-11-10 11:38:25 +11:00
Iampete1 1771481779 AP_Compass: never override custom orentation in calabration 2021-11-10 09:28:54 +11:00
Peter Barker 0627ee66c5 AP_Compass: clarify all_configured calculations 2021-11-01 21:28:17 +11:00
Buzz 8d9f161b40 AP_Compass: add support for ICM20948 I2C variant and rename existing one as SPI variant
Author: Charles Villard <charlesvillard10@gmail.com>
Author: Buzz <davidbuzz@gmail.com>
2021-11-01 17:40:31 +11:00
Andrew Tridgell 2b19b8a988 AP_Compass: switched to GSF based compass learning
this makes inflight compass learning faster, more accurate and much
simpler
2021-11-01 09:00:27 +11:00
Andrew Tridgell b0674a2b35 AP_Compass: support 2nd address for ICM20948 compass 2021-10-18 08:29:29 +11:00
Pierre Kancir 12e1f67326 AP_Compass: only update last_update_ms on raw_field update if on calibration 2021-10-13 19:45:03 +11:00
Andrew Tridgell 613f970870 AP_Compass: added AK09918 support
minor update over AK09916
2021-10-06 18:16:00 +11:00
Hwurzburg 3b543a8ceb AP_Compass: Change orientation labels to match order of rotation 2021-10-05 11:22:32 +11:00
Tom Pittenger d45526ff42 AP_Compass: fix periph-heavy compile errors with different things enabled 2021-09-24 10:47:13 -05:00
Peter Barker 224ff97f5c AP_Compass: move from HAL_NO_GCS to HAL_GCS_ENABLED 2021-09-22 21:37:00 +10:00
Peter Barker 875b6331a4 AP_Compass: fix examples for AP_AHRS_DCM becoming backend 2021-08-31 14:28:53 +10:00
Pierre Kancir 4481bc6147 AP_Compass: fix externalAHRS detection
'A = B >= C' kind. The expression is calculated as following: 'A = (B >= C)'
2021-08-25 16:37:13 +09:00
Peter Barker 62f6a5b033 AP_Compass: fail calibration unless at least 1 compass to cal 2021-08-24 10:18:38 +10:00
Andrew Tridgell ffe8add56d AP_Compass: mark logger Write() calls as streaming where appropriate 2021-08-18 10:20:03 +10:00
bugobliterator 33f9c38528 AP_Compass: change class name from SITL::SITL to SITL::SIM 2021-08-05 07:25:31 +10:00