diff --git a/src/globals.h b/src/globals.h index 2198cc7..d7fdfdc 100644 --- a/src/globals.h +++ b/src/globals.h @@ -53,6 +53,10 @@ #define EXPERIMENTAL_BNO_DISABLE_ACCEL_CALIBRATION true #endif +#ifndef IMU_USE_EXTERNAL_CLOCK +#define IMU_USE_EXTERNAL_CLOCK true // Use external clock for IMU (ICM-45686 only) +#endif + #ifndef VENDOR_NAME #define VENDOR_NAME "Unknown" #endif diff --git a/src/sensors/softfusion/drivers/icm45686.h b/src/sensors/softfusion/drivers/icm45686.h index f2ef5ad..43cb152 100644 --- a/src/sensors/softfusion/drivers/icm45686.h +++ b/src/sensors/softfusion/drivers/icm45686.h @@ -75,8 +75,10 @@ struct ICM45686 : public ICM45Base { bool initialize() { ICM45Base::softResetIMU(); +#if IMU_USE_EXTERNAL_CLOCK m_RegisterInterface.writeReg(Regs::Pin9Config::reg, Regs::Pin9Config::value); m_RegisterInterface.writeReg(Regs::RtcConfig::reg, Regs::RtcConfig::value); +#endif return ICM45Base::initializeBase(); } };