Jacob Dahl
8413ab2bf2
AP_InertialSensor: added IIM42653 support
2024-11-13 06:39:29 +11:00
Andy Piper
c0ce5e5ed0
AP_InertialSensor: optimize Invensense v3 FIF read
2024-11-12 11:36:59 +11:00
Andy Piper
d76132ec63
AP_InertialSensor: ensure fifo reads use transfer() to optimize buffer allocation and copying
2024-11-12 11:36:59 +11:00
Peter Barker
f389549d5d
AP_InertialSensor: correct warnings on static_assert requiring a message
2024-08-13 08:38:00 +10:00
muramura
e48044dc45
AP_InertialSensor: Clearly state the maximum G-force
2024-07-10 10:07:16 +10:00
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