Skip to content

Release v0.4.1

Latest

Choose a tag to compare

@lewisxhe lewisxhe released this 11 Apr 04:33
· 20 commits to master since this release

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)