Skip to content

Releases: lewisxhe/SensorLib

Release v0.4.1

11 Apr 04:33

Choose a tag to compare

SensorLib v0.4.1

Highlights

  • Added haptic driver aggregation and expanded haptic driver examples (DRV2605 + AW86224)
  • Improved ESP-IDF Component Registry readiness and bumped package versions to 0.4.1
  • Large set of example updates: unified touch include usage, richer touch point output, and multiple wiring/address fixes
  • Refactored several device/driver layers towards the new shared I2C device abstractions (I2CDeviceNoHal, I2CDeviceWithHal, ComplexStaticDeviceWithHal)
  • Misc build / project hygiene updates (.gitignore, platformio.ini, CMake include cleanup)

Added

Haptics

  • Added HapticDrivers.hpp as a unified include header for haptic drivers:
    • HapticDriver_DRV2605
    • HapticDriver_AW86224
  • New examples:
    • examples/HapticDrv_AW86224_Full (full-feature demo + CLI-style commands)
    • examples/HapticDrv_DRV2605_Effect (effect playback demo)
    • examples/HapticDrv_DRV2605_Full (extended DRV2605 demo)

Magnetometer examples

  • New examples for QMC magnetometers:
    • examples/MagInterface_GetDataExample
    • examples/QMC6309_GetDataExample

ESP-IDF distribution

  • SensorLib is now positioned for ESP-IDF Component Registry usage (README updated with dependency snippet and version guidance).

Changed

Versioning / package metadata

  • Updated versions to 0.4.1:
    • idf_component.yml
    • library.json
    • library.properties
    • src/SensorLib_Version.h (patch version + SENSORLIB_VERSION_STR)

Touch examples modernization

  • Many touch examples now include the umbrella header:
    • #include <TouchDrv.hpp>
  • Updated touch examples to use getTouchPoints() and print richer information (ID/pressure/event), and improved “resolution unsupported” messaging.

Driver architecture refactors (internal)

  • Multiple drivers migrated toward shared communication abstractions:
    • GaugeAXP2602 refactored to use I2CDeviceWithHal
    • GaugeBQ27220 refactored to use I2CDeviceWithHal
    • I/O expanders updated (e.g. XL9555 / PCA9570) to use I2CDeviceNoHal and cleaner address handling
    • Bosch sensor base classes adjusted to use ComplexStaticDeviceWithHal style patterns (reducing duplicated begin/init plumbing)

Fixed

Examples / wiring defaults

  • AXP2602 gauge example: swapped default SDA/SCL pin values for consistency with target boards
  • CM32181 example:
    • Updated default SDA/SCL pins
    • Uses CM32181_SLAVE_ADDRESS naming
  • LTR553 example: uses explicit LTR553_SLAVE_ADDRESS
  • RTC example typo: PCF8563_SimpleTime message corrected (“PCF8563” instead of “PCF85063”)
  • ESP-IDF touch example updated to include <TouchDrv.hpp>

Build / repo hygiene

  • CMakeLists.txt: removed an outdated include path entry (src/REG)
  • platformio.ini: updated example selection and default env tweaks (incl. flash mode adjustment for ESP32-C3 and board selection changes for ESP32-S3 config)

Deprecations / Migration Notes

  • SensorDRV2605.hpp has been renamed / redirected:
    • Now includes HapticDrivers.hpp
    • SensorDRV2605 is aliased to HapticDriver_DRV2605
  • Recommended migration:
    1. Replace #include "SensorDRV2605.hpp" with #include "HapticDrivers.hpp"
    2. Replace SensorDRV2605 usage with HapticDriver_DRV2605 (optional; alias exists)

Release v0.4.0

07 Mar 07:53

Choose a tag to compare

SensorLib v0.4.0

Highlights

  • Major Bosch smart sensor stack improvements (BHI260/BHI360), new examples, and helper utilities
  • Touch driver refactor with new HI8561 support and GT9895 fixes
  • Refactored I/O expander layer
  • Documentation + compliance updates (THIRD_PARTY_NOTICES, revamped README)
  • CI / build compatibility fixes across toolchains

