Skip to content

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

Compare
Choose a tag to compare
@SRGDamia1 SRGDamia1 released this 06 Mar 22:58
· 1400 commits to master since this release
ff900f9

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.