20948 compass support (#6707)

* Add __has_include blocks for sensors

* Put BMP and BME back in the right sensors

* Split environmental_base to environmental_extra, to compile the working sensor libs for Native

* Remove hard-coded checks for ARCH_PORTDUINO

* Un-clobber bmx160

* Move BusIO to environmental_extra due to Armv7 compile error

* Move to forked BusIO for the moment

* Switch to Meshtastic ICM-20948 lib for Portduino support

* Use 20948 for compass direction

* Compass is more than just RAK4631

* Cleanup for 20948 compass

* use Meshtastic branch of 20948 lib

* Check for HAS_SCREEN for showing calibration screen

* No accelerometerThread on STM32
This commit is contained in:
Jonathan Bennett
2025-05-07 18:38:42 -05:00
committed by GitHub
parent b657ba1abb
commit 3a6fc668d8
11 changed files with 126 additions and 22 deletions

View File

@@ -6,6 +6,7 @@
#if !defined(ARCH_STM32WL) && !MESHTASTIC_EXCLUDE_I2C && __has_include(<ICM_20948.h>)
#include "Fusion/Fusion.h"
#include <ICM_20948.h>
// Set the default gyro scale - dps250, dps500, dps1000, dps2000
@@ -80,6 +81,8 @@ class ICM20948Sensor : public MotionSensor
{
private:
ICM20948Singleton *sensor = nullptr;
bool showingScreen = false;
float highestX = 0, lowestX = 0, highestY = 0, lowestY = 0, highestZ = 0, lowestZ = 0;
public:
explicit ICM20948Sensor(ScanI2C::FoundDevice foundDevice);
@@ -89,6 +92,7 @@ class ICM20948Sensor : public MotionSensor
// Called each time our sensor gets a chance to run
virtual int32_t runOnce() override;
virtual void calibrate(uint16_t forSeconds) override;
};
#endif