From 2c86fa57a28e85c0787fd9879e8dd74dfc2ee6d4 Mon Sep 17 00:00:00 2001 From: Theo Arends <11044339+arendst@users.noreply.github.com> Date: Mon, 1 Jun 2026 18:08:35 +0200 Subject: [PATCH] Update SEN5x library - no functional change --- lib/lib_i2c/arduino-i2c-sen5x/.clang-format | 14 ++++ lib/lib_i2c/arduino-i2c-sen5x/.gitignore | 70 ++++++++++++++++++ .../CHANGELOG.md | 5 ++ .../LICENSE | 0 .../README.md | 2 - .../examples/exampleUsage/exampleUsage.ino | 0 .../images/SEN5X_pinout.png | Bin .../images/SEN5x.png | Bin .../keywords.txt | 0 .../library.properties | 2 +- .../src/SensirionI2CSen5x.cpp | 0 .../src/SensirionI2CSen5x.h | 36 +++++---- 12 files changed, 111 insertions(+), 18 deletions(-) create mode 100644 lib/lib_i2c/arduino-i2c-sen5x/.clang-format create mode 100644 lib/lib_i2c/arduino-i2c-sen5x/.gitignore rename lib/lib_i2c/{Sensirion_I2C_SEN5X => arduino-i2c-sen5x}/CHANGELOG.md (70%) rename lib/lib_i2c/{Sensirion_I2C_SEN5X => arduino-i2c-sen5x}/LICENSE (100%) rename lib/lib_i2c/{Sensirion_I2C_SEN5X => arduino-i2c-sen5x}/README.md (96%) rename lib/lib_i2c/{Sensirion_I2C_SEN5X => arduino-i2c-sen5x}/examples/exampleUsage/exampleUsage.ino (100%) rename lib/lib_i2c/{Sensirion_I2C_SEN5X => arduino-i2c-sen5x}/images/SEN5X_pinout.png (100%) rename lib/lib_i2c/{Sensirion_I2C_SEN5X => arduino-i2c-sen5x}/images/SEN5x.png (100%) rename lib/lib_i2c/{Sensirion_I2C_SEN5X => arduino-i2c-sen5x}/keywords.txt (100%) rename lib/lib_i2c/{Sensirion_I2C_SEN5X => arduino-i2c-sen5x}/library.properties (95%) rename lib/lib_i2c/{Sensirion_I2C_SEN5X => arduino-i2c-sen5x}/src/SensirionI2CSen5x.cpp (100%) rename lib/lib_i2c/{Sensirion_I2C_SEN5X => arduino-i2c-sen5x}/src/SensirionI2CSen5x.h (97%) diff --git a/lib/lib_i2c/arduino-i2c-sen5x/.clang-format b/lib/lib_i2c/arduino-i2c-sen5x/.clang-format new file mode 100644 index 000000000..047f2adf1 --- /dev/null +++ b/lib/lib_i2c/arduino-i2c-sen5x/.clang-format @@ -0,0 +1,14 @@ +--- +Language: Cpp +BasedOnStyle: LLVM +IndentWidth: 4 +AlignAfterOpenBracket: Align +AllowShortBlocksOnASingleLine: false +AllowShortCaseLabelsOnASingleLine: false +AllowShortFunctionsOnASingleLine: false +IndentCaseLabels: true +SpacesBeforeTrailingComments: 2 +PointerAlignment: Left +AlignEscapedNewlines: Left +ForEachMacros: ['TEST_GROUP', 'TEST'] +... diff --git a/lib/lib_i2c/arduino-i2c-sen5x/.gitignore b/lib/lib_i2c/arduino-i2c-sen5x/.gitignore new file mode 100644 index 000000000..47ded0383 --- /dev/null +++ b/lib/lib_i2c/arduino-i2c-sen5x/.gitignore @@ -0,0 +1,70 @@ +app/bin/ +app/pde.jar +build/macosx/work/ +arduino-core/bin/ +arduino-core/arduino-core.jar +hardware/arduino/bootloaders/caterina_LUFA/Descriptors.o +hardware/arduino/bootloaders/caterina_LUFA/Descriptors.lst +hardware/arduino/bootloaders/caterina_LUFA/Caterina.sym +hardware/arduino/bootloaders/caterina_LUFA/Caterina.o +hardware/arduino/bootloaders/caterina_LUFA/Caterina.map +hardware/arduino/bootloaders/caterina_LUFA/Caterina.lst +hardware/arduino/bootloaders/caterina_LUFA/Caterina.lss +hardware/arduino/bootloaders/caterina_LUFA/Caterina.elf +hardware/arduino/bootloaders/caterina_LUFA/Caterina.eep +hardware/arduino/bootloaders/caterina_LUFA/.dep/ +build/*.zip +build/*.tar.bz2 +build/windows/work/ +build/windows/*.zip +build/windows/*.tgz +build/windows/*.tar.bz2 +build/windows/libastylej* +build/windows/liblistSerials* +build/windows/arduino-*.zip +build/windows/dist/*.tar.gz +build/windows/dist/*.tar.bz2 +build/windows/launch4j-*.tgz +build/windows/launch4j-*.zip +build/windows/launcher/launch4j +build/windows/WinAVR-*.zip +build/macosx/arduino-*.zip +build/macosx/dist/*.tar.gz +build/macosx/dist/*.tar.bz2 +build/macosx/*.tar.bz2 +build/macosx/libastylej* +build/macosx/appbundler*.jar +build/macosx/appbundler*.zip +build/macosx/appbundler +build/macosx/appbundler-1.0ea-arduino? +build/macosx/appbundler-1.0ea-arduino*.zip +build/macosx/appbundler-1.0ea-upstream*.zip +build/linux/work/ +build/linux/dist/*.tar.gz +build/linux/dist/*.tar.bz2 +build/linux/*.tgz +build/linux/*.tar.xz +build/linux/*.tar.bz2 +build/linux/*.zip +build/linux/libastylej* +build/linux/liblistSerials* +build/shared/arduino-examples* +build/shared/reference*.zip +build/shared/Edison*.zip +build/shared/Galileo*.zip +build/shared/WiFi101-Updater-ArduinoIDE-Plugin*.zip +test-bin +*.iml +.idea +.DS_Store +.directory +hardware/arduino/avr/libraries/Bridge/examples/XivelyClient/passwords.h +avr-toolchain-*.zip +/app/nbproject/private/ +/arduino-core/nbproject/private/ +/app/build/ +/arduino-core/build/ + +manifest.mf +nbbuild.xml +nbproject \ No newline at end of file diff --git a/lib/lib_i2c/Sensirion_I2C_SEN5X/CHANGELOG.md b/lib/lib_i2c/arduino-i2c-sen5x/CHANGELOG.md similarity index 70% rename from lib/lib_i2c/Sensirion_I2C_SEN5X/CHANGELOG.md rename to lib/lib_i2c/arduino-i2c-sen5x/CHANGELOG.md index a1d8044bc..9c224b168 100644 --- a/lib/lib_i2c/Sensirion_I2C_SEN5X/CHANGELOG.md +++ b/lib/lib_i2c/arduino-i2c-sen5x/CHANGELOG.md @@ -6,6 +6,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.3.0] - 2023-01-19 + +Fix scaling of typicalParticleSize for readMeasuredPmValues +Fix comments for readMeasuredPmValuesAsIntegers ## [0.2.0] - 2022-03-30 @@ -15,6 +19,7 @@ Add support for SEN50 Initial release +[0.3.0]: https://github.com/Sensirion/embedded-i2c-sen5x/compare/0.2.0...0.3.0 [0.2.0]: https://github.com/Sensirion/embedded-i2c-sen5x/compare/0.1.0...0.2.0 [0.1.0]: https://github.com/Sensirion/arduino-i2c-sen5x/releases/tag/0.1.0 diff --git a/lib/lib_i2c/Sensirion_I2C_SEN5X/LICENSE b/lib/lib_i2c/arduino-i2c-sen5x/LICENSE similarity index 100% rename from lib/lib_i2c/Sensirion_I2C_SEN5X/LICENSE rename to lib/lib_i2c/arduino-i2c-sen5x/LICENSE diff --git a/lib/lib_i2c/Sensirion_I2C_SEN5X/README.md b/lib/lib_i2c/arduino-i2c-sen5x/README.md similarity index 96% rename from lib/lib_i2c/Sensirion_I2C_SEN5X/README.md rename to lib/lib_i2c/arduino-i2c-sen5x/README.md index 5165ad7c3..7430272f2 100644 --- a/lib/lib_i2c/Sensirion_I2C_SEN5X/README.md +++ b/lib/lib_i2c/arduino-i2c-sen5x/README.md @@ -1,5 +1,3 @@ - # Sensirion I2C SEN5X Arduino Library This is the Sensirion SEN5X library for Arduino using the diff --git a/lib/lib_i2c/Sensirion_I2C_SEN5X/examples/exampleUsage/exampleUsage.ino b/lib/lib_i2c/arduino-i2c-sen5x/examples/exampleUsage/exampleUsage.ino similarity index 100% rename from lib/lib_i2c/Sensirion_I2C_SEN5X/examples/exampleUsage/exampleUsage.ino rename to lib/lib_i2c/arduino-i2c-sen5x/examples/exampleUsage/exampleUsage.ino diff --git a/lib/lib_i2c/Sensirion_I2C_SEN5X/images/SEN5X_pinout.png b/lib/lib_i2c/arduino-i2c-sen5x/images/SEN5X_pinout.png similarity index 100% rename from lib/lib_i2c/Sensirion_I2C_SEN5X/images/SEN5X_pinout.png rename to lib/lib_i2c/arduino-i2c-sen5x/images/SEN5X_pinout.png diff --git a/lib/lib_i2c/Sensirion_I2C_SEN5X/images/SEN5x.png b/lib/lib_i2c/arduino-i2c-sen5x/images/SEN5x.png similarity index 100% rename from lib/lib_i2c/Sensirion_I2C_SEN5X/images/SEN5x.png rename to lib/lib_i2c/arduino-i2c-sen5x/images/SEN5x.png diff --git a/lib/lib_i2c/Sensirion_I2C_SEN5X/keywords.txt b/lib/lib_i2c/arduino-i2c-sen5x/keywords.txt similarity index 100% rename from lib/lib_i2c/Sensirion_I2C_SEN5X/keywords.txt rename to lib/lib_i2c/arduino-i2c-sen5x/keywords.txt diff --git a/lib/lib_i2c/Sensirion_I2C_SEN5X/library.properties b/lib/lib_i2c/arduino-i2c-sen5x/library.properties similarity index 95% rename from lib/lib_i2c/Sensirion_I2C_SEN5X/library.properties rename to lib/lib_i2c/arduino-i2c-sen5x/library.properties index ea4a9000b..25d5bca35 100644 --- a/lib/lib_i2c/Sensirion_I2C_SEN5X/library.properties +++ b/lib/lib_i2c/arduino-i2c-sen5x/library.properties @@ -1,5 +1,5 @@ name=Sensirion I2C SEN5X -version=0.2.0 +version=0.3.0 author=Sensirion maintainer=Sensirion sentence=Library for the SEN5X sensor family by Sensirion diff --git a/lib/lib_i2c/Sensirion_I2C_SEN5X/src/SensirionI2CSen5x.cpp b/lib/lib_i2c/arduino-i2c-sen5x/src/SensirionI2CSen5x.cpp similarity index 100% rename from lib/lib_i2c/Sensirion_I2C_SEN5X/src/SensirionI2CSen5x.cpp rename to lib/lib_i2c/arduino-i2c-sen5x/src/SensirionI2CSen5x.cpp diff --git a/lib/lib_i2c/Sensirion_I2C_SEN5X/src/SensirionI2CSen5x.h b/lib/lib_i2c/arduino-i2c-sen5x/src/SensirionI2CSen5x.h similarity index 97% rename from lib/lib_i2c/Sensirion_I2C_SEN5X/src/SensirionI2CSen5x.h rename to lib/lib_i2c/arduino-i2c-sen5x/src/SensirionI2CSen5x.h index a572ff3fe..896cd24c1 100644 --- a/lib/lib_i2c/Sensirion_I2C_SEN5X/src/SensirionI2CSen5x.h +++ b/lib/lib_i2c/arduino-i2c-sen5x/src/SensirionI2CSen5x.h @@ -50,7 +50,7 @@ class SensirionI2CSen5x { /** * begin() - Initializes the SensirionI2CSen5x class. * - * @param serial Arduino stream object to be communicated with. + * @param i2cBus Arduino stream object to use for communication. * */ void begin(TwoWire& i2cBus); @@ -62,8 +62,11 @@ class SensirionI2CSen5x { * measurement results are available. You could poll with the command * 0x0202 \"Read Data Ready\" to check when the results are ready to read. * - * This command is only available in idle mode. If the device is already - * in any measure mode, this command has no effect. + * If the device is in measure mode without particulate matter (low-power) + * and the firmware version is at least 2.0, this command enables PM + * measurement without affecting the already running RH/T/VOC/NOx + * measurements (except that the \"data ready\"-flag will be cleared). In + * previous firmware versions, this command is supported only in idle mode. * * @return 0 on success, an error code otherwise */ @@ -78,8 +81,11 @@ class SensirionI2CSen5x { * measurement results are available. You could poll with the command * 0x0202 \"Read Data Ready\" to check when the results are ready to read. * - * This command is only available in idle mode. If the device is already - * in any measure mode, this command has no effect. + * If the device is in measure mode with particulate matter (normal measure + * mode) and the firmware version is at least 2.0, this command disables PM + * measurement without affecting the already running RH/T/VOC/NOx + * measurements (except that the \"data ready\"-flag will be cleared). In + * previous firmware versions, this command is supported only in idle mode. * * Supported sensors: SEN54, SEN55 * @@ -238,8 +244,8 @@ class SensirionI2CSen5x { * * @param rawNox Raw measured NOx ticks without scale factor. * Note: If this value is unknown, which is the case for SEN54, - * 0x7FFF is returned. During the first 10..11 seconds after power-on - * or device reset, this value will be 0x7FFF as well.* + * 0xFFFF is returned. During the first 10..11 seconds after power-on + * or device reset, this value will be 0xFFFF as well.* * * @return 0 on success, an error code otherwise */ @@ -334,35 +340,35 @@ class SensirionI2CSen5x { * second), all values will be 0xFFFF. * * @param massConcentrationPm1p0 Value is scaled with factor 10: - * PM1.0 [µg/m³] = value / 1 + * PM1.0 [µg/m³] = value / 10 * Note: If this value is unknown, 0xFFFF is returned.* * * @param massConcentrationPm2p5 Value is scaled with factor 10: - * PM2.5 [µg/m³] = value / 1 + * PM2.5 [µg/m³] = value / 10 * Note: If this value is unknown, 0xFFFF is returned.* * * @param massConcentrationPm4p0 Value is scaled with factor 10: - * PM4.0 [µg/m³] = value / 1 + * PM4.0 [µg/m³] = value / 10 * Note: If this value is unknown, 0xFFFF is returned.* * * @param massConcentrationPm10p0 Value is scaled with factor 10: - * PM10.0 [µg/m³] = value / 1 + * PM10.0 [µg/m³] = value / 10 * Note: If this value is unknown, 0xFFFF is returned.* * * @param numberConcentrationPm0p5 Value is scaled with factor 10: - * PM0.5 [#/cm³] = value / 1 + * PM0.5 [#/cm³] = value / 10 * Note: If this value is unknown, 0xFFFF is returned.* * * @param numberConcentrationPm1p0 Value is scaled with factor 10: - * PM1.0 [#/cm³] = value / 1 + * PM1.0 [#/cm³] = value / 10 * Note: If this value is unknown, 0xFFFF is returned.* * * @param numberConcentrationPm2p5 Value is scaled with factor 10: - * PM2.5 [#/cm³] = value / 1 + * PM2.5 [#/cm³] = value / 10 * Note: If this value is unknown, 0xFFFF is returned.* * * @param numberConcentrationPm4p0 Value is scaled with factor 10: - * PM4.0 [#/cm³] = value / 1 + * PM4.0 [#/cm³] = value / 10 * Note: If this value is unknown, 0xFFFF is returned.* * * @param numberConcentrationPm10p0 Value is scaled with factor 10: