This update improves the stability, compatibility and security for the CR300 and CR310 dataloggers and is recommended for all users.
(WARNING) Upgrading the Operating System could reset all CR300 settings back to factory defaults. Sending this Operating System remotely can be done but is not recommended. To restore settings after the update, it is recommended that a backup be made of the current datalogger settings or take programmatic measures to ensure your settings can be restored. This can be done using Device Configuration Utility (DevConfig) backup utility or the CRBasic instruction SetSetting(). Detailed information on how to upgrade your datalogger operating system is provided in the CR300 manual.
Added support for the CR300-CELL205, CR310-CELL205, CR300-CELL210, and CR310-CELL210 dataloggers.
Added capability to work with newer web TLS security schemes and models. Upgraded to MBEDTLS libraries from AXTLS libraries.
Added a TCPMSS setting which allows the user to set the size of the TCP/IP packet (Maximum Transmission Unit or MTU). This can be set using Device Configuration Utility version 2.17 or greater or by using the SetSetting() instruction in CRBasic (SetSetting("TCPMSS", 1024)).
Added the ability to monitor daily and monthly cellular data usage in kilobytes via CRBasic. Settings.CellUsageToday (Read Only) reports the total usage for the current day. Settings.CellUsageYesterday (Read Only) reports the total usage for the previous day. Settings.CellUsageMonth (Read Only) reports the total usage for the current month. Settings.CellUsageLastMonth (Read Only) reports the total usage for the previous mount. This information is also provided in the Cellular Network Status field under the Cellular tab in Device Configuration Utility.
Added support for the datalogger setting Setting.CellBillingDay and SetSetting("CellBillingDay", ##). ## is the numeric day of the month the user wants the monthly statistics to reset. Users can also set the day the monthly cell usage statistics roll over by setting the Cell Billing Cycle Day field in the Settings Editor tab (Cellular subtab) of Device Configuration Utility.
Added a terminal "F" command to list all SetSetting() fields.
Added a new optional parameter to PPPOpen() that allows the user to select the type of TCP/IP address that is returned. Option 0 returns a IPv4 address. Option 1 returns a IPv6 address. Option 2 returns both a IPv4 and a IPv6 addresses. If a IPv6 address is not available, :: is returned.
Added support for WaitDigTrig(). This instruction is supported on ports C1, C2, SE1, SE2, SE3. Note: SE4 will not be supported due to an interrupt hardware limitation.
Updated the SerialOpen() instruction to support an optional parameter called AllowSleep. If AllowSleep <> 0, the CR300 will allow low power sleep mode.
Added SWVX() instruction. It is used to set an excitation channel high or low. SWVX() has three options, ExChan (excitation channels VX1 or VX2), State (0 = low, non-zero = high), and Voltage (0 = 3.3 volts, 1 = 5 volts [default]).
Updated the NewFile() instruction to support a new optional parameter called NewFileName that returns the name of the new file.
Added a warning to be returned to the user when an incorrect APN has been used with the internal cellular modems.
Added a Web API about command (URL/?command=about). This API command returns some basic model number, serial number, and version information of the datalogger.
Updated the testing of battery backed memory to be more robust.
Added support for the SDI12Watch() instruction that is used to watch or "sniff" SDI-12 measurements that are made on another datalogger.
Updated all bridge measurement instructions to specify that the allowable minimum excitation range is 150 mV. Previously this was incorrectly listed as 30mV.
Updated TCP socket memory allocation to limit the number of buffers used for sockets.
Removed a cellular network signal strength (RSSI) timer. The signal is still checked when a request is made either by Device Configuration Utility or by CRBasic instructions.
Updated the interrupt priorities to fix the run program watchdog.
Updated Wi-Fi behavior when set to join a network and no SSID is specified. Instead of joining the first open network found, the Wi-Fi module will no join any network.
Added memory buffer protection.
Bug Fix - Fixed an issue that caused PreserveOneVariable() to corrupt table data under certain conditions.
Bug Fix - Fixed an issue that caused PreserveOneVariable() to fail on an OS update.
Bug Fix - Fixed an issue that could cause a "Comms out of mem" watchdog.
Bug Fix - Fixed a memory overrun issue that could cause the CR300 to watchdog. This issue usually manifested when using Wi-Fi.
Bug Fix - Fixed an issue that caused a compile failure when using the GPS() instruction without PPS.
Bug Fix - Fixed EmailRelay() when using the instruction without attachments and the optional timeout is set. (PTHDATALOG-472)
Bug Fix - Fixed an issue with EmailRelay() when used with no attachment and a string in one of the parameters.
Bug Fix - Updated EmailRelay() to return 0 if it cannot connect.
Bug Fix - Updated EmailRelay() to respect the timeout (default or user entered) and only try once.
Bug Fix - TCP/IP stack updated to set the default gateway to Ethernet when an Ethernet connection is reestablished.
Bug Fix - Fixed aborting AT commands to the cellular modem if an incoming data packet is received.
Bug Fix - Fixed errors returned by the precompiler to include port names when using PulseCount().
Bug Fix - Updated HTTPGet() and HTTPPost() to allow spaces in the url after the /xxxx. The operating system now replaces spaces in the url with %20.
Bug Fix - Updated GOES Pseudo Binary NAN to output the most negative possible number.
Bug Fix - Fixed a GOES Pseudo Binary issue replacing 0x7f with 0x3f and GOES header timestamp offset changed to be 1 character.
Bug Fix - Updated the TLS stack so it will wait if there is not enough memory available.
Bug Fix - Fixed a CRBasic pointer issue while indexing arrays. (See https://www.campbellsci.com/forum?forum=1&l=thread&tid=15246 for details.)
Bug Fix - Updated the SlowSequence() delay to allow low power sleep mode.
Bug Fix - Fixed an issue that caused the SDI12 terminal command to fail over HTTP.
Bug Fix - Update the internal USB driver to only transmit when the port is open.
Bug Fix - Fixed issues when using a terminal to edit the constant table.
Bug Fix - Fixed a GOESTable() issue that could cause the program to lockup when using SerialOpen().
Bug Fix - Fixed an empty DNS response issue.
Bug Fix - Fixed a CRBasic variable initialization issue when using doubles.
Bug Fix - Fixed an issue that caused FP2 NAN values to fail when assigning variables from data tables.
Bug Fix - Fixed a DataEvent() table size compile error when the event size is greater than 512.
Bug Fix - Fixed an issue that caused GoesField() "/" to fail for missing or NAN values.
Bug Fix - Fixed an FP2 conversion failure when equal to NAN or INF.