CR350 OS
CR350 OS
v1.9.0This download is for the CR350 datalogger. Execution of this download places the Operating System file(.obj) on your computer. It also updates the CRBasic Editor compiler and support files.
Why Update? This OS adds compatibility with updated memory used in newer CR350s and resolves bugs found in the previous OS. See the revision history for a complete list. With this OS update, it is recommended that you also update the Device Configuration Utility to the most recent version so that new datalogger features are available in the utility.
Note/Warning: Campbell Scientific always recommends updating operating systems on site if possible. When remote updates are required, it is recommended that you implement the necessary precautions to handle unexpected OS upload complications. All datalogger settings should be retained when updated remotely. If you choose to roll back to a previous operating system, the datalogger settings will be reset to default.
Watch the Video Tutorial: Sending an OS to a Local Datalogger.
Revision History
- MajorOperating system modification to ensure compatibility with revised memory chip provided by manufacturer. CR350 dataloggers with Serail Number 12107 or greater must use OS version CR350.1.9.0 or greater.
- MajorOperating system modification to ensure compatibility with revised memory chip provided by manufacturer. CR350 dataloggers with Serial Number 12107 or greater must use OS version CR350.1.9.0 or greater.
- MajorFixed "Cell IP Protocol" for Verizon CR350-CELL210 to use IPv4 or IPv6 (not both) to prevent connection issues seen with some SIM cards.
- MinorFixed SNMP polling OIDs from the logger when using SNMPVariable instruction.
- MajorFixed an issue that could trigger a watchdog reset when entering low power mode. This issue was observed on the CR350 when a user-defined program was running and the datalogger entered low power (sleep) mode. If the logger was later awakened via USB activity, a watchdog reset could occur during the power state transition.
- MajorImproved reliability of large file transfers using Microhard modem.
- MajorUpdated IP stack sleep configuration to fix a Hard Fault watchdog.
- MajorFixed a memory issue that could cause a Hard Fault watchdog when running FTPClient().
- MajorResolved a DNP3 issue that could result in the logger returning incorrect values.
- MinorEnabled UID retrieval/assignment over remote encrypted PakBus connections using DevConfig.
- MinorIncreased cellular modem boot wait time to address SIM registration issues with certain cards.
- New FeatureAdded all the required features for CampbellCloud service.
- New FeatureAdded a find file option to the "NEWFILEVar" parameter of NewFile(). See the CRBasic help for details.
- New FeatureAdded support for web.obj.gz files to automatically execute an embedded recipe.json when detected.
- New FeatureAdded a self-hosted recovery webpage to the datalogger OS for uploading .obj and .web.obj.gz files to restore custom user interfaces.
- MajorUpdated MQTT code to align with the latest MQTT library changes.
- MajorFixed a scenario in which MQTTPublish() with TLS enabled would stall in a slow sequence scan.
- MajorFixed an issue with DNP data tables becoming corrupted and unreadable after a certain number of records.
- MajorFixed a rare clock drift issue caused by entering one of the lower power state modes.
- MinorFixed infinite wait time when client functions "Timeout" parameter was set to 0; now defaults to 75 (e.g. HTTPGet(), FTPClient()).
- MinorEnhanced MQTTPublish() to handle arrays: the payload parameter now accepts elements from a string array, and the return value can be stored in an array.
- MinorImplemented a potential fix for an issue where FTP data files intermittently contain only headers.
- MinorCorrected a case where memory corruption might occur during the use of EmailRelay() with certain string sizes.
- MinorFixed a Watchdog event on a HTTP data query to non-existent table.
- MinorThe Timestamp in ConstTable is now set to the program's compile time, replacing the previous default of 01/01/1990.
- MinorAdded 300 baud rate to COMRS232.
- MinorUpdated SerialOpen() to allow "CommsMode" of 1(TTL) for COM1.
- MinorUpdated SerialOpen() to not allow CommsMode > 1(TTL) for ComC1_Tx, ComC1_Rx, ComC2_Tx and ComC2_Rx.
- MinorFixed a conflict in PPP communications where specific packet data was mistakenly identified as PakBus, leading to communication drops.
- MinorFixed an occasional Hard fault watchdog when exiting a sleep state.
- MinorFixed an issue where SMS triggered watchdog.
- MinorFixed a SerialClose issue that caused higher current drain for COM2 and COM3.
- MinorFixed reading external Cell210 settings from a CRBasic program.
- MinorFixed an rare issue where data tables stopped logging due to a DNP data behavior.
- MinorENCRYPTION() with option 0 returns the correct length of the original input.
- MinorThe CRBasic pre-compiler now allows more than 10 math operators in a single line.
- New FeatureUpdates to SerialOpen(), "ComPort" parameter Com1 now supports "CommsMode" parameter of 1 (TTL), "ComPort" parameters ComC1_Tx, ComC1_Rx, ComC2_Tx, and ComC2_Rx now only support "CommsMode" parameters 0 (RS232) and 1 (TTL)
- MajorFixed an issue where communications through an external cell modem via PPP would occasionally lock up.
- MajorFixed an issue that was causing Modbus over RF4XX radios to not work properly.
- MajorFixed an issue where packets over PPP where falsely being detected as PakBus communications.
- MajorUpdated Encryption() to correctly handle and return the length of decrypted content with padded zeros.
- MajorAdjusted cell modem stack size to fix SMS watchdog issues.
- MajorFixed an issue that could cause a hard fault watchdog when datalogger returns from a sleep state.
- MajorFixed an issue with radio initialization that would cause RF4XX radios to not initialize properly.
- MajorAdded support for new RF422 radio module hardware.
- MinorUpdated SNMPVariable() and ESSVariables()
- MinorUpdated max PPP packet size.
- MinorAdded a compile error for the CellGNSS() “MaxWaitTime” parameter. The parameter must be a constant.
- MinorFixed an issue where the CellGNSS() “MaxWaitTime” parameter was being ignored.
- MinorFixed an issue where the CR350 was not reading “Cell RSSI” information from the datalogger’s settings table correctly.
- MinorFixed an issue where serial passthrough selection was indicating the wrong port had been opened.
- MinorFixed an issue with the CRBasic pre-compiler issuing compile errors when SDI12Watch() is in the program.
- MinorFixed an issue with the CRBasic pre-compiler issuing compile errors when ESSVariables is in the program.
- MinorCRBasic definitions have changed.
- Settings.RadioSlaveRepeat" is now "Settings.RadioEndPointRepeat".
- Settings.RadioSlaveRetry" is now "Settings.RadioEndPointRetry"
- MinorFixed an issue with SerialClose() on COM2 and COM3 that was causing current drain to be higher than expected.
- MinorFixed an issue where values containing 0xDB (189) were being stored incorrectly.
- MinorCRBasic definitions have changed. "Settings.RadioSlaveRepeat" is now "Settings.RadioEndPointRepeat" and "Settings.RadioSlaveRetry" is now "Settings.RadioEndPointRetry".
- New FeatureAdded support for ApplyAndRestartSequence().
- New FeatureAdded IncludeSection() support.
- New FeatureAdded UINT1 data type.
- New FeatureAdded Support for the CR350-CELL230
- New FeatureAdded Support for the CR350-RF452
- New FeatureAdded new CRBasic Instruction CellGNSS() for the CR350-CELL230. See CRBasic help for details.
- New FeatureAdded PPP dial timeout and reset.
- MajorFixed longevity of the TX325/TX326 EEPROM by eliminating unnecessary writing when setting DCP addresses for GOES transmissions.
- MajorFixed setting the TX325/TX326 output power. The data logger now only resets the power level setting when there is a difference between the current setting in the transmitter and the desired setting.
- MajorImproved handling memory resources to prevent a hard-fault watchdog.
- MajorFixed an issue that could cause MQTT to corrupt memory. Can only occur when MQTT queues are backed up.
- MinorThe terminal talk-through now opens the requested port if the port was closed by SerialClose() in the program.
- MinorFixed a timeout issue with SDI12Recorder() when the sensor requires more than 300 seconds to respond.
- MinorFixed an issue where SDI12Recorder() reported NANs when multiple sensors were specified in the address parameter.
- MinorUpdated DNS to try using IPV4 before IPV6.
- MinorRun options are now cleared after performing a full memory reset.
- MinorCan now use a Const in StationName().
- MinorAdded a compile error to catch lines in the program that contain several "------" or "++++++" when not formatted as a comment.
- MinorUpdated the SSL stack.
- MinorActivating a TLS root CA certificate is no longer contingent upon MQTT being enabled.
- MinorFixed the output array of WindVector() when repetitions are used, ensuring coherence between the data and labels.
- MinorFixed GOES SHEF code to adjust transmit time offset relative to data timestamp.
- MinorFixed a PakBus issue that caused intermittent table definition download failures.
- MinorFixed GPS PPS when using single-ended channels 1 through 4.
- MinorFixed reading cellular settings in a CRBasic program using settings.Cellxxx. Now all settings return their value.
- MinorFixed an issue that caused the Cellular PDP authentication to fail.
- MinorMQTT updates for CampbellCloud.
- MinorAdded a compile error for "CommsMode" in SerialOpen() for COM1.
- MinorFixed an invalid port conflict error in CRBasic when using PWM with another port function.
- MinorFixed MQTTConnect() to accept both Boolean and Long data types.
- MinorFixed a pointer streaming issue that could cause continual re-boots or watchdogs.
- MinorFixed an issue that could cause scan time to get out of sync with system time with scan time < 1 sec.
- MinorFixed an issue that caused cellular usage to not rollover correctly.
- MinorFixed an issue that caused SerialClose() to not completely close the port.
- MinorFixed SDI12Watch().
- MinorFixed an issue that caused some status PakBus BMP GetValues() to return incorrect values.
- MinorFixed an issue that could prevent PPP from opening due to PakBus communications.
- MinorUpdated files manager setting 3209 watch file output.
- MinorFixed a timing sync issue for GOES transmissions.
- New FeatureAdded support for the updated CELL220 cellular modem module.
- MajorFixed an issue that could cause a constant watchdog state that may result in the data logger losing settings and becoming unresponsive. These symptoms only occurred when a large program with many full, or nearly full data tables was restarted. Restart events include manually stopping/restarting a program and low power conditions.
- MinorFixed a watchdog error that was generated from the "formatString" parameter in FormatFloat(). The user can define the field width of the formatString. If the field width is defined larger than the result string, the logger would watchdog.
- New FeatureAdded support for the embedded cellular communication options.
- New FeatureAdded support for the embedded radio communication options.
- MajorFixed a CR350-Cell2XX settings bug.
- MinorRemoved Default DNS address (208.67.222.222).
- MinorRemoved the “Server:” line in the HTTP header.
- MinorUpdated the SDI12-Recorder retry timeout to meet the SDI-12 specification.
- MinorFixed the SerialBrk() timing issues and enabled this function over RS485.
- MinorFixed a DNP3 error that occurred when a specific index request began at an index > 0.
- MinorDNP3 now supports more than 250 analog input values.