Commit Graph

29 Commits

Author SHA1 Message Date
Andrew Tridgell e9d39d80f4 AP_InertialSensor: fixed ICM42670
highres sampling is not working on the ICM42670 on some versions of
the Pixhawk6X. Disable for now.
2024-06-07 19:44:48 +10:00
Andrew Tridgell a0acccb1f9 AP_InertialSensor: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andy Piper 30877cf11f AP_InertialSensor: allow FIFO rate logging for hires sampling 2024-05-02 11:01:20 +10:00
Andrew Tridgell 483d19f44c AP_InertialSensor: apply stuck gyro fix to all IxM42xxx sensors
TDK has confirmed this applies to all IxM42xxx sensors
2023-10-29 08:24:04 +11:00
Andy Piper 7ca2a4da56 AP_InertialSensor: remove ICM42xxx defaults 2023-10-25 19:23:11 +11:00
Andrew Tridgell 0ebf9e7af5 AP_InertialSensor: pre-fetch instances for use in filter setup
we use the instance numbers during filter configuration to check if
fast sampling is enabled. We need to ensure these instance numbers
have been setup before the filtering functions get called
2023-10-25 19:23:11 +11:00
Andy Piper a9e0bf070c AP_InertialSensor: ensure indirect registers are not modified with sensors active on ICM-42688 2023-10-25 19:23:11 +11:00
Andy Piper da0b1402d3 AP_InertialSensor: add high-resolution reads for ICM45686
enable high-resolution support on all ICM4xxxx sensors
create INS_HIRES_SAMPLE mask
adjust high-resolution sampling for correct byte ordering and depth
correct high resolution scaling on 18bit ICM4xxxx IMUs
control highres via HAL_INS_HIGHRES_SAMPLE
2023-10-25 19:23:11 +11:00
Andrew Tridgell b6c9ac2569 AP_InertialSensor: added optional FIFO rate logging to invensensev3 driver
this is useful for tracking down and confirming the stuck gyro issue
on the ICM42688
2023-10-22 15:09:40 +11:00
Andrew Tridgell 792d8a4cb8 AP_InertialSensor: fix for ICM42688 stuck gyro issue
these undocumented bits in register 0x4d control the "adaptive full
scale range" mode of the ICM42688. The feature is enabled by default
but has a bug where it gives "stuck" gyro values for short periods
(between 1ms and 2ms):, leading to a significant gyro bias at longer
time scales, enough to in some cases cause a vehicle to crash if it is
unable to switch to an alternative IMU

this fixes https://github.com/ArduPilot/ardupilot/issues/25025
2023-10-22 15:09:40 +11:00
Andy Piper 3cca401af8 AP_InertialSensor: calculate backend sample rates on ICM45686 correctly 2023-02-22 18:06:46 +11:00
bugobliterator 5680c411e9 AP_InertialSensor: can check icm45686 RTC_CONFIG reg because reserved value changes 2023-02-22 18:06:46 +11:00
bugobliterator ef9e264919 AP_InertialSensor: set default data rate to 3.2kHz for ICM-45686 2023-02-22 18:06:46 +11:00
bugobliterator b20ffce39d AP_InertialSensor: add soft reset, clkin for icm45686 and other fixes 2023-02-22 18:06:46 +11:00
Andy Piper 727aa02c26 AP_InertialSensor: correct register setup for ICM45686, make CLKIN optional 2023-02-22 18:06:46 +11:00
Andy Piper 4aafb3ab71 AP_InertialSensor: fast sampling for ICM45686
Fix accel scale on ICM45686
2023-02-22 18:06:46 +11:00
bugobliterator 35f05738d0 AP_InertialSensor: add support for ICM45686 IMU 2022-11-01 10:41:59 +11:00
Andy Piper 55aed98f81 AP_InertialSensor: ensure that hardware AAF and notch filter are enabled on 42605 and 42609 2022-10-25 11:06:02 +11:00
Andy Piper a6312ac893 AP_InertialSensor: correctly detect bad frames on regular ICM42xxx 2022-08-12 20:53:36 +10:00
Andy Piper 221ab9752e AP_InertialSensor: synchronise fifo reads on the ICM42xxx 2022-08-12 20:53:36 +10:00
Andy Piper 155d436807 AP_InertialSensor: support for fast sampling rates on ICM-42xxx series
thoughtfully set anti-aliasing filters on ICM-42xxx series
2022-08-02 17:26:46 +10:00
Andrew Tridgell 2582d5fad5 AP_InertialSensor: re-enable notch filter on 42688
thanks to Andy for pointing out this is for an internal resonance
2022-08-02 17:26:46 +10:00
Andrew Tridgell 8a6b8fc486 AP_InertialSensor: enable 180Hz LPF on ICM42670 2022-08-02 17:26:46 +10:00
Andrew Tridgell 5b579aebce AP_InertialSensor: enable AAF at 488Hz for gyro+accel on ICM42688
this should improve vibration handling
2022-08-02 17:26:46 +10:00
Andrew Tridgell 5bde9b0e7c AP_InertialSensor: added support for ICM42670 IMU 2022-08-02 17:26:46 +10:00
QioTek 586c2064a6 AP_InertialSensor: added support for IIM-42652 and ICM-40605 sensors
handle new Invensense v3 sensor types
2021-12-14 11:38:36 +11:00
Andrew Tridgell b3ed4f4b12 AP_InertialSensor: fixed handling of more than 3 accel/gyro instances
allows for first 3 to work without a panic
2021-04-13 09:36:52 +10:00
Andrew Tridgell 4cddf37984 AP_InertialSensor: log unexpected register changes
when the register checking code finds an error we will log what
register changed and to what value
2021-02-24 18:18:37 +11:00
Andrew Tridgell 957842f7eb AP_InertialSensor: added support for v3 Invensense sensors
starting with ICM-40609, ICM-42688 and ICM-42605
2021-01-11 14:43:35 +11:00