Pixhawk6X: support LSM6DSV-family IMUs on the ICM45686 layout#33758
Open
zebulon-86 wants to merge 2 commits into
Open
Pixhawk6X: support LSM6DSV-family IMUs on the ICM45686 layout#33758zebulon-86 wants to merge 2 commits into
zebulon-86 wants to merge 2 commits into
Conversation
Allow each of the three IMU slots to detect either ICM45686 or a supported LSM6DSV-family device.
Add LSM6DSV SPI aliases and fallback probes while preserving the existing slot rotations.
zebulon-86
marked this pull request as ready for review
July 17, 2026 10:16
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Support LSM6DSV-family IMUs on Pixhawk6X boards using the existing three-IMU ICM45686 layout.
Classification & Testing (check all that apply and add your own)
Description
Due to ICM45686 supply constraints, Holybro selected LSM6DSV-family
parts as an alternative. Bench and flight testing showed stable
operation and accelerometer and gyroscope behavior consistent with the
ICM45686.
Each IMU slot now probes ICM45686 first, then falls back to the
supported LSM6DSV-family devices declared in the hwdef. This preserves
the existing bus, chip-select, rotation, board type, and defaults while
using the unchanged LSM6DSV-family driver already in master. No new
board ID, target, bootloader, or parameter defaults are introduced.
Testing
Hardware detection
The following Holybro Pixhawk6X IMU populations were tested:
All four configurations booted normally and exposed three matched
accelerometer/gyroscope device-ID pairs. Each LSM6DSV-family variant was
reported with the expected device type, and the mixed configuration
correctly identified both the ICM45686 and LSM6DSK320X devices.
INS_ACC_IDandINS_GYR_IDvalues for the four tested IMU populations.Device types 62, 66, and 67 correspond to LSM6DSV16X, LSM6DSV32X, and LSM6DSK320X, respectively.
Runtime validation
A bench log was collected from a Pixhawk6X containing one ICM45686
(IMU0) and two LSM6DSK320X IMUs (IMU1 and IMU2). The ICM45686 operated
at about 3.2 kHz and both LSM6DSK320X instances at about 2.0 kHz.
The IMU error and clipping counters remained at zero throughout the
recorded interval, with continuous temperature readings.
During manual board motion, the processed accelerometer and gyroscope
outputs from all three IMUs followed the same motion with closely
aligned trends and peak timing.
Processed accelerometer and gyroscope outputs from the ICM45686
and two LSM6DSK320X IMUs during manual board motion.
No flight test was repeated on the exact PR revision because this is a
target-only change. The same LSM6DSV sensor configuration and runtime
data path were previously flight-tested on earlier firmware revisions,
including a mixed ICM45686 and LSM6DSK320X configuration, with consistent
IMU behavior and normal attitude and EKF performance.
This PR only changes board detection and hwdef probe declarations.
Ground hardware testing on the current revision directly covers the
affected detection, initialization, device identity, sampling, health,
and orientation behavior.
Notes
AP_InertialSensor: add LSM6DSV32X and LSM6DSK320X support #33293.
test planning, and PR drafting. All changes and test results were
reviewed and validated by the human author.