Skip to content

Releases: EnviroDIY/ModularSensors

v0.25.0: Styling & Doxygen Code Documentation

25 Jun 18:30
Compare
Choose a tag to compare

DOI

Downloads

libraries_v0.25.0.zip contains this version of ModularSensors and the proper versions of all of its dependencies.

Installing on the Arduino IDE:

In your the Arduino Software (IDE), import the library zip file following the instructions for "Manual Installation" from https://www.arduino.cc/en/Guide/Libraries#toc5. You cannot directly import the zip using the Arduino Library Manager because it contains multiple libraries.

Installing for PlatformIO:

Extract the contents of library zip to your project's 'lib' folder.

Change Log

New Features:

Improvements:

  • Improved C++ code styling elements in every file in the library, to:
  • Encapsulated modem wake check logic into a function and checking for status using a quick AT ping if no other option is available.
    • This will only affect modems/breakouts that depend on a pulse on their wake pin to turn on or off but for whatever reason don't have a separate status pin connected to the mcu. I do not recommend this configuration.
  • Always re-set the pin mode of a sensor power pin before attempting to turn it on.
    • This could come into play when first attempting to power on a sensor before the initial setup if the pin mode on the sensor power pin was set to input by whatever program the mcu had run prior to running ModularSensors code.

Bug Fixes

  • Fixed issue where the Digi XBee LTE-M modem did not wake during normal logging mode to transmit data to the publisher. See #309 (comment)

For more details, see Pull Request #309: The style sheet

v0.24.1: Modem Restructuring

02 Mar 13:30
Compare
Choose a tag to compare

DOI

Downloads

libraries_v0.24.1.zip contains this version of ModularSensors and the proper versions of all of its dependencies.

Installing on the Arduino IDE:

In your the Arduino Software (IDE), import the library zip file following the instructions for "Manual Installation" from https://www.arduino.cc/en/Guide/Libraries#toc5. You cannot directly import the zip using the Arduino Library Manager because it contains multiple libraries.

Installing for PlatformIO:

Extract the contents of library zip to your project's 'lib' folder.

Change Log

Improvements

Restructured modem so that it no longer operates as a sensor. Variables tied to the modem are now effectively calculated variables and all values from the modem will be offset by 1 sending cycle (ie, the signal strength posted will always be the strength from the prior send, not the current one).

v0.23.13: More agressive attempts to set clock

19 Sep 20:20
45f128a
Compare
Choose a tag to compare

DOI

Downloads

libraries_v0.23.13.zip contains this version of ModularSensors and the proper versions of all of its dependencies.

Installing on the Arduino IDE:

In your the Arduino Software (IDE), import the library zip file following the instructions for "Manual Installation" from https://www.arduino.cc/en/Guide/Libraries#toc5. You cannot directly import the zip using the Arduino Library Manager because it contains multiple libraries.

Installing for PlatformIO:

Extract the contents of library zip to your project's 'lib' folder.

Change Log

Improvements:

  • Much more aggressive attempts to set the clock if the time is not reasonable - before 01Sep2019 or after 01Jan2025.
    • The LED will flicker and warnings will be sent over the serial port for invalid times at every check.
    • The logDataAndPublish function will attempt to synchronize the clock at every measurement until a valid time is received.
    • The NIST sync will attempt to open the socket to the daytime server up to 12 times trying to get a valid response.
  • Using automatic network technology and carrier profile for Digi LTE-M XBee3's - with the current firmware there is not a significant time savings in manually selecting the carrier and manually selecting the carrier gives no options when the relative signal strength of the carriers changes.

v0.23.11: Watchdogs and More

11 Sep 20:47
c033353
Compare
Choose a tag to compare

DOI

Downloads

libraries_v0.23.11.zip contains this version of ModularSensors and the proper versions of all of its dependencies.

Installing on the Arduino IDE:

In your the Arduino Software (IDE), import the libraries.zip file following the instructions for "Manual Installation" from https://www.arduino.cc/en/Guide/Libraries#toc5. You cannot directly import the zip using the Arduino Library Manager because it contains multiple libraries.

Installing for PlatformIO:

Extract the contents of libraries.zip to your project's 'lib' folder.

