Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
2a111e2
feat(motion): add MPU-9250 / RAK1905 9-axis sensor support
egorsiniaev May 26, 2026
70a821a
fix(motion): include MPU9250 in firstAccelerometer() type list
egorsiniaev May 26, 2026
e532033
style(motion): apply clang-format to MPU9250 type list
egorsiniaev May 26, 2026
1e867ff
feat(motion): smooth MPU9250 accel + mag inputs for stable heading
egorsiniaev May 26, 2026
c63ef27
feat(motion): make MPU9250 up-axis configurable for vertical case mounts
egorsiniaev May 26, 2026
3b4e851
chore(motion): restore MPU9250_UP_AXIS default to PZ
egorsiniaev May 26, 2026
d31af75
chore: merge develop — keep MPU9250 and ICM42607P alongside each other
egorsiniaev Jun 3, 2026
d87f16f
Merge remote-tracking branch 'origin/develop' into feat/mpu9250-rak19…
egorsiniaev Jun 13, 2026
9069c15
Merge remote-tracking branch 'origin/develop' into feat/mpu9250-rak19…
egorsiniaev Jun 17, 2026
8e6e691
fix: detect MPU-9250 at 0x69 before BMX160 fallback; clang-format
egorsiniaev Jun 18, 2026
c92ea26
Merge branch 'develop' into feat/mpu9250-rak1905-magnetometer
jp-bennett Jun 25, 2026
fe9acd4
Merge branch 'develop' into feat/mpu9250-rak1905-magnetometer
egorsiniaev Jul 1, 2026
03b0195
fix: harden MPU9250 init and calibration per CodeRabbit review
egorsiniaev Jul 1, 2026
c8e7bd8
docs: add Doxygen docstrings to MPU9250Sensor methods
egorsiniaev Jul 2, 2026
32defbb
docs: trim verbose comments per CodeRabbit nitpicks
egorsiniaev Jul 2, 2026
1ae7dc0
Merge remote-tracking branch 'origin/develop' into feat/mpu9250-rak19…
egorsiniaev Jul 2, 2026
0ed52b4
Merge branch 'develop' into feat/mpu9250-rak1905-magnetometer
thebentern Jul 2, 2026
336bb4a
style: fix trunk formatting (ascii-dash + clang-format)
egorsiniaev Jul 2, 2026
78b96aa
Merge remote-tracking branch 'origin/develop' into feat/mpu9250-rak19…
egorsiniaev Jul 6, 2026
b878c5e
Merge branch 'develop' into feat/mpu9250-rak1905-magnetometer
jp-bennett Jul 6, 2026
4257e1b
fix(motion): update MPU9250 to upstream Fusion library API
egorsiniaev Jul 6, 2026
05cd82a
Merge remote-tracking branch 'origin/develop' into feat/mpu9250-rak19…
egorsiniaev Jul 6, 2026
3e01b56
Merge remote-tracking branch 'personal/feat/mpu9250-rak1905-magnetome…
egorsiniaev Jul 6, 2026
a9469a5
Merge branch 'develop' into feat/mpu9250-rak1905-magnetometer
egorsiniaev Jul 6, 2026
178293a
Merge branch 'develop' into feat/mpu9250-rak1905-magnetometer
egorsiniaev Jul 6, 2026
dba2096
Merge branch 'develop' into feat/mpu9250-rak1905-magnetometer
egorsiniaev Jul 7, 2026
d076b05
Merge branch 'develop' into feat/mpu9250-rak1905-magnetometer
egorsiniaev Jul 8, 2026
5098b0d
Merge branch 'develop' into feat/mpu9250-rak1905-magnetometer
egorsiniaev Jul 26, 2026
19cd311
fix(motion): use real screen declaration from main.h in MPU9250Sensor
egorsiniaev Jul 26, 2026
528b0a2
Merge branch 'develop' into feat/mpu9250-rak1905-magnetometer
egorsiniaev Jul 27, 2026
cdec25f
Merge branch 'develop' into feat/mpu9250-rak1905-magnetometer
egorsiniaev Jul 31, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -313,6 +313,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DA217_ADDR 0x26
#define BMI270_ADDR 0x68
#define BMI270_ADDR_ALT 0x69
#define MPU9250_ADDR 0x68
#define MPU9250_ADDR_ALT 0x69
#define AK8963_ADDR 0x0C
#define ICM42607P_ADDR 0x68
#define ICM42607P_ADDR_ALT 0x69

Expand Down
6 changes: 3 additions & 3 deletions src/detect/ScanI2C.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,9 @@ ScanI2C::FoundDevice ScanI2C::firstKeyboard() const

ScanI2C::FoundDevice ScanI2C::firstAccelerometer() const
{
ScanI2C::DeviceType types[] = {MPU6050, LIS3DH, SC7A20, BMA423, LSM6DS3, BMX160, STK8BAXX,
ICM20948, BMM150, BMI270, ICM42607P, ISM330DHCX, QMA6100P};
return firstOfOrNONE(13, types);
ScanI2C::DeviceType types[] = {MPU6050, LIS3DH, SC7A20, BMA423, LSM6DS3, BMX160, STK8BAXX,
ICM20948, BMM150, BMI270, ICM42607P, ISM330DHCX, QMA6100P, MPU9250};
return firstOfOrNONE(14, types);
}

ScanI2C::FoundDevice ScanI2C::firstMagnetometer() const
Expand Down
1 change: 1 addition & 0 deletions src/detect/ScanI2C.h
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ class ScanI2C
CST226SE,
CST3530,
BMI270,
MPU9250,
SEN5X,
SFA30,
CW2015,
Expand Down
6 changes: 6 additions & 0 deletions src/detect/ScanI2CTwoWire.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -880,6 +880,12 @@ void ScanI2CTwoWire::scanPort(I2CPort port, uint8_t *address, uint8_t asize)
type = ICM42607P;
logFoundDevice("ICM-42607-P", (uint8_t)addr.address);
break;
} else if (registerValue == 0x71 || registerValue == 0x73) {
// MPU-9250 (0x71) / MPU-9255 (0x73) share 0x68/0x69 with MPU-6050 and BMX160;
// WHO_AM_I disambiguates them here.
type = MPU9250;
logFoundDevice(registerValue == 0x73 ? "MPU9255" : "MPU9250", (uint8_t)addr.address);
break;
} else if (registerValue == 0x68) { // WHO_AM_I from datasheet
type = MPU6050;
logFoundDevice("MPU6050", (uint8_t)addr.address);
Expand Down
4 changes: 4 additions & 0 deletions src/motion/AccelerometerThread.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
#include "LIS3DHSensor.h"
#include "LSM6DS3Sensor.h"
#include "MPU6050Sensor.h"
#include "MPU9250Sensor.h"
#include "MotionSensor.h"
#ifdef HAS_QMA6100P
#include "QMA6100PSensor.h"
Expand Down Expand Up @@ -125,6 +126,9 @@ class AccelerometerThread : public concurrency::OSThread
sensor = new ICM20948Sensor(device);
break;
#endif
case ScanI2C::DeviceType::MPU9250:
sensor = new MPU9250Sensor(device);
break;
#if __has_include(<ICM42670P.h>)
case ScanI2C::DeviceType::ICM42607P:
sensor = new ICM42607PSensor(device);
Expand Down
Loading