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