From 029f2eea81ff55b8e5452d00c04ad3ba86f6496f Mon Sep 17 00:00:00 2001 From: Jacob Dahl <37091262+dakejahl@users.noreply.github.com> Date: Tue, 14 Jan 2025 12:36:34 -0900 Subject: [PATCH] mag: lis2mdl: fix axes (#14155) * mag: lis2mdl: fix axes from LH to RH, match LIS3MDL axes * fix spelling Co-authored-by: Mark Haslinghuis --------- Co-authored-by: Mark Haslinghuis --- src/main/drivers/compass/compass_lis2mdl.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/drivers/compass/compass_lis2mdl.c b/src/main/drivers/compass/compass_lis2mdl.c index fb97536abd..c6c3f27a17 100644 --- a/src/main/drivers/compass/compass_lis2mdl.c +++ b/src/main/drivers/compass/compass_lis2mdl.c @@ -136,9 +136,15 @@ static bool lis2mdlRead(magDev_t * mag, int16_t *magData) return false; } - magData[X] = (int16_t)(buf[1] << 8 | buf[0]); - magData[Y] = (int16_t)(buf[3] << 8 | buf[2]); - magData[Z] = (int16_t)(buf[5] << 8 | buf[4]); + int16_t x = (int16_t)(buf[1] << 8 | buf[0]); + int16_t y = (int16_t)(buf[3] << 8 | buf[2]); + int16_t z = (int16_t)(buf[5] << 8 | buf[4]); + + // adapt LIS2MDL left-handed frame to common sensor axis orientation (match LIS3MDL) + // pin 1 mark becomes +X -Y + magData[X] = -x; + magData[Y] = y; + magData[Z] = z; pendingRead = true;