Repository navigation
Release v0.5.0
SensorLib v0.5.0 is a major pre-1.0 release that introduces a complete PMIC subsystem, unified device interfaces, build-time driver selection, and a reorganized driver and example structure.
Important
This release contains API and header layout changes. Projects upgrading from v0.4.x should review the v0.5 migration guide.
Highlights
- Added PMIC and charger support for AXP192, AXP202, AXP2101, AXP517, BQ25896, and SY6970.
- Added AXP517 BC1.2, Type-C/TCPC, interrupt handling, and USB-PD sink voltage negotiation.
- Added PAW-A350 finger navigation, CST3240 touch, and QMC6309H support.
- Added common PMIC, IMU, battery gauge, and BMA4XX interfaces.
- Added build-time driver exclusion for ESP-IDF, Arduino, and PlatformIO.
- Reorganized drivers into category and vendor directories.
- Reorganized more than 150 examples using category-based lowercase paths.
- Added generated Doxygen API documentation and improved CI workflows.
Power Management
The new PMIC subsystem provides common interfaces for:
- Charger configuration and status
- ADC measurements
- GPIO and regulator channels
- Interrupt handling
- Power button and LED control
- Timer and watchdog functions
- BC1.2 detection
- Type-C and USB-PD negotiation
AXP517 includes an interrupt-driven USB-PD sink negotiator for requesting fixed PDO voltages.
Sensor Improvements
- QMI8658 now has a unified implementation based on the expanded
ImuBaseAPI. - BMM150 now uses the common magnetometer interface.
- BMA4XX capability handling and motion detection were moved into the common base implementation.
- BQ27220 and AXP2602 now implement the new
GaugeBaseinterface. - Touch drivers now use the richer
getTouchPoints()API.
Breaking Changes
SensorDrv.hppand the top-levelSensorBMM150.hppwere removed.- Use category or vendor headers such as
ImuDrv.hpp,MagnetometerDrv.hpp,AccelerometerDrv.hpp,PmicXPowers.hpp, andTouchDrvGoodix.hpp. - Most legacy top-level headers remain available as deprecated compatibility wrappers.
- The legacy QMI8658 API is deprecated.
ImuBasegained new pure virtual methods and a unifiedisDataReady()API.USEING_I2C_LEGACYwas renamed toSENSORLIB_USE_I2C_LEGACY.- SensorLib-provided global bit and byte macros were replaced by type-safe helpers in the
sensorlibnamespace. DevicesPins.his no longer included automatically bySensorLib.h.- Raw Bosch
*.fwfiles are no longer bundled. Generated firmware headers remain available. - Example paths have changed.
See the migration guide for detailed mappings and code examples.
Fixes
- Fixed BMA423 any-motion and no-motion configuration.
- Fixed CST3240 point reads and invalid CST92xx touch reporting.
- Fixed QMC6309 self-test and initialization.
- Fixed ESP-IDF I2C initialization behavior.
- Fixed Arduino STM32 GPIO compatibility.
- Fixed XL9555 probing.
- Fixed AXP2101 charge-current steps and interrupt clearing compatibility.
- Fixed AXP517 TCPC initialization, PD alerts, and return values.
- Improved BHI260 error propagation.
Documentation and Packaging
- Added a permanent project changelog.
- Added a dedicated v0.5 migration guide.
- Added Doxygen documentation deployment.
- Prevented generated ESP-IDF build files from entering PlatformIO packages.
- Updated package metadata and supported-device keywords.
Full Changelog: v0.4.1...v0.5.0