Change Log

New Features:

  • A watch-dog timer has been implemented for both the AVR and SAMD21 (and 51) boards to restart the boards in case of failure during logging
    • The watch-dog is turned off during sleep to save power, so recovery is only possible if the failure is while the processor is awake.
  • Added support for Meter Terros 11 soil moisture and temperature sensor
  • Implemented a function to verify that UUID's are at least correctly formed and unique - though it does not verify that they are valid.
  • Pushing to the master branch of this repo will now also cause a re-run of the travis script that updates the EnviroDIY "Libraries" repository.
  • Added debugging variables to modems to track how long they are powered/active.

Improvements:

  • Added extra compile tests in the menu a la carte example.
  • Improvements made to nearly all modem modules
  • Restore XBee access to resets by TinyGSM

Bug Fixes

  • Fixed all compiler warnings seen with the -Wextra flag (mostly by adding technically-unnecessary-but-visually-helpful braces)
  • Fixed issue with creating a calculated variable without a UUID

Known Issues

  • polling the AM2315 more frequently than every 2 seconds will now return a bad value (-9999) rather than returning the same value multiple times. This is a reflection of a change in the Adafruit library. The measurement time set for the sensor has always been this long so this issue should never be seen unless you attempt to call get measurement results from the AM2315 without first waiting for the measurement completion. The update function and all variable array functions should behave properly.

v0.22.5: Modem Simplification

24 Jun 23:30
cde7e66
Compare
Choose a tag to compare

DOI

NOTE: This release is NOT backwards compatible with previous releases.

  • All code must be updated to the current format for modems and time zones to work with this version of the library.

Downloads

libraries.zip contains this version of ModularSensors and the proper versions of all of its dependencies.

Installing on the Arduino IDE:

In your the Arduino Software (IDE), import the libraries.zip file following the instructions for "Manual Installation" from https://www.arduino.cc/en/Guide/Libraries#toc5. You cannot directly import the zip using the Arduino Library Manager because it contains multiple libraries.

Installing for PlatformIO:

Extract the contents of libraries.zip to your project's 'lib' folder.

Change Log

New Features:

  • LoggerModem has become a parent class. All modems now exist as separate subclass objects.
    • This should greatly simplify creating a modem object in code.
    • Currently supported modems:
      • Digi XBee and XBee3 cellular modems of all types running in transparent mode
      • Digi XBee3 cellular LTE-M modems in bypass mode (this is in addition to transparent mode)
      • Digi XBee cellular 3G global modems in bypass mode (this is in addition to transparent mode)
      • Digi XBee Wifi S6B modules
      • Sodaq UBee LTE-M (SARA R410M)
      • Sodaq UBee 3G (SARA U201)
      • Sodaq 2GBee R6/R7
      • Sodaq 2GBee R4, Adafruit Fona, and other SIMComm SIM800 modules
      • Botletics and other SIMCom SIM7000 modules
      • Dragino, Nimbelink, and other Quectel BG96 modules
      • Nimbelink LTE-M Verizon
      • Espressif ESP8266 based modules
    • The older way of creating a modem object and feeding it wake/sleep functions is no longer supported.
  • The real time clock's timezone can now be explicit set (as opposed to setting the logger timezone and the offset between the RTC and the logger)
    • The function to set the logger timezone has been renamed from setTimeZone to setLoggerTimeZone.

Improvements:

  • Daily clock synchronization has been moved from midnight to noon. For loggers with solar charging, this should place the extra draw of the modem to do the synchronization to a time of peak charging.
  • All "send" data functions have been renamed to "publish" to line up with module names.
  • Updated AM2315 to use most current Adafruit library (2.0.0)

Bug Fixes

  • Fixed #259 where time zones offset by more than 9 hours from UTC would not work correctly.
  • Fixed #183 where enabling debugging would cause non AVR boards to crash.
  • Adjusted some timing parameters for the SIM800 based on testing.

Known Issues

  • polling the AM2315 more frequently than every 2 seconds will now return a bad value (-9999) rather than returning the same value multiple times. This is a reflection of a change in the Adafruit library. The measurement time set for the sensor has always been this long so this issue should never be seen unless you attempt to call get measurement results from the AM2315 without first waiting for the measurement completion. The update function and all variable array functions should behave properly.

