Commit Graph

22 Commits

Author SHA1 Message Date
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