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
- Major1.Operating 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.
- Major1.Fixed "Cell IP Protocol" for Verizon CR350-CELL210 to use IPv4 or IPv6 (not both) to prevent connection issues seen with some SIM cards.
- Minor2.Fixed SNMP polling OIDs from the logger when using SNMPVariable instruction.
- Major1.Fixed 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.
- Major2.Improved reliability of large file transfers using Microhard modem.
- Major3.Updated IP stack sleep configuration to fix a Hard Fault watchdog.
- Major4.Fixed a memory issue that could cause a Hard Fault watchdog when running FTPClient().
- Major5.Resolved a DNP3 issue that could result in the logger returning incorrect values.
- Minor6.Enabled UID retrieval/assignment over remote encrypted PakBus connections using DevConfig.
- Minor7.Increased cellular modem boot wait time to address SIM registration issues with certain cards.
- New Feature1.Added all the required features for CampbellCloud service.
- New Feature2.Added a find file option to the "NEWFILEVar" parameter of NewFile(). See the CRBasic help for details.
- New Feature3.Added support for web.obj.gz files to automatically execute an embedded recipe.json when detected.
- New Feature4.Added a self-hosted recovery webpage to the datalogger OS for uploading .obj and .web.obj.gz files to restore custom user interfaces.
- Major5.Updated MQTT code to align with the latest MQTT library changes.
- Major6.Fixed a scenario in which MQTTPublish() with TLS enabled would stall in a slow sequence scan.
- Major7.Fixed an issue with DNP data tables becoming corrupted and unreadable after a certain number of records.
- Major8.Fixed a rare clock drift issue caused by entering one of the lower power state modes.
- Minor9.Fixed infinite wait time when client functions "Timeout" parameter was set to 0; now defaults to 75 (e.g. HTTPGet(), FTPClient()).
- Minor10.Enhanced MQTTPublish() to handle arrays: the payload parameter now accepts elements from a string array, and the return value can be stored in an array.
- Minor11.Implemented a potential fix for an issue where FTP data files intermittently contain only headers.
- Minor12.Corrected a case where memory corruption might occur during the use of EmailRelay() with certain string sizes.
- Minor13.Fixed a Watchdog event on a HTTP data query to non-existent table.
- Minor14.The Timestamp in ConstTable is now set to the program's compile time, replacing the previous default of 01/01/1990.
- Minor15.Added 300 baud rate to COMRS232.
- Minor16.Updated SerialOpen() to allow "CommsMode" of 1(TTL) for COM1.
- Minor17.Updated SerialOpen() to not allow CommsMode > 1(TTL) for ComC1_Tx, ComC1_Rx, ComC2_Tx and ComC2_Rx.
- Minor18.Fixed a conflict in PPP communications where specific packet data was mistakenly identified as PakBus, leading to communication drops.
- Minor19.Fixed an occasional Hard fault watchdog when exiting a sleep state.
- Minor20.Fixed an issue where SMS triggered watchdog.
- Minor21.Fixed a SerialClose issue that caused higher current drain for COM2 and COM3.
- Minor22.Fixed reading external Cell210 settings from a CRBasic program.
- Minor23.Fixed an rare issue where data tables stopped logging due to a DNP data behavior.
- Minor24.ENCRYPTION() with option 0 returns the correct length of the original input.
- Minor1.The CRBasic pre-compiler now allows more than 10 math operators in a single line.
- New Feature2.Updates 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)
- Major3.Fixed an issue where communications through an external cell modem via PPP would occasionally lock up.
- Major4.Fixed an issue that was causing Modbus over RF4XX radios to not work properly.
- Major5.Fixed an issue where packets over PPP where falsely being detected as PakBus communications.
- Major6.Updated Encryption() to correctly handle and return the length of decrypted content with padded zeros.
- Major7.Adjusted cell modem stack size to fix SMS watchdog issues.
- Major8.Fixed an issue that could cause a hard fault watchdog when datalogger returns from a sleep state.
- Major9.Fixed an issue with radio initialization that would cause RF4XX radios to not initialize properly.
- Major10.Added support for new RF422 radio module hardware.
- Minor11.Updated SNMPVariable() and ESSVariables()
- Minor12.Updated max PPP packet size.
- Minor13.Added a compile error for the CellGNSS() “MaxWaitTime” parameter. The parameter must be a constant.
- Minor14.Fixed an issue where the CellGNSS() “MaxWaitTime” parameter was being ignored.
- Minor15.Fixed an issue where the CR350 was not reading “Cell RSSI” information from the datalogger’s settings table correctly.
- Minor16.Fixed an issue where serial passthrough selection was indicating the wrong port had been opened.
- Minor17.Fixed an issue with the CRBasic pre-compiler issuing compile errors when SDI12Watch() is in the program.
- Minor18.Fixed an issue with the CRBasic pre-compiler issuing compile errors when ESSVariables is in the program.
- Minor19.CRBasic definitions have changed. "Settings.RadioSlaveRepeat" is now "Settings.RadioEndPointRepeat" and "Settings.RadioSlaveRetry" is now "Settings.RadioEndPointRetry".
- Minor20.Fixed an issue with SerialClose() on COM2 and COM3 that was causing current drain to be higher than expected.
- Minor21.Fixed an issue where values containing 0xDB (189) were being stored incorrectly.
- New Feature1.Added support for ApplyAndRestartSequence().
- New Feature2.Added IncludeSection() support.
- New Feature3.Added UINT1 data type.
- New Feature4.Added Support for the CR350-CELL230
- New Feature5.Added Support for the CR350-RF452
- New Feature6.Added new CRBasic Instruction CellGNSS() for the CR350-CELL230. See CRBasic help for details.
- New Feature7.Added PPP dial timeout and reset.
- Major8.Fixed longevity of the TX325/TX326 EEPROM by eliminating unnecessary writing when setting DCP addresses for GOES transmissions.
- Major9.Fixed 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.
- Major10.Improved handling memory resources to prevent a hard-fault watchdog.
- Major11.Fixed an issue that could cause MQTT to corrupt memory. Can only occur when MQTT queues are backed up.
- Minor12.The terminal talk-through now opens the requested port if the port was closed by SerialClose() in the program.
- Minor13.Fixed a timeout issue with SDI12Recorder() when the sensor requires more than 300 seconds to respond.
- Minor14.Fixed an issue where SDI12Recorder() reported NANs when multiple sensors were specified in the address parameter.
- Minor15.Updated DNS to try using IPV4 before IPV6.
- Minor16.Run options are now cleared after performing a full memory reset.
- Minor17.Can now use a Const in StationName().
- Minor18.Added a compile error to catch lines in the program that contain several "------" or "++++++" when not formatted as a comment.
- Minor19.Updated the SSL stack.
- Minor20.Activating a TLS root CA certificate is no longer contingent upon MQTT being enabled.
- Minor21.Fixed the output array of WindVector() when repetitions are used, ensuring coherence between the data and labels.
- Minor22.Fixed GOES SHEF code to adjust transmit time offset relative to data timestamp.
- Minor23.Fixed a PakBus issue that caused intermittent table definition download failures.
- Minor24.Fixed GPS PPS when using single-ended channels 1 through 4.
- Minor25.Fixed reading cellular settings in a CRBasic program using settings.Cellxxx. Now all settings return their value.
- Minor26.Fixed an issue that caused the Cellular PDP authentication to fail.
- Minor27.MQTT updates for CampbellCloud.
- Minor28.Added a compile error for "CommsMode" in SerialOpen() for COM1.
- Minor29.Fixed an invalid port conflict error in CRBasic when using PWM with another port function.
- Minor30.Fixed MQTTConnect() to accept both Boolean and Long data types.
- Minor31.Fixed a pointer streaming issue that could cause continual re-boots or watchdogs.
- Minor32.Fixed an issue that could cause scan time to get out of sync with system time with scan time < 1 sec.
- Minor33.Fixed an issue that caused cellular usage to not rollover correctly.
- Minor34.Fixed an issue that caused SerialClose() to not completely close the port.
- Minor35.Fixed SDI12Watch().
- Minor36.Fixed an issue that caused some status PakBus BMP GetValues() to return incorrect values.
- Minor37.Fixed an issue that could prevent PPP from opening due to PakBus communications.
- Minor38.Updated files manager setting 3209 watch file output.
- Minor39.Fixed a timing sync issue for GOES transmissions.
- New Feature1.Added support for the updated CELL220 cellular modem module.
- Major2.Fixed 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.
- Minor3.Fixed 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 Feature1.Added support for the embedded cellular communication options.
- New Feature2.Added support for the embedded radio communication options.
- Major3.Fixed a CR350-Cell2XX settings bug.
- Minor4.Removed Default DNS address (208.67.222.222).
- Minor5.Removed the “Server:” line in the HTTP header.
- Minor6.Updated the SDI12-Recorder retry timeout to meet the SDI-12 specification.
- Minor7.Fixed the SerialBrk() timing issues and enabled this function over RS485.
- Minor8.Fixed a DNP3 error that occurred when a specific index request began at an index > 0.
- Minor9.DNP3 now supports more than 250 analog input values.