Commit Graph

137 Commits

Author SHA1 Message Date
Peter Barker 084b0aea24 AP_Compass: make compass.mag_cal_fixed_yaw return boolean
this method could be used from a transmitter without GCS enabled, for example
2024-02-06 11:11:27 +11:00
Peter Barker ecc7188d97 AP_Compass: rename COMPASS_TYPEMASK to COMPASS_DISBLMSK
this is a very confusingly named parameter.  I've seen several instances of people treating this as an enable mask rather than a disable mask
2024-01-23 11:54:49 +11:00
Jonathan Loong 0db1719c8f AP_Compass: Add in QMC5883P Driver 2023-11-15 10:53:38 +11:00
Andrew Tridgell 36de6613fb AP_Compass: split out probing code into i2c+spi and DroneCAN
this is a NFC to make the PR clearer
2023-10-31 10:14:42 +11:00
Andrew Tridgell 9fc9238c53 AP_Compass: prevent saving of device IDs when not calibrated
this fixes an issue with the following sequence:

 - new board (or board with FORMAT_VERSION reset) starts up with only internal compasses
 - internal compasses are detected and devids saved
 - an external compass is added and the board is rebooted
 - the external compass will not be the first compass
 - user then calibrates and flies, but has internal as primary

this can lead to a very bad experience for new users. At least one
vehicle has crashed due to this sequence.

The fix is to not save device IDs during the Compass::init() if we
have never been calibrated. This means that when an external compass
is added it will come up as the first compass.

This also removes the saving of the extra device ID. It was never
intended that these be saved (there is a comment to that effect in the
code), but actually they were saved.
2023-10-31 10:14:42 +11:00
Peter Barker acf437b258 AP_Compass: correct compilation with COMPASS_CAL_ENABLED off 2023-09-19 16:54:59 +10:00
Peter Barker d50c429355 AP_Compass: handle mag cal as both COMMAND_LONG and COMMAND_INT 2023-08-08 10:06:13 +10:00
Iampete1 262b11f0c1 AP_Compass: stop auto replacing missing CAN by default, add option to re-enable 2023-06-27 09:24:41 +10:00
Hayden fa800e23e2 AP_Compass: Move health to cpp and add range check
Moved the health check to the cpp file and added checking of max instances
2023-05-24 12:39:47 +10:00
Andrew Tridgell dc40e1e7c3 AP_Compass: change UAVCAN_ENABLED to DRONECAN_ENABLED 2023-04-11 10:31:31 +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
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 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 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 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
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 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
Peter Barker 57f8b7c2a8 AP_Compass: split AP_HAL_SITL and AP_SIM_ENABLED 2022-03-17 14:39:55 +11:00
Iampete1 209ad965be AP_Compass: remove custom rotations 2022-03-02 18:16:42 +11:00
Peter Barker ed608d37f6 AP_Compass: add and use AP_SIM_COMPASS_ENABLED 2022-01-17 15:24:02 +11:00
Andrew Tridgell 8eb40bafc5 AP_Compass: revert compass parameter changes 2021-12-04 16:51:53 +11:00
Iampete1 6ba87dfe9a AP_Compass: add param conversion 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 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
Peter Barker 62f6a5b033 AP_Compass: fail calibration unless at least 1 compass to cal 2021-08-24 10:18:38 +10:00
Peter Barker 944b82a7be AP_Compass: make is_calibrating const 2021-07-30 17:37:08 +10:00
Peter Barker c351150a46 AP_Compass: use AP::compass().available in place of enabled() 2021-07-30 12:19:42 +10:00
Peter Barker 658c978c9d AP_Compass: add and use compass.available()
Covers both being enabled and initialised
2021-07-30 12:19:42 +10:00
Peter Barker 8bbed968de AP_Compass: remove unused variable 2021-07-30 12:19:42 +10:00
Siddharth Purohit 7cbb3d8a3f AP_Compass: allow compass cal option for AP_Periph if defined 2021-07-02 08:50:16 +10:00
Peter Barker 9791fdeb11 AP_Compass: remove unused setup_earth_field 2021-06-15 09:47:31 +10:00
Peter Barker a9621ed802 AP_Compass: remove HIL support 2021-06-15 09:47:31 +10:00
Siddharth Purohit 8590bfea63 AP_Compass: use first available compass in priority list 2021-06-02 17:10:19 +10:00