Resource Center

CR350 OS

Software applications, data logger operating systems, firmware, and drivers for Campbell Scientific products

CR350 OS

v1.9.0

This 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

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