Files
ardupilot/libraries/AP_InertialSensor
Andy Piper 6cfd2601e0 AP_InertialSensor: add ICM-56686 support
The ICM-56686 shares the ICM-456xy programming model, so this is a variant of
that path rather than a new driver: same FIFO header bits and the same 20 byte
high resolution packet, so the existing parser and accumulator are untouched.

Two things differ, both from DS-000563 rev 1.0. The register block from
PWR_MGMT0 upwards sits 4 higher, which reg456() maps at runtime, with WHO_AM_I
and the IREG window passing through unshifted. And SREG_CTRL resets to 0x0A on
this part - 20 bit sensor registers and big endian - where the ICM-45686 needs
no such write at all. The endianness applies to FIFO data as well, so it has to
be cleared before any sample is read or every value comes back byte swapped.

FS_SEL 0 selects 4000dps and 32g on both parts, so the scaling is shared.
Device ID is 0x08 against 0xE9, at the same address, so probing needs no
heuristics.
2026-08-12 17:25:31 +10:00
..