v0.21.4: Deep debug error

02 May 21:43
Compare
Choose a tag to compare

Downloads

libraries.zip contains this version of ModularSensors and the proper versions of all of its dependencies.

Installing on the Arduino IDE:

In your the Arduino Software (IDE), import the libraries.zip file following the instructions for "Manual Installation" from https://www.arduino.cc/en/Guide/Libraries#toc5. You cannot directly import the zip using the Arduino Library Manager because it contains multiple libraries.

Installing for PlatformIO:

Extract the contents of libraries.zip to your project's 'lib' folder.

Change Log

Bug Fixes

  • Fixed minor bug in debugging created in previous release

v0.21.3: Minor Bugs and Simplified Debugging

02 May 20:31
Compare
Choose a tag to compare

New Features:

  • Gave every header file a unique debugging define statement so each file can be debugged individually by building with the build flag -DMS_xxx_DEBUG where xxx is the file name in upper case.
    • Some files also have a "deep" debugging option with -DMS_xxx_DEBUG_DEEP
  • Created examples for LearnEnviroDIYCode

Bug Fixes:

  • Fixed a bug causing modem to not be turned because the processor thought it was on already
  • Corrected warm-up timing for Yosemitech Sonde
  • Typo fixes in comments

v0.21.2: Fix write to SD card

19 Mar 21:27
5b39760
Compare
Choose a tag to compare

Bug Fixes

  • Fixed bug intoduced in 0.21.0 preventing writing to SD card - file must be closed (not sync'ed)

v0.21.0: Support for all Atlas Scientific I2C sensors, compiler-safe begin functions

06 Mar 22:58
ff900f9
Compare
Choose a tag to compare

DOI

New Features:

  • Added full support for all Atlas Scientific EZO curcuits and sensors that support I2C
    • CO2
    • DO (dissolved oxygen)
    • EC (conductivity)
    • ORP (oxidation/reduction potential)
    • pH
    • RTD (temperature
  • Created empty constructors for the logger, publisher, variable array, and variable classes and all of their subclasses. For all classes created a corresponding "begin" function to set internal class object values.
    • See note for more details: b1a619e
    • The order of input arguments for all variable objects has changed. For variable subclasses (ie, variables from sensors), there is no change to the user. For calculated variable objects, all code must be updated! Please check the structure in the examples! Older code will compile without error but the variable metadata fields will be incorrectly populated.
  • Very preliminary support for SD cards with switchable power

Improvements:

  • Eliminated any time-out waits on libraries using the Wire class
  • Simplified the logger begin function - the removed functionality should be called in individual program setup functions
    • Removed clock sync
    • Removed logger file creation
    • Removed sensor setup
  • Moved the check for setup from the wake function to the startSingleMeasurement function for all sensors
    • Previously, the first time the wake was called for a function, the status bit for setup was checked and if the sensor had not been setup, the setup function was called. This will no longer happen the first time the wake function is called, but instead the first time the startSingleMeasurement function is called. The main motivator for the change was the modem which could end up behaving strangely because the setup function actually called the wake function internally.
  • Improved example coding for SARA R410 cellular modules

Bug Fixes

  • Fixed call to a null pointer causing the array's completeUpdate to crash with calculated variables
  • Fixed source of ADS1x15 dependency
  • Removed "default" wake/sleep functions from modem. These were non-working skeleton functions.

Known Issues

  • Running some I2C sensors on switched power will cause unrecoverable hangs at the first call to any other I2C peripheral (ie, the DS3231 RTC) after sensor power is turned off. This is a hardware problem and is un-fixable within this library.
  • The sensor class and all of its subclasses still require input arguments in the constructor.

v0.19.6: Modem Improvements & ADS1X15 Generalization

27 Feb 19:03
Compare
Choose a tag to compare

DOI

New Features:

  • Added ADS1015 as an optional analog to digital converter (ADC) for boards other than the Mayfly

Improvements:

  • Modem waits for signal strength return before sending data
  • Other modem tweaks
  • Restructuring of data publishers

Bug Fixes

  • Fixed bug with ADS1115 for M0/SAM21