Skip to content

v0.22.5: Modem Simplification

Compare
Choose a tag to compare
@SRGDamia1 SRGDamia1 released this 24 Jun 23:30
· 1131 commits to master since this release
cde7e66

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.