Bosch / Smart Sensor (BHI260/BHI360) updates

  • Added BHI360 support and improved Bosch sensor product handling
  • Added BHI360-related parsing and helpers:
    • IAQ ID / IAQ parsing functions and related printing adapter
    • Sensor orientation enumeration and unified configuration parameters
    • Firmware update callback function, interrupt control
  • Added/updated a large set of examples:
    • BHI360 examples, StepCounter
    • MultiTap function + MultiTap example
    • Any Motion / No Motion helper class + examples
    • Updated BHI260/BHI260AP examples and comments
    • Added EVB pins and fixed sensor initialization / meta event id issues
  • Updated Bosch source/layout:
    • Changed BHI260 directory structure
    • Added BHI360 firmware + dependency files
    • Modified bhy2 sources to remove BHI3 IAQ (project-specific change)
  • Internal improvements:
    • Optimized BoschCallbackManager
    • Added SensorComm separate read method (Arduino/ESP-IDF variants)

Bosch BMA4xx accelerometer series

  • Added Bosch BMA422 support + examples
  • Introduced/extended BMA4xx base layer:
    • Added accelerometer base class
    • Added bma4xx base class and Bosch BMA4xx API interface
    • Improved BMA4xx base class and naming convention
  • Added BMA456H support + feature examples
  • Refactored SensorBMA423, updated examples, fixed warnings/typos, removed redundant params

Touch drivers

  • Refactoring: introduced a unified touch data class and unified data retrieval
  • Added method to set target resolution for touch classes
  • Fixed GT9895 touch malfunction (issue #35)
  • Added HI8561 touch panel support (issue #33):
    • Custom device id
    • LilyGoP4 example
    • Fixed bug where touch coordinates could be 0 if max resolution not set
  • TouchDrvInterface:
    • Destructor made virtual
    • Comments/docs updated

I/O Expander / GPIO

  • Refactored I/O extender layer:
    • New/updated enumeration transitions (IoExpanderGPIO) and enum positioning fixes
    • Introduced generic inline helper method
    • Updated io extender example

Magnetometer

  • Added support for QMC5883L
  • Added a magnetometer base class to unify interface
  • Updated magnetometer examples

Build / CI / Toolchain compatibility

  • Fixed CI (multiple rounds), including IDF CI and Mbed CI adjustments
  • Fixed compilation conflicts and warnings
  • Fixed Arduino toolchain issues:
    • arduino-esp compilation fix
    • std::nothrow link errors fix
    • Arduino nRF52 compilation errors fixes (and earlier nRF52 compatibility work)
  • CMake / build system formatting and updates

Documentation / Metadata / Release hygiene

  • Updated README.md multiple times:
    • New “cool” header/banner, improved structure (Installation / Examples / Notes / License)
    • Clarified Arduino IDE & PlatformIO installation methods (Registry/Library Manager)
  • Added/updated keywords
  • Added git property settings and filtering rules
  • Cleanups:
    • Removed redundant/invalid files
    • Fixed links
    • Updated PlatformIO ini
  • Added THIRD_PARTY_NOTICES.md and clarified Bosch third-party licensing
  • Bumped version: Updated to v0.4.0

Release V0.3.4

22 Jan 10:37

Choose a tag to compare

Release V0.3.3

04 Nov 01:49

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.3.2...v0.3.3

Release v0.3.2

22 Sep 05:40

Choose a tag to compare

Release v0.3.1

08 Apr 06:29

Choose a tag to compare

Release v0.3.0

02 Apr 06:45

Choose a tag to compare

Release v0.2.6

21 Jan 06:23

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.2.5...v0.2.6

Release v0.2.5

30 Dec 02:08

Choose a tag to compare

Release v0.2.4

12 Dec 05:57

Choose a tag to compare