Contents

Campbell Scientific CR350 Series Datalogger Product Manual PDF

1 of 318
1 of 318

Summary of Content for Campbell Scientific CR350 Series Datalogger Product Manual PDF

Revision: 04/22/2022 Copyright 2022 Campbell Scientific, Inc.

CR350 Series Compact Datalogger

Table of Contents 1. Introduction 1

2. Precautions 2

3. Initial inspection 3

4. CR350 data acquisition system components 4 4.1 The CR350 data logger 5

4.1.1 CR350 product line 5 4.1.2 Overview 5 4.1.3 Operations 6 4.1.4 Programs 6

4.2 Sensors 6

5. Wiring panel and terminal functions 8 5.1 Power input 11

5.1.1 Power LED indicator 12 5.2 Power output 13 5.3 Grounds 13 5.4 Communications ports 15

5.4.1 USB device port 15 5.4.2 USB host port 15 5.4.3 C and COM terminals for communications 16

5.4.3.1 SDI-12 ports 16 5.4.3.2 RS-232, RS-422, RS-485, TTL ports 16

5.4.4 RS-232 Port 17 5.4.4.1 RS-232 Power States 17

5.5 Programmable logic control 18

Table of Contents - i

6. Setting up the CR350 20

7. Setting up communications with the data logger 21

8. USB or RS-232 communications 22

9. Virtual Ethernet over USB (RNDIS) 24

10. Wi-Fi communications option 26 10.1 Hosting a Wi-Fi network 26

10.1.1 Configure the data logger to host a Wi-Fi network 27 10.1.2 Connect your phone to the data logger over Wi-Fi 27 10.1.3 Set up LoggerLink 28 10.1.4 Connect your computer to the data logger over Wi-Fi 29 10.1.5 Set up LoggerNet or PC400W 30

10.2 Joining a Wi-Fi network 31 10.2.1 Configure the data logger to join a Wi-Fi network 31 10.2.2 Set up LoggerNet or PC400W 31

10.3 Wi-Fi configurations and mode button 32 10.3.1 Join a Network 33 10.3.2 Create a Network 33 10.3.3 Normally Off, Join Network on Button Press (default) 33 10.3.4 Normally Off, Create Network on Button Press 34 10.3.5 Join Network, Create Network on Button Press 34 10.3.6 Disable 34

10.4 Wi-Fi LED indicator 35

11. Cellular communications option 36 11.1 Pre-installation 36

11.1.1 Establish cellular service 37 11.1.1.1 Campbell Scientific cellular data service 37 11.1.1.2 Other service providers 37

11.1.2 Install the SIM card 38 11.1.3 Konect PakBus Router setup 39

11.1.3.1 Get started 39 11.1.3.2 Set up Konect PakBus Router 40

11.2 Installation 41 11.2.1 Determining if IP address is private dynamic or public static 41 11.2.2 Modules using Konect PakBus Router (private dynamic IP) 42

Table of Contents - ii

11.2.2.1 Configure data logger 43 11.2.2.2 Set up LoggerNet 44 11.2.2.3 Test the connection 46

11.2.3 Modules using a public static IP 46 11.2.3.1 Configure data logger 46 11.2.3.2 Set up LoggerNet 48 11.2.3.3 Test the connection 50

11.3 Cellular (TX/RX) LED Indicator 50 11.4 Signal strength and quality 50

11.4.1 Signal strength 51 11.4.2 Signal quality 51

12. Radio communications option 53 12.1 Configuration options 54 12.2 RF407-Series radio communications with one or more data loggers 54

12.2.1 Configuring the RF407-Series radio 55 12.2.2 Setting up communications between the RF407-Series data logger and the computer 55

12.3 RF407-Series radio communications with multiple data loggers using one data logger as a router 57

12.3.1 Configuring the RF407-Series radio 57 12.3.2 Configuring the data logger acting as a router 58

12.3.2.1 Adding routing data logger to LoggerNet network 58 12.3.2.2 Adding leaf data loggers to the network 59

12.3.3 Using additional communications methods 60

13. Testing communications with EZSetup 61 13.1 Making the software connection 62

14. Creating a Short Cut data logger program 63 14.1 Sending a program to the data logger 66

15. Working with data 68 15.1 Default data tables 68 15.2 Collecting data 69

15.2.1 Collecting data using LoggerNet 69 15.2.2 Collecting data using PC400 69

15.3 Viewing historic data 70

Table of Contents - iii

15.4 Data types and formats 71 15.4.1 Variables 71 15.4.2 Constants 72 15.4.3 Data storage 73

15.5 About data tables 74 15.5.1 Table definitions 75

15.5.1.1 Header rows 75 15.5.1.2 Data records 77

15.6 Creating data tables in a program 77

16. Data memory 79 16.1 Data tables 79 16.2 Flash memory 80

16.2.1 CPU drive 80 16.3 USB host (USB: drive) 80

16.3.1 USB host precautions 81 16.3.2 LED indicator 81 16.3.3 Data type collection speed 81 16.3.4 Skipped scans 81 16.3.5 Formatting drives 32 GB or larger 82

17. Measurements 83 17.1 Voltage measurements 83

17.1.1 Single-ended measurements 84 17.1.2 Differential measurements 85

17.2 Current-loop measurements 85 17.2.1 Voltage ranges for current measurements 85 17.2.2 Example current-loop measurement connections 86

17.3 Resistance measurements 87 17.3.1 Resistance measurements with voltage excitation 88 17.3.2 Strain measurements 90 17.3.3 Accuracy for resistance measurements 92

17.4 Period-averaging measurements 93 17.5 Pulse measurements 93

17.5.1 Low-level AC measurements 95 17.5.2 High-frequency measurements 95 17.5.3 Switch-closure and open-collector measurements 96

17.5.3.1 P_SW Terminal 96

Table of Contents - iv

17.5.3.2 C terminals 96 17.5.4 Quadrature measurements 97 17.5.5 Pulse measurement tips 98

17.5.5.1 Input filters and signal attenuation 98 17.5.5.2 Pulse count resolution 98

17.6 Vibrating wire measurements 99 17.6.1 VSPECT 99

18. Communications protocols 100 18.1 General serial communications 101

18.1.1 RS-232 103 18.1.2 RS-485/RS-422 104 18.1.3 TTL 105 18.1.4 TTL-Inverted 105

18.2 Modbus communications 106 18.2.1 About Modbus 107 18.2.2 Modbus protocols 108 18.2.3 Understanding Modbus Terminology 109 18.2.4 Connecting Modbus devices 109 18.2.5 Modbus client-server protocol 109 18.2.6 About Modbus programming 110

18.2.6.1 Endianness 110 18.2.6.2 Function codes 111

18.2.7 Modbus information storage 111 18.2.7.1 Registers 112 18.2.7.2 Coils 112 18.2.7.3 Data Types 112

Unsigned 16-bit integer 113 Signed 16-bit integer 113 Signed 32-bit integer 113 Unsigned 32-bit integer 113 32-Bit floating point 114

18.2.8 Modbus tips and troubleshooting 114 18.2.8.1 Error codes 114

Result code -01: illegal function 114 Result code -02: illegal data address 114 Result code -11: COM port error 115

Table of Contents - v

18.3 Internet communications 115 18.3.1 IP address 116 18.3.2 FTP server 116

18.4 MQTT 117 18.4.1 Sending data to CAMPBELL CLOUD 117

18.4.1.1 Configure the data logger 117 18.4.1.2 Program the data logger 119 18.4.1.3 Set up the CLOUD 120

18.4.2 Sending data to another MQTT broker 126 18.4.2.1 Configure the data logger 126 18.4.2.2 Program the data logger 129 18.4.2.3 Check broker for incoming data 129

18.5 DNP3 communications 131 18.6 PakBus communications 132 18.7 SDI-12 communications 133

18.7.1 SDI-12 transparent mode 133 18.7.1.1 Watch command (sniffer mode) 134 18.7.1.2 SDI-12 transparent mode commands 135 18.7.1.3 aXLOADOS! command 135

18.7.2 SDI-12 programmed mode/recorder mode 137 18.7.3 Programming the data logger to act as an SDI-12 sensor 137 18.7.4 SDI-12 power considerations 138

19. Installation 140 19.1 Default program 141 19.2 Data logger security 142

19.2.1 TLS 143 19.2.2 Security codes 144 19.2.3 Creating a .csipasswd file 145

19.3 Web user interface 146 19.4 Power budgeting 147 19.5 Field work 148 19.6 Data logger enclosures 148 19.7 Electrostatic discharge and lightning protection 149

20. CR350 maintenance 151 20.1 Data logger calibration 151 20.2 Internal battery 152

Table of Contents - vi

20.2.1 Replacing the internal battery 153 20.3 Updating the operating system 153

20.3.1 Sending an operating system to a local data logger 154 20.3.2 Sending an operating system to a remote data logger 154

20.4 gzip 156

21. Tips and troubleshooting 158 21.1 Checking station status 159

21.1.1 Viewing station status 159 21.1.2 Watchdog errors 160 21.1.3 Results for last program compiled 160 21.1.4 Skipped scans 161 21.1.5 Skipped records 161 21.1.6 Variable out of bounds 161 21.1.7 Battery voltage 161

21.2 Understanding NAN and INF occurrences 161 21.3 Timekeeping 162

21.3.1 Clock best practices 162 21.3.2 Time stamps 163 21.3.3 Avoiding time skew 163

21.4 CRBasic program errors 164 21.4.1 Program does not compile 164 21.4.2 Program compiles but does not run correctly 165

21.5 Troubleshooting Radio Communications 165 21.6 Resetting the data logger 165

21.6.1 Processor reset 166 21.6.2 Program send reset 166 21.6.3 Manual data table reset 167 21.6.4 Formatting drives 167 21.6.5 Full memory reset 167

21.7 Troubleshooting power supplies 167 21.8 Using terminal mode 168

21.8.1 Serial talk through and comms watch 170 21.8.2 SDI-12 transparent mode 170

21.8.2.1 Watch command (sniffer mode) 172 21.8.2.2 SDI-12 transparent mode commands 172

21.8.3 Terminal master 172

Table of Contents - vii

21.9 Ground loops 173 21.9.1 Common causes 173 21.9.2 Detrimental effects 174 21.9.3 Severing a ground loop 175 21.9.4 Soil moisture example 176

21.10 Improving voltage measurement quality 177 21.10.1 Deciding between single-ended or differential measurements 178 21.10.2 Minimizing ground potential differences 179

21.10.2.1 Ground potential differences 179 21.10.3 Minimizing power-related artifacts 180

21.10.3.1 Minimizing electronic noise 181 21.10.4 Filtering to reduce measurement noise 181 21.10.5 Minimizing settling errors 184

21.10.5.1 Measuring settling time 184 21.10.6 Factors affecting accuracy 186

21.10.6.1 Measurement accuracy example 187 21.10.7 Minimizing offset voltages 187

21.11 Field calibration 189 21.12 File name and resource errors 189

22. Information tables and settings (advanced) 190 22.1 DataTableInfo table system information 191

22.1.1 DataFillDays 191 22.1.2 DataRecordSize 191 22.1.3 DataTableName 191 22.1.4 RecNum 191 22.1.5 SecsPerRecord 191 22.1.6 SkippedRecord 192 22.1.7 TimeStamp 192

22.2 Status table system information 192 22.2.1 Battery 192 22.2.2 CalGain 192 22.2.3 CalOffset 192 22.2.4 CommsMemFree 192 22.2.5 CompileResults 193 22.2.6 CPUDriveFree 193 22.2.7 DataStorageFree 193

Table of Contents - viii

22.2.8 DataStorageSize 193 22.2.9 FullMemReset 193 22.2.10 LastSlowScan 193 22.2.11 LithiumBattery 193 22.2.12 MaxProcTime 193 22.2.13 MaxSlowProcTime 193 22.2.14 MeasureTime 194 22.2.15 MemoryFree 194 22.2.16 MemorySize 194 22.2.17 OSDate 194 22.2.18 OSSignature 194 22.2.19 OSVersion 194 22.2.20 PakBusRoutes 194 22.2.21 PanelTemp 194 22.2.22 PortConfig 195 22.2.23 PortStatus 195 22.2.24 ProcessTime 195 22.2.25 ProgErrors 195 22.2.26 ProgName 195 22.2.27 ProgSignature 195 22.2.28 RecNum 195 22.2.29 RunSignature 196 22.2.30 SerialNumber 196 22.2.31 SerialFlashErrors 196 22.2.32 SkippedScan 196 22.2.33 SlowProcTime 196 22.2.34 StartTime 196 22.2.35 StartUpCode 196 22.2.36 StationName 197 22.2.37 SW12Volts 197 22.2.38 TimeStamp 197 22.2.39 VarOutOfBound 197 22.2.40 WatchdogErrors 197 22.2.41 WiFiUpdateReq 197

22.3 Settings 198 22.3.1 Baudrate 198 22.3.2 Beacon 198

Table of Contents - ix

22.3.3 Cell Settings 199 22.3.4 CentralRouters 199 22.3.5 CommsMemAlloc 199 22.3.6 DNS 199 22.3.7 FilesManager 199 22.3.8 FTPEnabled 199 22.3.9 FTPPassword 200 22.3.10 FTPPort 200 22.3.11 FTPUserName 200 22.3.12 HTTPEnabled 200 22.3.13 HTTPPort 200 22.3.14 IncludeFile 200 22.3.15 IPAddressEth 201 22.3.16 IPGateway 201 22.3.17 IPMaskEth 201 22.3.18 IPMaskWiFi 201 22.3.19 IPTrace 201 22.3.20 IPTraceCode 201 22.3.21 IPTraceComport 202 22.3.22 IsRouter 202 22.3.23 KeepAliveURL (Ping keep alive URL) 202 22.3.24 KeepAliveMin (Ping keep alive timeout value) 202 22.3.25 MaxPacketSize 202 22.3.26 Neighbors 202 22.3.27 PakBusAddress 203 22.3.28 PakBusEncryptionKey 203 22.3.29 PakBusNodes 203 22.3.30 PakBusPort 203 22.3.31 PakBusTCPClients 203 22.3.32 PakBusTCPEnabled 204 22.3.33 PakBusTCPPassword 204 22.3.34 PingEnabled 204 22.3.35 pppDial 204 22.3.36 pppDialResponse 204 22.3.37 pppInfo 204 22.3.38 pppInterface 205 22.3.39 pppIPAddr 205

Table of Contents - x

22.3.40 pppPassword 205 22.3.41 pppUsername 205 22.3.42 RouteFilters 205 22.3.43 RS232Power 206 22.3.44 Security(1), Security(2), Security(3) 206 22.3.45 ServicesEnabled 206 22.3.46 TCPClientConnections 206 22.3.47 TCPPort 206 22.3.48 TelnetEnabled 206 22.3.49 TLSConnections (Max TLS Server Connections) 206 22.3.50 TLSPassword 206 22.3.51 TLSStatus 207 22.3.52 UDPBroadcastFilter 207 22.3.53 IPAddressUSB (USB Virtual Ethernet Address (RNDIS)) 207 22.3.54 UTCOffset 207 22.3.55 Verify 207 22.3.56 Cellular settings 207

22.3.56.1 CellAPN 208 22.3.56.2 CellEnabled 208 22.3.56.3 CellInfo 208 22.3.56.4 CellKeepAlive 208 22.3.56.5 CellKeepAliveTime 209 22.3.56.6 CellPDPAuth 209 22.3.56.7 CellPDPPassword 209 22.3.56.8 CellPDPUserName 209 22.3.56.9 CellPwrDuration 210 22.3.56.10 CellPwrRepeat 210 22.3.56.11 CellPwrStartTime 211 22.3.56.12 CellRSRQ 211 22.3.56.13 CellRSSI 211 22.3.56.14 CellState 212 22.3.56.15 CellStatus 213

22.3.57 Wi-Fi settings 213 22.3.57.1 IPAddressWiFi 213 22.3.57.2 IPGatewayWiFi 213 22.3.57.3 IPMaskWiFi 214 22.3.57.4 WiFiChannel 214

Table of Contents - xi

22.3.57.5 WiFiConfig 214 22.3.57.6 WiFiEAPMethod 214 22.3.57.7 WiFiEAPPassword 214 22.3.57.8 WiFiEAPUser 215 22.3.57.9 Networks 215 22.3.57.10 WiFiEnable 215 22.3.57.11 WiFiPassword 215 22.3.57.12 WiFiPowerMode 215 22.3.57.13 WiFiSSID (Network Name) 216 22.3.57.14 WiFiStatus 216 22.3.57.15 WiFiTxPowerLevel 216 22.3.57.16 WLANDomainName 216

22.3.58 MQTT settings 216 22.3.58.1 CampbellCloudEnable (Enable or disable CAMPBELL CLOUD) 217 22.3.58.2 CloudConfigURL (CLOUD configuration URL) 217 22.3.58.3 MQTTBaseTopic (MQTT base topic) 217 22.3.58.4 MQTTCleanSession (MQTT connection) 217 22.3.58.5 MQTTClientID (MQTT client identifier) 218 22.3.58.6 MQTTEnable (Enable or disable MQTT) 218 22.3.58.7 MQTTEndpoint (MQTT broker URL) 218 22.3.58.8 MQTTKeepAlive (MQTT keep alive) 218 22.3.58.9 MQTTPassword (MQTT password) 218 22.3.58.10 MQTTPortNumber (MQTT port number) 218 22.3.58.11 MQTTStatusInterval (Status information publish interval) 219 22.3.58.12 MQTTState (MQTT state) 219 22.3.58.13 MQTTStateInterval (State publish interval) 220 22.3.58.14 MQTTUserName (MQTT user name) 220 22.3.58.15 MQTTWillMessage (MQTT last will message) 220 22.3.58.16 MQTTWillQoS (Quality of service) 220 22.3.58.17 MQTTWillRetain (MQTT last will message retained by broker) 220 22.3.58.18 MQTTWillTopic (MQTT last will topic) 221

22.3.59 RF407-series radio settings 221 22.3.59.1 RadioAvailFreq 221 22.3.59.2 RadioChanMask 221 22.3.59.3 RadioEnable 221 22.3.59.4 RadioHopSeq 222 22.3.59.5 RadioMAC 222

Table of Contents - xii

22.3.59.6 RadioModel 222 22.3.59.7 RadioModuleVer 222 22.3.59.8 RadioNetID 223 22.3.59.9 RadioProtocol 223 22.3.59.10 RadioPwrMode 223 22.3.59.11 RadioRetries 224 22.3.59.12 RadioRSSI 224 22.3.59.13 RadioRSSIAddr 225 22.3.59.14 RadioStats 225 22.3.59.15 RadioTxPwr 226

23. CR350 specifications 227 23.1 System specifications 227 23.2 Physical specifications 228 23.3 Power requirements 228 23.4 Power output specifications 230 23.5 Analog measurement specifications 231

23.5.1 Voltage measurements 231 23.5.2 Resistance measurement specifications 233 23.5.3 Period-averaging measurement specifications 233 23.5.4 Current-loop measurement specifications 234

23.6 Pulse measurement specifications 234 23.6.1 Switch-closure input 234 23.6.2 High-frequency input 235 23.6.3 Low-level AC input 235 23.6.4 Quadrature input 235

23.7 Digital input/output specifications 236 23.7.1 Pulse-width modulation 236

23.8 Communications specifications 237 23.8.1 Wi-Fi specifications 238 23.8.2 RF radio option specifications 238 23.8.3 Cellular option specifications 239

23.9 Standards compliance specifications 240

Table of Contents - xiii

Appendix A. Configure cellular settings and retrieve status information with SetSetting() 242

Appendix B. Verizon Wireless and AT&T 243 B.1 Verizon Wireless 243 B.2 AT&T 244

Appendix C. Cellular module regulatory information 245 C.1 Important information for North American users 245 C.2 RF exposure 245 C.3 EU 246 C.4 UK 246

Appendix D. MQTT commands 248 D.1 MQTT topic structure 248 D.2 MQTT automatic publish topics 249

D.2.1 state 249 D.2.2 statusInfo 249 D.2.3 watchdogEvent 250

D.3 MQTT command and control (automatic subscription topics) 250 D.3.1 Command response 251 D.3.2 OS download 252 D.3.3 CRBasic program download 252 D.3.4 New mqtt configuration 253 D.3.5 Edit constant table (editConst) 253 D.3.6 Reboot data logger 253 D.3.7 File control 254

D.3.7.1 list 254 D.3.8 Settings 255

D.3.8.1 set 255 D.3.8.2 download from CLOUD 255

download 256 D.3.8.3 Delete a file 256 D.3.8.4 Stop 256 D.3.8.5 Run 256 D.3.8.6 Upload to CLOUD 257 D.3.8.7 publish 257 D.3.8.8 apply 257

Table of Contents - xiv

D.3.9 Historic Data Collection 258 D.3.10 Set Public Variable 258

D.3.10.1 setVar 258 D.3.11 Get Public variable 259

D.3.11.1 getVar 259 D.3.12 Serial talkThru 259

D.3.12.1 Talk through to sensor 259 D.3.12.2 TalkThru from sensor 260 D.3.12.3 Allowable Com port values 260

Appendix E. Glossary 261

Table of Contents - xv

1. Introduction CR350s are multipurpose, compact, low-cost measurement and control data loggers. These entry level data loggers, with their rich instruction sets, can measure most hydrological, meteorological, environmental, and industrial sensors. They concentrate data, making it available over varied networks, and deliver it using your preferred protocol. The CR350 also performs automated on-site or remote decision making for control and mobile-to-mobile communications. This manual provides a detailed look at the CR350 measurement and control data logger and discusses the steps necessary to begin using it in your application.

The CR350-series includes the following data loggers:

l CR350-CELL200 l CR350-CELL205 l CR350-CELL210 l CR350-CELL215 l CR350-CELL220

l CR350-RF407 l CR350-RF412 l CR350-RF422 l CR350-RF427 l CR350-WIFI

Throughout this manual, reference to the CR350 also applies to other CR350-series data loggers, unless specifically noted.

The Getting Started Guide provides an introduction to data acquisition and walks you through a procedure to set up a simple system. You may not find it necessary to progress beyond this. However, should you want to dig deeper into the complexity of the data logger functions or quickly look for details, extensive information is available in this and other Campbell Scientific manuals.

Additional Campbell Scientific publications are available online at www.campbellsci.com . Video tutorials are available at www.campbellsci.com/videos  . Generally, if a particular feature of the data logger requires a peripheral hardware device, more information is available in the help or manual written for that device.

1. Introduction 1

2. Precautions READ AND UNDERSTAND the Safety section at the back of this manual.

An authorized technician shall verify that the installation and use of this product is in accordance to the manufacturers instructions, recommendations and intended use.

Although the CR350 is rugged, it should be handled as a precision scientific instrument.

Maintain a level of calibration appropriate to the application. Campbell Scientific recommends factory recalibration every three years.

Table 2-1: Symbols used on the CR350

Symbol Description

Direct current

Earth (ground) terminal

2. Precautions 2

3. Initial inspection Upon receiving the CR350, inspect the packaging and contents for damage. File damage claims with the shipping company.

Immediately check package contents. Thoroughly check all packaging material for product that may be concealed. Check model numbers, part numbers, and product descriptions against the shipping documents. Model or part numbers are found on each product. Report any discrepancies to Campbell Scientific.

Check the CR350 operating system version as outlined in Updating the operating system (p. 153), and update as needed.

3. Initial inspection 3

4. CR350 data acquisition system components A basic data acquisition system consists of sensors, measurement hardware, and a computer with programmable software. The objective of a data acquisition system should be high accuracy, high precision, and resolution as high as appropriate for a given application.

The components of a basic data acquisition system are shown in the following figure.

Following is a list of typical data acquisition system components:

l Sensors - Electronic sensors convert the state of a phenomenon to an electrical signal (see Sensors (p. 6) for more information).

l Data logger - The data logger measures electrical signals or reads serial characters. It converts the measurement or reading to engineering units, performs calculations, and reduces data to statistical values. Data is stored in memory to await transfer to a computer by way of an external storage device or a communications link.

4. CR350 data acquisition system components 4

l Data Retrieval and Communications - Data is copied (not moved) from the data logger, usually to a computer, by one or more methods using data logger support software. Most communications options are bi-directional, which allows programs and settings to be sent to the data logger. For more information, see Sending a program to the data logger (p. 66).

l Datalogger Support Software - Software retrieves data, sends programs, and sets settings. The software manages the communications link and has options for data display.

l Programmable Logic Control - Some data acquisition systems require the control of external devices to facilitate a measurement or to control a device based on measurements. This data logger is adept at programmable logic control. See Programmable logic control (p. 18) for more information.

4.1 The CR350 data logger CR350 data loggers are multi-purpose, compact, measurement and control data loggers. These small, low-cost, high-value data loggers offer fast communications, low power requirements, built-in USB, and excellent analog input accuracy and resolution. They can measure most hydrological, meteorological, environmental, and industrial sensors. They concentrate data, make it available over varied networks, and deliver it using your preferred protocol. They also perform automated on-site or remote decision making for control and M2M communications. CR350 data loggers are ideal for small applications requiring long-term remote monitoring and control.

4.1.1 CR350 product line The CR350 can include Wi-Fi, cellular, or the following radio options for different regions:

l RF407: US and Canada l RF412: Australia and New Zealand l RF422: Europe l RF427: Brazil

NOTE: Throughout this document CR350 refers to all of the models unless specified otherwise.

4.1.2 Overview The CR350 data logger is the main part of a data acquisition system (see CR350 data acquisition system components (p. 4) for more information). It has a central-processing unit (CPU), analog and digital measurement inputs, analog and digital outputs, and memory. An operating system

4. CR350 data acquisition system components 5

(firmware) coordinates the functions of these parts in conjunction with the onboard clock and the CRBasic application program.

The CR350 can simultaneously provide measurement and communications functions. Low power consumption allows the data logger to operate for extended time on a battery recharged with a solar panel, eliminating the need for ac power. The CR350 temporarily suspends operations when primary power drops below 9.6 V, reducing the possibility of inaccurate measurements.

4.1.3 Operations The CR350 measures almost any sensor with an electrical response, drives direct communications and telecommunications, reduces data to statistical values, performs calculations, and controls external devices. After measurements are made, data is stored in onboard, nonvolatile memory. Because most applications do not require that every measurement be recorded, the program usually combines several measurements into computational or statistical summaries, such as averages and standard deviations.

4.1.4 Programs A program directs the data logger on how and when sensors are measured, calculations are made, data is stored, and devices are controlled. The application program for the CR350 is written in CRBasic, a programming language that includes measurement, data processing, and analysis routines, as well as the standard BASIC instruction set. For simple applications, Short Cut, a user-friendly program generator, can be used to generate the program. See also:

l Creating a Short Cut data logger program (p. 63) l https://www.campbellsci.com/videos/datalogger-programming

For more demanding programs, use the full-featured CRBasic Editor. The CRBasic Editor help contains program structure details, instruction information and program examples: https://help.campbellsci.com/crbasic/cr350/ .

4.2 Sensors Sensors transduce phenomena into measurable electrical forms by modulating voltage, current, resistance, status, or pulse output signals. Suitable sensors do this with accuracy and precision. Smart sensors have internal measurement and processing components and simply output a digital value in binary, hexadecimal, or ASCII character form.

Most electronic sensors, regardless of manufacturer, will interface with the data logger. Some sensors require external signal conditioning. The performance of some sensors is enhanced with

4. CR350 data acquisition system components 6

specialized input modules. The data logger, sometimes with the assistance of various peripheral devices, can measure or read nearly all electronic sensor output types.

The following list may not be comprehensive. A library of sensor manuals and application notes is available at www.campbellsci.com/support to assist in measuring many sensor types.

l Analog o Voltage o Current o Strain o Thermocouple o Resistive bridge

l Pulse o High frequency o Switch-closure o Low-level ac o Quadrature

l Period average l Vibrating wire (through interface modules) l Smart sensors

o SDI-12 o RS-232 o Modbus o DNP3 o TCP/IP o RS-422 o RS-485

4. CR350 data acquisition system components 7

5. Wiring panel and terminal functions The CR350 wiring panel provides ports and removable terminals for connecting sensors, power, and communications devices. It is protected against surge, over-voltage, over-current, and reverse power. The wiring panel is the interface to most data logger functions so studying it is a good way to get acquainted with the data logger. Functions of the terminals are broken down into the following categories:

l Analog input l Pulse counting l Analog output l Communications l Digital I/O l Power input l Power output l Power ground l Signal ground

5. Wiring panel and terminal functions 8

Table 5-1: Analog input terminal functions

SE DIFF

1   2 1 H   L

3   4 2 H   L

Single-Ended Voltage

Differential Voltage H L H L

Ratiometric/Bridge

Thermocouple

Current Loop

5. Wiring panel and terminal functions 9

Table 5-2: Pulse counting terminal functions

C1 C2 P_SW P_LL SE1 SE2 SE3 SE4

Switch-Closure

High Frequency

Low-level AC

Quadrature

Period Average

Table 5-3: Analog output terminal functions

VX1 VX2

Switched Voltage Excitation

Table 5-4: Voltage output terminal functions

C1 C2 SE1-4 VX1 VX2 P_SW 12V SW1

SW2

3.3 VDC

5 VDC

BAT +

Table 5-5: Communications terminal functions

C1 C2 SE1-3 RS-232 COM2 COM3

SDI-12

RS-232

RS-232 0-5V

GPS Time Sync

GPS NMEA Sentences Rx Rx Rx

5. Wiring panel and terminal functions 10

Table 5-5: Communications terminal functions

C1 C2 SE1-3 RS-232 COM2 COM3

RS-485 Half duplex

RS-485 Full duplex Communications functions also include USB

Table 5-6: Digital I/O terminal functions

C1 C2 P_SW SE1 SE2 SE3 SE4

General I/O

Pulse-Width Modulation Output

Interrupt

5.1 Power input The data logger requires a power supply. It can receive power from a variety of sources, operate for several months on non-rechargeable batteries, and supply power to many sensors and devices. The data logger operates with external power connected to the green BAT and/or CHG terminals on the face of the wiring panel. The positive power wire connects to +. The negative wire connects to -. The power terminals are internally protected against polarity reversal and high voltage transients.

In the field, the data logger can be powered in any of the following ways:

l 10 to 18 VDC applied to the BAT + and terminals l 16 to 32 VDC applied to the CHG + and terminals

To establish an uninterruptible power supply (UPS), connect the primary power source (often a transformer, power converter, or solar panel) to the CHG terminals and connect a nominal 12 VDC sealed rechargeable lead-acid battery to the BAT terminals. See Power budgeting (p. 147) for more information.

WARNING: Sustained input voltages in excess of 32 VDC on CHG or BAT terminals can damage the transient voltage suppression.

5. Wiring panel and terminal functions 11

Ensure that power supply components match the specifications of the device to which they are connected. When connecting power, switch off the power supply, insert the connector, then turn the power supply on. See Troubleshooting power supplies (p. 167) for more information.

Following is a list of CR350 power input terminals and the respective power types supported.

l BAT terminals: Voltage input is 10 to 18 VDC. This connection uses the least current since the internal data logger charging circuit is bypassed. If the voltage on the BAT terminals exceeds 19 VDC, power is shut off to certain parts of the data logger to prevent damaging connected sensors or peripherals.

l CHG terminals: Voltage input range is 16 to 32 VDC. Connect a primary power source, such as a solar panel or VAC-to-VDC transformer, to CHG. The voltage applied to CHG terminals must be at least 0.3 V higher than that needed to charge a connected battery. When within the 16 to 32 VDC range, it will be regulated to the optimal charge voltage for a lead acid battery at the current data logger temperature, with a maximum voltage of approximately 15 VDC. A battery need not be connected to the BAT terminals to supply power to the data logger through the CHG terminals. The onboard charging regulator is designed for efficiently charging lead-acid batteries. It will not charge lithium or alkaline batteries.

l USB port: 5 VDC via USB connection. If power is also provided with BAT or CHG, power will be supplied by whichever has the highest voltage. If USB is the only power source, then the 12V and SW12V (SW1, SW2) terminals will not be operational. When powered by USB (no other power supplies connected) Status field Battery = 0. Functions that will be active with a 5 VDC source include sending programs, adjusting data logger settings, and making some measurements. The maximum excitation on VX1 and VX2 is reduced to 2500 mV.

NOTE: The Status field Battery value and the destination variable from the Battery() instruction (often called batt_volt or BattV) in the Public table reference the external battery voltage. For information about the internal battery, see Internal battery (p. 152).

5.1.1 Power LED indicator When the data logger is powered, the Power LED will turn on according to power and program states:

l Off: No power, no program running. l 1 flash every 10 seconds: Powered from BAT, program running. l 1 flash every 10 seconds: Powered from CHG, program running. l 3 flashes every 10 seconds: Powered via USB, program running. l Always on: Powered, no program running.

5. Wiring panel and terminal functions 12

5.2 Power output The data logger can be used as a power source for communications devices, sensors and peripherals. Take precautions to prevent damage to these external devices due to over- or under-voltage conditions, and to minimize errors. Additionally, exceeding current limits causes voltage output to become unstable. Voltage should stabilize once current is again reduced to within stated limits. The following are available:

l Continuous 12 V: BAT + and provide a connection to the unregulated, nominal 12 VDC battery. It may rise above or drop below the power requirement of the sensor or peripheral.

l SW12: program-controlled, switched 12 VDC terminals. It is often used to power devices such as sensors that require 12 VDC during measurement. Voltage on a SW12 (SW1, SW2) terminal will change with data logger supply voltage. CRBasic instruction SW12() controls the SW12 terminal. See the CRBasic Editor help for detailed instruction information and program examples: https://help.campbellsci.com/crbasic/cr350/ .

l VX terminals: supply precise output voltage used by analog sensors to generate high resolution and accurate signals. In this case, these terminals are regularly used with resistive-bridge measurements (see Resistance measurements (p. 87) for more information). Using the SWVX() instruction, VX terminals can also supply a selectable, switched, regulated 3.3 or 5 VDC power source to power digital sensors and toggle control lines.

l C, SE 1-4, and P_SW terminals: can be set low or high as output terminals (SE 1-4 and P_SW to 3.3 V, and C to 5 V). With limited drive capacity, digital output terminals are normally used to operate external relay-driver circuits. Drive current and high-state voltage levels vary between terminals. See also Digital input/output specifications (p. 236).

See also Power requirements (p. 228).

5.3 Grounds Proper grounding lends stability and protection to a data acquisition system. Grounding the data logger with its peripheral devices and sensors is critical in all applications. Proper grounding will ensure maximum ESD protection and measurement accuracy. It is the easiest and least expensive insurance against data loss, and often the most neglected. The following terminals are provided for connection of sensor and data logger grounds:

5. Wiring panel and terminal functions 13

l Signal Ground ( ) - reference for single-ended analog inputs, excitation returns, and a ground for sensor shield wires.

o 3 common terminals l Power Ground (G) - return for 3.3 V, 5 V, 12 V, current loops, and digital sensors. Use of G

grounds for these outputs minimizes potentially large current flow through the analog- voltage-measurement section of the wiring panel, which can cause single-ended voltage measurement errors.

o 4 common terminals l Resistive Ground (RG) - used for decoupling ground on RS-485 signals. Includes 100

resistance to ground. l Earth Ground Lug ( ) - connection point for heavy-gage earth-ground wire. A good earth

connection is necessary to secure the ground potential of the data logger and shunt transients away from electronics. Campbell Scientific recommends 14 AWG wire, minimum.

NOTE: Several ground wires can be connected to the same ground terminal.

A good earth (chassis) ground will minimize damage to the data logger and sensors by providing a low-resistance path around the system to a point of low potential. Campbell Scientific recommends that all data loggers be earth grounded. All components of the system (data loggers, sensors, external power supplies, mounts, housings) should be referenced to one common earth ground.

In the field, at a minimum, a proper earth ground will consist of a 5-foot copper-sheathed grounding rod driven into the earth and connected to the large brass ground lug on the wiring panel with a 14 AWG wire. In low-conductive substrates, such as sand, very dry soil, ice, or rock, a single ground rod will probably not provide an adequate earth ground. For these situations, search for published literature on lightning protection or contact a qualified lightning-protection consultant.

In laboratory applications, locating a stable earth ground is challenging, but still necessary. In older buildings, new VAC receptacles on older VAC wiring may indicate that a safety ground exists when, in fact, the socket is not grounded. If a safety ground does exist, good practice dictates to verify that it carries no current. If the integrity of the VAC power ground is in doubt, also ground the system through the building plumbing, or use another verified connection to earth ground.

5. Wiring panel and terminal functions 14

See also:

l Ground loops (p. 173) l Minimizing ground potential differences (p. 179)

5.4 Communications ports The data logger is equipped with ports that allow communications with other devices and networks, such as:

l Computers l Smart sensors l Modbus and DNP3 networks l Modems l Campbell Scientific PakBus networks l Other Campbell Scientific data loggers

Campbell Scientific data logger communications ports include:

l RS-232 l USB Device l USB Host l C terminals l COM ports (TX and RX)

5.4.1 USB device port The USB device port supports communicating with a computer through data logger support software or through virtual Ethernet (RNDIS), and provides 5 VDC power to the data logger (powering through the USB port has limitations - details are available in the specifications). Although the USB connection supplies 5 V power, a 12 VDC battery will be needed for field deployment.

NOTE: CR350 data loggers have a single USB port that acts as both a device and host.

5.4.2 USB host port USB host provides portable data storage on a USB thumb drive. A FAT32-formatted USB thumb drive can be inserted into the host port and will show up as a drive (USB:) in file-related operations. Measurement data is stored on USB: as discrete files by using the TableFile()

5. Wiring panel and terminal functions 15

instruction. Files on USB: can be collected by inserting the thumb drive into a computer and copying the files.

USB: can be used in all CRBasic file-access-related instructions. Because of data reliability concerns in non-industrial rated drives, this drive is not intended for long-term unattended data storage. Rather, configure Tablefile() for milking (plug-and-pull) to periodically collect data. Files on USB: are not affected by program recompilation or formatting of other drives.

See the CRBasic Editor help for detailed instruction information and program examples:

https://help.campbellsci.com/crbasic/cr350/

5.4.3 C and COM terminals for communications C terminals are configurable for the following communications types:

l SDI-12 l RS-232 (5 V to 5 V) l TTL (0 to 5 V)

Some communications types require more than one terminal, and some are only available on specific terminals. See Communications specifications (p. 237) for more information.

5.4.3.1 SDI-12 ports SDI-12 is a 1200 baud protocol that supports many smart sensors. C1 and C2 can each be configured as an SDI-12 communications port. Maximum cable lengths depend on the number of sensors connected, the type of cable used, and the environment of the application. Refer to the sensor manual for guidance.

For more information, see SDI-12 communications (p. 133).

5.4.3.2 RS-232, RS-422, RS-485, TTL ports RS-232, RS-422, RS-485, TTL communications are typically used for the following:

l Reading sensors with serial output l Creating a multi-drop network l Communications with other data loggers or devices over long cables

Configure COM terminals as serial ports using Device Configuration Utility or by using the SerialOpen() CRBasic instruction. Terminals are configured in pairs for TTL, RS-232, and half- duplex RS-422 and RS-485 communications. For full-duplex RS-422 and RS-485, four terminals are required. See also Communications protocols (p. 100).

5. Wiring panel and terminal functions 16

NOTE: RS-232 ports are not isolated.

See also Communications specifications (p. 237).

5.4.4 RS-232 Port RS-232 represents a loose standard defining how two computing devices can communicate with each other. For instruction on setting up RS-232 communications with a computer, see USB or RS-232 communications (p. 22).

One nine-pin DCE port, labeled RS-232, normally is used to communicate with a computer running data logger support software, to connect a modem, or to read a smart sensor. The RS-232 port functions as either a DCE or DTE device. The most common use of the RS-232 port is as a connection to a computer DTE device (using a standard DB9-to-DB9 cable). Pins 1, 4, 6, and 9 function differently than a standard DCE device to accommodate a connection to a modem or other DCE device via a null modem cable. For the RS-232 port to function as a DTE device, a null modem adapter is required.

RS-232 communications normally operate well up to a transmission cable capacitance of 2500 picofarads, or approximately 50 feet of commonly available serial cable.

5.4.4.1 RS-232 Power States Under normal operation, the RS-232 port is powered down waiting for input. Upon receiving input, there is a 40-second software timeout before shutting down. The 40-second timeout is generally circumvented when communicating with data logger support software because it sends information as part of the protocol that lets the data logger know it can shut down the port.

When in sleep mode, hardware is configured to detect activity and wake up. Sleep mode may lose the first character of the incoming data stream. PakBus takes this into consideration in the "ring packets" that are preceded with extra sync bytes at the start of the packet. SerialOpen() leaves the interface powered-up, so no incoming bytes are lost. See the CRBasic Editor help for detailed instruction information and program examples: https://help.campbellsci.com/crbasic/cr350/ .

When the data logger has data to send via RS-232, if the data is not a response to a received packet, such as sending a beacon, it will power up the interface, send the data, and return to sleep mode without a 40 second timeout.

See also Wiring panel and terminal functions (p. 8).

5. Wiring panel and terminal functions 17

5.5 Programmable logic control The data logger can control instruments and devices such as:

l Controlling cellular modem or GPS receiver to conserve power. l Triggering a water sampler to collect a sample. l Triggering a camera to take a picture. l Activating an audio or visual alarm. l Moving a head gate to regulate water flows in a canal system. l Controlling pH dosing and aeration for water quality purposes. l Controlling a gas analyzer to stop operation when temperature is too low. l Controlling irrigation scheduling.

Control decisions can be based on time, an event, or a measured condition. Controlled devices can be physically connected to C, VX, SE1 -SE4, P_SW, or SW12 (SW1, SW2) terminals. Short Cut has provisions for simple on/off control. Control modules and relay drivers are available to expand and augment data logger control capacity.

l C terminals are selectable as binary inputs, control outputs, or communications ports. These terminals can be set low (0 VDC) or high (5 VDC) using the PortSet() or WriteIO() instructions. See the CRBasic Editor help for detailed instruction information and program examples: https://help.campbellsci.com/crbasic/cr350/ . Other functions include device- driven interrupts, asynchronous communications and SDI-12 communications. A C terminal configured for digital I/O is normally used to operate an external relay-driver circuit because the terminal itself has limited drive capacity.

l VX terminals can be set low or high using the PortSet() or SWVX() instruction. For more information on these instructions, see the CRBasic help.

l SW12 terminals can be set low (0 V) or high (12 V) using the SW12() instruction (see the CRBasic help for more information).

5. Wiring panel and terminal functions 18

The following image illustrates a simple application wherein a C terminal configured for digital input, and another configured for control output are used to control a device (turn it on or off) and monitor the state of the device (whether the device is on or off).

In the case of a cell modem, control is based on time. The modem requires 12 VDC power, so connect its power wire to a data logger SW12 terminal. The following code snip turns the modem on for the first ten minutes of every hour using the TimeIsBetween() instruction embedded in an If/Then logic statement:

If TimeIsBetween (0,10,60,Min)Then SW12(1) 'Turn phone on.

Else SW12(0) 'Turn phone off.

EndIf

5. Wiring panel and terminal functions 19

6. Setting up the CR350 The basic steps for setting up your data logger to take measurements and store data are included in the following sections:

l Setting up communications with the data logger (p. 21) l Virtual Ethernet over USB (RNDIS) (p. 24) l Wi-Fi communications option (p. 26) l Cellular communications option (p. 36) l Radio communications option (p. 53) l Testing communications with EZSetup (p. 61) l Creating a Short Cut data logger program (p. 63)

6. Setting up the CR350 20

7. Setting up communications with the data logger The first step in setting up and communicating with your data logger is to configure your connection. Communications peripherals, data loggers, and software must all be configured for communications. Additional information is found in your specific peripheral manual, and the data logger support software manual and help.

The default settings for the data logger allow it to communicate with a computer via USB or RS- 232. For other communications methods or more complex applications, some settings may need adjustment. Settings can be changed through Device Configuration Utility or through data logger support software.

You can configure your connection using any of the following options. The simplest is via USB. For detailed instruction, see:

l USB or RS-232 communications (p. 22) l Virtual Ethernet over USB (RNDIS) (p. 24) l Wi-Fi communications option (p. 26) (WIFI models only) l Cellular communications option (p. 36) (CELL models only) l Radio communications option (p. 53) (RF models only)

For other configurations, see the LoggerNet EZSetup Wizard help. Context-specific help is given in each step of the wizard by clicking the Help button in the bottom right corner of the window. For complex data logger networks, use Network Planner. For more information on using the Network Planner, watch a video at https://www.campbellsci.com/videos/loggernet-software- network-planner .

7. Setting up communications with the data logger 21

8. USB or RS-232 communications Setting up a USB or RS-232 connection is a good way to begin communicating with your data logger. Because these connections do not require configuration (like an IP address), you need only set up the communications between your computer and the data logger. Use the following instructions or watch the Quickstart videos at https://www.campbellsci.com/videos .

Follow these steps to get started. These settings can be revisited using the data logger support software Edit Datalogger Setup option .

1. Using data logger support software, launch the EZSetup Wizard. l LoggerNet users, click Setup , click the View menu to ensure you are in the EZ 

(Simplified) view, then click Add Datalogger . l PC400 users, click Add Datalogger .

2. Click Next.

3. Select CR300 Series from the list, type a meaningful name for your data logger (for example, a site identifier or project name), and click Next.

4. Select the Direct Connect connection type and click Next.

5. If this is the first time connecting this computer to a CR350 via USB, click Install USB Driver, select your data logger, click Install, and follow the prompts to install the USB drivers.

6. Plug the data logger into your computer using a USB-C or RS-232 cable. The USB connection supplies 5 V power as well as a communications link, which is adequate for setup, but a 12V power source is necessary to power cellular functions of CR350-CELL series models. A 12V battery will be needed for field deployment as the USB connection cannot power most sensors. If using RS-232, external power must be provided to the data logger.

NOTE: The Power LED on the data logger indicates the program and power state. Because the data logger ships with a program set to run on power-up, the Power LED flashes 3 times every 10 seconds when powered over USB. When powered with a 12 V battery, it flashes 1 time every 10 seconds. When no program is running, the LED is always on.

8. USB or RS-232 communications 22

7. From the COM Port list, select the COM port used for your data logger. It will appear as CR350 (COM number).

8. USB and RS-232 connections do not typically require a COM Port Communication Delay - which allows time for hardware devices to "wake up" and negotiate a communications link. Accept the default value of 00 seconds and click Next.

9. The baud rate and PakBus address must match the hardware settings for your data logger. The default PakBus address is 1. A USB connection does not require a baud rate selection. RS-232 connections default to 115200 baud.

NOTE: Unlike the RS-232 port on some other Campbell Scientific data loggers that autobaud, the CR350 RS-232 port does not. If the hardware and software settings for baud rate and PakBus address do not match, you will not be able to connect.

10. Set an Extra Response Time if you have a difficult or marginal connection and you want the data logger support software to wait a certain amount of time before returning a communications failure error. Accept the default value of 00 seconds.

11. Set a Max Time On-Line to limit the amount of time the data logger remains connected. When the data logger is connected, communications with it are terminated when this time limit is exceeded. A value of 0 in this field indicates that there is no time limit for maintaining a connection to the data logger.

12. Leave the Neighbor PakBus Address as the default of 0.

13. Click Next.

14. By default, the data logger does not use a security code or a PakBus encryption key. Therefore, the Security Code can be set to 0 and the PakBus Encryption Key can be left blank. If either setting has been changed, enter the new code or key. See Data logger security (p. 142) for more information.

15. Click Next.

16. Review the Setup Summary. If you need to make changes, click Previous to return to a previous window and change the settings.

17. Setup is now complete, and the EZSetup Wizard allows to you finish, or click Next to test communications, set the data logger clock, and send a program to the data logger. See Testing communications with EZSetup (p. 61) for more information.

8. USB or RS-232 communications 23

9. Virtual Ethernet over USB (RNDIS) CR350 data loggers support RNDIS (virtual Ethernet over USB). This allows the data logger to communicate via TCP/IP over USB. Watch a video at https://www.campbellsci.com/videos/ethernet-over-usb or use the following instructions.

1. Supply power to the data logger. If connecting via USB for the first time, you must first install USB drivers by using Device Configuration Utility (select your data logger, then on the main page, click Install USB Driver). Alternately, you can install the USB drivers using EZ Setup. A USB connection supplies 5 V power (as well as a communications link), which is adequate for setup, but a 12 V battery will be needed for field deployment.

NOTE: Ensure the data logger is connected directly to the computer USB port (not to a USB hub). We recommended always using the same USB port on your computer.

2. Physically connect your data logger to your computer using a USB cable, then in Device Configuration Utility select your data logger.

3. Retrieve your IP Address. On the bottom, left side of the screen, select IP as the Connection Type, then click the browse button next to the Server Address box. Note the IP Address (default is 192.168.66.1). If you have multiple data loggers in your network, more than one data logger may be returned. Ensure you select the correct data logger by verifying the data logger serial number or station name (if assigned).

4. A virtual IP address can be used to connect to the data logger using Device Configuration Utility or other computer software, or to view the data logger internal web page in a browser. To view the web page, open a browser and enter linktodevice.com or the IP address you retrieved in the previous step (for example, 192.168.66.1) into the address bar.

To secure your data logger from others who have access to your network, we recommend that you set security. For more information, see Data logger security (p. 142).

9. Virtual Ethernet over USB (RNDIS) 24

NOTE: Ethernet over USB (RNDIS) is considered a direct communications connection. Therefore, it is a trusted connection and Administrator privileges are automatically granted for all functionality.

9. Virtual Ethernet over USB (RNDIS) 25

10. Wi-Fi communications option The CR350-WIFI default Wi-Fi configuration is Normally Off, Create Network on Button Press. With a button press it can create and host its own Wi-Fi network. This allows for easy on-site communications during routine maintenance. Once Wi-Fi communications are complete the data logger returns to a low-power state.

It also can be configured to join an existing Wi-Fi network.

NOTE: A 12 VDC power source is necessary to power Wi-Fi functions of the CR350-WIFI.

NOTE: The user is responsible for emissions if changing the antenna type or increasing the gain.

See also Communications specifications (p. 237).

10.1 Hosting a Wi-Fi network By default, the CR350-WIFI is configured to host a Wi-Fi network when the button is pressed. Up to eight devices can be connected at one time. The hosted network times out after a minimum of

10. Wi-Fi communications option 26

five minutes. See: Normally Off, Join Network on Button Press (default) (p. 33) for more information. Use data logger support software or the LoggerLink mobile app for iOS and Android to connect to the CR350-WIFI network.

See also: CR350 QuickStart Part 5 - Wi-Fi Communications .

10.1.1 Configure the data logger to host a Wi-Fi network Follow these instructions to check the data logger settings or reconfigure it.

1. Ensure your CR350-WIFI is connected to an antenna and 12 VDC power.

2. Using Device Configuration Utility, connect to the data logger.

3. On the Deployment tab, click the Wi-Fi sub-tab.

4. In the Configuration list, select the Create a Network or Normally Off, Create Network on Button Press option.

5. Optionally, set security on the network to prevent unauthorized access by typing a password in the Password box (recommended).

6. Click Apply.

10.1.2 Connect your phone to the data logger over Wi-Fi 1. Press the CR350-WIFI button.

2. Open your phone settings  and connect to the Wi-Fi network hosted by the data logger. The default name is CR350 followed by the serial number of the data logger.

10. Wi-Fi communications option 27

3. If you set a password, enter it. The resulting setting will look similar to this image.

4. Close the phone settings.

10.1.3 Set up LoggerLink 1. Open the LoggerLink phone app.

2. Read through the Getting Started information if this is your first time using LoggerLink.

3. Click + then the UDP discovery button  .

4. Select the CR350.

10. Wi-Fi communications option 28

5. Save.

6. All LoggerLink features are now available until the Wi-Fi connection times out with inactivity or theCR350-WIFI button is pressed. See the in-app help for more information about LoggerLink.

10.1.4 Connect your computer to the data logger over Wi- Fi

1. Press the CR350-WIFI button.

2. Open the Wi-Fi network settings on your computer.

3. Select the Wi-Fi-network hosted by the data logger. The default name is CR350 followed by the serial number of the data logger. In the previous image, the Wi-Fi network is CRxxx.

4. If you set a password, select the Connect Using a Security Key option (instead of a PIN) and type the password you chose.

5. Connect to this network.

10. Wi-Fi communications option 29

10.1.5 Set up LoggerNet or PC400W 1. Using data logger support software, launch the EZSetup Wizard.

l LoggerNet users, click Setup , click the View menu to ensure you are in the EZ  (Simplified) view, then click Add Datalogger .

l PC400 users, click Add Datalogger .

2. Select the IP Port connection type and click Next.

3. In the Internet IP Address field, type 192.168.67.1. This is the default data logger IP address created when the CR350-WIFI creates a network.

4. Click Next.

5. The PakBus address must match the hardware settings for your data logger. The default PakBus address is 1.

l Set an Extra Response Time if you want the data logger support software to wait a certain amount of time before returning a communication failure error. This can usually be left at 00 seconds.

l You can set a Max Time On-Line to limit the amount of time the data logger remains connected. When the data logger is contacted, communication with it is terminated when this time limit is exceeded. A value of 0 in this field indicates that there is no time limit for maintaining a connection to the data logger.

6. Click Next.

7. By default, the data logger does not use a security code or a PakBus encryption key. Therefore, the Security Code can be set to 0 and the PakBus Encryption Key can be left blank. If either setting has been changed, enter the new code or key. See Data logger security (p. 142) for more information.

8. Click Next.

9. Review the Setup Summary. If you need to make changes, click Previous to return to a previous window and change the settings.

10. Setup is now complete, and the EZSetup Wizard allows to you finish, or click Next to test communications, set the data logger clock, and send a program to the data logger. See Testing communications with EZSetup (p. 61) for more information.

10. Wi-Fi communications option 30

10.2 Joining a Wi-Fi network By default, the CR350-WIFI is configured to host a Wi-Fi network. Alternatively it can be set up to join an existing Wi-Fi network. Then a computer or mobile device on the same network can communicate with it.

10.2.1 Configure the data logger to join a Wi-Fi network 1. Ensure your CR350-WIFI is connected to an antenna and 12 VDC power.

2. Using Device Configuration Utility, connect to the data logger.

3. On the Deployment tab, click the Wi-Fi sub-tab.

4. In the Configuration list, select the Join a Network option.

5. Next to the Network Name (SSID) box, click Browse to search for and select a Wi-Fi network. To join a hidden network, manually enter its SSID.

6. If the network is a secured network, you must enter the password in the Password box and add any additional security in the Enterprise section of the window.

7. Enter the IP Address, Network Mask, and Gateway. These values should be provided by your network administrator. A static IP address is recommended.

l Alternatively, you can use an IP address assigned to the data logger via DHCP. To do this, make sure the IP Address is set to 0.0.0.0. Click Apply to save the configuration changes. Then reconnect. The IP information obtained through DHCP is updated and displayed in the Status section of the Wi-Fi subtab. Note, however, that this address is not static and may change. An IP address here of 169.254.###.### means the data logger was not able to obtain an address from the DHCP server. Contact your network administrator for help.

8. Click Apply.

10.2.2 Set up LoggerNet or PC400W For each data logger you want to connect to network, you must follow the instruction in Wi-Fi communications option (p. 26), using the IP address used to configure that data logger (step 7 in this instruction).

10. Wi-Fi communications option 31

1. Using data logger support software, launch the EZSetup Wizard. l LoggerNet users, click Setup , click the View menu to ensure you are in the EZ 

(Simplified) view, then click Add Datalogger . l PC400 users, click Add Datalogger .

2. Click Next.

3. Select CR300 Series from the list, type a meaningful name for your data logger (for example, a site identifier or project name), and click Next.

4. Select the IP Port connection type and click Next

5. Use UDP Search... to find and Add the data logger IP address.

6. Click Next.

7. The PakBus address must match the hardware settings for your data logger. The default PakBus address is 1.

l Set an Extra Response Time if you want the data logger support software to wait a certain amount of time before returning a communication failure error. This can usually be left at 00 seconds.

l You can set a Max Time On-Line to limit the amount of time the data logger remains connected. When the data logger is contacted, communication with it is terminated when this time limit is exceeded. A value of 0 in this field indicates that there is no time limit for maintaining a connection to the data logger.

8. Click Next.

9. By default, the data logger does not use a security code or a PakBus encryption key. Therefore, the Security Code can be set to 0 and the PakBus Encryption Key can be left blank. If either setting has been changed, enter the new code or key. See Data logger security (p. 142) for more information.

10. Review the Setup Summary. If you need to make changes, click Previous to return to a previous window and change the settings.

11. Setup is now complete, and the EZSetup Wizard allows to you finish, or click Next to test communications, set the data logger clock, and send a program to the data logger. See Testing communications with EZSetup (p. 61) for more information.

10.3 Wi-Fi configurations and mode button Configure the Wi-Fi mode and button using Device Configuration Utility software.

10. Wi-Fi communications option 32

10.3.1 Join a Network The CR350 will scan for available Wi-Fi networks and attempt to join the network specified by the SSID field. If the data logger cannot join the desired SSID (for example, the network is out of range or there are incorrect parameters), it will go to a low power state and retry about every one minute.

When this mode is selected, the Wi-Fi button is disabled. The WIFI LED (labeled TX/RX) will turn solid green while attempting to join the specified network and will flash green with network activity. If the attempt to join the network fails, the LED will flash red while waiting for the periodic retry.

10.3.2 Create a Network The data logger will create and host a Wi-Fi network. Enter the desired name of the network in the SSID field. A network created by the CR350 supports up to eight joinees. If a password is supplied, the network created will be secured by WPA2 encryption. If no password is supplied, the network created will be an open network with no encryption.

When this mode is selected, the Wi-Fi button is disabled. The WIFI LED (labeled TX/RX) will turn solid amber while attempting to create the specified network and will flash amber with activity while hosting the network.

10.3.3 Normally Off, Join Network on Button Press (default) The Wi-Fi will be normally turned off until the Wi-Fi button is pressed. When the button is pressed, the CR350 will attempt to join the network specified. The Wi-Fi will stay powered, and joined to the network until it times out or until the button is pressed again. Then the Wi-Fi shuts off. The timeout will be a minimum of five minutes with a two minute refresh on any communications sent by the data logger.

When the button is pressed, the WIFI LED (labeled TX/RX) will turn solid green while attempting to join the specified network and will flash green with network activity. The LED will turn off when the WIFI is no longer powered following a time-out or another button press.

10. Wi-Fi communications option 33

10.3.4 Normally Off, Create Network on Button Press The Wi-Fi will be normally turned off until the Wi-Fi button is pressed. When the button is pressed, the data logger will create and host the network specified. The Wi-Fi will stay powered and hosting the network until it times out or until the button is pressed again. Then the Wi-Fi shuts off. The timeout will be a minimum of five minutes with a two minute refresh on any communications sent by the data logger.

When the button is pressed, the WIFI LED (labeled TX/RX) will turn solid amber while attempting to create the specified network and will flash amber with activity while hosting the network. The LED will turn off when the WIFI is no longer powered following a time-out or another button press.

10.3.5 Join Network, Create Network on Button Press The CR350 will attempt to join the network specified. It will remain joined to the network until the Wi-Fi button is pressed. When the button is pressed, the data logger will disassociate with the previously joined network and create and host an open (unencrypted) network with the name model_serialnumber. The data logger will continue hosting the network until it times out or until the button is pressed again. Then the Wi-Fi will switch back to join mode and attempt to join the network specified. The timeout on the hosted network will be a minimum of five minutes with a two minute refresh on any communication sent to the data logger .

NOTE: During the time the data logger is creating and hosting the temporary network, no communications can take place on the previously joined network until the created network has timed out and the data logger re-joins the other network.

The WIFI LED (labeled TX/RX) will turn solid green while attempting to join the specified network and will flash green with network activity. When the button is pressed, the LED will turn solid amber while creating a network and will flash amber with activity while hosting the network.

10.3.6 Disable Wi-Fi communications will be disabled and the module turned off.

NOTE: When the Wi-Fi configuration is set to Join a Network or Create a Network the Wi-Fi button is disabled.

10. Wi-Fi communications option 34

10.4 Wi-Fi LED indicator When the data logger is powered, the Wi-Fi LED (labeled TX/RX) will turn on according to Wi-Fi communication states:

l Off: Insufficient power, Wi-Fi disabled, or data logger failed to join or create a network (periodic retries will occur).

l Solid for 2 seconds: Attempting to join or create a network. l Flashing: Successfully joined or created a network. Flashes with network activity and once

every four seconds when there is no activity.

10. Wi-Fi communications option 35

11. Cellular communications option The CR350-CELL can be purchased with an integrated 4G LTE cellular module.

Use of the CR350-CELL series requires a cellular line of service. The products compatible with Verizon, AT&T, T-Mobile, Vodafone, and Telstra are shown in the following table.

Product Cellular protocol Market Verizon AT&T T-Mobile Vodafone Telstra Other1

CELL205

4G LTE with

automatic 3G fallback2

North America

CELL210 4G LTE CAT-1 United States

CELL215

4G LTE with

automatic 3G and

2G fallback

EMEA

CELL220

4G LTE with

automatic 3G fallback

Australia and New Zealand

CELL225 4G LTE Japan 1 More than 600 other providers are available worldwide through Campbell Scientific.

2 AT&T ended support of their 3G network service on February 22, 2022. To continue operation the CR350-CELL series requires operating system 2.030 or newer. Use the web interface to find the CR350-CELL series OS version on the OS Date field of the Status Tab.

11.1 Pre-installation 11.1.1 Establish cellular service 37

11. Cellular communications option 36

11.1.2 Install the SIM card 38

11.1.3 Konect PakBus Router setup 39

11.1.1 Establish cellular service For better security, we recommend using Konect PakBus Router with a private dynamic IP address. This method allows only incoming PakBus communications. No other incoming communications are supported. However, all forms of outbound communications from the data logger are supported, including but not limited to PakBus, email, and FTP.

NOTE: When the data logger is connected to both Ethernet and a cellular modem, IPRoute() may be used to specify which interface to use for the outbound communications, such as email, FTP, and HTTP.

A public static IP address can also be used. This provides more incoming communications functionality, but is less secure and more vulnerable to unsolicited traffic.

11.1.1.1 Campbell Scientific cellular data service Campbell Scientific can provide subscriptions to cellular service through Verizon, AT&T, T-Mobile, Vodafone, Telstra, and over 600 other providers worldwide. When this cellular service is purchased with the module, the module will come pre-provisioned with the required SIM card and APN. If you have already purchased the CR350-CELL series, call Campbell Scientific to set up service.

11.1.1.2 Other service providers While using Campbell Scientific is the simplest way to obtain cellular data service for your module, you can go directly to a provider. For more information on obtaining service directly from Verizon and AT&T, see Verizon Wireless and AT&T (p. 243).

TIP: Prepaid cellular data plans may experience service slow downs when data limits are reached. If file transfer from a cellular-connected data logger works initially, but later has problems, check for data overage on the cellular plan.

This does not apply to Campbell Scientific cellular data services.

11. Cellular communications option 37

11.1.2 Install the SIM card NOTE: If you purchased cellular service from Campbell Scientific with the module, it will come with the SIM (Subscriber Identity Module) card already installed.

CAUTION: Observe precautions for handling electrostatic sensitive devices.

1. Remove the screws from the bottom panel.

2. Pull the bottom and top of the data logger apart.

3. Note the location of the notched corner on the SIM card for correct alignment. The gold contact points of the SIM face down when inserting the SIM card as shown in the following figure. Gently slide the card into the slot until it stops and locks into place. To eject the SIM card, press it in slightly and release.

11. Cellular communications option 38

FIGURE 11-1. SIM card installation

11.1.3 Konect PakBus Router setup 11.1.3.1 Get started You will need the Konect PakBus Router redemption code that came on a card with the CR350- CELL series.

Open a web browser and go to www.konectgds.com .

11. Cellular communications option 39

First-time users need to create a free account. After you submit your information, you will receive two emails up to five minutes apart. One email will contain a Passport ID and the other your Password. If emails are not received, check your email junk folder.

11.1.3.2 Set up Konect PakBus Router 1. Sign in to www.konectgds.com using your Passport ID and Password found in the two

received emails. Once logged in, you will be at the Welcome page.

2. Click Devices and services on the command bar to the left and select Redeem PakBus Router Code. Enter your complimentary Router Code found on the included card with your cellular-enabled device and click Submit.

3. The next screen shows the assigned DNS address and Port for the router. Enter a TCP Password and select a unique PakBus Address for your data logger.

TIP: Make note of this information; it will be required for data logger configuration as well as LoggerNet setup. Please note your DNS, Port, TCP Password and PakBus address; you will need them later.

11. Cellular communications option 40

11.2 Installation 11.2.1 Determining if IP address is private dynamic or public static 41

11.2.2 Modules using Konect PakBus Router (private dynamic IP) 42

11.2.3 Modules using a public static IP 46

11.2.1 Determining if IP address is private dynamic or public static The Provisioning Report received with your Cellular Data Service shows whether the module was configured with a private dynamic or public static IP address. See FIGURE 11-2 (p. 42) for an example of a Campbell Scientific Provisioning Report. Other cellular providers should provide similar information.

11. Cellular communications option 41

FIGURE 11-2. Static IP provisioning report

Additionally, Campbell Scientific cellular modules configured with a public static IP address will have two stickers on the module, as shown in FIGURE 11-3 (p. 42). One sticker will show the module phone number and data plan. The second sticker will show the static IP address.

Campbell Scientific cellular modules configured with a private dynamic IP address will have one sticker on the module. It will show the module phone number and data plan.

FIGURE 11-3. Module with public static IP address

11.2.2 Modules using Konect PakBus Router (private dynamic IP)

11.2.2.1 Configure data logger 43

11.2.2.2 Set up LoggerNet 44

11.2.2.3 Test the connection 46

11. Cellular communications option 42

11.2.2.1 Configure data logger 1. Connect the cellular antenna, if it is not already connected. When using a MIMO antenna

with multiple cellular connections, connect the primary cable to Cellular and the secondary to Diversity. If the cables are not marked in this way, they can be connected to either antennna port.

2. Connect to your data logger by using Device Configuration Utility.

3. On the Datalogger tab, change the data logger PakBus Address and PakBus/TCP Password to match the values entered in the Konect PakBus Router setup.The PakBus/TCP Password will make the data logger authenticate any incoming or outgoing PakBus/TCP connection.

4. On the Network Services tab in the PakBus/TCP Client field, enter the DNS address and Port number noted during the Konect PakBus Router setup.

5. (Optional) If your cellular carrier requires user name and password authentication, on the Settings Editor > Cellular tab, set PDP Authentication Type, PPP Authentication Username and PPP Authentication Password.

6. On the Cellular tab, enter the APN provided by your cellular provider.

7. Click Apply to save the changes. Verify the settings in the summary window. (Recommended) Save a copy of the settings to a file on the computer. Click OK.

8. Click Apply to save the changes. Verify the settings in the summary window. (Recommended) Save a copy of the settings to a file on the computer. Click OK.

9. Click Disconnect and close Device Configuration Utility.

11. Cellular communications option 43

11.2.2.2 Set up LoggerNet The LoggerNet Network Map is configured from the LoggerNet Setup screen.

NOTE: Setup has two options, EZ (simplified) and Standard. Click on the View menu at the top of the Setup screen, and select Standard view.

From the LoggerNet toolbar, click Main > Setup and configure the Network Map as described in the following steps:

1. Select Add Root > IPPort.

2. Select PakBusPort and pbRouter for PakBus data loggers such as the CR6 or CR1000X.

NOTE: PakBus data loggers include the following models: GRANITE-series, CR6, CR3000, CR1000X, CR800-series, CR300-series, CR1000, and CR200(X)-series.

3. Add a data logger to the pbRouter.

4. From the Entire Network, on the left side, select the IPPort. Enter the Konect PakBus Router DNS address and port number as noted in the Konect PakBus Router setup (Set up Konect PakBus Router (p. 40)). Enter them into the Internet IP Address field in the format DNS:Port with a colon separating DNS and Port. For example, axanar.konectgds.com:pppp where pppp is the port number.

11. Cellular communications option 44

5. Leave the default settings for the PakBusPort. PakBus Port Always Open should not be checked. In the TCP Password field enter the TCP Password; this must match the value entered in the Konect PakBus Router setup and LoggerNet setup.

6. Select the pbRouter in the Network Map and set the PakBus Address to 4070.

7. Select the data logger in the Network Map and set the PakBus Address to match that of the data logger (default address in the data logger is 1). If a PakBus Encryption Key was entered during data logger setup, also enter it here. Click Apply to save the changes.

11. Cellular communications option 45

11.2.2.3 Test the connection Use the Connect screen to test the connection. Click on the appropriate station and click Connect to initiate a call to the data logger. The data logger must have 12 V power.

TIP: The connection time is subject to many external factors. It is often less than 30 seconds but could be up to 15 minutes. Be patient.

If the connection is successful, the connectors icon at the bottom of the screen will come together and clock information from the data logger will be displayed in the Station Date/Time field. If the connection fails, a Communications Failure message will be displayed.

11.2.3 Modules using a public static IP 11.2.3.1 Configure data logger 46

11.2.3.2 Set up LoggerNet 48

11.2.3.3 Test the connection 50

11.2.3.1 Configure data logger 1. Connect the cellular antenna, if it is not already connected. When using a MIMO antenna

with multiple cellular connections, connect the primary cable to Cellular and the secondary to Diversity. If the cables are not marked in this way, they can be connected to either antennna port.

2. Connect to your data logger by using Device Configuration Utility.

3. On the PPP tab, set Config/Port Used to CS I/O SDC8 or RS-232, depending on how you are connected to the data logger.

11. Cellular communications option 46

4. (Optional) On the PPP tab, set User Name and Password if required by your cellular carrier (usually outside of the United Sates).

5. (Optional) If your cellular carrier requires user name and password authentication, on the Settings Editor > Cellular tab, set PDP Authentication Type, PPP Authentication Username and PPP Authentication Password.

6. Verify the Modem Dial String setting is blank.

7. If connecting through RS-232, on the Comport Settings tab, set RS232 BaudRate to 115200 Fixed.

8. On the Cellular tab, enter the APN provided by your cellular provider.

9. (Optional) By default, the CR350-CELL series will accept incoming communications from any IP address. This can be a security risk. You may specify up to four IP addresses, with wild cards, to limit connections to only those trusted sources. Use an asterisk (*) as a wild card. For example, a setting of 166.22.*.* would allow connections from devices that have IP addresses starting with 166.22. Both IPv4 and IPv6 addresses are supported.

CAUTION: Only set a Trusted IP address if you are familiar with their use. Consult your IT department or Campbell Scientific for assistance.

NOTE: This setting does not affect outbound connections, only incoming connections.

11. Cellular communications option 47

In the Device Configuration Utility go to the Settings Editor then Network Services. Next to the Trusted Hosts field, click Edit and Add your trusted IP addresses, one at a time.

10. Click Apply to save the changes.

11.2.3.2 Set up LoggerNet The LoggerNet Network Map is configured from the LoggerNet Setup screen.

NOTE: Setup has two options, EZ (simplified) and Standard. Click on the View menu at the top of the Setup screen, and select Standard view.

From the LoggerNet toolbar, click Main > Setup and configure the Network Map as described in the following steps:

1. Select Add Root > IPPort.

2. Select PakBusPort.

3. Add a data logger to the PakBusPort.

11. Cellular communications option 48

4. Select the IPPort in the Network Map. Enter the CR350-CELL series IP address and port number. The IP address and port number are input in the Internet IP Address field separated by a colon. Preceding zeros are not entered in the Internet IP Address (for example, 070.218.074.247 is entered as 70.218.74.247). The default port number is 6785.

5. For PakBus data loggers, leave the default settings for the PakBusPort. PakBus Port Always Open should not be checked. If a TCP Password is used, enter it.

6. For PakBus data loggers, select the data logger in the Network Map and set the PakBus Address to match that of the data logger (default address in the data logger is 1). If a PakBus Encryption Key was entered during data logger setup, also enter it here. Click Apply to save the changes.

11. Cellular communications option 49

11.2.3.3 Test the connection Use the Connect screen to test the connection. Click on the appropriate station and click Connect to initiate a call to the data logger. The data logger must have 12 V power.

TIP: The connection time is subject to many external factors. It is often less than 30 seconds but could be up to 15 minutes. Be patient.

If the connection is successful, the connectors icon at the bottom of the screen will come together and clock information from the data logger will be displayed in the Station Date/Time field. If the connection fails, a Communications Failure message will be displayed.

11.3 Cellular (TX/RX) LED Indicator When the data logger is powered, the cellular LED will turn on according to cellular modem communications states:

l Off: Cellular modem off, insufficient power, or failure to establish a connection with the provider (periodic retries will occur).

l Solid: Cellular modem is powering up and attempting to establish a connection with a provider.

l Quick Flashing (approximately 1 second duration): Indicates successful network registration.

l Flashing: Flashes with network activity.

11.4 Signal strength and quality Both signal strength and quality contribute to successful cellular data communications. The factors that influence signal strength and quality include but are not limited to:

11. Cellular communications option 50

l proximity to the cellular tower l tower load l competing signals l physical barriers (mountains, buildings, vegetation) l weather

Because signal strength and quality can vary due to many factors, they may not give a true indication of communications performance or range. However, they can be useful for activities such as:

l determining the optimal direction to aim a Yagi antenna l determining the effects of antenna height and location l trying alternate Yagi antenna (reflective) paths l seeing the effect of vegetation and weather over time

11.4.1 Signal strength Signal strength is how strong the received signal is. The closer your CR350-CELL series is to the cellular tower, the more signal the antenna will pick up. Signal strengths are lower the farther away from the tower the CR350-CELL series is.

For 3G networks, signal strength is reported as RSSl (Received Signal Strength Indicator). For 4G, it is RSRP (Reference Signal Received Power).

Signal strength units are dBm; 70 is a stronger signal than 100.

Table 11-1: Signal strength

Strength estimate RSSI (3G) dBm

RSRP (4G) dBm

Excellent -70 or greater -90 or greater

Good -71 to -85 -91 to -105

Fair -86 to -100 -106 to -115

Poor less than -100 less than -115

11.4.2 Signal quality Signal quality shows how much interference there is between the cellular tower and CR350-CELL series, or how noisy a band is. Cellular signal noise comes from reflections, ghosting and other interference. Better signal quality is an indicator of more successful communications during precipitation events such as rain and snow.

11. Cellular communications option 51

For 3G networks, signal quality is ECIO (Energy to Interference Ratio). For 4G, this is RSRQ (Reference Signal Received Quality).

Signal quality units are dBm; 0 is a better signal than 10.

Table 11-2: Signal quality

Quality estimate ECIO (3G)

dBm

RSRQ (4G)

dBm

Excellent 0 to -6 >-9

Good -7 to -10 -9 to-12

Fair to poor -11 to -20 -13 or less

11. Cellular communications option 52

12. Radio communications option CR350-RF data loggers include radio options. The RF407-series frequency-hopping spread- spectrum (FHSS) radio options include the RF407, RF412, RF422, and RF427. RF407-series are designed for license-free use in several countries:

l The RF407 option has a 902 to 928 MHz operating-frequency range appropriate for use in the United States and Canada (FCC / IC compliant).

l The RF412 option has a 915 to 928 MHz operating-frequency range appropriate for use in Australia and New Zealand (ACMA compliant).

l The RF422 option has an 863 to 873 MHz operating-frequency range appropriate for use in most of Europe and some of Asia (ETSI compliant).

l The RF427 option has a 902 to 907.5 MHz/915 to 928 MHz operating-frequency range appropriate for use in Brazil.

NOTE: This equipment has been tested and found to comply with the limits for a Class A digital device, pursuant to part 15 of the FCC Rules. These limits are designed to provide reasonable protection against harmful interference when the equipment is operated in a commercial environment. This equipment generates, uses, and can radiate radio frequency energy and, if not installed and used in accordance with the instruction manual, may cause harmful interference to radio communications. Operation of this equipment in a residential area is likely to cause harmful interference in which case the user will be required to correct the interference at his or her own expense.

Radio options cannot be mixed within a network. An RF407 can only be used with other RF407- type radios, an RF412 can only be used with other RF412-type radios, an RF422 can only be used with other RF422-type radios, and an RF427 can only be used with other RF427-type radios.

Throughout these instructions, RF407-series represents each of the RF407, RF412, RF422, and RF427 radio options, unless otherwise noted. Similarly, the RF407-series standalone, or independent radio represents each of the RF407, RF412, RF422, and RF427 models, unless otherwise noted.

12. Radio communications option 53

12.1 Configuration options The most frequently used configurations with the RF-series data logger and RF-series radio include the following:

See also RF radio option specifications (p. 238).

12.2 RF407-Series radio communications with one or more data loggers To configure an RF407-series radio to communicate with the data logger, you must complete the following steps (instruction follows):

l Ensure your data logger and RF407-series radio are connected to an antenna and power. l Configure the connection to the RF407-series device using Device Configuration Utility. l If you are connecting to multiple data loggers, you will have to assign unique PakBus

addresses to each data logger using Device Configuration Utility. (Connect to each data logger, set the PakBus Address on the Deployment | Datalogger tab.)

l Use data logger support software to set up communications between the RF407-series radio and the data loggers.

12. Radio communications option 54

NOTE: This procedure assumes the RF407 series devices are using factory default settings.

12.2.1 Configuring the RF407-Series radio Configure the RF407-Series radio connected to the computer (see image in Configuration options (p. 54) for reference).

1. Ensure your RF407-series radio is connected to an antenna and power.

2. If connecting via USB for the first time, you must first install USB drivers using Device Configuration Utility (select your radio, then on the main page, click Install USB Driver). Plug the RF407-series radio to your computer using a USB or RS-232 cable.

3. Using Device Configuration Utility, select the Communication Port used for your radio and connect to the RF407-series radio.

4. On the Main tab, set the Active Interface to USB or RS-232 (depending on how your computer will be connected to the RF407-series radio).

5. Apply the changes.

6. Connect the RF407-Series radio to the computer communication port selected in the previous step.

12.2.2 Setting up communications between the RF407- Series data logger and the computer These instructions provide an easy way to set up communications between the RF407-series data logger and the computer connected to the RF407-series radio (as configured in previous instructions). Follow these instructions multiple times to set up multiple data loggers. In this case, each data logger must be given a unique PakBus address (see PakBus communications (p. 132) for more information). For more complicated networks, it is recommended that you use Network Planner.

1. Supply 12 VDC power to the data logger.

2. Ensure the data logger antenna is connected.

12. Radio communications option 55

3. Using data logger support software, launch the EZSetup Wizard and add the data logger. l PC400 users, click Add Datalogger . l LoggerNet users, click Setup , click the View menu to ensure you are in the EZ 

(Simplified) view, then click Add Datalogger .

4. Click Next.

5. Select the CR300Series data logger from the list, type a name for your data logger (for example, a site or project name), and click Next.

6. If prompted, select the Direct Connect connection type and click Next.

7. Select the communication port used to communicate with the RF407-series radio from the COM Port list. (Note that the RF407-series radio to RF407-series data logger link is not indicated in the LoggerNet Setup Standard View.)

8. Accept the default value of 00 seconds in the COM Port Communication Delay - this box is used to allow time for hardware devices to "wake up" and negotiate a communications link. Click Next.

9. In the previous instruction "Configuring a Connection to an RF407-Series Radio," you were asked to select an active interface option of USB or RS-232. If you selected USB as the active interface for the radio, you do not need to select a baud rate. If you selected RS-232, set the baud rate to the one chosen during that step. The radio's default baud rate is 115200. The PakBus address must match the hardware settings for your data logger. The default PakBus Address is 1.

10. Click Next.

11. By default, the data logger does not use a security code or a PakBus encryption key. Therefore, the Security Code can be left at 0 and the PakBus Encryption Key can be left blank. If either setting has been changed, enter the new code or key. See Data logger security (p. 142) for more information.

12. Click Next.

13. Review the Communication Setup Summary. If you need to make changes, click the Previous button to return to a previous window and change the settings.

Setup is now complete, and the EZSetup Wizard allows you to click Finish or click Next to test communications, set the data logger clock, and send a program to the data logger. See Testing communications with EZSetup (p. 61) for more information.

If you experience network communications problems, see Troubleshooting Radio Communications (p. 165) for assistance.

12. Radio communications option 56

12.3 RF407-Series radio communications with multiple data loggers using one data logger as a router This type of network configuration is useful for communicating around an obstacle, such as a hill or building, or to reach longer distances.

To configure an RF407-series radio to communicate with multiple data loggers through a router, you must complete the following steps (instruction follows):

l Ensure your data loggers and RF407-series radios are each connected to an antenna and power.

l Configure your connection to the RF407-series devices using Device Configuration Utility. l Assign unique PakBus addresses to each data logger using Device Configuration Utility.

(Connect to each data logger, and set the PakBus Address on the Deployment | Datalogger tab.)

l Configure the data logger acting as a router. l Use data logger support software to set up communications between the computer and

the data loggers.

12.3.1 Configuring the RF407-Series radio Configure the RF407-Series radio connected to the computer (see previous image for reference).

1. Ensure your RF407-series radio is connected to an antenna and power.

2. If connecting via USB for the first time, you must first install USB drivers using Device Configuration Utility (select your radio, then on the main page, click Install USB Driver). Plug the RF407-series radio to your computer using a USB or RS-232 cable.

3. Using Device Configuration Utility, select the Communication Port used for your radio and connect to the RF407-series radio.

12. Radio communications option 57

4. On the Main tab, set the Active Interface to USB or RS-232 (depending on how your computer will be connected to the RF407-series radio).

5. Apply the changes.

6. Connect the RF407-Series radio to the computer communication port selected in the previous step.

12.3.2 Configuring the data logger acting as a router 1. Supply power to the data logger. If connecting via USB for the first time, you must first

install USB drivers by using Device Configuration Utility (select your data logger, then on the main page, click Install USB Driver). Alternately, you can install the USB drivers using EZ Setup. A USB connection supplies 5 V power (as well as a communications link), which is adequate for setup, but a 12 V battery will be needed for field deployment. Ensure the data logger antenna is connected.

2. Using Device Configuration Utility , connect to the RF407-series data logger that will serve as a router.

3. On the Deployment > Datalogger tab, assign a unique PakBus Address (see PakBus communications (p. 132) for more information).

4. On the Deployment tab, click the Com Ports Settings sub-tab.

5. From the Select the ComPort list, select RF.

6. Set the Beacon Interval to 60 seconds (or the amount of time you are willing to wait for the leaf data loggers in the network to be discovered).

NOTE: A beacon is a packet broadcast at a specified interval intended to discover neighbor devices.

7. Set the Verify Interval to something slightly greater than the expected communications interval between the router and the other (leaf) data loggers in the network (for example, 90 seconds).

8. Click the Advanced sub-tab and set Is Router to True.

9. Apply your changes.

12.3.2.1 Adding routing data logger to LoggerNet network 1. Using LoggerNet, click Setup and click the View menu to ensure you are in the Standard

view.

12. Radio communications option 58

2. Click Add Root .

3. Click ComPort, then PakBusPort (PakBus Loggers), then CR300Series.

4. Click Close.

5. In the Entire Network pane on the left side of the window, select the ComPort.

6. On the Hardware tab on the right, click the ComPort Connection list and select the communication port assigned to the RF407-series radio.

7. In the Entire Network pane on the left side of the window, select PakBusPort.

8. On the Hardware tab on the right, select the PakBus Port Always Open check box. l If you would like to prevent the possibility of LoggerNet communicating with any

other data loggers in the network without going through the router, set the Beacon Interval to 00 h 00 m 00s.

9. In the Entire Network pane on the left side of the window, select the router data logger (CR300Series) from the list.

10. On the Hardware tab on the right, type the PakBus Address you assigned to the router data logger in Device Configuration Utility.

11. Optionally, click the Rename button ( ) to provide the data logger a descriptive name.

12. Apply your changes.

12.3.2.2 Adding leaf data loggers to the network 1. In the LoggerNet Standard Setup view (click the Setup ( ) option and click the View menu

to ensure you are in the Standard view), right-click on the router data logger in the Entire Network pane on the left side of the window and select CR300Series.

2. With the newly added data logger selected in the Entire Network pane, set the PakBus Address to the address that was assigned to the leaf data logger in Device Configuration Utility.

3. Click Rename. Enter a descriptive name for the data logger.

4. Apply your changes.

5. Repeat these steps for each leaf data logger in the network.

If you experience problems with network communications, see Troubleshooting Radio Communications (p. 165) for assistance.

12. Radio communications option 59

12.3.3 Using additional communications methods Using similar instructions, a RF407-series data logger can be used in a system with additional communication methods. For example, in the following image, the router RF407-series data logger communicates with LoggerNet through an RV50 cellular modem connected to RF407- series data logger using the RS-232 port. The router RF407-series data logger communicates with the leaf RF407-series data loggers over RF.

12. Radio communications option 60

13. Testing communications with EZSetup

1. Advance to, or select, the Communication Test step in EZ Setup. See USB or RS-232 communications (p. 22) for more information.

2. Ensure the data logger is physically connected to the computer, select Yes to test communications, then click Next to initiate the test. To troubleshoot an unsuccessful test, see Tips and troubleshooting (p. 158).

3. With a successful connection, the Connection Time with the data logger is displayed in the lower left corner of the wizard. Click Next.

4.  The Datalogger Clock window displays the time for both the data logger and the computer (server).

l The Adjusted Server Date/Time displays the current reading of the clock for the computer running your data logger support software. If the Datalogger Date/Time and Adjusted Server Date/Time don't match, click Set Datalogger Clock to set the data logger clock to the computer clock.

l Optionally, specify a positive or negative Time Zone Offset to apply when setting the data logger clock. This offset allows you to set the clock for a data logger that is in a different time zone than the computer (or to accommodate for changes in daylight saving time).

5. Click Next.

13. Testing communications with EZSetup 61

6. The data logger ships with a default QuickStart program. If the data logger does not have a program, you can choose to send one by clicking Select and Send Program. Click Next.

7. LoggerNet only - Use the following instructions or watch the Scheduled/Automatic Data Collection video :

l The Datalogger Table Output Files window displays the data tables available to be collected from the data logger and the output file name. By default, all data tables set up in the data logger program will be included for collection. Make note of the Output File Name and location. Click Next.

l Check Scheduled Collection Enabled to have LoggerNet automatically collect data from the data logger on the Collection Interval entered. When the Base Date and Time are in the past, scheduled collection will begin immediately after finishing the EZSetup wizard. Do not setup a scheduled collection for this tutorial. Click Next.

8. Click Finish.

13.1 Making the software connection Once you have configured your hardware connection (see Setting up communications with the data logger (p. 21), your data logger and computer can communicate. Use the Connect screen to send a program, set the clock, view real-time data, and manually collect data.

l LoggerNet users, select Main and Connect on the LoggerNet toolbar, select the data logger from the Stations list, then Connect .

l PC400 users, select the data logger from the list and click Connect .

To disconnect, click Disconnect .

For more information see the Connect Window Tutorial .

13. Testing communications with EZSetup 62

14. Creating a Short Cut data logger program You must provide a program for the data logger in order for it to make measurements, store data, or control external devices. There are several ways to write a program. The simplest is to use the program generator called Short Cut. For more complex programming the CRBasic Editor is used. The program file may use the extension .CRB or .DLD.

Data logger programs are executed on a precise schedule termed the scan interval, based on the data logger internal clock.

Measurements are first stored in temporary memory called variables in the Public table. Data stored in variables is usually overwritten each scan. Periodically, generally on a time interval, the data logger stores data in tables. The data tables are later copied to a computer using your data logger support software.

Use Short Cut software to generate a program for your data logger. Short Cut is included with your data logger support software.

This section guides you through programming a CR350 data logger to measure the voltage of the data logger power supply, the internal temperature of the data logger, and a thermocouple. With minor changes, these steps can apply to other measurements. Use the following instructions or watch the Quickstart part 3 video .

1. Using data logger support software, launch Short Cut. l LoggerNet users, click Program then Short Cut . l PC400 users, click Short Cut .

2. Click Create New Program.

3. Select CR350 and click Next.

NOTE: The first time Short Cut is run, a prompt asks for a noise rejection choice. Select 60 Hz Noise Rejection for North America and areas using 60 Hz ac voltage. Select 50 Hz Noise Rejection for most of the Eastern Hemisphere and areas that operate at 50 Hz.

14. Creating a Short Cut data logger program 63

A second prompt lists sensor support options. Campbell Scientific, Inc. (US) is usually the best fit outside of Europe.

To change the noise rejection or sensor support option for future programs, use the Program menu.

4. A list of Available Sensors and Devices and Selected Measurements Available for Output are displayed. Battery voltage BattV and internal temperature PTemp_C are selected by default. During operation, battery and temperature should be recorded at least daily to assist in monitoring system status.

5. Use the Search feature or expand folders to locate your sensor or device. Double-click on a sensor or measurement in the Available Sensors and Devices list to configure the device (if needed) and add it to the Selected list. For the example program, expand the Sensors/Temperature folder and double-click Type T Thermocouple.

6. If the sensor or device requires configuration, a window displays with configuration options. Click Help at the bottom of the window to learn more about any field or option. For the example program, accept the default options:

l 1 Type T TC sensor l Temp_C as the Temperature label, and set the units to Deg C l PTemp_C as the Reference Temperature Measurement.

7. Click the Wiring Diagram tab to see how to wire the sensor to the data logger. With the power disconnected from the data logger, insert the wires as directed in the diagram. Ensure you clamp the terminal on the wire, not the colored insulation. Use the included flat-blade screwdriver to open and close the terminals.

8. Click OK.

9. Click Next.

10. Use the Output Setup options to specify how often to make measurements and how often outputs are to be stored. Type 1 in the How often should the data logger measure its sensor(s)? box. Leave the units as Seconds.

11. Multiple output intervals can be specified, one for each output table (Table1 and Table2 tabs). For the example program, only one table is needed. Click the Table2 tab and click Delete Table.

12. In the Table Name box, type a name for the table. For example: OneMin.

13. Select a Data Output Storage Interval. For example: 1 minute.

14. Creating a Short Cut data logger program 64

14. Click Next.

15. Select a measurement from the Selected Measurements Available for Output list, then click an output processing option to add the measurement to the Selected Measurements for Output list. For the example program, select BattV and click the Minimum button to add it to the Selected Measurements for Output list. Do not store the exact time that the minimum occurred. Repeat this procedure for an Average PTemp_C and Average Temp_C.

16. Click Finish and give the program a meaningful name such as a site identifier. Click Save.

17. If LoggerNet or other data logger support software is running on your computer, and the data logger is connected to the computer (see Making the software connection (p. 62) for more information), you can choose to send the program. Generally it is best to collect data first; so, we recommend sending the program using the instructions in Sending a program to the data logger (p. 66). Click No, do not send the program to the data logger.

TIP: It is good practice to always retrieve data from the data logger before sending a program; otherwise, data may be lost. See Collecting data (p. 69) for detailed instruction.

18. Make note of the newly generated program location and filename. By default, programs created with Short Cut are stored in C:\Campbellsci\SCWin\.

19. Close Short Cut.

If your data acquisition requirements are simple, you can probably create and maintain a data logger program exclusively with Short Cut. If your data acquisition needs are more complex, the files that Short Cut creates are a great source for programming code to start a new program or add to an existing custom program using CRBasic. See the CRBasic Editor help for detailed information on program structure, syntax, and each instruction available to the data logger https://help.campbellsci.com/crbasic/cr350/ .

14. Creating a Short Cut data logger program 65

NOTE: Once a Short Cut generated program has been edited with CRBasic Editor, it can no longer be modified with Short Cut.

14.1 Sending a program to the data logger TIP: It is good practice to always retrieve data from the data logger before sending a program; otherwise, data may be lost. See Collecting data (p. 69) for detailed instruction.

Some methods of sending a program give the option to retain data when possible. Regardless of the program upload tool used, data will be erased when a new program is sent if any change occurs to one or more data table structures in the following list:

l Data table name(s) l Data output interval or offset l Number of fields per record

l Number of bytes per field l Field type, size, name, or position l Number of records in table

Use the following instructions or watch the Quickstart part 4 video .

1. Connect the data logger to your computer (see Making the software connection (p. 62) for more information).

l LoggerNet users, select Main and Connect on the LoggerNet toolbar, select the data logger from the Stations list, then Connect .

l PC400 users, select the data logger from the list and click Connect .

2. LoggerNet users, click Send New... (located in the Current Program section on the right side of the window).

PC400 users, click Send Program... (located in the Datalogger Program section on the right side of the window).

3. PC400 users, confirm that you would like to proceed and erase all data tables saved on the data logger. Click Yes.

4. Navigate to the program, select it, and click Open. For example: navigate to C:\Campbellsci\SCWin and select MyTemperature.CRB. Click Open.

5. LoggerNet users, confirm that you would like to proceed and erase all data tables saved on the data logger. Click Yes.

6. The program is sent and compiled.

14. Creating a Short Cut data logger program 66

7. Review the Compile Results window for errors, messages and warnings.

8. LoggerNet users, click Details, select the Table Fill Times tab.

PC400 user click OK then click Station Status , select the Table Fill Times tab.

Ensure that the times shown are expected for your application. Click OK.

After sending a program, it is a good idea to monitor the Public table to make sure sensors are taking good measurements. See Working with data (p. 68) for more information.

14. Creating a Short Cut data logger program 67

15. Working with data 15.1 Default data tables By default, the data logger includes three tables: Public, Status, and DataTableInfo. Each of these tables only contains the most recent measurements and information.

l The Public table is configured by the data logger program, and updated at the scan interval set within the data logger program. It shows measurement and calculation results as they are made.

l The Status table includes information about the health of the data logger and is updated only when viewed.

l The DataTableInfo table reports statistics related to data tables. It also only updates when viewed.

l User-defined data tables update at the schedule set within the program.

For information on collecting your data, see Collecting data (p. 69).

Use these instructions or follow the Connect Window tutorial to monitor real-time data.

LoggerNet users, select the Main category and Connect on the LoggerNet toolbar, then select the data logger from the Stations list, then click Connect . Once connected, select a table to view in the Table Monitor.

PC400 users click Connect , then Monitor Data. When this tab is first opened for a data logger, values from the Public table are displayed. To view data from other tables, click Add  , select a table or field from the list, then drag it into a cell on the Monitor Data tab.

15. Working with data 68

15.2 Collecting data The data logger writes to data tables based on intervals and conditions set in the CRBasic program (see Creating data tables in a program (p. 77) for more information). After the program has been running for enough time to generate data records, data may be collected by using data logger support software. During data collection, data is copied to the computer and still remains on the data logger. Collections may be done manually, or automatically through scheduled collections set in LoggerNet Setup. Use these instruction or follow the Collect Data Tutorial .

15.2.1 Collecting data using LoggerNet 1. From the LoggerNet toolbar, click Main and Connect , select the data logger from the

Stations list, then Connect .

2. Click Collect Now .

3. After the data is collected, the Data Collection Results window displays the tables collected and where they are stored on the computer.

4. Select a data file, then View File to view the data. See Viewing historic data (p. 70)

15.2.2 Collecting data using PC400 1. Click Connect on the main PC400 window.

2. Go to the Collect Data tab.

15. Working with data 69

3. By default, all output tables set up in the data logger program are selected for collection. Typically, the default tables (DataTableInfo, Public, and Status) are not collected.

4. Select an option for What to Collect. Either option creates a new file if one does not already exist.

l New data from data logger (Append to data files): This is the default, and most often used option. Collect only the data, in the selected tables, stored since the last data collection from this instance of PC400 and append this data to the end of the existing files on the computer.

l All data from data logger (Overwrite data files): Collects all of the data in the selected tables and overwrites (or replaces) the existing data files on the computer.

5. Click Start Data Collection.

6. After the data is collected, the Data Collection Results window displays the tables collected and where they are stored on the computer.

7. Select a data file, then View File to view the data. See Viewing historic data (p. 70)

15.3 Viewing historic data View Pro contains tools for reviewing data in tabular form as well as several graphical layouts for visualization. Use these instructions or follow the View Data Tutorial .

Once the data logger has had enough time to store multiple records collect and review the data.

1. To view the most recent data, connect the data logger to your computer and collect your data (see Collecting data (p. 69) for more information).

2. Open View Pro: l LoggerNet users click Data then View Pro on the LoggerNet toolbar. l PC400 users click View Data Files via View Pro .

3. Click Open , navigate to the directory where you saved your tables (the default directory is C:\Campbellsci\[your data logger software application]). For example: navigate to the C:\Campbellsci\LoggerNet folder and select OneMin.dat.

4. Click Open.

15. Working with data 70

15.4 Data types and formats Data takes different formats as it is created and manipulated in the data logger, as it is displayed through software, and as it is retrieved to a computer file. It is important to understand the different data types, formats and ranges, and where they are used.

Table 15-1: Data types, ranges and resolutions

Data type Description Range Resolution Where used

Float IEEE four-byte floating point

+/1.8 *10^38 to +/3.4 *10^38

24 bits (about 7 digits) variables

Long four-byte signed integer

2,147,483,648 to +2,147,483,647 1 bit variables, output

Boolean four-byte signed integer 1, 0 True (1) or

False ( 0) variables,

sample output

String ASCII String variables, sample output

IEEE4 IEEE four-byte floating point

+/1.8 *10^38 to +/3.4 *10^38

24 bits (about 7 digits)

internal calculations, output

IEEE8 IEEE eight-byte floating point

+/2.23 *10^308 to +/1.8 *10^308

53 bits (about 16 digits)

internal calculations, output

FP2 Campbell Scientific two-byte floating point 7999 to +7999 13 bits

(about 4 digits) output

NSEC eight-byte time stamp nanoseconds variables, output

15.4.1 Variables In CRBasic, the declaration of variables (via the DIM or the PUBLIC statement) allows an optional type descriptor As that specifies the data type. The data types are Float, Long, Boolean, and String. The default type is Float.

Example variables declared with optional data types Public PTemp As Float, Batt_volt Public Counter As Long Public SiteName As String * 24

As Float specifies the default data type. If no data type is explicitly specified with the As statement, then Float is assumed. Measurement variables are stored and calculations are

15. Working with data 71

performed internally in IEEE 4 byte floating point with some operations calculated in double precision. A good rule of thumb is that resolution will be better than 1 in the seventh digit.

As Long specifies the variable as a 32 bit integer. There are two possible reasons a user would do this: (1) speed, since the CR350 Operating System can do math on integers faster than with Floats, and (2) resolution, since the Long has 31 bits compared to the 24 bits in the Float. A good application of the As Long declaration is a counter that is expected to get very large.

As Boolean specifies the variable as a 4 byte Boolean. Boolean variables are typically used for flags and to represent conditions or hardware that have only 2 states (e.g., On/Off, High/Low). A Boolean variable uses the same 32 bit long integer format as a Long but can set to only one of two values: True, which is represented as 1, and false, which is represented with 0. When a Float or Long integer is converted to a Boolean, zero is False (0), any non-zero value will set the Boolean to True (-1). The Boolean data type allows application software to display it as an On/Off, True/False, Red/Blue, etc.

The CR350 uses 1 rather than some other non-zero number because the AND and OR operators are the same for logical statements and binary bitwise comparisons. The number -1 is expressed in binary with all bits equal to 1, the number 0 has all bits equal to 0. When 1 is anded with any other number the result is the other number, ensuring that if the other number is non- zero (true), the result will be non-zero.

As String * size specifies the variable as a string of ASCII characters, NULL terminated, with an optional size specifying the maximum number of characters in the string. A string is convenient in handling serial sensors, dial strings, text messages, etc. When size is not specified, a default of 24 characters will be used (23 usable bytes and 1 terminating byte).

As a special case, a string can be declared As String * 1. This allows the efficient storage of a single character. The string will take up 4 bytes in memory and when stored in a data table, but it will hold only one character.

15.4.2 Constants The Const declaration is used to assign a name that can be used in place of a value in the data logger CRBasic program. Once a value is assigned to a constant, each time the value is needed in the program, the programmer can type in the constant name instead of the value itself. The use of the Const declaration can make the program easier to follow, easier to modify, and more secure against unintended changes. Unlike variables, constants cannot be changed while the program is running.

Constants must be defined before they are used in the program. Constants can be defined in a ConstTable/EndConstTable construct allowing them to be changed using the keyboard display, the C command in terminal mode, or via a custom menu.

15. Working with data 72

Constants can also be typed For example: Const A as Long = 9999, and Const B as String = MyString. Valid data types for constants are: Long, Float, Double, and String. Other data types return a compile error.

When the CRBasic program compiles, the compiler determines the type of the constant (Long, Float, Double, or String) from the expression. This data type is communicated to the software. The software formats or restricts the input based on the data type communicated to it by the data logger.

You can declare a constant with or without specifying a data type. If a data type is not specified, the compiler determines the data type from the expression. For example: Const A = 9999 will use the Long data type. Const A = 9999.0 will use the Floatdata type.

15.4.3 Data storage Data can be stored in IEEE4 or FP2 formats. The format is selected in the program instruction that outputs the data, such as Minimum() and Maximum().

Additionally, data can be stored in IEEE8 format when high precision is needed. For more information on double-precision math, watch an instructional video at: http://www.campbellsci.com/videos/double-precision  .

While Float (IEEE 4 byte floating point) is used for variables and internal calculations, FP2 is adequate for most stored data. Campbell Scientific 2 byte floating point (FP2) provides 3 or 4 significant digits of resolution, and requires half the memory space as IEEE4 (2 bytes per value vs 4).

Table 15-2: Resolution and range limits of FP2 data

Zero Minimum magnitude Maximum Magnitude

0.000 0.001 7999.

The resolution of FP2 is reduced to 3 significant digits when the first (left most) digit is 8 or greater. Thus, it may be necessary to use IEEE4 output or an offset to maintain the desired resolution of a measurement. For example, if water level is to be measured and output to the nearest 0.01 foot, the level must be less than 80 feet for FP2 output to display the 0.01 foot increment. If the water level is expected to range from 50 to 90 feet the data could either be output in IEEE4 or could be offset by 20 feet (transforming the range to 30 to 70 feet).

15. Working with data 73

Table 15-3: FP2 decimal location

Absolute value  Decimal location

0 7.999 X.XXX

8 79.99 XX.XX

80 799.9 XXX.X

800 7999. XXXX.

NOTE: String and Boolean variables can be output with the Sample() instruction. Results of Sampling a Boolean variable will be either -1 or 0 in the collected Data Table. A Boolean displays in the Numeric Monitor Public and Data Tables as true or false.

15.5 About data tables A data table is essentially a file that resides in data logger memory (for information on data table storage, see Data memory (p. 79)). The file consists of five or more rows. Each row consists of columns, or fields. The first four rows constitute the file header. Subsequent rows contain data records. Data tables may store individual measurements, individual calculated values, or summary data such as averages, maximums, or minimums.

Typically, files are written to based on time or event. The number of data tables is limited to 20, which includes the Public, Status, DataTableInfo, and ConstTable. You can retrieve data based on a schedule or by manually choosing to collect data using data logger support software (see Collecting data (p. 69)).

Table 15-4: Example data

TOA5, MyStation, CR350, 1142, CR350.Std.01, CPU:MyTemperature.CRB, 1958, OneMin

TIMESTAMP RECORD BattV_Avg PTemp_C_Avg Temp_C_Avg

TS RN Volts Deg C Deg C

Avg Avg Avg

2019-03-08 14:24:00 0 13.68 21.84 20.71

2019-03-08 14:25:00 1 13.65 21.84 20.63

2019-03-08 14:26:00 2 13.66 21.84 20.63

2019-03-08 14:27:00 3 13.58 21.85 20.62

15. Working with data 74

Table 15-4: Example data

TOA5, MyStation, CR350, 1142, CR350.Std.01, CPU:MyTemperature.CRB, 1958, OneMin

TIMESTAMP RECORD BattV_Avg PTemp_C_Avg Temp_C_Avg

TS RN Volts Deg C Deg C

Avg Avg Avg

2019-03-08 14:28:00 4 13.64 21.85 20.52

2019-03-08 14:29:00 5 13.65 21.85 20.64

15.5.1 Table definitions Each data table is associated with descriptive information, referred to as atable definition, that becomes part of the file header (first few lines of the file) when data is downloaded to a computer. Table definitions include the data logger type and OS version, name of the CRBasic program associated with the data, name of the data table (limited to 20 characters), and alphanumeric field names.

15.5.1.1 Header rows The first header row of the data table is the environment line, which consists of eight fields. The following list describes the fields using the previous table entries as an example:

l TOA5 - Table output format. Changed via LoggerNet Setup Standard View, Data Files tab.

l MyStation - Station name. Changed via LoggerNet Setup, Device Configuration Utility, or CRBasic program.

l CR350 - Data logger model. l 1142 - Data logger serial number. l CPU:MyTemperature.CRB - Data logger program name. Changed by sending a new

program (see Sending a program to the data logger (p. 66) for more information). l 1958 - Data logger program signature. Changed by revising a program or sending a new

program (see Sending a program to the data logger (p. 66) for more information). l OneMin - Table name as declared in the running program (see Creating data tables in a

program (p. 77) for more information).

The second header row reports field names. Default field names are a combination of the variable names (or aliases) from which data is derived, and a three-letter suffix. The suffix is an abbreviation of the data process that outputs the data to storage. A list of these abbreviations follows in Data processing abbreviations (p. 76).

15. Working with data 75

If a field is an element of an array, the field name will be followed by a indices within parentheses that identify the element in the array. For example, a variable named Values, which is declared as a two-by-two array in the data logger program, will be represented by four field names: Values(1,1), Values(1,2), Values(2,1), and Values(2,2). There will be one value in the second header row for each scalar value defined by the table.

If the default field names are not acceptable to the programmer, the FieldNames() instruction can be used in the CRBasic program to customize the names. TIMESTAMP, RECORD, BattV_ Avg, PTemp_C_Avg, and Temp_C_Avg are the default field names in the previous Example data (p. 74).

The third header row identifies engineering units for that field. These units are declared at the beginning of a CRBasic program using the optional Units() declaration. In Short Cut, units are chosen when sensors or measurements are added. Units are strictly for documentation. The data logger does not make use of declared units, nor does it check their accuracy.

The fourth header row reports abbreviations of the data process used to produce the field of data.

Table 15-5: Data processing abbreviations

Data processing name Abbreviation

Totalize Tot

Average Avg

Maximum Max

Minimum Min

Sample at Max or Min SMM

Standard Deviation Std

Moment MMT

Sample No abbreviation

Histogram1 Hst

Histogram4D H4D

FFT FFT

Covariance Cov

Level Crossing LCr

WindVector WVc

15. Working with data 76

Table 15-5: Data processing abbreviations

Data processing name Abbreviation

Median Med

ET ETsz

Solar Radiation (from ET) RSo

Time of Max TMx

Time of Min TMn

15.5.1.2 Data records Subsequent rows are called data records. They include observed data and associated record keeping. The first field is a time stamp (TS), and the second field is the record number (RN).

The time stamp shown represents the time at the beginning of the scan in which the data is written. Therefore, in record number 3 in the previous Example data (p. 74), Temp_C_Avg shows the average of the measurements taken over the minute beginning at 14:26:01 and ending at 14:27:00. As another example, consider rainfall measured every second with a daily total rainfall recorded in a data table written at midnight. The record time stamped 2019-03-08 00:00:00 will contain the total rainfall beginning at 2019-03-07 00:00:01 and ending at 2019-03-08 00:00:00.

15.6 Creating data tables in a program Data is stored in tables as directed by the CRBasic program. In Short Cut, data tables are created in the Output steps (see Creating a Short Cut data logger program (p. 63)). Data tables are created within the CRBasic data logger program using the DataTable()/EndTable instructions. They are placed after variable declarations and before the BeginProg instruction.

Public 'Declare Public Variables

DataTable() 'Output Trigger Condition(s)

    'Output Processing Instructions EndTable

'Main Program BeginProg

Between DataTable() and EndTable() are instructions that define what data to store and under what conditions data is stored. A data table must be called by the CRBasic program for data processing and storage to occur. Typically, data tables are called by the CallTable() instruction once each program scan.

15. Working with data 77

See the CRBasic Editor help for detailed instruction information and program examples: https://help.campbellsci.com/crbasic/cr350/ .

Use the DataTable() instruction to define the number of records, or rows, allocated to a data table. You can set a specific number of records, which is recommended for conditional tables, or allow your data logger to auto-allocate table size. With auto-allocation, the data logger balances the memory so the tables fill up (newest data starts to overwrite the oldest data) at about the same time. It is recommended you reserve the use of auto-allocation for data tables that store data based only on time (tables that store data based on the DataInterval() instruction). Event or conditional tables are usually set to a fixed number of records. View data table fill times for your program on the Station Status > Table Fill Times tab (see Checking station status (p. 159) for more information). An example of the Table Fill Times tab follows. For information on data table storage see Data memory (p. 79).

For additional information on data logger memory, visit the Campbell Scientific blog article, How to Know when Your Datalogger Memory is Getting Full .

15. Working with data 78

16. Data memory The data logger includes three types of memory: RAM, Flash, and Serial Flash. The USB host port supports optional portable storage devices such as USB flash or thumb drives.

l CPU Drive: 50 MB serial flash l Data Storage: 50 MB serial flash l Operating System: 2 MB flash l Settings, Calibration, TLS Certificates and Key, System Information: 3 MB serial flash l Background Tasks and Table Information, Buffers, System Memory, Program Variables:

7 MB RAM

16.1 Data tables Measurement data is primarily stored in data tables within serial flash. Data is usually erased from this area when a program is sent to the data logger. Final-data memory for the CR350 is organized in 4 KB sectors. Each sector is rated for 100,000 serial flash erases.

During data table initialization, memory sectors are assigned to each data table according to the parameters set in the program. Program options that affect the allocation of memory include the Size parameter of the DataTable() instruction, the Interval and Units parameters of the DataInterval() instruction. The data logger uses those parameters to assign sectors in a way that maximizes the life of its memory. See the CRBasic Editor help for detailed instruction information and program examples: https://help.campbellsci.com/crbasic/cr350/ .

By default, data memory sectors are organized as ring memory. When the ring is full, oldest data is overwritten by newest data. Using the FillStop statement sets a program to stop writing to the data table when it is full, and no more data is stored until the table is reset. To see the total number of records that can be stored before the oldest data is overwritten, or to reset tables, go to Station Status > Table Fill Times in your data logger support software.

Data concerning the data logger memory are posted in the Status and DataTableInfo tables. For additional information on these tables, see Information tables and settings (advanced) (p. 190).

For additional information on data logger memory, visit the Campbell Scientific blog article, How to Know when Your Datalogger Memory is Getting Full .

16. Data memory 79

16.2 Flash memory The data logger operating system is stored in a separate section of flash memory. To update the operating system, see Updating the operating system (p. 153).

Serial flash memory holds the CPU drive, web page, and data logger settings. Because flash memory has a limited number of write/erase cycles, care must be taken to avoid continuously writing to files on the CPU drive.

16.2.1 CPU drive The serial flash memory CPU drive contains data logger programs and other files. This memory is managed in File Control.

NOTE: When writing to files under program control, take care to write infrequently to prevent premature failure of serial flash memory. Internal chip manufacturers specify the flash technology used in Campbell Scientific CPU: drives at about 100,000 write/erase cycles. While Campbell Scientific's in-house testing has found the manufacturers' specifications to be very conservative, it is prudent to note the risk associated with repeated file writes via program control.

See also Information tables and settings (advanced) (p. 190).

Also, see System specifications (p. 227) for information on data logger memory.

16.3 USB host (USB: drive) USB host provides portable data storage on a USB thumb drive. A FAT32-formatted USB thumb drive can be inserted into the host port and will show up as a drive (USB:) in file-related operations. Measurement data is stored on USB: as discrete files by using the TableFile() instruction. Files on USB: can be collected by inserting the thumb drive into a computer and copying the files.

USB: can be used in all CRBasic file-access-related instructions. Because of data reliability concerns in non-industrial rated drives, this drive is not intended for long-term unattended data storage. Rather, configure Tablefile() for milking (plug-and-pull) to periodically collect data. Files on USB: are not affected by program recompilation or formatting of other drives.

See the CRBasic Editor help for detailed instruction information and program examples:

https://help.campbellsci.com/crbasic/cr350/

16. Data memory 80

16.3.1 USB host precautions Observe the following precautions when using an optional USB thumb drive:

l When the data logger is powered and a USB thumb drive is connected for plug and pull data-collection mode, the Power LED will flash red during read/write activity.

l Do not remove a USB drive while the drive is active, or data corruption and damage to the USB drive may result.

16.3.2 LED indicator When the data logger is powered and a USB thumb drive is connected for data collection, the Power LED will rapidly flash red indicating read/write activity. It is safe to remove the USB flash drive when the LED flashing returns to normal power indication mode (see Power LED indicator (p. 12)). The data logger will write new data files to the USB flash drive again once it is removed and reinserted. Do not leave the USB flash drive attached long term.

16.3.3 Data type collection speed File type declared in the Tablefile() TFOption parameter can affect plug and pull data- collection speed. Data is buffered in the data logger as binary. While data is collected, the data logger converts the binary data to the declared data type. TOB1 options are binary and require very little processor overhead to convert from the binary buffer. TOA5, CSIXML, and JSON are ASCII options and are much slower since they consume significant processor overhead to convert to ASCII from the binary buffer. CSIXML is especially slow. The effects on collection time will be particularly noticeable if the data logger is running a long or complex program. In short, if large files need collection, using the TOB1 format may save considerable time. Consult the Loggernetmanual for options available to convert TOB1 data files on the computer to easier-to- read formats.

16.3.4 Skipped scans CR350 programs run in sequential mode. In sequential mode, the Tablefile() instruction must finish before continuing to the next instruction, resulting in skipped scans unless the scan interval is long enough to complete all communications, measurement processing, and Tablefile() tasks. Sequential mode ignores any scan buffers that may be assigned.

To avoid skipped scans, ensure the scan interval in the data logger program is long enough to include writing to the USB thumb drive. We recommend adding at least 100 ms to the program scan interval for each instance of the Tablefile() instruction to allow sufficient time to execute and process each Tablefile() instruction.

16. Data memory 81

16.3.5 Formatting drives 32 GB or larger Windows does not support creating a FAT32 partition on a 32 GB or greater drive. The work- around is to use a Windows computer to format the drive as NTFS (NT file system). Then use the data logger to format the drive as FAT32.

16. Data memory 82

17. Measurements 17.1 Voltage measurements 83

17.2 Current-loop measurements 85

17.3 Resistance measurements 87

17.4 Period-averaging measurements 93

17.5 Pulse measurements 93

17.6 Vibrating wire measurements 99

17.1 Voltage measurements Voltage measurements are made using an Analog-to-Digital Converter (ADC). A high- impedance Programmable-Gain Amplifier (PGA) amplifies the signal. Internal multiplexers route individual terminals within the amplifier. The CRBasic measurement instruction controls the ADC gain and configuration either single-ended or differential input. Information on the differences between single-ended and differential measurements can be found here: Deciding between single-ended or differential measurements (p. 178).

A voltage measurement proceeds as follows:

1. Set PGA gain for the voltage range selected with the CRBasic measurement instruction parameter Range. Set the ADC for the first notch frequency selected with fN1.

2. If used, such as with bridge measurements, turn on excitation to the level selected with ExmV.

3. Multiplex selected terminals (SEChan or DiffChan).

4. Delay for the entered settling time (SettlingTime).

5. Perform the analog-to-digital conversion.

6. Repeat for input reversal as determined by parameter RevDiff.

7. Apply multiplier (Mult) and offset (Offset) to measured result.

Conceptually, analog voltage sensors output two signals: high and low. For example, a sensor that outputs 1000 mV on the high signal and 0 mV on the low has an overall output of 1000 mV. A sensor that outputs 2000 mV on the high signal and 1000 mV on the low also has an overall output of 1000 mV. Sometimes, the low signal is simply sensor ground (0 mV). A single-ended

17. Measurements 83

measurement measures the high signal with reference to ground; the low signal is tied to ground. A differential measurement measures the high signal with reference to the low signal. Each configuration has a purpose, but the differential configuration is usually preferred.

In general, use the smallest input range that accommodates the full-scale output of the sensor. This results in the best measurement accuracy and resolution (see Analog measurement specifications (p. 231) for more information).

A set overhead reduces the chance of overrange. Overrange limits are available in the specifications. The data logger indicates a measurement overrange by returning a NAN for the measurement.

WARNING: Sustained voltages in excess of -6 V or +9 V (SE1, SE2), 17 V (SE3 to SE4) applied to terminals configured for analog input will damage CR350 circuitry.

17.1.1 Single-ended measurements A single-ended measurement measures the difference in voltage between the terminal configured for single-ended input and the reference ground. For example, single-ended channel 1 is comprised of terminals SE 1 and . Single-ended terminals are labeled in blue. For more information, see Wiring panel and terminal functions (p. 8). The single-ended configuration is used with the following CRBasic instructions:

l VoltSE() l BrHalf() l BrHalf3W() l TCSE() l Therm107() l Therm108() l Therm109()

See the CRBasic Editor help for detailed instruction information and program examples: https://help.campbellsci.com/crbasic/cr350/ .

17. Measurements 84

17.1.2 Differential measurements A differential measurement measures the difference in voltage between two input terminals. For example, DIFF channel 1 is comprised of terminals 1H and 1L, with 1H as high and 1L as low. For more information, see Wiring panel and terminal functions (p. 8). The differential configuration is used with the following CRBasic instructions:

l VoltDiff() l BrFull() l BrFull6W() l BrHalf4W() l TCDiff()

For more information on voltage measurements, see Improving voltage measurement quality (p. 177) and Analog measurement specifications (p. 231).

17.2 Current-loop measurements Terminals SE1 and SE2 can be configured to make analog current measurements using the CurrentSE() instruction. Current is measured across the 100 resistor with 140 total resistance to ground. The following image shows a simplified schematic of a current measurement.

Use a CURS100 terminal input module when an application needs more than 2 current inputs or measurements. For detailed instructions, see http://www.campbellsci.com/curs100 .

17.2.1 Voltage ranges for current measurements The data logger measures the current through the use of a 100 resistor. Thus, like a single- ended voltage instruction, it requires a voltage range option. In general, use the smallest fixed-

17. Measurements 85

input range that accommodates the full-scale output of the transmitter. This results in the best measurement accuracy and resolution.

To select the appropriate voltage range, the expected current output range must be known. Using Ohms Law, multiply the maximum expected current by 100 to find the maximum voltage to be measured. Because the maximum voltage input is 2500 mV, the maximum current input must be 25 mA or less.

17.2.2 Example current-loop measurement connections The following table shows example schematics for connecting typical current sensors and devices. See also Current-loop measurement specifications (p. 234).

Sensor Type Connection Example

2-wire transmitter using data logger power

2-wire transmitter using external power

3-wire transmitter using data logger power

17. Measurements 86

Sensor Type Connection Example

3-wire transmitter using external power

4-wire transmitter using data logger power

4-wire transmitter using external power

17.3 Resistance measurements Bridge resistance is determined by measuring the difference between a known voltage applied to the excitation (input) of a resistor bridge and the voltage measured on the output arm. The data logger supplies a precise voltage excitation via VX terminals. Return voltage is measured on

17. Measurements 87

analog input terminals configured for single-ended (SE) or differential (DIFF) input. The result of the measurement is a ratio of measured voltages.

See also Resistance measurement specifications (p. 233).

17.3.1 Resistance measurements with voltage excitation CRBasic instructions for measuring resistance with voltage excitation include:

l BrHalf() - half bridge l BrHalf3W() - three-wire half bridge l BrHalf4W() - four-wire half bridge l BrFull() - four-wire full bridge l BrFull6W() - six-wire full bridge

See the CRBasic Editor help for detailed instruction information and program examples: https://help.campbellsci.com/crbasic/cr350/ .

Resistive-Bridge Type and Circuit Diagram

CRBasic Instruction and Fundamental Relationship Relational Formulas

Half Bridge1

CRBasic Instruction: BrHalf()

Fundamental Relationship:

Three Wire Half Bridge1,2

CRBasic Instruction: BrHalf3W()

Fundamental Relationship:

17. Measurements 88

Resistive-Bridge Type and Circuit Diagram

CRBasic Instruction and Fundamental Relationship Relational Formulas

Four Wire Half Bridge1,2

CRBasic Instruction: BrHalf4W()

Fundamental Relationship:

Full Bridge1,2

CRBasic Instruction: BrFull()

Fundamental Relationship:

These relationships apply to

BrFull() and BrFull6W()

Six Wire Full Bridge1

CRBasic Instruction: BrFull6W()

Fundamental Relationship:

1 Key: Vx = excitation voltage; V1, V2 = sensor return voltages; Rf = fixed, bridge or completion resistor; Rs = variable or sensing resistor. 2 Campbell Scientific offers terminal input modules to facilitate this measurement.

17. Measurements 89

Offset voltage compensation applies to bridge measurements. RevDiff and MeasOff parameters are discussed in Minimizing offset voltages (p. 187). Much of the offset error inherent in bridge measurements is canceled out by setting RevDiff and MeasOff to True.

CRBasic Example 1: Four-Wire Full Bridge Measurement and Processing

'This program example demonstrates the measurement and 'processing of a four-wire resistive full bridge. 'In this example, the default measurement stored 'in variable X is deconstructed to determine the 'resistance of the R1 resistor, which is the variable 'resistor in most sensors that have a four-wire 'full-bridge as the active element. 'Declare Variables Public X Public X_1 Public R_1 Public R_2 = 1000 'Resistance of fixed resistor R2 Public R_3 = 1000 'Resistance of fixed resistor R3 Public R_4 = 1000 'Resistance of fixed resistor R4 'Main Program BeginProg Scan(500,mSec,1,0) 'Full Bridge Measurement: BrFull(X,1,mV2500,1,Vx1,1,2500,False,True,0,60,1.0,0.0) X_1 = ((-1 * X) / 1000) + (R_3 / (R_3 + R_4)) R_1 = (R_2 * (1 - X_1)) / X_1

NextScan EndProg

17.3.2 Strain measurements A principal use of the four-wire full bridge is the measurement of strain gages in structural stress analysis. StrainCalc() calculates microstrain () from the formula for the specific bridge configuration used. All strain gages supported by StrainCalc() use the full-bridge schematic. 'Quarter-bridge', 'half-bridge' and 'full-bridge' refer to the number of active elements in the bridge schematic. In other words, a quarter-bridge strain gage has one active element, a half- bridge has two, and a full-bridge has four.

StrainCalc() requires a bridge-configuration code. The following table shows the equation used by each configuration code. Each code can be preceded by a dash (-). Use a code without the dash when the bridge is configured so the output decreases with increasing strain. Use a dashed code when the bridge is configured so the output increases with increasing strain. A dashed code sets the polarity of Vr to negative.

17. Measurements 90

Table 17-1: StrainCalc() configuration codes

BrConfig Code Configuration

1

Quarter-bridge strain gage:

2

Half-bridge strain gage. One gage parallel to strain, the other at 90 to strain:

3

Half-bridge strain gage. One gage parallel to +, the other parallel to -:

4

Full-bridge strain gage. Two gages parallel to +, the other two parallel to -:

17. Measurements 91

Table 17-1: StrainCalc() configuration codes

BrConfig Code Configuration

5

Full-bridge strain gage. Half the bridge has two gages parallel to + and -, and the other half to + and -

6

Full-bridge strain gage. Half the bridge has two gages parallel to + and - , and the other half to - and +:

Where: : Poisson's Ratio (0 if not applicable). GF: Gage Factor. Vr: 0.001 (Source-Zero) if BRConfig code is positive (+).

Vr: 0.001 (Source-Zero) if BRConfig code is negative ().

and where: "source": the result of the full-bridge measurement (X = 1000 V1 / Vx) when multiplier = 1 and offset = 0. "zero": gage offset to establish an arbitrary zero.

17.3.3 Accuracy for resistance measurements Consult the following technical papers for in-depth treatments of several topics addressing voltage measurement quality:

l Preventing and Attacking Measurement Noise Problems l Benefits of Input Reversal and Excitation Reversal for Voltage Measurements l Voltage Measurement Accuracy, Self- Calibration, and Ratiometric Measurements

NOTE: Error discussed in this section and error-related specifications of the CR350 do not include error introduced by the sensor, or by the transmission of the sensor signal to the data logger.

For accuracy specifications of ratiometric resistance measurements, see Resistance measurement specifications (p. 233). Voltage measurement is variable V1 or V2 in resistance measurements. Offset is the same as that for simple analog voltage measurements.

17. Measurements 92

Assumptions that support the ratiometric-accuracy specification include:

l Data logger is within factory calibration specification. l Effects due to the following are not included in the specification:

o Bridge-resistor errors o Sensor noise o Measurement noise

17.4 Period-averaging measurements Use PeriodAvg() to measure the period (in microseconds) or the frequency (in Hz) of a signal on a single-ended channel. For these measurements, the data logger uses a high-frequency digital clock to measure time differences between signal transitions, whereas pulse-count measurements simply accumulate the number of counts. As a result, period-average measurements offer much better frequency resolution per measurement interval than pulse- count measurements. See also Pulse measurements (p. 93).

SE 1-4 terminals on the data logger are configurable for measuring the period of a signal.

See also Period-averaging measurement specifications (p. 233).

TIP: Both pulse count and period-average measurements are used to measure frequency output sensors. However, their measurement methods are different. Pulse count measurements use dedicated hardware - pulse count accumulators, which are always monitoring the input signal, even when the data logger is between program scans. In contrast, period-average measurements use program instructions that only monitor the input signal during a program scan. Consequently, pulse count scans can occur less frequently than period-average scans. Pulse counters may be more susceptible to low-frequency noise because they are always "listening", whereas period-averaging measurements may filter the noise by reason of being "asleep" most of the time.

Pulse count measurements are not appropriate for sensors that are powered off between scans, whereas period-average measurements work well since they can be placed in the scan to execute only when the sensor is powered and transmitting the signal.

17.5 Pulse measurements The output signal generated by a pulse sensor is a series of voltage waves. The sensor couples its output signal to the measured phenomenon by modulating wave frequency. The data logger detects the state transition as each wave varies between voltage extremes (high-to-low or low- to-high). Measurements are processed and presented as counts, frequency, or timing data. Both

17. Measurements 93

pulse count and period-average measurements are used to measure frequency-output sensors. For more information, see Period-averaging measurements (p. 93).

The data logger includes terminals that are configurable for pulse input as shown in the following image.

Table 17-2: Pulse input terminals and the input types they can measure

Input Type Pulse Input Terminal

High-frequency

C (all)

SE 1-4 P_SW P_LL

Low-level AC P_LL

Switch-closure C (all)

P_SW

Using the PulseCount() instruction, P_LL, P_SW, SE 1-4, and C terminals are configurable for pulse input to measure counts or frequency. Maximum input frequency is dependent on input voltage. If pulse input voltages exceed the maximum voltage, third-party external-signal conditioners should be employed. Do not measure voltages greater than 20 V.

17. Measurements 94

Terminals configured for pulse input have internal filters that reduce electronic noise, and thus reduce false counts. Internal AC coupling is used to eliminate DC offset voltages. For tips on working with pulse measurements, see Pulse measurement tips (p. 98).

Output can be recorded as counts, frequency or a running average of frequency.

See also Pulse measurement specifications (p. 234).

See the CRBasic Editor help for detailed instruction information and program examples: https://help.campbellsci.com/crbasic/cr350/ .

17.5.1 Low-level AC measurements Low-level AC (alternating current or sine-wave) signals can be measured on P_LL terminals. AC generator anemometers typically output low-level AC.

Measurement output options include the following:

l Counts l Frequency (Hz) l Running average

Rotating magnetic-pickup sensors commonly generate ac voltage ranging from millivolts at low- rotational speeds to several volts at high-rotational speeds.

CRBasic instruction: PulseCount(). See the CRBasic Editor help for detailed instruction information and program examples: https://help.campbellsci.com/crbasic/cr350/ .

Low-level AC signals cannot be measured directly by C terminals. Peripheral terminal expansion modules, such as the Campbell Scientific LLAC4, are available for converting low-level AC signals to square-wave signals measurable by C terminals.

For more information, see Pulse measurement specifications (p. 234).

17.5.2 High-frequency measurements High-frequency (square-wave) signals can be measured on terminals: 

l P_LL, P_SW, SE 1-4 or C

Common sensors that output high-frequency pulses include:

l Photo-chopper anemometers l Flow meters

Measurement output optionss include counts, frequency in hertz, and running average.

l CRBasic instruction: PulseCount()

17. Measurements 95

17.5.3 Switch-closure and open-collector measurements Switch-closure and open-collector (also called current-sinking) signals can be measured on terminals:

l P_SW or C

Mechanical switch-closures have a tendency to bounce before solidly closing. Unless filtered, bounces can cause multiple counts per event. The data logger automatically filters bounce. Because of the filtering, the maximum switch-closure frequency is less than the maximum high- frequency measurement frequency. Sensors that commonly output a switch-closure or an open- collector signal include:

l Tipping-bucket rain gages l Switch-closure anemometers l Flow meters

Data output options include counts, frequency (Hz), and running average.

17.5.3.1 P_SW Terminal An internal 47 k pull-up resistor pulls an input to 3.3 VDC with the switch open, whereas a switch-closure to ground pulls the input to 0 V.

l CRBasic instruction: PulseCount(). See the CRBasic Editor help for detailed instruction information and program examples: https://help.campbellsci.com/crbasic/cr350/ .

Switch Closure on P Terminal Open Collector on P Terminal

17.5.3.2 C terminals Switch-closure measurements on C terminals require a 100 k pull-up resistor to 12 V. Switch- closure mode is a special case edge-count function that measures dry-contact switch-closures or open collectors. The operating system filters bounces.

17. Measurements 96

l CRBasic instruction: PulseCount().

See alsoPower output specifications (p. 230).

17.5.4 Quadrature measurements The Quadrature() instruction is used to measure shaft or rotary encoders. A shaft encoder outputs a signal to represent the angular position or motion of the shaft. Each encoder will have two output signals, an A line and a B line. As the shaft rotates the A and B lines will generate digital pulses that can be read, or counted, by the data logger.

In the following example, channel A leads channel B, therefore the encoder is determined to be moving in a clockwise direction. If channel B led channel A, it would be determined that the encoder was moving in a counterclockwise direction.

Terminals SE1 and SE2 or C1 and C2 can be configured as digital pairs to monitor the two channels of an encoder. The Quadrature() instruction can return:

l The accumulated number of counts from channel A and channel B. Count will increase if channel A leads channel B. Count will decrease if channel B leads channel A.

l The net direction. l Number of counts in the A-leading-B direction. l Number of counts in the B-leading-A direction.

Counting modes:

l Counting the increase on rising edge of channel A when channel A leads channel B. Counting the decrease on falling edge of channel A when channel B leads channel A.

l Counting the increase at each rising and falling edge of channel A when channel A leads channel B. Counting the decrease at each rising and falling edge of channel A when channel A leads channel B.

17. Measurements 97

l Counting the increase at each rising and falling edge of both channels when channel A leads channel B. Counting the decrease at each rising and falling edge of both channels when channel B leads channel A.

For more information, see Digital input/output specifications (p. 236).

17.5.5 Pulse measurement tips The PulseCount() instruction uses dedicated 32-bit counters to accumulate all counts over the programmed scan interval. The resolution of pulse counters is one count. Counters are read at the beginning of each scan and then cleared. Counters will overflow if accumulated counts exceed 4,294,967,296 (232), resulting in erroneous measurements. See the CRBasic Editor help for detailed instruction information and program examples: https://help.campbellsci.com/crbasic/cr350/ .

Counts are the preferred PulseCount() output option when measuring the number of tips from a tipping-bucket rain gage or the number of times a door opens. Many pulse-output sensors, such as anemometers and flow meters, are calibrated in terms of frequency (Hz) so are usually measured using the PulseCount() frequency-output option.

Use the LLAC4 module to convert non-TTL-level signals, including low-level ac signals, to TTL levels for input to C terminals

Understanding the signal to be measured and compatible input terminals and CRBasic instructions is helpful. See Pulse input terminals and the input types they can measure (p. 94).

17.5.5.1 Input filters and signal attenuation Terminals configured for pulse input have internal filters that reduce electronic noise. The electronic noise can result in false counts. However, input filters attenuate (reduce) the amplitude (voltage) of the signal. Attenuation is a function of the frequency of the signal. Higher-frequency signals are attenuated more. If a signal is attenuated too much, it may not pass the detection thresholds required by the pulse count circuitry.See Pulse measurement specifications (p. 234) for more information. The listed pulse measurement specifications account for attenuation due to input filtering.

17.5.5.2 Pulse count resolution Longer scan intervals result in better resolution. PulseCount() resolution is 1 pulse per scan. On a 1 second scan, the resolution is 1 pulse per second. The resolution on a 10 second scan interval is 1 pulse per 10 seconds, which is 0.1 pulses per second. The resolution on a 100 millisecond interval is 10 pulses per second.

17. Measurements 98

For example, if a flow sensor outputs 4.5 pulses per second and you use a 1 second scan, one scan will have 4 pulses and the next 5 pulses. Scan to scan, the flow number will bounce back and forth. If you did a 10 second scan (or saved a total to a 10 second table), you would get 45 pulses. The total is 45 pulses for every 10 seconds. An average will correctly show 4.5 pulses per second. You wouldn't see the reading bounce on the longer time interval.

17.6 Vibrating wire measurements The data logger can measure vibrating wire sensors through vibrating-wire interface modules. Vibrating wire sensors are the sensor of choice in many environmental and industrial applications that need sensor stability over very long periods, such as years or even decades. A thermistor included in most sensors can be measured to compensate for temperature errors.

17.6.1 VSPECT Measuring the resonant frequency by means of period averaging is the classic technique, but Campbell Scientific has developed static and dynamic spectral-analysis techniques (VSPECT) that produce superior noise rejection, higher resolution, diagnostic data, and, in the case of dynamic VSPECT, measurements up to 333.3 Hz. For detailed information on VSPECT, see Vibrating Wire Spectral Analysis Technology .

17. Measurements 99

18. Communications protocols Data loggers communicate with data logger support software, other Campbell Scientific data loggers, and other hardware and software using a number of protocols including PakBus, Modbus, DNP3, and TCP/IP. Several industry-specific protocols are also supported. See also Communications specifications (p. 237).

18.1 General serial communications 101

18.2 Modbus communications 106

18.3 Internet communications 115

18.4 MQTT 117

18.5 DNP3 communications 131

18.6 PakBus communications 132

18.7 SDI-12 communications 133

Some communications services, such as satellite networks, can be expensive to send and receive information. Best practices for reducing expense include:

l Declare Public only those variables that need to be public. Other variables should be declared as Dim.

l Be conservative with use of string variables and string variable sizes. Make string variables as big as they need to be and no more. The default size, if not specified, is 24 bytes, but the minimum is 4 bytes. Declare string variables Public and sample string variables into data tables only as needed.

l When using GetVariables() / SendVariables() to send values between data loggers, put the data in an array and use one command to get the multiple values. Using one command to get 10 values from an array and swath of 10 is more efficient (requires only 1 transaction) than using 10 commands to get 10 single values (requires 10 transactions). See the CRBasic Editor help for detailed instruction information and program examples: https://help.campbellsci.com/crbasic/cr350/ .

18. Communications protocols 100

l Set the data logger to be a PakBus router only as needed. When the data logger is a router, and it connects to another router like LoggerNet, it exchanges routing information with that router and, possibly (depending on your settings), with other routers in the network. Network Planner set this appropriately when it is used. This is also set through the IsRouter setting in the Settings Editor. For more information, see the Device Configuration Settings Editor Information tables and settings (advanced) (p. 190).

l Set PakBus beacons and verify intervals properly. For example, there is no need to verify routes every five minutes if communications are expected only every 6 hours. Network Planner will set this appropriately when it is used. This is also set through the Beacon and Verify settings in the Settings Editor. For more information, see the Device Configuration Settings Editor Beacon() and Verify() settings.

For information on Designing a PakBus network using the Network Planner tool in LoggerNet, watch the following video: https://www.campbellsci.com/videos/loggernet-software-network- planner .

18.1 General serial communications The data logger supports two-way serial communications. These communications ports can be used with smart sensors that deliver measurement data through serial-data protocols, or with devices such as modems, that communicate using serial data protocols.

CRBasic instructions for general serial communications include:

l SerialOpen() l SerialClose() l SerialIn() l SerialInRecord() l SerialInBlock() l SerialInChk()

l SerialOut() l SerialOutBlock() l SerialBrk() l SerialFlush()

See the CRBasic Editor help for detailed instruction information and program examples: https://help.campbellsci.com/crbasic/cr350/ .

To communicate over a serial port, it is important to be familiar with the protocol used by the device with which you will be communicating. Refer to the manual of the sensor or device to find its protocol and then select the appropriate options for each CRBasic parameter. See the application note Interfacing Serial Sensors with Campbell Scientific Dataloggers for more programming details and examples.

18. Communications protocols 101

Configure COM terminals as serial ports using Device Configuration Utility or by using the SerialOpen() CRBasic instruction. Terminals are configured in pairs for TTL, RS-232, and half- duplex RS-422 and RS-485 communications. For full-duplex RS-422 and RS-485, four terminals are required.

FIGURE 18-1. RS-232 single-ended full-duplex communications

FIGURE 18-2. RS-485/RS-422 differential-pair full-duplex communications

18. Communications protocols 102

FIGURE 18-3. RS-485 differential-pair half-duplex communications

Table 18-1: Serial communications summary

RS-232 RS-485/

RS-422 TTL TTL-INV

Communications Point-to- point Multi-drop Point-to-

point Point-to-

point

Maximum number of devices

1 Transmitter

1 Receiver

32 Transmitters

32 Receivers

1 Tx

1 Rx

1 Tx

1 Rx

Mode type Full duplex Full duplex

Half duplex Full duplex Full duplex

Reference Single wire

Tx ref to GND

Differential pair

TxB+ referenced to TxA

Single wire

Tx referenced to GND

Voltage range 25 V to 25 V 5 V to 5 V 0 V to 5 V 0 V to 5 V

Idle voltage 25 V to 3 V 0.2 V to 5 V 5 V 0 V

18.1.1 RS-232 RS-232 supports point-to-point communications between one base (usually the data logger) and one external device. See FIGURE 18-1 (p. 102). Data bits are sent from the base to external devices across the transmit (Tx) line with respect to DC ground. The Tx line idle state is between 25 V and 3 V, depending on the transmitter. The transition from negative voltage to above 3 V begins data transmission.

18. Communications protocols 103

NOTE: Most RS-232 devices are also compatible with the data logger using TTL-inverted communications.

NOTE: The data logger uses about -7 V to represent logic 1, and about 5.8 V to represent logic 0.

FIGURE 18-4. RS-232 Tx voltage with respect to GND

18.1.2 RS-485/RS-422 RS-485 and RS-422 support communications between 32 base and 32 external devices. See FIGURE 18-3 (p. 103) and FIGURE 18-2 (p. 102). Differential voltage between two lines (A & B) transmit data. When the voltage of B with respect to A is between -0.2 V and -6 V that is interpreted as logic 0. When the differential voltage in the range of positive 0.2 V to 6 V that is interpreted as logic 1.

NOTE: The CR350 uses about -1 V to represent logic 0, and about 1 V to represent logic 1.

18. Communications protocols 104

FIGURE 18-5. RS-485 Voltage B with respect to A

18.1.3 TTL TTL supports point-to-point communications between one base and one external device. See FIGURE 18-1 (p. 102). Data bits are sent from base to external device with a voltage between transmit (Tx) and ground. The transmit line idle state is 5 V (logic 1). Data is sent after one clock cycle once the voltage is pulled low (to 0 V).

FIGURE 18-6. TTL Tx voltage with respect to GND

18.1.4 TTL-Inverted The only difference between TTL-inverted and TTL is that the logic is inverted. The idle state for TTL-inverted is 0 V instead of 5 V. See FIGURE 18-1 (p. 102). Data is sent after the voltage is pulled high (to 5 V).

NOTE: Many RS-232 devices are compatible with this communications protocol.

18. Communications protocols 105

FIGURE 18-7. TTL-inverted Tx voltage with respect to GND

18.2 Modbus communications The data logger supports Modbus RTU, Modbus ASCII, and Modbus TCP protocols and can be programmed as a Modbus client (master) or Modbus server (slave). These protocols are often used in SCADA networks. Data loggers can communicate using Modbus on all available communications ports. The data logger conducts Modbus over RS-232 using a RS-232-to RS- 485 adapter, or over TCP using an Ethernet or Wireless connection.

CRBasic Modbus instructions include:

l ModbusClient() l ModbusServer() l MoveBytes()

See the CRBasic Editor help for detailed instruction information and program examples: https://help.campbellsci.com/crbasic/cr350/ .

For additional information on Modbus, see:

l About Modbus (p. 107) l Why Modbus Matters: An Introduction l How to Access Live Measurement Data Using Modbus l Using Campbell Scientific Dataloggers as Modbus Slave Devices in a SCADA Network

Because Modbus has a set command structure, programming the data logger to get data from field instruments can be much simpler than from some other serial sensors. Because Modbus uses a common bus and addresses each node, field instruments are effectively multiplexed to a data logger without additional hardware.

When doing Modbus communications over RS-232, the data logger, through Device Configuration Utility or the Settings editor, can be set to keep communications ports open and awake, but at higher power usage. Set RS-232Power to Always on. Otherwise, the data logger

18. Communications protocols 106

goes into sleep mode after 40 seconds of communications inactivity. Once asleep, two packets are required before it will respond. The first packet awakens the data logger; the second packet is received as data. This would make a Modbus client fail to poll the data logger, if not using retries.

More information on Modbus can be found at:

l www.simplyModbus.ca/FAQ.htm l www.Modbus.org/tech.php l www.lammertbies.nl/comm/info/modbus.html

18.2.1 About Modbus Modbus is a communications protocol that enables communications among many devices connected to the same network. Modbus is often used in supervisory control and data acquisition (SCADA) systems to connect remote terminal units (RTUs) with a supervisory computer - allowing them to relay measurement data, device status, control commands, and configuration information.

The popularity of Modbus has grown because it is freely available and because its messaging structure is independent of the type of physical interface or connection that is used. Modbus can coexist with other types of connections on the same physical interface at the same time. You can operate the protocol over several data links and physical layers.

Modbus is supported by many industrial devices, including those offered by Campbell Scientific. Not only can intelligent devices such as microcontrollers and programmable logic controllers (PLCs) communicate using Modbus, but many intelligent sensors have a Modbus interface that enables them to send their data to host systems. Examples of using Modbus with Campbell Scientific data loggers include:

l Interfacing data loggers and Modbus-enabled sensors. l Sending and retrieving data between data loggers and other industrial devices. l Delivering environmental data to SCADA systems. l Integrating Modbus data into PakBus networks, or PakBus data into Modbus networks.

18. Communications protocols 107

18.2.2 Modbus protocols There are three standard variants of Modbus protocols:

l Modbus RTU Modbus RTU is the most common implementation available for Modbus. Used in serial communications, data is transmitted in a binary format. The RTU format follows the commands/data with a cyclic redundancy check checksum.

NOTE: The Modbus RTU protocol standard does not allow a delay between characters of 1.5 times or more the length of time normally required to receive a character. This is analogous to pizza being understood, and piz za being gibberish. It's important to note that communications hardware used for Modbus RTU, such as radios, must transfer data as entire packets without injecting delays in the middle of Modbus messages.

l Modbus ASCII Used in serial communications, data is transmitted as an ASCII representation of the hexadecimal values. Timing requirements are loosened, and a simpler longitudinal redundancy check checksum is used.

l Modbus TCP/IP or Modbus TCP Used for communications over TCP/IP networks. The TCP/IP format does not require a checksum calculation, as lower layers already provide

18. Communications protocols 108

checksum protection. The packet structure is similar to RTU, but uses a different header. Devices labeled as Modbus gateways will convert from Modbus TCP to Modbus RTU.

Campbell Scientific data loggers support Modbus RTU, Modbus ASCII, and Modbus TCP protocols. If the connection is over IP, Campbell Scientific data loggers always use Modbus TCP. Modbus server functionality over other comports use RTU. When acting as a client, the data logger can be switched between ASCII and RTU protocols using an option in the ModbusClient() instruction. See the CRBasic Editor help for detailed instruction information and program examples: https://help.campbellsci.com/crbasic/cr350/ .

18.2.3 Understanding Modbus Terminology Many of the object types are named from using Modbus in driving relays: a single-bit physical output is called a coil, and a single-bit physical input is called a discrete input or a contact.

Information is stored in the server device in up to four different tables. Two tables store on/off discrete values (coils) and two store numerical values (registers). The coils and registers each have a read-only table and read/write table.

18.2.4 Connecting Modbus devices Data loggers can communicate with Modbus on all available communications ports. Consideration should be given to proper surge protection of any cabled connection. Between systems of significantly different ground potential, optical isolation may be appropriate. For additional information on grounds, see Grounds (p. 13).

The data logger communicates with Modbus over RS-232, or RS-485 using a RS-232-to RS-485 adapter and over TCP using an Ethernet or wireless connection.

18.2.5 Modbus client-server protocol Modbus is a client-server protocol. The device requesting the information is called the Modbus client, and the devices supplying information are Modbus servers. In a standard Modbus network, there is one client and up to 247 servers. A client does not have a Modbus address. However, each Modbus server on a shared network has a unique address from 1 to 247.

A single Modbus client device initiates commands (requests for information), sending them to one or more Modbus server devices on the same network. Only the Modbus client can initiate communications. Modbus servers, in turn, remain silent, communicating only when responding to requests from the Modbus client.

Every message from the client will begin with the server address, followed by the function code, function parameters, and a checksum. The server will respond with a message beginning with its address, followed by the function code, data, and a checksum. The amount of data in the packet

18. Communications protocols 109

will vary, depending on the command sent to the server. Server devices only process one command at a time. So, the client needs to wait for a response, or timeout before sending the next command.

A broadcast address is specified to allow simultaneous communications with all servers. Because response time of server devices is not specified by the standard, and device manufacturers also rarely specify a maximum response time, broadcast features are rarely used. When implementing a system, timeouts in the client will need to be adjusted to account for the observed response time of the servers.

Campbell Scientific data loggers can be programmed to be a Modbus client or Modbus server - or even both at the same time! This proves particularly helpful when your data logger is a part of two wider area networks. In one it uses Modbus to query data (as a client) from localized sensors or other data sources, and then in the other, it serves that data up (as a server) to another Modbus client.

18.2.6 About Modbus programming Modbus capability of the data logger must be enabled through configuration or programming. See the CRBasic Editor help for detailed information on program structure, syntax, and each instruction available to the data logger.

CRBasic Modbus instructions include:

l ModbusClient() l ModbusServer() l MoveBytes()

See the CRBasic Editor help for detailed instruction information and program examples: https://help.campbellsci.com/crbasic/cr350/ .

18.2.6.1 Endianness Endianness refers to the sequential order in which bytes are arranged into larger numerical values when stored in memory. Words may be represented in big-endian or little-endian format, depending on whether bits or bytes or other components are ordered from the big end (most significant bit) or the little end (least significant bit).

In big-endian format, the byte containing the most significant bit is stored first, then the following bytes are stored in decreasing significance order, with the byte containing the least significant bit stored last. Little-endian format reverses this order: the sequence stores the least significant byte first and the most significant byte last. Endianness is used in some Modbus programming so it is important to note that the CR350 is a little-endian instrument.

18. Communications protocols 110

18.2.6.2 Function codes A function code tells the server which storage entity to access and whether to read from or write to that entity. Different devices support different functions (consult the device documentation for support information). The most commonly used functions (codes 01, 02, 03, 04, 05, 15, and 16 ) are supported by Campbell Scientific data loggers.

Most users only require the read- register functions. Holding registers are read with function code 03. Input registers are read with function code 04. This can be confusing, because holding registers are usually listed with an offset of 40,000 and input registers with an offset of 30,000. Dont mix up the function codes. Double check the register type in the device documentation.

Function Code Action Entity

01 (01 hex) Read Discrete Output Coils

05 (05 hex) Write single Discrete Output Coil

15 (0F hex) Write multiple Discrete Output Coils

02 (02 hex) Read Discrete Input

04 (04 hex) Read Input Registers

03 (03 hex) Read Holding Registers

06 (06 hex) Write single Holding Register

16 (10 hex) Write multiple Holding Registers

The write-register functions will only work on holding registers. Function 06 only changes one 16- bit register, whereas function 16, changes multiple registers. Note, when writing registers, the Variable parameter for the ModbusClient() instruction refers to a source, not a destination.

18.2.7 Modbus information storage With the Modbus protocol, most of the data values you want to transmit or receive are stored in registers. Information is stored in the server device in four different entities. Two store on/off discrete values (coils) and two store numerical values (registers). The four entities include:

l Coils 1-bit registers, used to control discrete outputs (including Boolean values), read/write.

l Discrete Input 1-bit registers, used as inputs, read only. l Input Registers 16-bit registers, used as inputs, read only.

18. Communications protocols 111

l Holding Registers 16-bit registers; used for inputs, output, configuration data, or any requirement for holding data; read/write.

See the CRBasic Editor help for detailed instruction information and program examples: https://help.campbellsci.com/crbasic/cr350/ .

18.2.7.1 Registers In a 16-bit memory location, a 4-byte value takes up two registers. The Modbus protocol always refers to data registers with a starting address number, and a length to indicate how many registers to transfer.

Campbell Scientific uses 1-based numbering (a common convention for numbering registers in equipment) in the ModbusClient() instruction. With 1-based numbering, the first data location is referred to as register number 1. Some equipment uses 0-based numbering (check the equipment documentation). With 0-based numbering, the first register is referred to as 0.

Reading register numbers can be complicated by the fact that register numbers are often written with an offset added. Input registers are written with an offset of 30000. So, the first input register is written as 30001, with 1-based numbering. Holding registers are numbered with an offset of 40000. You must remove the offset before writing the number as the Start parameter of ModbusClient().

There are rare instances when equipment is designed with the registers mapped including the offset. That means 40001 in the documentation is really register number 40001. Those are rare instances, and the equipment is deviating from standards. If 1 or 2 dont work for the Start parameter, try 40001 and 40002.

18.2.7.2 Coils Discrete digital I/O channels in Modbus are referred to as coils. The term coil has its roots in digital outputs operating solenoid coils in an industrial environment. Coils may be read only or read/write. A read only coil would be a digital input. A read/write coil is used as an output. Coils are read and manipulated with their own function codes, apart from the registers. Many modern devices do not use coils at all.

When working with coils, the data logger requires Boolean variables. When reading coils, each Boolean in an array will hold the state of one coil. A value of True will set the coil, a value of False will unset the coil.

18.2.7.3 Data Types Modbus does not restrict what data types may be contained within holding and input registers. Equipment manufacturers need to indicate what binary data types they are using to store data.

18. Communications protocols 112

Registers are 16-bit, so 32-bit data types use 2 registers each. Some devices combine more registers together to support longer data types like strings. The ModbusClient() instruction has a ModbusOption parameter that supports several different data types.

When data types use more than 1 register per value, the register order within the data value is important. Some devices will swap the high and low bytes between registers. You can compensate for this by selecting the appropriate ModbusOption.

Byte order is also important when communicating data over Modbus. Big Endian byte order is the reverse of Little Endian byte order. It may not always be apparent which a device uses. If you receive garbled data, try reversing the byte order. Reversing byte order is done using the MoveBytes() instruction. There is an example in CRBasic help for reversing the bytes order of a 32-bit variable.

After properly reading in a value from a Modbus device, you might have to convert the value to proper engineering units. With integer data types, it is common to have the value transmitted in hundredths or thousandths.

Unsigned 16-bit integer The most basic data type used with Modbus is unsigned 16-bit integers. It is the original Modbus data type with 1 register per value. On the data logger, declare your destination variable as type Long. A Long is a 32-bit signed integer that contains the value received. Select the appropriate ModbusOption to avoid post-processing.

Signed 16-bit integer Signed 16-bit integers use 1 register per value. On the data logger, declare your destination variable as type Long. A Long is a 32-bit signed integer that contains the value received . Select the appropriate ModbusOption to avoid post-processing.

Signed 32-bit integer Signed 32-bit integers require two registers per value. This data type corresponds to the native Long variable type in Campbell data loggers. Declare your variables as type Long before using them as the Variable parameter in ModbusClient(). Select the appropriate ModbusOption to avoid post-processing.

Unsigned 32-bit integer Unsigned 32-bit integers require two registers per value. Declare your variables as type Long before using them as the Variable parameter in ModbusClient(). The Long data type is a signed integer, and does not have a range equal to that of an unsigned integer. If the integer value exceeds 2,147,483,647 it will display incorrectly as a negative number. If the value does not exceed that number, there are no issues with a variable of type Long holding it.

18. Communications protocols 113

32-Bit floating point 32-bit floating point values use 2 registers each. This is the default FLOAT data type in Campbell Scientific data loggers. Select the appropriate ModbusOption to avoid post-processing.

18.2.8 Modbus tips and troubleshooting Most of the difficulties with Modbus communications arise from deviations from the standards, which are not enforced within Modbus. Whether you are connecting via Modbus to a solar inverter, power meter, or flow meter, the information provided here can help you overcome the challenges, and successfully gather data into a Campbell data logger. Further information on Modbus can be found at:

l www.simplyModbus.ca/FAQ.htm l www.Modbus.org/tech.php l www.lammertbies.nl/comm/info/modbus.html

18.2.8.1 Error codes Modbus defines several error codes, which are reported back to a client from a server. ModbusClient() displays these codes as a negative number. A positive result code indicates no response was received.

Result code -01: illegal function The illegal function error is reported back by a Modbus server when either it does not support the function at all, or does not support that function code on the requested registers. Different devices support different functions (consult the device documentation). If the function code is supported, make sure you are not trying to write to a register labeled as read-only. It is common for devices to have holding registers where read-only and read/write registers are mapped next to each other.

An uncommon cause for the -01 result is a device with an incomplete implementation of Modbus. Some devices do not fully implement parsing Modbus commands. Instead, they are hardcoded to respond to certain Modbus messages. The result is that the device will report an error when you try selectively polling registers. Try requesting all of the registers together.

Result code -02: illegal data address The illegal data address error occurs if the server rejects the combination of starting register and length used. One possibility, is a mistake in your program on the starting register number. Refer to the earlier section about register number and consult the device documentation for support information. Also, too long of a length can trigger this error. The ModbusClient() instruction

18. Communications protocols 114

uses length as the number of values to poll. With 32-bit data types, it requests twice as many registers as the length.

An uncommon cause for the -02 result is a device with an incomplete implementation of Modbus. Some devices do not fully implement parsing Modbus commands. Instead, they are hard coded to respond to certain Modbus messages. The result is that the device will report an error when you try selectively polling registers. Try requesting all of the registers together.

Result code -11: COM port error Result code -11 occurs when the data logger is unable to open the COM port specified. For serial connections, this error may indicate an invalid COM port number. For Modbus TCP, it indicates a failed socket connection.

If you have a failed socket connection for Modbus TCP, check your TCPOpen() instruction. The socket returned from TCPOpen() should be a number less than 99. Provided the data logger has a working network connection, further troubleshooting can be done with a computer running Modbus software. Connect the computer to the same network and attempt to open a Modbus TCP connection to the problem server device. Once you resolve the connection between the computer and the server device, the connection from the data logger should work.

18.3 Internet communications The internet protocols listed in Communications specifications (p. 237), are supported when using a cell modem with the CR350. The most up-to-date information on implementing these protocols is contained in CRBasic Editor help.

CRBasic instructions for internet communications include:

l EmailRelay() l EmailSend() l EmailRecv() l FTPClient() l HTTPGet() l HTTPOut() l HTTPPost()

l HTTPPut l IPInfo() l PPPOpen() l PPPClose() l TCPOpen() l TCPClose()

Once the hardware has been configured, PakBus communications over TCP/IP are possible. These functions include the following:

l Sending programs l Retrieving programs l Setting the data logger clock

18. Communications protocols 115

l Collecting data l Displaying the current record in a data table

Data logger callback to LoggerNet and data logger-to-data logger communications are also possible over TCP/IP. For details and example programs see the CRBasic help.

See the FTP streaming technical paper for information on using FTPClient() or HTTPPut () to stream data.

18.3.1 IP address When connected to a server with a list of IP addresses available for assignment, the data logger will automatically request and obtain an IP address through DHCP. Once the address is assigned, look in the Settings Editor: Ethernet | {information box} to see the assigned IP address.

The CR350 provides a DNS client that can query a DNS server to determine if an IP address has been mapped to a hostname. If it has, then the hostname can be used interchangeably with the IP address in some data logger instructions.

18.3.2 FTP server An FTP server facilitates file transfers. Use Device Configuration Utility to configure the data logger to act as an FTP server. This is useful when receiving and storing images from an Ethernet enabled device such as a camera.

Select FTPEnabled (p. 199) and assign a User Name and Password.

18. Communications protocols 116

Specify the CPU drive in the path when putting or getting files. For example, to put a file named image.jpg on the CPU drive, use a command similar to put image.jpg /CPU/image.jpg.

NOTE: Use FTPclient() to send files to a remote server. This is different than setting up the data logger to act as an FTP server. See the FTP streaming technical paper for more information.

18.4 MQTT MQTT is an open communications protocol often used in the Internet of Things (IoT). It uses a publish/subscribe architecture to send and receive data. A broker facilitates the communications between publishers and subscribers by receiving published messages and distributing them to subscribers. One advantage of MQTT is that communications are initiated by the CR350 so firewalls do not cause problems.

For full MQTT specifications see: https://mqtt.org/  .

18.4.1 Sending data to CAMPBELL CLOUD CAMPBELL CLOUD (CLOUD), www.campbellsci.com/campbellcloud , is a group of applications, one of which is an MQTT broker. Using MQTT with the CLOUD makes it easy to get your data securely to the web. The CR350 must have a reliable internet connection. Options include:

l Wi-Fi communications option (p. 26) l Cellular communications option (p. 36) l Another Ethernet interface

18.4.1.1 Configure the data logger 1. Ensure your data logger is connected to the internet.

2. Using Device Configuration Utility, connect to the data logger.

3. (Recommended) On the Logger Control tab, set the Reference Clock Setting to UTC in order to ensure correct timestamps for data ingestion by the CLOUD. Note: the preferred timezone displayed in the CLOUDmay be set in the CLOUD User Settings.

18. Communications protocols 117

4. On the Settings Editor tab, click the MQTT sub-tab.

5. Enable MQTT and set Campbell Cloud Enabled to Enabled. Keep all other MQTT settings as their defaults. The CLOUD will automatically change some of these when it connects to the CR350.

6. Click Apply.

18. Communications protocols 118

7. Wait while the data logger reboots two times. This may take up to two minutes. If your computer has speakers turned on you may hear two distinct Windows chimes.

8. Confirm that the CR350 has connected to the MQTT broker by reconnecting in the Device Configuration Utility and checking the MQTT settings. Several settings will have been populated by the CLOUD broker. The MQTT State should read MQTT session established and the MQTT Broker URL should read campbellcloud.io. See MQTT settings (p. 216) for more information.

9. Click Disconnect and close Device Configuration Utility.

18.4.1.2 Program the data logger Use MQTTPublishTable() within a DataTable/EndTable declaration to publish stored data via MQTT. See the CRBasic Editor help for detailed instruction information and program examples: https://help.campbellsci.com/crbasic/cr350/ .

18. Communications protocols 119

DataTable(Five_Min,True,-1) DataInterval(0,5,Min,10) Average(1,Temp_C,FP2,False) Minimum(1,BattV,FP2,False,False) 'Publish every 5 min in GeoJSON format. The last three 'parameters are optional to specify longitude, latitude, 'and altitude. Here we use NaN as placeholders for these 'values. MQTTPublishTable(0,0,5,Min,2,NaN,NaN,NaN)

EndTable

Five minutes is the fastest recommended publishing interval in order to ensure that ingestion and processing of data sent to the CLOUD are completed before new data is received.

18.4.1.3 Set up the CLOUD 1. Open a web browser and go to www.campbellcloud.io .

2. If you don't already have an account then Sign up, otherwise, LOGIN.

3. Click ADD STATION.

4. Click the Station tile to add a Data Source.

18. Communications protocols 120

5. Click + and I don't have a claim code.

6. Select your data logger type.

18. Communications protocols 121

7. Expand the dialog, enter the CR350 information. Click ... then Save.

18. Communications protocols 122

TIP: The timing of the next step depends on the MQTTPublishTable() interval in your CRBasic program. Allow at least one interval to elapse before proceeding. In our example, this is five minutes (Program the data logger (p. 119)).

8. Click the Station Name on the Station tile and edit focused measurements.

18. Communications protocols 123

9. Select measurements to appear on the Station tile. Click .

If a list of measurements is not available and the MQTT State in the Device Configuration Utility read MQTT session established please contact support@campbellcloud.io.

18. Communications protocols 124

NOTE: It may take 30 minutes or more, depending on the CRBasic program, for data to become available.

10. Go to User settings > edit my settings >Timezone to change the timezone that data is displayed, from UTC to your preferred timezone.

18. Communications protocols 125

11. See the CAMPBELL CLOUD online help and manual for details on additional features.

18.4.2 Sending data to another MQTT broker If you are not using the CAMPBELL CLOUD and its MQTT broker you will need to provide and configure one. There are many available; it is recommended that you consult with an IT professional. This example uses the public Mosquitto test broker https://test.mosquitto.org/ for testing.

For more information on MQTT topic structure see MQTT commands (p. 248).

18.4.2.1 Configure the data logger 1. Ensure your data logger is connected to the internet.

2. Using Device Configuration Utility, connect to the data logger.

3. (Recommended) On the Logger Control tab, set the Reference Clock Setting to UTC in order to ensure correct timestamps for data ingestion by the CLOUD. Note: the preferred timezone displayed in the CLOUDmay be set in the CLOUD User Settings.

18. Communications protocols 126

4. On the Settings Editor tab, click the MQTT sub-tab.

18. Communications protocols 127

a. Enable MQTT.

b. Enter the Broker URL. Enter test.mosquitto.org for this example.

c. Select Persistent for MQTT Connection type.

d. Enter 1883 for the Port Number.

e. Write down the MQTT Base Topic; it is case sensitive. By default it is cs/v1/.

f. Keep all other MQTT settings as their defaults.

5. Click Apply.

18. Communications protocols 128

18.4.2.2 Program the data logger Use MQTTPublishTable() within a DataTable/EndTable declaration to publish stored data via MQTT. See the CRBasic Editor help for detailed instruction information and program examples: https://help.campbellsci.com/crbasic/cr350/ .

DataTable(Five_Min,True,-1) DataInterval(0,5,Min,10) Average(1,Temp_C,FP2,False) Minimum(1,BattV,FP2,False,False) Publish every 5 min in CSJSON format. The last three parameters are optional to specify longitude, latitude, and altitude. Here we use NaN as placeholders for these values. MQTTPublishTable(0,0,5,Min,1,NaN,NaN,NaN)

EndTable

Five minutes is the fastest recommended publishing interval in order to ensure that ingestion and processing of data sent to the MQTT broker are completed before new data is received.

18.4.2.3 Check broker for incoming data To subscribe to MQTT topics an MQTT client is required. There are many available; it is recommended that you consult with an IT professional. This example uses the Google Chrome extension MQTTBox  .

1. Launch MQTTBox.

18. Communications protocols 129

2. Configure the client.

a. Give the MQTT client a name.

b. Select mqtt/tcp for the Protocol.

c. Enter test.mosquitto.org for the Host.

d. Keep all other settings as their defaults.

e. Click Save.

3. Type cs/v1/# in the Topic to subscribe field to subscribe to all topics. This is the Base MQTT Topic noted from the Device Configuration Utility > MQTT > Settings Editor.

4. Click Subcribe.

18. Communications protocols 130

5. Confirm data is being received.

6. For more information on MQTT topic structure see MQTT commands (p. 248).

18.5 DNP3 communications DNP3 is designed to optimize transmission of data and control commands from a master computer to one or more remote devices or outstations. The data logger allows DNP3 communications on all available communications ports. CRBasic DNP3 instructions include:

18. Communications protocols 131

l DNP() l DNPUpdate() l DNPVariable()

See the CRBasic Editor help for detailed instruction information and program examples: https://help.campbellsci.com/crbasic/cr350/ .

When DNPUpdate() is used to set up the data logger as a remote (slave) device, up to three DNP3 clients (masters) are supported.

For additional information on DNP3 see:

l DNP3 with Campbell Scientific Dataloggers l Getting to Know DNP3 l How to Access Your Measurement Data Using DNP3

18.6 PakBus communications PakBus is a Campbell Scientific communications protocol. By using signed data packets, PakBus increases the number of communications and networking options available to the data logger. The data logger allows PakBus communications on all available communications ports. For additional information, see The Many Possibilities of PakBus Networking blog article.

Advantages of PakBus include:

l Simultaneous communications between the data logger and other devices. l Peer-to-peer communications - no computer required. Special CRBasic instructions

simplify transferring data between data loggers for distributed decision making or control. l Data consolidation - other PakBus data loggers can be used as "sensors" to consolidate all

data into one data logger. l Routing - the data logger can act as a router, passing on messages intended for another

Campbell Scientific data logger. PakBus supports automatic route detection and selection. l Short distance networks - a data logger can talk to another data logger over distances up

to 30 feet by connecting transmit, receive, and ground wires between the data loggers.

In a PakBus network, each data logger is assigned a unique address. The default PakBus address in most devices is 1. To communicate with the data logger, the data logger support software must know the data logger PakBus address. The PakBus address is changed using Device Configuration Utility, data logger Settings Editor, or PakBus Graph software.

18. Communications protocols 132

18.7 SDI-12 communications SDI-12 is a 1200 baud communications protocol that supports many smart sensors, probes and devices. The data logger supports SDI-12 communications through two modes transparent mode and programmed mode (see SDI-12 ports (p. 16) for wiring terminal information).

Transparent mode facilitates sensor setup and troubleshooting. It allows commands to be manually issued and the full sensor response viewed. Transparent mode does not record data. See SDI-12 transparent mode (p. 170) for more information.

Programmed mode automates much of the SDI-12 protocol and provides for data recording. See SDI-12 programmed mode/recorder mode (p. 137) for more information.

CRBasic SDI-12 instructions include:

l SDI12Recorder() l SDI12SensorSetup() l SDI12SensorResponse() l SDI12Watch()

See the CRBasic Editor help for detailed instruction information and program examples: https://help.campbellsci.com/crbasic/cr350/ .

The data logger uses SDI-12 version 1.4.

18.7.1 SDI-12 transparent mode All SDI-12 probes have just three wiresa signal, ground, and 12 V power line. They are connected to the data logger according to the following table.

Table 18-2: SDI-12 probe connections

Wire function Data logger connection

Shield (analog ground)

Power 12V

Power ground G

System operators can manually interrogate and enter settings in probes, connected to the data logger, using transparent mode. Transparent mode is useful in troubleshooting SDI-12 systems because it allows direct communications with probes.

Transparent mode may need to wait for commands issued by the programmed mode to finish before sending responses. While in transparent mode, the data logger programs may not

18. Communications protocols 133

execute. Data logger security may need to be unlocked before transparent mode can be activated.

Transparent mode is entered while the computer is communicating with the data logger through a terminal emulator program such as through Device Configuration Utility or other data logger support software. Keyboard displays cannot be used. For how-to instructions for communicating directly with an SDI-12 sensor using a terminal emulator, watch this video: https://www.campbellsci.com/videos/sdi12-sensors-transparent-mode .

To enter the SDI-12 transparent mode, enter the data logger support software terminal emulator:

1. Press Enter until the data logger responds with the prompt CR350>.

2. Type SDI12 at the prompt and press Enter.

3. In response, the query Select SDI12 Port is presented with a list of available ports. Enter the port number assigned to the terminal to which the SDI-12 sensor is connected, and press Enter. For example, 1 is entered for terminal C1.

4. An Entering SDI12 Terminal response indicates that SDI-12 transparent mode is active and ready to transmit SDI-12 commands and display responses.

18.7.1.1 Watch command (sniffer mode) The terminal-mode utility allows monitoring of SDI-12 traffic by using the watch command (sniffer mode). Watch an instructional video: https://www.campbellsci.com/videos/sdi12-sensors- watch-or-sniffer-mode  or use the following instructions.

1. Enter the transparent mode as described previously.

2. Press Enter until a CR350> prompt appears.

3. Type W and then press Enter.

4. In response, the query Select SDI12 Port: is presented with a list of available ports. Enter the port number assigned to the terminal to which the SDI-12 sensor is connected, and press Enter.

18. Communications protocols 134

5. In answer to Enter timeout (secs): type 100 and press Enter.

6. In response to the query ASCII (Y)?, type Y and press Enter.

7. SDI-12 communications are then opened for viewing.

18.7.1.2 SDI-12 transparent mode commands SDI-12 commands and responses are defined by the SDI-12 Support Group (www.sdi-12.org ) and are available in the SDI-12 Specification . Sensor manufacturers determine which commands to support. Commands have three components:

l Sensor address ( a): A single character and the first character of the command. Sensors are usually assigned a default address of zero by the manufacturer. The wildcard address ( ?) is used in the Address Query command. Some manufacturers may allow it to be used in other commands. SDI-12 sensors accept addresses 0 through 9, a through z, and A through Z.

l Command body (for example, M1): An upper case letter (the command) followed by alphanumeric qualifiers.

l Command termination ( !): An exclamation mark.

An active sensor responds to each command. Responses have several standard forms and terminate with (carriage returnline feed).

18.7.1.3 aXLOADOS! command aXLOADOS! is an example of an SDI-12 transparent mode command. It is used to send an operating system (OS) update from a data logger to an SDI-12 sensor.

NOTE: Verify with the sensor manufacturer that the sensor supports this command.

Use aXLOADOS! in the following procedure to send an OS update to an SDI-12 sensor.

1. Supply power to the data logger. If connecting via USB for the first time, you must first install USB drivers by using Device Configuration Utility (select your data logger, then on the main page, click Install USB Driver). Alternately, you can install the USB drivers using EZ Setup. A USB connection supplies 5 V power (as well as a communications link), which is adequate for setup, but a 12 V battery will be needed for field deployment.

2. Physically connect your data logger to your computer using a USB cable, then in Device Configuration Utility select your data logger.

3. Copy the sensor OS file from the computer to the data logger.

18. Communications protocols 135

a. Select File Control > CPU: drive > Send and navigate to the file on the computer.

b. Click Open.

c. Click OK.

4. Enter the transparent mode as described in SDI-12 transparent mode (p. 170).

5. An Entering SDI12 Terminal response indicates that SDI-12 transparent mode is active and ready to transmit SDI-12 commands and display responses.

The load OS command has the following format:

aXLOADOS Baudrate drive:filename!.

For example: 0XLOADOS 9600 CPU:0XF5BA.MOT!.

Type the command, including the ending exclamation point (!) then press Enter.

6. The screen will show OS send updates and the bytes sent will continue to increase. The process is slow, it can take several minutes, but not hours.

7. A SUCCESS message indicates the process is complete.

18. Communications protocols 136

18.7.2 SDI-12 programmed mode/recorder mode The data logger can be programmed to read SDI-12 sensors or act as an SDI-12 sensor itself. The SDI12Recorder() instruction automates sending commands and recording responses. With this instruction, the commands to poll sensors and retrieve data is done automatically with proper elapsed time between the two. The data logger automatically issues retries. See CRBasic Editor help for more information on this instruction.

Commands entered into the SDIRecorder() instruction differ slightly in function from similar commands entered in transparent mode. In transparent mode, for example, the operator manually enters aM! and aD0! to initiate a measurement and get data, with the operator providing the proper time delay between the request for measurement and the request for data. In programmed mode, the data logger provides command and timing services within a single line of code. For example, when the SDI12Recorder() instruction is programmed with the M! command (note that the SDI-12 address is a separate instruction parameter), the data logger issues the aM! and aD0! commands with proper elapsed time between the two. The data logger automatically issues retries and performs other services that make the SDI-12 measurement work as trouble free as possible.

For troubleshooting purposes, responses to SDI-12 commands can be captured in programmed mode by placing a variable declared As String in the variable parameter. Variables not declared As String will capture only numeric data.

See the CRBasic Editor help for detailed instruction information and program examples: https://help.campbellsci.com/crbasic/cr350/ .

18.7.3 Programming the data logger to act as an SDI-12 sensor The SDI12SensorSetup() / SDI12SensorResponse() instruction pair programs the data logger to behave as an SDI-12 sensor. A common use of this feature is to copy data from the data logger to other Campbell Scientific data loggers over a single data-wire interface (terminal configured for SDI-12 to terminal configured for SDI-12), or to copy data to a third-party SDI-12 recorder.

See the CRBasic Editor help for detailed instruction information and program examples: https://help.campbellsci.com/crbasic/cr350/ .

When programmed as an SDI-12 sensor, the data logger will respond to SDI-12 commands M, MC, C, CC, R, RC, V, ?, and I.

18. Communications protocols 137

When acting as a sensor, the data logger can be assigned only one SDI-12 address per SDI-12 port. For example, a data logger will not respond to both 0M! and 1M! on SDI-12 port C1. However, different SDI-12 ports can have unique SDI-12 addresses.

18.7.4 SDI-12 power considerations When a command is sent by the data logger to an SDI-12 probe, all probes on the same SDI-12 port will wake up. However, only the probe addressed by the data logger will respond. All other probes will remain active until the timeout period expires.

Example:

Probe: Water Content

Power Usage:

l Quiescent: 0.25 mA l Active: 66 mA l Measurement: 120 mA

Measurement time: 15 s

Timeout: 15 s

Probes 1, 2, 3, and 4 are connected to SDI-12 port C1.

The time line in the following table shows a 35-second power-usage profile example.

For most applications, total power usage of 318 mA for 15 seconds is not excessive, but if 16 probes were wired to the same SDI-12 port, the resulting power draw would be excessive. Spreading sensors over several SDI-12 terminals helps reduce power consumption.

Table 18-3: Example power use for a network of SDI-12 probes

Time into Measurement

Processes Command

All Probes Awake

Time Out

Expires

Probe 1 (mA)

Probe 2 (mA)

Probe 3 (mA)

Probe 4 (mA)

Total (mA)

Sleep 0.25 0.25 0.25 0.25 1

1 1M! Yes 120 66 66 66 318

214 120 66 66 66 318

15 Yes 120 66 66 66 318

16 1D0! Yes 66 66 66 66 264

17-29 66 66 66 66 264

18. Communications protocols 138

Table 18-3: Example power use for a network of SDI-12 probes

Time into Measurement

Processes Command

All Probes Awake

Time Out

Expires

Probe 1 (mA)

Probe 2 (mA)

Probe 3 (mA)

Probe 4 (mA)

Total (mA)

30 Yes 66 66 66 66 264

Sleep 0.25 0.25 0.25 0.25 1

18. Communications protocols 139

19. Installation Campbell Scientific data loggers support research and operations all over the world in a variety of applications. The limits of the CR350 are defined by your application needs. Therefore, every installation will be unique. See www.campbellsci.com/solutions .

TIP: Time spent in the office, setting up and testing hardware and software, will make time in the field more efficient.

Recommended tools: 

l Voltmeter l Screwdrivers

o Flat-blade o Phillips-head o Small flat-blade

l Wire cutter/stripper l Crescent wrench l Pliers l Pad and pen l Laptop computer, fully charged, with software and drivers installed l USB cable

Tools required to install a Campbell Scientific tripod or tower:

l Shovel l Rake l Open-end wrench set l Socket wrench set l Magnetic compass l Tape measure l Nut driver

19. Installation 140

l Level l Sledgehammer l Pliers l Flat-bladed screwdrivers l Phillips screwdrivers

For more information, watch a video at: http://www.campbellsci.com/videos/toolbox-for- installation-and-maintenance .

19.1 Default program Many data logger settings can be changed remotely over a communications link. This convenience comes with the risk of inadvertently changing settings and disabling communications. For example, external cellular modems are often controlled by a switched 12 VDC (SW12 (SW1, SW2)) terminal. SW12 (SW1, SW2) is normally off; so, if the program controlling SW12 (SW1, SW2) is disabled, such as by changing a setting or sending a new operating system, the cellular modem is switched off and the remote data logger will not turn it on. This could require an on-site visit to correct the problem unless a special program called default has been installed.

Having a default.CRB program stored on the data logger will also ensure that a non- compiling CRBasic program does not lock out a remote user.

NOTE: The default program may use the extension .CRB or .DLD.

When a file named default.CRB is stored on the data logger CPU: drive, it is loaded if no other program takes priority. Program execution priorities are as follows: 

l When the CR350 powers up, a program file marked as Run on Power Up will be the current program.

l If the program cannot be compiled or if no program is specified, the data logger will attempt to run the program named default.CRB on its CPU: drive.

l If there is no default.CRB file or it cannot be compiled, the CR350 will not automatically run any program.

The default.CRB program generally contains instructions to preserve critical datalogger settings such as communications settings, but should not be more than a few lines of code.

19. Installation 141

CRBasic Example 2: default.CRB example

'This program turns ON the SW12 (SW1, SW2) switched 'power terminal, for 30 seconds every 60 seconds. BeginProg Scan(1,Sec,0,0) If TimeIsBetween (15,45,60,Sec) Then SW12(SW12_1,1)

NextScan EndProg

Downloading operating systems over communications requires much of the available CR350 memory. If the intent is to load operating systems via a communications link and have a default.CRB file in the CR350, the default.CRB program should not allocate significant memory, as might happen by allocating a large USR: drive. Also, do not auto-allocate tables in DataTable() instructions; if it is necessary to use DataTable() instructions, set small fixed table sizes. Refer to Sending an operating system to a remote data logger (p. 154) for information about sending the operating system.

19.2 Data logger security Data logger security concerns include:

l Collection of sensitive data l Operation of critical systems l Networks that are accessible to many individuals

Some options to secure your data logger from mistakes or tampering include:

l Sending the latest operating system to the data logger. See Updating the operating system (p. 153) for more information.

l Disabling unused services and securing those that are used. This includes disabling HTTP, FTP, Telnet, and Ping network services (Device Configuration Utility > Deployment > Network Services tab). These services can be used to discover your data logger on an IP network.

NOTE: FTP, Telnet, and Ping services are disabled by default.

l Setting security codes (see following information under "Security Codes"). l Setting a PakBus/TCP password. The PakBus TCP password controls access to PakBus

communications over a TCP/IP link. PakBusTCP passwords can be set in Device

19. Installation 142

Configuration Utility. l Disabling FTP or setting an FTP username and password in Device Configuration Utility. l Setting a PakBus encryption (AES-128) key in Device Configuration Utility. This forces

PakBus data to be encrypted during transmission. l Disabling HTTP or creating a .csipasswd file to secure HTTP (see Creating a .csipasswd

file (p. 145) for more information). l Tracking Operating System, Run, and Program signatures. l Encrypting program files if they contain sensitive information (see CRBasic help FileEncrypt() instruction or use the CRBasic Editor File menu, Save and Encrypt option).

l Hiding program files for extra protection (see CRBasic help FileManage() instruction). l Monitoring your data logger for changes by tracking program and operating system

signatures, as well as CPU file contents. l Securing the physical data logger and power supply under lock and key.

WARNING: All security features can be subverted through physical access to the data logger. If absolute security is a requirement, the physical data logger must be kept in a secure location.

19.2.1 TLS Transport Layer Security (TLS) is an internet communications security protocol. TLS settings are necessary for server applications, not for client applications.

Example server application instructions include:

l DNP3()

Example client application instructions include:

l HTTPGet(), HTTPPut() and HTTPPost() l EmailRelay() l EmailSend() and EmailRecv() l FTPClient()

Use the Device Configuration Utility to enable and set up TLS. See Deployment > Datalogger > TLS tab.

19. Installation 143

19.2.2 Security codes The data logger employs a security scheme that includes three levels of security. Security codes can effectively lock out innocent tinkering and discourage wannabe hackers on all communications links. However, any serious hacker with physical access to the data logger or to the communications hardware can, with only minimal trouble, overcome the five-digit security codes. Security codes are held in the data logger Settings Editor.

The preferred methods of enabling security include the following:

l Device Configuration Utility: Security codes are set on the Deployment> Datalogger tab. l Network Planner: Security codes can be set as data loggers are added to the network.

Alternatively, in CRBasic the SetSecurity() instruction can be used. It is only executed at program compile time. This is not recommended because deleting SetSecurity() from a CRBasic program is not equivalent to SetSecurity(0,0,0). Settings persist when a new program is downloaded that has no SetSecurity() instruction.

Up to three levels of security can be set. Valid security codes are 1 through 65535 ( 0 confers no security). Security 1 must be set before Security 2. Security 2 must be set before Security 3. If any one of the codes is set to 0, any security code level greater than it will be set to 0. For example, if Security 2 is 0 then Security 3 is automatically set to 0. Security codes are unlocked in reverse order: Security 3 before Security 2, Security 2 before Security 1.

Table 19-1: Functions affected by security codes

Function Security code 1 set Security code 2 set Security code 3 set

data logger program Cannot change or retrieve

All communications prohibited

Settings editor and Status table Writable variables cannot be changed

Setting clock unrestricted Cannot change or set

Public table unrestricted Writable variables cannot be changed

Collecting data unrestricted unrestricted

See Security(1), Security(2), Security(3) (p. 206) for the related fields in the Settings Editor.

For additional information on data logger security, see:

l 4 Ways to Make your Data More Secure l Available Security Measures for Internet-Connected Dataloggers

19. Installation 144

l How to Use Datalogger Security Codes l How Can Data be Made More Secure on a CRBasic PakBus Datalogger

19.2.3 Creating a .csipasswd file The data logger employs a security code scheme that includes three levels of security (see Data logger security (p. 142) for more information). This scheme can be used to limit access to a data logger that is publicly available. However, the security codes are visible in Device Configuration Utility. In addition, the range of codes is relatively small. To provide a more robust means of security, basic access authentication was implemented with the HTTP API interface in the form of an encrypted password file named .csipasswd. See the CRBasic Editor help for information about the data logger web server and API commands: https://help.campbellsci.com/crbasic/cr350/#Info/webserverapicommands1.htm  .

NOTE: Ethernet over USB (RNDIS) is considered a direct communications connection. Therefore, it is a trusted connection and Administrator privileges are automatically granted for all functionality.

When a file named .csipasswd is stored on the data logger CPU drive, basic access authentication is enabled in the data logger and read/write access to the web interface can be defined. Multiple user accounts with differing levels of access can be defined for one data logger. Four levels of access are available:

l None: Disable a user account. l Read Only: Data collection is unrestricted. Clock and writable variables cannot be changed.

Programs cannot be viewed, stopped, deleted, or retrieved. l Read/Write: Data collection is unrestricted. Clock and writable variables can be changed.

Programs cannot be viewed, stopped, deleted, or retrieved. l All (Administrator): Data collection is unrestricted. Clock, writable variables and settings can

be changed. Programs can be viewed, stopped, deleted, and retrieved. Hidden tables can be viewed. Files, including programs can be sent to the data logger.

NOTE: All levels of access allow data collection.

19. Installation 145

Create an encrypted password file or modify an existing password file using Device Configuration Utility:

1. Connect to your device in Device Configuration Utility.

2. Click the Network Services tab, then the Edit .csipasswd File button.

3. Define user accounts and access levels.

4. Click Apply. The .csipasswd file is automatically saved to the data logger CPU drive.

When a .csipasswd file is used, the PakBus/TCP Password security setting is not used when accessing the data logger via HTTP. If the .csipasswd file is blank or does not exist, the default user name is "anonymous" with no password and a user level of read only.

When access to the data logger web interface is attempted without the appropriate security level, the data logger will prompt for a username and password. If an invalid username or password is entered, the data logger will default to the level of access assigned to anonymous. As noted previously, anonymous is assigned a user level of read-only, though this can be changed using Device Configuration Utility.

If the numeric security code has been enabled, and no .csipasswd file is on the data logger, then that numeric security code must be entered to access the data logger. If a .csipasswd file is on the data logger, the username and password employed by the basic access authentication will eliminate the need for entering the numeric security code.

19.3 Web user interface For data loggers with an IP connection, the built-in web user interface (web UI) provides browser access to real-time and stored data, files, settings, and more. No remote browser access is available until at least one user account is configured. Use an RNDIS connection to set up the first account. See Virtual Ethernet over USB (RNDIS) (p. 24) for more information.

Once a user account is configured, enter the CR350 IP address into a web browser. By default, it is 192.168.66.1 for an RNDIS connection.

NOTE: Ethernet over USB (RNDIS) is considered a direct communications connection. Therefore, it is a trusted connection and Administrator privileges are automatically granted for all functionality.

Use Manage Accounts to set permissions to access web UI features. Once a New Account is setup, basic access authentication is enabled in the data logger. Multiple user accounts with differing levels of access can be defined for one data logger. Four levels of access are available:

19. Installation 146

l None: Disable a user account. l Read Only: Data collection is unrestricted. Clock and writable variables cannot be changed.

Programs cannot be viewed, stopped, deleted, or retrieved. l Read/Write: Data collection is unrestricted. Clock and writable variables can be changed.

Programs cannot be viewed, stopped, deleted, or retrieved. l All (Administrator): Data collection is unrestricted. Clock, writable variables and settings can

be changed. Programs can be viewed, stopped, deleted, and retrieved. Hidden tables can be viewed. Files, including programs can be sent to the data logger.

NOTE: The default account is read-only with a user name of anonymous and no password. No Administrator (All) accounts are setup by default for security reasons. User accounts must be changed manually; they are not restored by resetting the data logger to factory defaults. See Resetting the data logger (p. 165) for more information.

19.4 Power budgeting In low-power situations, the data logger can operate for several months on non-rechargeable batteries. Power systems for longer-term remote applications typically consist of a charging source, a charge controller, and a rechargeable battery. When ac line power is available, a VAC- to-VDC wall adapter, the onboard charging regulator, and a rechargeable battery can be used to construct an uninterruptible power supply (UPS).

When designing a power supply, consider worst-case power requirements and environmental extremes. For example, the power requirement of a weather station may be substantially higher during extreme cold, while at the same time, the extreme cold constricts the power available from the power supply. System operating time for batteries can be estimated by dividing the battery capacity (ampere hours) by the average system current drain (amperes).

For more information see:

l Power Supplies Application Note  l Battery Care Blog  l Troubleshooting Your Solar Panel blog  l Power Budget Spreadsheet l Power Budgeting Video 

See also:

19. Installation 147

l Power input (p. 11) l Power output (p. 13) l Power requirements (p. 228) l Power output specifications (p. 230)

19.5 Field work Field installation is site- and application- specific. This section lists resources to aid with system installation.

l Data logger enclosures (p. 148) l Grounds (p. 13) l Electrostatic discharge and lightning protection (p. 149) l Weather Station Siting and Installation Technical Paper l Protect Station from Birds Blog l Tripod Manual  l Tripod Installation Videos l Tower Manual (UT20 and UT30)  l UTBASE Installation Video l Surge Protector Kits: Installation and Troubleshooting White Paper 

19.6 Data logger enclosures The data logger and most of its peripherals must be protected from moisture and humidity. Moisture in the electronics will seriously damage the data logger. In most cases, protection from moisture is easily accomplished by placing the data logger in a weather-tight enclosure with desiccant and elevating the enclosure above the ground. Desiccant in enclosures should be changed periodically.

WARNING: Do not completely seal the enclosure if lead-acid batteries are present; hydrogen gas generated by the batteries may build to an explosive concentration.

The following details a typical installation using a Campbell Scientific enclosure. The data logger has mounting holes through which small screws are inserted into nylon anchors in the backplate.

1. Insert the included nylon anchors into the backplate. Position them to align with the mounting holes on the base of the data logger.

19. Installation 148

2. Holding the data logger to the backplate, screw the screws into the nylon anchors.

See also Physical specifications (p. 228).

19.7 Electrostatic discharge and lightning protection

WARNING: Lightning strikes may damage or destroy the data logger, associated sensors and power supplies.

Electrostatic discharge (ESD) can originate from several sources, the most common and destructive are primary and secondary lightning strikes. Primary lightning strikes hit instrumentation directly. Secondary strikes induce voltage in power lines or wires connected to instrumentation. While elaborate, expensive, and nearly infallible lightning protection systems are on the market, Campbell Scientific, for many years, has employed a simple and inexpensive design that protects most systems in most circumstances. The system consists of a lightning rod, metal mast, heavy-gauge ground wire, and ground rod to direct damaging current away from the data logger. This system, however, is not infallible. The following image displays a typical application of the system:

19. Installation 149

All critical inputs and outputs on the data logger are ESD protected. To be effective, the earth ground lug must be properly connected to earth (chassis) ground.

Communications ports are another path for transients. You should provide communications paths, such as telephone or short-haul modem lines, with spark-gap protection. Spark-gap protection is usually an option with these products; so, request it when ordering. Spark gaps must be connected to earth (chassis) ground.

For detailed information on grounding, see Grounds (p. 13).

19. Installation 150

20. CR350 maintenance Protect the data logger from humidity and moisture. When humidity levels reach the dewpoint, condensation occurs, and damage to data logger electronics can result. Adequate desiccant should be placed in instrumentation enclosure to provide protection, and control humidity. Desiccant should be changed periodically.

If sending the data logger to Campbell Scientific for calibration or repair, consult first with Campbell Scientific. If the data logger is malfunctioning, be prepared to perform some troubleshooting procedures (see Tips and troubleshooting (p. 158)). See: Does Your Data Logger Need to be Repaired Blog and Troubleshooting Data Acquisition System Blog .

Also, consider checking, or posting your question to, the Campbell Scientific user forum https://www.campbellsci.com/forum . Our web site www.campbellsci.com has additional manuals (with example programs), FAQs, specifications and compatibility information for all of our products.

Video tutorials www.campbellsci.com/videos and blog articles www.campbellsci.com/blog are also useful troubleshooting resources.

If calibration or repair is needed, the procedure shown on: https://www.campbellsci.com/repair should be followed when sending the product.

20.1 Data logger calibration Campbell Scientific recommends factory recalibration every three years. During calibration, all the input terminals, peripheral and communications ports, operating system, and memory areas are checked; and the internal battery is replaced. The data logger is checked to ensure that all hardware operates within published specifications before it is returned. To request recalibration for a product, see https://www.campbellsci.com/repair .

It is recommended that you maintain a level of calibration appropriate to the data logger application. Consider the following factors when setting a calibration schedule:

l The importance of the measurements l How long the data logger will be used l The operating environment l How the data logger will be handled

20. CR350 maintenance 151

You can download and print calibration certificates for many products you have purchased by logging in to the Campbell Scientific website and going to: https://www.campbellsci.com/calcerts .

NOTE: Note, you will need your product's serial number to access its certificate.

Watch an instructional video: http://www.campbellsci.com/videos/calibration-certs .

20.2 Internal battery The lithium battery powers the internal clock when the data logger is not powered. This voltage is displayed in the LithiumBattery (see Information tables and settings (advanced) (p. 190)) field in the Status table. Replace the battery when voltage is approximately 2.7 VDC. The internal lithium battery life is extended when the data logger is installed with an external power source. If the data logger is used in a high-temperature application, the battery life is shortened.

To prevent clock and memory issues, it is recommended you proactively replace the battery every 5 years, or more frequently when operating continuously in high temperatures. For example, replace at least every 2 years if operating continuously at 80 C.

NOTE: The battery is replaced during regular factory recalibration, which is recommended every 3 years. For more information, see Data logger calibration (p. 151).

When the lithium battery is removed (or is depleted and primary power to the data logger is removed), the CRBasic program and most settings are maintained, but the following are lost:

l Temporary program memory (current values for variables). l Routing and communications logs (relearned without user intervention). l Time. Clock will need resetting when the battery is replaced.

A replacement lithium battery can be purchased from Campbell Scientific or another supplier.

l 3 V coin cell CR2025 for battery-backed clock. 6-year life with no external power source.

See Power requirements (p. 228) for more information.

WARNING: Misuse or improper installation of the internal lithium battery can cause severe injury. Fire, explosion, and severe burns can result. Do not recharge, disassemble, heat above 100 C (212 F), solder directly to the cell, incinerate, or expose contents to water. Dispose of spent lithium batteries properly.

20. CR350 maintenance 152

NOTE: The Status field Battery value and the destination variable from the Battery() instruction (often called batt_volt) in the Public table reference the external battery voltage.

For additional information on the internal battery, visit the Campbell Scientific blog article, Get to Know Your Data Loggers Spare Tire: The Lithium Battery .

20.2.1 Replacing the internal battery It is recommended that you send the data logger in for scheduled calibration, which includes internal battery replacement (see Data logger calibration (p. 151)).

WARNING: Any damage made to the data logger during user replacement of the internal battery is not covered under warranty.

1. Loosen the screws from the bottom of the data logger.

2. Pull the bottom and top of the data logger apart.

3. Remove the lithium battery by gently prying it out with a small flat-bladed screwdriver.

4. Install new battery.

5. Reassemble the data logger.

20.3 Updating the operating system Campbell Scientific posts operating system (OS) updates at https://www.campbellsci.com/downloads when they become available. It is recommended that before deploying instruments, you check operating system versions and update them as needed. The data logger operating system version is shown in the Status table, Station Status Summary, and Device Configuration Utility Deployment > Datalogger. An operating system may be sent through Device Configuration Utility or through program-send procedures.

WARNING: Because sending an OS resets data logger memory and resets all settings on the data logger to factory defaults, data loss will certainly occur. Depending on several factors, the data logger may also become incapacitated until the new OS is programmed into memory.

TIP: It is recommended that you retrieve data from the data logger and back up your programs and settings before updating your OS. To collect data using LoggerNet, connect to your data

20. CR350 maintenance 153

logger and click Collect Now . To backup your data logger, connect to it in Device Configuration Utility, click the Backup menu and select Backup Datalogger.

20.3.1 Sending an operating system to a local data logger Send an OS using Device Configuration Utility. This method requires a direct connection between your data logger and computer.

1. Download the latest Operating System at https://www.campbellsci.com/downloads .

2. Locate the .exe download and double-click to run the file. This will extract the .obj OS file to the C:\Campbellsci\Lib\OperatingSystems folder.

3. Supply power to the data logger. If connecting via USB for the first time, you must first install USB drivers by using Device Configuration Utility (select your data logger, then on the main page, click Install USB Driver). Alternately, you can install the USB drivers using EZ Setup. A USB connection supplies 5 V power (as well as a communications link), which is adequate for setup, but a 12 V battery will be needed for field deployment.

4. Physically connect your data logger to your computer using a USB cable, then open Device Configuration Utility and select your data logger.

5. Select the communications port used to communicate with the data logger from the COM Port list (you do not need to click Connect).

6. Click the Send OS tab. At the bottom of the window, click Start.

7. On the Avoid Conflicts with the Local Server window, click OK.

8. Navigate to the C:\Campbellsci\Lib\OperatingSystems folder.

9. Ensure Datalogger Operating System Files (*.obj) is selected in the Files of type list, select the new OS .obj file, and click Open to update the OS on the data logger.

Watch a video: Sending an OS to a Local Datalogger .

20.3.2 Sending an operating system to a remote data logger

CAUTION: Sending an OS remotely to a data logger with Operating System 4 or earlier is not recommended. These dataloggers should be updated using the previous instruction (Sending an operating system to a local data logger (p. 154)).

If you have a data logger that is already deployed, you can update the OS over a telecommunications link by sending the OS to the data logger as a program. In most instances,

20. CR350 maintenance 154

sending an OS as a program preserves settings. This allows for sending supported operating systems remotely (check the release notes). However, this should be done with great caution as updating the OS may reset the data logger settings, even settings critical to supporting the telecommunication link.

The default.CRB program can be edited to preserve critical datalogger settings such as communications settings. See Default program (p. 141) for more information.

1. Download the latest Operating System at https://www.campbellsci.com/downloads .

2. Locate the .exe download and double-click to run the file. This will extract the .obj OS file to the C:\Campbellsci\Lib\OperatingSystems folder.

3. Using data logger support software, connect to your data logger. l LoggerNet users, select Main and click Connect on the LoggerNet toolbar, select

the data logger from the Stations list, then click Connect . l PC400 users, select the data logger from the list and click Connect .

4. Select File Control at the top of the Connect window.

5. Click Send at the top of the File Control window.

6. Navigate to the C:\Campbellsci\Lib\OperatingSystems folder.

7. Ensure Datalogger Operating System Files (*.obj) is selected in the files of type list, select the new OS .obj file, and click Open to update the OS on the data logger.

20. CR350 maintenance 155

Note the following precautions when sending as a program:

l Any peripherals being powered through the SW12 terminal will be turned off until the program logic turns them on again.

l Operating systems are very large files. Be cautious of data charges. Sending over a direct serial or USB connection is recommended, when possible.

20.4 gzip The CR350 supports the ability to extract the contents of program, operating system, and other files that have been created using gzip. The file name must be in the format: filename.fileextension.gz (for example: TestPgm.CRB.gz, CR350.Std.01.obj.gz, or CR350.Std.01.web.obj.gz).

For more information see: www.gzip.org .

Zipping a file can significantly reduce its size, resulting in fewer bytes to transfer when sending a zipped file to a data logger. This is especially beneficial over slow, high-latency, or costly telecommunications links. Therefore, those using low-baud-rate radios, satellite, or restricted cellular data plans should consider gzipping operating systems and large programs before sending.

Compatible files can be created using any utility that supports the gzip file format. Use a file tarball (filename.tar.gz) to compress multiple files. Several free utilities provide zipping to these formats.

Send the zipped file to the CPU:, CRD: or USB: drive using data logger support software. Files sent using Connect > Send Program will be unzipped automatically. However, the data logger will not automatically unzip files that are sent using File Control > Send File. To unzip files sent with File Control, mark them as Run Now.

Unzipping and installing file contents takes a long time; expect several minutes for operating systems and additional time for .web files. The details of unzipping and installing files from a gzip file are as follows:

1. The data logger receives the gzip file and restarts.

2. The data logger unzips the .gz file to the same drive to which it was sent.

3. The .tar portion of the file, if available, is processed.

4. Operating system (.obj or .iobj files) are programmed to the respective destination.

5. The data logger restarts.

20. CR350 maintenance 156

6. When an .obj file is involved the OS will be loaded by the boot code resulting in another restart.

7. Web user interface (.web) files, if available, are installed. This may take over ten minutes.

NOTE: Compression has little effect on an encrypted program (FileEncrypt() ) and on files that already employ compression such as JPEG or MP4.

TIP: The data logger also has the ability to compress files using GZip(). See the CRBasic Editor help for detailed instruction information and program examples: https://help.campbellsci.com/crbasic/cr350/ .

20. CR350 maintenance 157

21. Tips and troubleshooting Start with these basic procedures if a system is not operating properly.

1. Ensure your system is well grounded. See Grounds (p. 13). The symptoms of a poorly grounded system range from bad measurements, to intermittent communications, to damaged hardware.

2. Using a voltmeter, check the voltage of the primary power source at the CHG and BAT terminals on the face of the data logger, it should be 10 to 18 VDC. If connecting to a power source via the CHG terminals, voltage measured should be 16 to 32 VDC.

3. Check wires and cables for the following: l Incorrect wiring connections. Make sure each sensor and device are wired to the

terminals assigned in the program. If the program was written in Short Cut, check wiring against the generated wiring diagram. If written in CRBasic Editor, check wiring against each measurement and control instruction.

l Loose connection points l Faulty connectors l Cut wires l Damaged insulation, which allows water to migrate into the cable. Water, whether or

not it comes in contact with wire, can cause system failure. Water may increase the dielectric constant of the cable sufficiently to impede sensor signals, or it may migrate into the sensor, which will damage sensor electronics.

4. Check the CRBasic program. If the program was written solely with Short Cut, the program is probably not the source of the problem. If the program was written or edited with CRBasic Editor, logic and syntax errors could easily have crept in. To troubleshoot, create a simpler version of the program, or break it up into multiple smaller units to test individually. For example, if a sensor signal-to-data conversion is faulty, create a program that only measures that sensor and stores the data, absent from all other inputs and data.

5. Reset the data logger. Sometimes the easiest way to resolve a problem is by resetting the data logger (see Resetting the data logger (p. 165) for more information).

For additional troubleshooting options, see:

21.1 Checking station status 159

21. Tips and troubleshooting 158

21.2 Understanding NAN and INF occurrences 161

21.3 Timekeeping 162

21.4 CRBasic program errors 164

21.5 Troubleshooting Radio Communications 165

21.6 Resetting the data logger 165

21.7 Troubleshooting power supplies 167

21.8 Using terminal mode 168

21.9 Ground loops 173

21.10 Improving voltage measurement quality 177

21.11 Field calibration 189

21.12 File name and resource errors 189

Also, consider checking, or posting your question to, the Campbell Scientific user forum https://www.campbellsci.com/forum . Our web site www.campbellsci.com has additional manuals (with example programs), FAQs, specifications and compatibility information for all of our products.

Video tutorials www.campbellsci.com/videos and blog articles www.campbellsci.com/blog are also useful troubleshooting resources.

21.1 Checking station status View the condition of the data logger using Station Status. Here you see the operating system version of the data logger, the name of the current program, program compile results, and other key indicators. Items that may need your attention appear in red or blue. The following information describes the significance of some entries in the station status window. Watch a video at: https://www.campbellsci.com/videos/connect-station-status  or use the following instructions.

21.1.1 Viewing station status Using your data logger support software, access the Station Status to view the condition of the data logger.

l From LoggerNet: Click Connect , then Station Status to view the Summary tab. l From PC400: Select the Datalogger menu and Station Status to view the Summary tab.

21. Tips and troubleshooting 159

21.1.2 Watchdog errors Watchdog errors indicate that the data logger has crashed and reset itself. Experiencing occasional watchdog errors is normal. You can reset the Watchdog error counter in the Station Status > Status Table.

TIP: Before resetting the counter, make note of the number accumulated and the date.

Watchdog errors could be due to:

l Transient voltage l Incorrectly wired or malfunctioning sensor l Poor ground connection on the power supply l Numerous PortSet() instructions back-to-back with no delay l High-speed serial data on multiple ports with very large data packets or bursts of data

The error "Results for Last Program Compiled: Warning: Watchdog Timer IpTask Triggered" can result from:

l The IP communications on the data logger got stuck, and the data logger had to reboot itself to recover. Or communications failures may cause the data logger to reopen the IP connections more than usual. Check your data logger operating system version; recent operating system versions have improved stability of IP communications.

If any of these are not the apparent cause, contact Campbell Scientific for assistance (see https://www.campbellsci.com/support ). Causes that may require assistance include:

l Memory corruption l Operating System problem l Hardware problem l IP communications problem

21.1.3 Results for last program compiled Messages generated by the data logger at program upload and as the program runs are reported here. Warnings indicate that an expected feature may not work, but the program will still operate. Errors indicate that the program cannot run. For more information, see CRBasic program errors (p. 164).

21. Tips and troubleshooting 160

21.1.4 Skipped scans Skipped scans are caused when a program takes longer to process than the scan interval allows. An occasional skipped scan can be caused by memory formatting as discussed in Data memory (p. 79). If any scan skips repeatedly, the data logger program may need to be optimized or reduced. For more information, see: How to Prevent Skipped Scans and a Sunburn .

21.1.5 Skipped records Skipped records usually occur because a scan is skipped. They indicate that a record was not stored to the data table when it should have been.

21.1.6 Variable out of bounds Variable-out-of-bounds errors happen when an array is not sized to the demands of the program. The data logger attempts to catch out-of-bounds errors at compile time. However, it is not always possible; when these errors occur during runtime the variable-out-of-bounds field increments. Variable-out-of-bounds errors are always caused by programming problems.

21.1.7 Battery voltage If powering through USB, reported battery voltage should be 0 V. If connecting to an external power source, battery voltage should be reported at or near 12 V. See also:

l Power input (p. 11) l Power requirements (p. 228)

21.2 Understanding NAN and INF occurrences NAN (not a number) and INF (infinite) are data words indicating an exceptional occurrence in data logger function or processing. INF indicates that the program has encountered an undefined arithmetic expression, such as 0  0. NAN indicates an invalid measurement. For more information, see Tips and Tricks: Who's NAN? .

NANs are expected in the following conditions:

l Input signals exceed the voltage range chosen for the measurement. l An invalid SDI-12 command is sent. l An SDI-12 sensor does not respond or aborts without sending data.

21. Tips and troubleshooting 161

NAN is a constant that can be used in expressions. This is shown in the following example code that sets a CRBasic variable to False when the wind direction is NAN:

If WindDir = NAN Then WDFlag = False

Else WDFlag = True

EndIf

If an output processing instruction encounters a NAN in the values being processed, NAN will be stored. For example, if one measurement in a data storage interval results in NAN, then the average, maximum and minimum will record NAN. However, because NAN is a constant, it can be used in conjunction with the disable variable parameter (DisableVar) in output processing instructions. Use variable = NAN in the DisableVar parameter to discard NANs from affecting the other good values. The following example code discards NAN WindSpeed measurements from the Minimum output:

Minimum (1,WindSpeed,FP2,WindSpeed=NAN,False)

NOTE: There is no such thing as NAN for integers. Values that are converted from float to integer will be expressed in data tables as the most negative number for a given data type. For example, the most negative number of data type FP2 is 7999; so, NAN for FP2 data will appear in a data table as 7999. If the data type is Long, NAN will appear in the data table as 2147483648.

21.3 Timekeeping Measurement of time is an essential data logger function. Time measurement with the onboard clock enables the data logger to run on a precise interval, attach time stamps to data, measure the interval between events, and time the initiation of control functions. Details on clock accuracy and resolution are available in the System specifications (p. 227). An internal lithium battery backs the clock when the data logger is not externally powered (see Internal battery (p. 152)).

21.3.1 Clock best practices When setting the clock with LoggerNet, initiate it manually during a maintenance period when the data logger is not actively writing to Data Tables. Click Set in the Clocks field of the LoggerNet Connect Screen.

If you are going to use automated clock check with LoggerNet (clock settings can be found on the LoggerNet Setup Standard View Clock tab). it is recommended that you do this on the order of

21. Tips and troubleshooting 162

days (not hours). Set an allowed clock deviation that is appropriate for the expected jitter in the network, and use the initial time setting to offset the clock check away from storage and measurement intervals.

The amount of time required for a Clock Check command to reach the data logger, be processed, and for it to send its response is called round-trip time, or time-of-flight. To calculate an estimate of this time-of-flight, LoggerNetmaintains a history (in order) of the round-trip times for the ten previous successful clock check transactions. It adds this average to the time values received from the data logger and subtracts it from any adjustment that it might make.

21.3.2 Time stamps A measurement without an accurate time reference often has little meaning. Data collected from data loggers is stored with time stamps. How closely a time stamp corresponds to the actual time a measurement is taken depends on several factors.

The time stamp in common CRBasic programs matches the time at the beginning of the current scan as measured by the real-time data logger clock. If a scan starts at 15:00:00, data output during that scan will have a time stamp of 15:00:00 regardless of the length of the scan, or when in the scan a measurement is made. The possibility exists that a scan will run for some time before a measurement is made. For instance, a scan may start at 15:00:00, execute a time-consuming part of the program, then make a measurement at 15:00:00.51. The time stamp attached to the measurement, if the CallTable() instruction is called from within the Scan() / NextScan construct, will be 15:00:00, resulting in a time-stamp skew of 510 ms.

21.3.3 Avoiding time skew Time skew between consecutive measurements is a function of settling and integration times, ADC, and the number entered into the Reps parameter of CRBasic instructions. A close approximation is:

time skew = reps * (settling time + integration time + ADC time) + instruction setup time where ADC time equals 170 s, and instruction setup time is 15 s. If reps (repetitions) > 1 (multiple measurements by a single instruction), no setup time is required. If reps = 1 for consecutive voltage instructions, include the setup time for each instruction.

Time-stamp skew is not a problem with most applications because:

l Program execution times are usually short; so, time-stamp skew is only a few milliseconds. Most measurement requirements allow for a few milliseconds of skew.

21. Tips and troubleshooting 163

l Data processed into averages, maxima, minima, and so forth are composites of several measurements. Associated time stamps only reflect the time of the scan when processing calculations were completed; so, the significance of the exact time a specific sample was measured diminishes.

Applications measuring and storing sample data wherein exact time stamps are required can be adversely affected by time-stamp skew. Skew can be avoided by:

l Making measurements in the scan before time-consuming code. l Programming the data logger such that the time stamp reflects the system time rather than

the scan time using the DataTime() instruction. See the CRBasic Editor help for detailed instruction information and program examples: https://help.campbellsci.com/crbasic/cr350/ .

21.4 CRBasic program errors Analyze data soon after deployment to ensure the data logger is measuring and storing data as intended. Most measurement and data-storage problems are a result of one or more CRBasic program bugs. Watch a video: CRBasic | Common Errors - Identifying and fixing common errors in the CRBasic programming language .

21.4.1 Program does not compile When a program is compiled, the CRBasic Editor checks the program for syntax errors and other inconsistencies. The results of the check are displayed in a message window at the bottom of the main window. If an error can be traced to a specific line in the program, the line number will be listed before the error. Double-click an error preceded by a line number and that line will be highlighted in the program editing window. Correct programming errors and recompile the program.

Occasionally, the CRBasic Editor compiler states that a program compiles OK; however, the program may not compile in the data logger itself. This is rare, but reasons may include:

l The data logger has a different operating system than the computer compiler. Check the two versions if in doubt. The computer compiler version is shown on the first line of the compile results. Update the computer compiler by first downloading the executable OS file from www.campbellsci.com . When run, the executable file updates the computer compiler. To update the data logger operating system, see Updating the operating system (p. 153).

21. Tips and troubleshooting 164

l The program has large memory requirements for data tables or variables and the data logger does not have adequate memory. This normally is flagged at compile time in the compile results. If this type of error occurs: 

o Check the CPU drive for copies of old programs. The data logger keeps copies of all program files unless they are deleted, the drive is formatted, or a new operating system is loaded with Device Configuration Utility.

21.4.2 Program compiles but does not run correctly If the program compiles but does not run correctly, timing discrepancies may be the cause. If a program is tight on time, look further at the execution times. Check the measurement and processing times in the Status table (MeasureTime, ProcessTime, MaxProcTime) for all scans, then try experimenting with the InstructionTimes() instruction in the program. Analyzing InstructionTimes() results can be difficult due to the multitasking nature of the data logger, but it can be a useful tool for fine-tuning a program. For more information, see Information tables and settings (advanced) (p. 190).

See the CRBasic Editor help for detailed instruction information and program examples: https://help.campbellsci.com/crbasic/cr350/ .

21.5 Troubleshooting Radio Communications If there are intermittent communication problems when connecting via radio, there may be another network in the area causing interference. To help remove the interference, use Device Configuration Utility to change the Network ID and RF Hop Sequence in all RF407, RF412, and RF422 radios within a network (standalone or included in a data logger) to another value. Each of these settings must have the same value in all radios and dataloggers within a network. For example, the Network ID in all devices could be set to 1726, and the RF Hop Sequence in all devices could be set to 1. The Network ID can be any number between 0 and 32767. The RF Hop Sequence can be any number between 0 and 7 in an RF407 or RF412 network; it can be any number between 0 and 9 in an RF422 network.

See also Radio communications option (p. 53). For specifications information, see RF radio option specifications (p. 238).

21.6 Resetting the data logger A data logger reset is sometimes referred to as a "memory reset." Backing up the current data logger configuration before a reset makes it easy to revert to the old settings. To back up the

21. Tips and troubleshooting 165

data logger configuration, connect to the data logger using Device Configuration Utility, and click Backup > Back Up Datalogger. To restore a configuration after the data logger has been reset, connect and click Backup > Restore Datalogger.

The following features are available for complete or selective reset of data logger memory:

l Processor reset l Program send reset l Manual data table reset l Formatting memory drives l Full memory reset

21.6.1 Processor reset To reset the processor, simply power cycle the data logger. This resets its short-term memory, restarts the current program, sets variables to their starting values, and clears communications buffers. This does not clear data tables but may result in a skipped record. If the data logger is remote, a power cycle can be mimicked in a Terminal Emulator program (type REBOOT ).

21.6.2 Program send reset Final-data memory is erased when user programs are uploaded, unless preserve / erase data options are used and the program was not altered. Preserve / erase data options are presented when sending programs using File Control Send command and CRBasic Editor Compile, Save and Send.

TIP: It is good practice to always retrieve data from the data logger before sending a program; otherwise, data may be lost. See Collecting data (p. 69) for detailed instruction.

When a program compiles, all variables are initialized. A program is recompiled after a power failure or a manual stop. For instances that require variables to be preserved through a program recompile, consider PreserveVariables() and PreserveOneVariable() instructions and User Settings. Entries in User Settings are not erased when a program is recompiled.

User Settings can be entered manually in Device Configuration Utility in the Settings Editor > User Settings tab, or they can be written through a CRBasic program using the SetSetting() instruction.

NOTE: User settings are stored in flash memory. To avoid corrupting the flash memory, edit these settings infrequently.

21. Tips and troubleshooting 166

21.6.3 Manual data table reset Data table memory is selectively reset from:

l Datalogger support software: Station Status > Table Fill Times tab, Reset Tables. l Device Configuration Utility: Data Monitor tab, Reset Table button.

21.6.4 Formatting drives CPU, , and USB (module required) drives can be formatted individually. Formatting a drive erases all files on that drive. If the currently running user program is on the drive to be formatted, the program will cease running and data associated with the program are erased. Drive formatting is performed through the data logger support software File Control > Format command.

21.6.5 Full memory reset Full memory reset occurs when an operating system is sent to the data logger using Device Configuration Utility or when entering 98765 in the Status table field FullMemReset (see Information tables and settings (advanced) (p. 190)). A full memory reset does the following:

l Clears and formats CPU drive (all program files erased) l Clears data tables. l Clears Status table fields. l Restores settings to default. l Initializes system variables. l Clears communications memory.

See Updating the operating system (p. 153) for more information.

21.7 Troubleshooting power supplies Power supply systems may include batteries, charging regulators, and a primary power source such as solar panels or ac/ac or ac/dc transformers attached to mains power. All components may need to be checked if the power supply is not functioning properly. Check connections and check polarity of connections.

Base diagnostic: connect the data logger to a new 12 V battery. (A small 12 V battery carrying a full charge would be a good thing to carry in your maintenance tool kit.) Ensure correct polarity of the connection. If the data logger powers up and works, troubleshoot the data logger power supply.

21. Tips and troubleshooting 167

When diagnosing or adjusting power equipment supplied by Campbell Scientific, it is recommended you consider:

l Battery-voltage test l Charging-circuit test (when using an unregulated solar panel) l Charging-circuit test (when using a transformer) l Adjusting charging circuit

If power supply components are working properly and the system has peripherals with high current drain, such as a satellite transmitter, verify that the power supply is designed to provide adequate power. For additional information, see Power budgeting (p. 147).

21.8 Using terminal mode Table 21-1 (p. 168) lists terminal mode options. With exception of perhaps the C command, terminal options are not necessary to routine CR350 operations.

To enter terminal mode, connect a computer to the CR350. See Setting up communications with the data logger (p. 21). Open a terminal emulator program from Campbell Scientific data logger support software: 

l Connect window > Datalogger menu item> Terminal Emulator... l Device Configuration Utility Terminal tab

After entering a terminal emulator, press Enter a few times until the prompt CR350> is returned. Terminal commands consist of specific characters followed by Enter. Sending an H and Enter will return the terminal emulator menu.

ESC or a 40 second timeout will terminate on-going commands. Concurrent terminal sessions are not allowed and will result in dropped communications.

Terminal commands are subject to change. Please consult Campbell Scientific for assistance if you are not familiar with the effects of a command.

Table 21-1: CR350 terminal commands

Command Description Use

0 Scan processing time; real time in seconds Lists technical data concerning program scans.

3 Status Lists the CR350 Status table.

5 Scan information Technical data regarding the CR350 scan.

7 VARS Lists Public table variables.

21. Tips and troubleshooting 168

Table 21-1: CR350 terminal commands

Command Description Use

A Operating system copyright Lists copyright notice and version of operating system.

C Modify constant table Edit constants defined with ConstTable / EndConstTable. Only active when ConstTable / EndConstTable in the active program.

D MTdbg() task monitor Campbell Scientific engineering tool

E Compile errors Lists compile errors for the current program download attempt.

F Settings names Lists settings

H Terminal emulator menu Lists main menu.

I Calibration data Lists gains and offsets resulting from internal calibration of analog measurement circuitry.

J Download file dump Sends text of current program including comments.

L Peripheral bus read Campbell Scientific engineering tool

M Memory check Lists memory-test results

N File system information Lists files in CR350 memory.

O Data table sizes Lists technical data concerning data-table sizes.

P Serial talk through

Issue commands from keyboard that are passed through the logger serial port to the connected device. Similar in concept to SDI12 Talk Through. No timeout when connected via PakBus.

REBOOT Program recompile

Typing REBOOT rapidly will recompile the CR350 program immediately after the last letter, "T", is entered. Table memory is retained. NOTE: When typing REBOOT, characters are not echoed (printed on terminal screen).

SDI12 SDI12 talk through

Issue commands from keyboard that are passed through the CR350 SDI-12 port to the connected device. Similar in concept to Serial Talk Through. See also SDI-12 transparent mode (p. 170)

21. Tips and troubleshooting 169

Table 21-1: CR350 terminal commands

Command Description Use

T Terminal master Communicate through the terminal mode of a remote CR350 by way of another CR350. See also Terminal master (p. 172).

W Comms Watch (Sniff) Enables monitoring of CR350 communications traffic. No timeout when connected via PakBus.

PCAP Wireshark PCAP file capture Campbell Scientific engineering tool

21.8.1 Serial talk through and comms watch The P: Serial Talk Through and W: Comms Watch ("sniff") modes do not have a timeout when connected in terminal mode via PakBus. Otherwise, the timeout can be changed from the default of 40 seconds to any value ranging from 1 to 86400 seconds (86400 seconds = 1 day).

When using options P or W in a terminal session, consider the following:

l Concurrent terminal sessions are not allowed by the CR350. l Opening a new terminal session will close the current terminal session. l The data logger will attempt to enter a terminal session when it receives non-PakBus

characters on the RS-232 port unless the port is first opened with the SerialOpen() instruction.

If the data logger attempts to enter a terminal session on the RS-232 port because of an incoming non-PakBus character, and that port was not opened using SerialOpen(), any currently running terminal function, including the comms watch, will immediately stop. So, in programs that frequently open and close a serial port, the probability is higher that a non-PakBus character will arrive at the closed serial port, thus closing an existing talk-through or comms watch session.

For more information on Comms Watch, see a video at: https://www.campbellsci.com/videos/sdi12-sensors-watch-or-sniffer-mode .

21.8.2 SDI-12 transparent mode All SDI-12 probes have just three wiresa signal, ground, and 12 V power line. They are connected to the data logger according to the following table.

21. Tips and troubleshooting 170

Table 21-2: SDI-12 probe connections

Wire function Data logger connection

Shield (analog ground)

Power 12V

Power ground G

System operators can manually interrogate and enter settings in probes, connected to the data logger, using transparent mode. Transparent mode is useful in troubleshooting SDI-12 systems because it allows direct communications with probes.

Transparent mode may need to wait for commands issued by the programmed mode to finish before sending responses. While in transparent mode, the data logger programs may not execute. Data logger security may need to be unlocked before transparent mode can be activated.

Transparent mode is entered while the computer is communicating with the data logger through a terminal emulator program such as through Device Configuration Utility or other data logger support software. Keyboard displays cannot be used. For how-to instructions for communicating directly with an SDI-12 sensor using a terminal emulator, watch this video: https://www.campbellsci.com/videos/sdi12-sensors-transparent-mode .

To enter the SDI-12 transparent mode, enter the data logger support software terminal emulator:

1. Press Enter until the data logger responds with the prompt CR350>.

2. Type SDI12 at the prompt and press Enter.

3. In response, the query Select SDI12 Port is presented with a list of available ports. Enter the port number assigned to the terminal to which the SDI-12 sensor is connected, and press Enter. For example, 1 is entered for terminal C1.

4. An Entering SDI12 Terminal response indicates that SDI-12 transparent mode is active and ready to transmit SDI-12 commands and display responses.

21. Tips and troubleshooting 171

21.8.2.1 Watch command (sniffer mode) The terminal-mode utility allows monitoring of SDI-12 traffic by using the watch command (sniffer mode). Watch an instructional video: https://www.campbellsci.com/videos/sdi12-sensors- watch-or-sniffer-mode  or use the following instructions.

1. Enter the transparent mode as described previously.

2. Press Enter until a CR350> prompt appears.

3. Type W and then press Enter.

4. In response, the query Select SDI12 Port: is presented with a list of available ports. Enter the port number assigned to the terminal to which the SDI-12 sensor is connected, and press Enter.

5. In answer to Enter timeout (secs): type 100 and press Enter.

6. In response to the query ASCII (Y)?, type Y and press Enter.

7. SDI-12 communications are then opened for viewing.

21.8.2.2 SDI-12 transparent mode commands SDI-12 commands and responses are defined by the SDI-12 Support Group (www.sdi-12.org ) and are available in the SDI-12 Specification . Sensor manufacturers determine which commands to support. Commands have three components:

l Sensor address ( a): A single character and the first character of the command. Sensors are usually assigned a default address of zero by the manufacturer. The wildcard address ( ?) is used in the Address Query command. Some manufacturers may allow it to be used in other commands. SDI-12 sensors accept addresses 0 through 9, a through z, and A through Z.

l Command body (for example, M1): An upper case letter (the command) followed by alphanumeric qualifiers.

l Command termination ( !): An exclamation mark.

An active sensor responds to each command. Responses have several standard forms and terminate with (carriage returnline feed).

21.8.3 Terminal master Use the Terminal master command from a terminal mode to manually interrogate and enter settings in smart-sensors connected to a remote CR350. The Terminal master is useful for

21. Tips and troubleshooting 172

remotely accessing data logger terminal features such as SDI-12 and serial talk through modes for configuration and trouble shooting.

Using a terminal emulator enter the CR350 terminal mode. For more information, see Using terminal mode (p. 168)

1. Press Enter until the data logger responds with the prompt CR350>.

2. Type T at the prompt and press Enter.

3. In response, select the PakBus address of the remote data logger.

Once the Terminal master option is entered, the terminal will present a new prompt, n*CR350>, where n is the remote CR350 PakBus address.

4. Now, the remote device terminal functions can be accessed.

21.9 Ground loops A ground loop is a condition in an electrical system that contains multiple conductive paths for the flow of electrical current between two nodes. Multiple paths are usually associated with the ground or 0 V-potential point of the circuit. Ground loops can result in signal noise, communications errors, or a damaging flow of ground current on long cables. Most often, ground loops do not have drastic negative effects and may be unavoidable. Special cases exist where additional grounding helps shield noise from sensitive signals; however, in these cases, multiple ground conductors are usually run tightly in parallel without conductive shielding material placed between the parallel grounds. If possible, ground loops should be avoided. When problems arise in a system, ground loops may be the source of the problems.

See also Grounds (p. 13).

21.9.1 Common causes Some of the common causes of ground loops include the following:

l The drain wire of a shielded cable is connected to the local ground at both ends, and the ground is already being carried by a conductor inside the cable. In this case, two wires, one on either side of the cable shield, are connected to the ground nodes at both ends of the cable.

l A long cable connects the grounds of two electrical devices, and the mounting structure or grounding rod also directly connects the grounds of each device to the local earth ground. The two paths, in this case, are the connecting cable and earth itself.

21. Tips and troubleshooting 173

l When electrical devices are connected to a common metal chassis such as an instrument tower, the structure can create a ground path in parallel to the ground wires in sensor cables running over the structure.

l Conductors connected to ground are found in most cables that connect to a data logger. These include sensors cables, communications cables, and power cables. Any time one of these cables connects to the same two endpoints as another cable, a ground loop is formed.

21.9.2 Detrimental effects The harm from a ground loop can be seen in different ways. One consideration is the electromagnetically induced effect. This will manifest as AC noise or an AC pulse. As seen in FIGURE 21-1 (p. 174) the parallel conductive paths form an electrical loop that acts as an antenna to pick up electromagnetic energy.

FIGURE 21-1. Stray AC magnetic fields picked up in loop antenna

l Relatively small electromagnetic energy: This could come from AC current on a nearby power cable, or RF energy transmitting through the air, and can cause electrical noise that either corrupts an analog signal or disrupts digital communications.

l Larger electromagnetic energy: The antenna loop scenario can have a more damaging effect when a large current is discharged nearby. The creation of an electromagnetic pulse can induce a surge that damages attached electronic devices.

Another way ground loops affect a system is by allowing ground current to flow between devices. This can be either a DC or AC effect. For various reasons, the voltage potential between two different points on the surface of the earth is not always 0 V. Therefore, when two electrical devices are both connected to a local earth ground, there may exist a voltage difference between the two devices. When a cable is connected between the two devices at different voltages,

21. Tips and troubleshooting 174

physics dictates than an electrical current must flow between the two points through the cable. See FIGURE 21-2 (p. 175).

FIGURE 21-2. Leakage current (AC or DC) from nearby load

l One effect of this DC ground current-flow is a voltage offset error in analog measurements. Errors of this sort are usually not obvious but can have meaningful effects on measurements.

l For digital communications, an offset in the ground voltage reduces the dynamic range of the digital signals. This makes them more susceptible to noise corruption. If the ground voltage changes by one volt or more, the digital communications could stop working because the signals no longer reach the thresholds for determining the state of each bit.

l If the ground voltage differences reach several volts, damaging effects may occur at the terminals of the electronics devices. Damage occurs when the maximum allowable voltage on the internal components is exceeded.

21.9.3 Severing a ground loop To avoid or eliminate ground loops, when they are detected, requires severing the loop. Suggestions for severing ground loops include:

l Connect the shield wire of a signal cable to ground only at one end of the cable. Leave the other end floating (not connected to ground).

l Never intentionally use the shield (or drain wire) of a cable as a signal ground or power ground.

l Use the mechanical support structure only as a connection for the safety ground (usually the ground lug). Do not intentionally return power ground through the structure.

l Do not use shielded Cat5e cables for Ethernet communications.

21. Tips and troubleshooting 175

l For long distance communications protocols such as RS-485, RS-422, and CAN, use a Resistive Ground (RG) terminal for the ground connection. The RG terminal has a 100-ohm resistor in series with ground to limit the amount of DC current that can flow between the two endpoints while keeping the common-mode voltage in range of the transceivers. The transceivers themselves have enhanced voltage range inputs allowing for ground voltage differences of up to 7 V between endpoints.

l For exceptional cases, use optical or galvanic isolation devices to provide a signal connection without any accompanying ground connection. These should be used only when ground loops are causing system problems and the other methods of breaking a ground loop dont apply. These devices add expense and tend to consume large amounts of power.

21.9.4 Soil moisture example When measuring soil moisture with a resistance block, or water conductivity with a resistance cell, the potential exists for a ground loop error. In the case of an ionic soil matric potential (soil moisture) sensor, a ground loop arises because soil and water provide an alternate path for the excitation to return to data logger ground. This example is modeled in the following image:

With Rg in the resistor network, the signal measured from the sensor is described by the following equation:

where

l Vx is the excitation voltage l Rf is a fixed resistor

21. Tips and troubleshooting 176

l Rs is the sensor resistance l Rg is the resistance between the excited electrode and data logger earth ground.

RsRf/Rg is the source of error due to the ground loop. When Rg is large, the error is negligible. Note that the geometry of the electrodes has a great effect on the magnitude of this error. The Delmhorst gypsum block used in the Campbell Scientific 227 probe has two concentric cylindrical electrodes. The center electrode is used for excitation; because it is encircled by the ground electrode, the path for a ground loop through the soil is greatly reduced. Moisture blocks that consist of two parallel plate electrodes are particularly susceptible to ground loop problems. Similar considerations apply to the geometry of the electrodes in water conductivity sensors.

The ground electrode of the conductivity or soil moisture probe and the data logger earth ground form a galvanic cell, with the water/soil solution acting as the electrolyte. If current is allowed to flow, the resulting oxidation or reduction will soon damage the electrode, just as if DC excitation was used to make the measurement. Campbell Scientific resistive soil probes and conductivity probes are built with series capacitors to block this DC current. In addition to preventing sensor deterioration, the capacitors block any DC component from affecting the measurement.

21.10 Improving voltage measurement quality The following topics discuss methods of generally improving voltage measurements:

21.10.1 Deciding between single-ended or differential measurements 178

21.10.2 Minimizing ground potential differences 179

21.10.3 Minimizing power-related artifacts 180

21.10.4 Filtering to reduce measurement noise 181

21.10.5 Minimizing settling errors 184

21.10.6 Factors affecting accuracy 186

21.10.7 Minimizing offset voltages 187

Read More: Consult the following technical papers at www.campbellsci.com/app-notes for in- depth treatments of several topics addressing voltage measurement quality:

l Preventing and Attacking Measurement Noise Problems l Benefits of Input Reversal and Excitation Reversal for Voltage Measurements l Voltage Accuracy, Self-Calibration, and Ratiometric Measurements

21. Tips and troubleshooting 177

21.10.1 Deciding between single-ended or differential measurements Deciding whether a differential or single-ended measurement is appropriate is usually, by far, the most important consideration when addressing voltage measurement quality. The decision requires trade-offs of accuracy and precision, noise cancellation, measurement speed, available measurement hardware, and fiscal constraints.

In broad terms, analog voltage is best measured differentially because these measurements include the following noise reduction features that are not included in single-ended measurements.

l Passive Noise Rejection o No voltage reference offset o Common-mode noise rejection, which filters capacitively coupled noise

Reasons for using single-ended measurements, however, include:

l Not enough differential terminals are available. Differential measurements use twice as many analog input terminals as do single-ended measurements.

l Rapid sampling is required. Single-ended measurement time is about half that of differential measurement time.

l Sensor is not designed for differential measurements. Some Campbell Scientific sensors are not designed for differential measurement, but the drawbacks of a single-ended measurement are usually mitigated by large programmed excitation and/or sensor output voltages.

Sensors with a high signal-to-noise ratio, such as a relative-humidity sensor with a full-scale output of 0 to 1000 mV, can normally be measured as single-ended without a significant reduction in accuracy or precision.

Sensors with a low signal-to-noise ratio, such as thermocouples, should normally be measured differentially. However, if the measurement to be made does not require high accuracy or precision, such as thermocouples measuring brush-fire temperatures, which can exceed 2500 C, a single-ended measurement may be appropriate. If sensors require differential measurement, but adequate input terminals are not available, an analog multiplexer should be acquired to expand differential input capacity.

Because a single-ended measurement is referenced to data logger ground, any difference in ground potential between the sensor and the data logger will result in an error in the measurement. For more information on grounds, see Grounds (p. 13) and Minimizing ground potential differences (p. 179).

21. Tips and troubleshooting 178

21.10.2 Minimizing ground potential differences Low-level, single-ended voltage measurements (<200 mV) are sensitive to ground potential fluctuation due to changing return currents from SW12 and C terminals. The data logger grounding scheme is designed to minimize these fluctuations by separating signal grounds ( ) from power grounds (G). For more information on data logger grounds, see Grounds (p. 13). To take advantage of this design, observe the following rules:

l Connect grounds associated with SW12 and C terminals to G terminals. l Connect excitation grounds to the nearest terminal on the same terminal block. l Connect the low side of single-ended sensors to the nearest terminal on the same

terminal block. l Connect shield wires to the terminal nearest the terminals to which the sensor signal

wires are connected.

If offset problems occur because of shield or ground wires with large current flow, tying the problem wires into terminals next to terminals configured for excitation and pulse-count should help. Problem wires can also be tied directly to the ground lug to minimize induced single-ended offset voltages.

21.10.2.1 Ground potential differences Because a single-ended measurement is referenced to data logger ground, any difference in ground potential between the sensor and the data logger will result in a measurement error. Differential measurements MUST be used when the input ground is known to be at a different ground potential from data logger ground.

Ground potential differences are a common problem when measuring full-bridge sensors (strain gages, pressure transducers, etc), and when measuring thermocouples in soil.

l Soil Temperature Thermocouple: If the measuring junction of a thermocouple is not insulated when in soil or water, and the potential of earth ground is, for example, 1 mV greater at the sensor than at the point where the data logger is grounded, the measured voltage will be 1 mV greater than the thermocouple output. With a Type T (copper- constantan) thermocouple, 1 mV equates to approximately 25 C measurement error.

l External Signal Conditioner: External instruments with integrated signal conditioners, such as an infrared gas analyzer (IRGA), are frequently used to make measurements and send analog information to the data logger. These instruments are often powered by the same VAC-line source as the data logger. Despite being tied to the same ground, differences in current drain and wire resistance result in different ground potentials at the two

21. Tips and troubleshooting 179

instruments. For this reason, a differential measurement should be made on the analog output from the external signal conditioner.

For additional information, see Minimizing offset voltages (p. 187).

21.10.3 Minimizing power-related artifacts Some VAC-to-VDC power converters produce switching noise or AC ripple as an artifact of the ac-to-dc rectification process. Excessive switching noise on the output side of a power supply can increase measurement noise, and so increase measurement error. Noise from grid or mains power also may be transmitted through the transformer, or induced electromagnetically from nearby motors, heaters, or power lines.

High-quality power regulators typically reduce noise due to power regulation. Using the 50 Hz or 60 Hz first notch frequency (fN1) option for CRBasic analog input measurement instructions often improves rejection of noise sourced from power mains. The CRBasic standard deviation output instruction, StdDev(), can be used to evaluate measurement noise.

The data logger includes adjustable digital filtering, which serves two purposes:

l Arrive as close as possible to the true input signal l Filter out measurement noise at specific frequencies, the most common being noise at 50

Hz or 60 Hz, which originate from mains-power lines.

Filtering time is inversely proportional to the frequency being filtered.

21. Tips and troubleshooting 180

21.10.3.1 Minimizing electronic noise Electronic noise can cause significant error in a voltage measurement, especially when measuring voltages less than 200 mV. So long as input limitations are observed, the PGA ignores voltages, including noise, that are common to each side of a differential-input pair. This is the common- mode voltage. Ignoring (rejecting or canceling) the common-mode voltage is an essential feature of the differential input configuration that improves voltage measurements. The following image illustrates the common-mode component (Vcm) and the differential-mode component (Vdm) of a voltage signal. Vcm is the average of the voltages on the V+ and V inputs. So, Vcm = (V+ + V)/2 or the voltage remaining on the inputs when Vdm = 0. The total voltage on the V+ and V inputs is given as VH = Vcm + Vdm/2, and VL = Vcm Vdm/2, respectively.

21.10.4 Filtering to reduce measurement noise The data logger applies an adjustable filter to analog measurements, reducing signal components at selected frequencies. The following figures show the frequency response of the filters applied when the first notch frequency (fN1) is set to 4000, 400, or 50/60 Hz, respectively. Note that the same filter is applied when fN1 is set to either 50 or 60 Hz, simultaneously filtering both 50 and 60 Hz signal components. Commonly, fN1 is set at 50 or 60 Hz in order to filter 50 or 60 Hz signal components, reducing noise from ac power mains.

Filtering comes at the expense of measurement time. The time required for filtering is 0.5 ms when fN1 is set to 4000 Hz, 6.226 ms when fN1 is 400 Hz, and 49.812 ms when fN1 is set to either 50 or 60 Hz. Random noise in the measurement results decreases, while measurement time increases, as fN1 is set to smaller values. The total time required for a single result includes settling + filtering + overhead.

A faster filter may be preferred to achieve the following objectives:

l Minimize time skew between successive measurements Avoiding time skew (p. 163). l Maximize throughput rate. l Maximize life of the data logger power supply.

21. Tips and troubleshooting 181

l Minimize polarization of polar sensors such as those for measuring conductivity, soil moisture, or leaf wetness. Polarization may cause measurement errors or sensor degradation.

l Improve accuracy of an LVDT measurement. The induced voltage in an LVDT decays with time as current in the primary coil shifts from the inductor to the series resistance; a long integration may result in most of signal decaying before the measurement is complete.

Consult the following technical paper at www.campbellsci.com/app-notes for in-depth treatment of measurement noise: Preventing and Attacking Measurement Noise Problems .

fN1 set to 4000 Hz:

fN1 set to 400 Hz:

21. Tips and troubleshooting 182

fN1 set to 50 or 60 Hz:

21. Tips and troubleshooting 183

21.10.5 Minimizing settling errors Settling time allows an analog voltage signal to rise or fall closer to its true magnitude prior to measurement. Default settling times, those resulting when the SettlingTime parameter is set to 0, provide sufficient settling in most cases. Additional settling time is often programmed when measuring high-resistance (high-impedance) sensors, or when sensors connect to the input terminals by long cables. The time to complete a measurement increases with increasing settling time. For example, a 1 ms increase in settling time for a bridge instruction with input reversal and excitation reversal results in a 4 ms increase in time to perform the instruction.

When sensors require long cable lengths, use the following general practices to minimize settling errors:

l Do not use leads with PVC-insulated conductors. PVC has a high dielectric constant, which extends input settling time.

l Where possible, run excitation leads and signal leads in separate shields to minimize transients.

l When measurement speed is not a prime consideration, additional time can be used to ensure ample settling time.

l In difficult cases where measurement speed is a consideration, an appropriate settling time can be determined through testing.

21.10.5.1 Measuring settling time Settling time for a particular sensor and cable can be measured with the CR350. Programming a series of measurements with increasing settling times will yield data that indicate at what settling time a further increase results in negligible change in the measured voltage. The programmed settling time at this point indicates the settling time needed for the sensor / cable combination.

The following CRBasic Example: Measuring Settling Time presents CRBasic code to help determine settling time for a pressure transducer using a high-capacitance semiconductor. The code consists of a series of full-bridge measurements (BrFull()) with increasing settling times. The pressure transducer is placed in steady-state conditions so changes in measured voltage are attributable to settling time rather than changes in pressure.

21. Tips and troubleshooting 184

CRBasic Example 3: Measuring Settling Time

'This program example demonstrates the measurement of settling time 'using a single measurement instruction multiple times in succession. Public PT(20) 'Variable to hold the measurements DataTable(Settle,True,100) Sample(20,PT(),IEEE4)

EndTable BeginProg Scan(1,Sec,3,0) BrFull(PT(1),1,mV2500,1,Vx1,1,2500,False,True, 100,60,1.0,0) BrFull(PT(2),1,mV2500,1,Vx1,1,2500,False,True, 200,60,1.0,0) BrFull(PT(3),1,mV2500,1,Vx1,1,2500,False,True, 300,60,1.0,0) BrFull(PT(4),1,mV2500,1,Vx1,1,2500,False,True, 400,60,1.0,0) BrFull(PT(5),1,mV2500,1,Vx1,1,2500,False,True, 500,60,1.0,0) BrFull(PT(6),1,mV2500,1,Vx1,1,2500,False,True, 600,60,1.0,0) BrFull(PT(7),1,mV2500,1,Vx1,1,2500,False,True, 700,60,1.0,0) BrFull(PT(8),1,mV2500,1,Vx1,1,2500,False,True, 800,60,1.0,0) BrFull(PT(9),1,mV2500,1,Vx1,1,2500,False,True, 900,60,1.0,0) BrFull(PT(10),1,mV2500,1,Vx1,1,2500,False,True,1000,60,1.0,0) BrFull(PT(11),1,mV2500,1,Vx1,1,2500,False,True,1100,60,1.0,0) BrFull(PT(12),1,mV2500,1,Vx1,1,2500,False,True,1200,60,1.0,0) BrFull(PT(13),1,mV2500,1,Vx1,1,2500,False,True,1300,60,1.0,0) BrFull(PT(14),1,mV2500,1,Vx1,1,2500,False,True,1400,60,1.0,0) BrFull(PT(15),1,mV2500,1,Vx1,1,2500,False,True,1500,60,1.0,0) BrFull(PT(16),1,mV2500,1,Vx1,1,2500,False,True,1600,60,1.0,0) BrFull(PT(17),1,mV2500,1,Vx1,1,2500,False,True,1700,60,1.0,0) BrFull(PT(18),1,mV2500,1,Vx1,1,2500,False,True,1800,60,1.0,0) BrFull(PT(19),1,mV2500,1,Vx1,1,2500,False,True,1900,60,1.0,0) BrFull(PT(20),1,mV2500,1,Vx1,1,2500,False,True,2000,60,1.0,0) CallTable Settle

NextScan EndProg

The first six measurements are shown in the following table:

Table 21-3: Example data from Measuring Settling Time Program

Timestamp Record Number

PT(1) Smp

PT(2) Smp

PT(3) Smp

PT(4) Smp

PT(5) Smp

PT(6) Smp

8/3/2017 23:34 0 0.03638599 0.03901386 0.04022673 0.04042887 0.04103531 0.04123745

8/3/2017 23:34 1 0.03658813 0.03921601 0.04002459 0.04042887 0.04103531 0.0414396

8/3/2017 23:34 2 0.03638599 0.03941815 0.04002459 0.04063102 0.04042887 0.04123745

8/3/2017 23:34 3 0.03658813 0.03941815 0.03982244 0.04042887 0.04103531 0.04103531

8/3/2017 23:34 4 0.03679027 0.03921601 0.04022673 0.04063102 0.04063102 0.04083316

21. Tips and troubleshooting 185

Each trace in the following image contains all twenty PT() mV/V values (left axis) for a given record number and an average value showing the measurements as percent of final reading (right axis). The reading has settled to 99.5% of the final value by the fourteenth measurement, which is contained in variable PT(14). This is suitable accuracy for the application, so a settling time of 1400 s is determined to be adequate.

21.10.6 Factors affecting accuracy Accuracy describes the difference between a measurement and the true value. Many factors affect accuracy. This topic discusses the effect percent-of-reading, offset, and resolution have on the accuracy of an analog voltage measurement. Accuracy is defined as follows:

accuracy = percent-of-reading + offset

where percents-of-reading and offsets are displayed in the Analog measurement specifications (p. 231).

NOTE: Error discussed in this section and error-related specifications of the data logger do not include error introduced by the sensor, or by the transmission of the sensor signal to the data logger.

21. Tips and troubleshooting 186

21.10.6.1 Measurement accuracy example The following example illustrates the effect percent-of-reading and offset have on measurement accuracy. The effect of offset is usually negligible on large signals.

Example:

l Sensor-signal voltage: approximately 2500 mV l CRBasic measurement instruction: VoltDiff() l Programmed input-voltage range (Range) : mV 2 500 (-100 to 2500 mV) l Input measurement reversal (RevDiff): True l Data logger circuitry temperature: 10 C

Accuracy of the measurement is calculated as follows:

accuracy = percent-of-reading + offset

where

percent-of-reading = 2500 mV 0.04%

=1 mV

and

offset = 20 V

Therefore,

accuracy = (1 mV + 20 V) = 1.02 mV

21.10.7 Minimizing offset voltages Voltage offset can be the source of significant error. For example, an offset of 3 V on a 2500 mV signal causes an error of only 0.00012%, but the same offset on a 0.25 mV signal causes an error of 1.2%. Measurement offset voltages are unavoidable, but can be minimized. Offset voltages originate with:

l Ground currents (see Minimizing ground potential differences (p. 179). l Seebeck effect l Residual voltage from a previous measurement

Remedies include:

l Connecting power grounds to power ground terminals (G). l Automatic offset compensation for single-ended measurements when MeasOff = False.

21. Tips and troubleshooting 187

l Using MeasOff = True for better offset compensation. l Programming longer settling times.

Single-ended measurements are susceptible to voltage drop at the ground terminal caused by return currents from another device that is powered from the data logger wiring panel, such as another manufacturer's communications modem, or a sensor that requires a lot of power. Currents greater than 5 mA are usually undesirable. The error can be avoided by routing power grounds from these other devices to a power ground G terminal, rather than using a signal ground ( ) terminal. Ground currents can be caused by the excitation of resistive-bridge sensors, but these do not usually cause offset error. These currents typically only flow when a voltage excitation is applied. Return currents associated with voltage excitation cannot influence other single-ended measurements because the excitation is usually turned off before the data logger moves to the next measurement. However, if the CRBasic program is written in such a way that an excitation terminal is enabled during an unrelated measurement of a small voltage, an offset error may occur.

The Seebeck effect results in small thermally induced voltages across junctions of dissimilar metals as are common in electronic devices. Differential measurements are more immune to these than are single-ended measurements because of passive voltage cancellation occurring between matched high and low pairs such as 1H/1L. So, use differential measurements when measuring critical low-level voltages, especially those below 200 mV, such as are output from pyranometers and thermocouples.

When analog voltage signals are measured in series by a single measurement instruction, such as occurs when VoltSE() is programmed with Reps = 2 or more, measurements on subsequent terminals may be affected by an offset, the magnitude of which is a function of the voltage from the previous measurement. While this offset is usually small and negligible when measuring large signals, significant error, or NAN, can occur when measuring very small signals. This effect is caused by dielectric absorption of the integrator capacitor and cannot be overcome by circuit design. Remedies include the following:

l Programing longer settling times. l Using an individual instruction for each input terminal, the effect of which is to reset the

integrator circuit prior to filtering. l Avoiding preceding a very small voltage input with a very large voltage input in a

measurement sequence if a single measurement instruction must be used.

21. Tips and troubleshooting 188

21.11 Field calibration Calibration increases accuracy of a measurement device by adjusting its output, or the measurement of its output, to match independently verified quantities. Adjusting sensor output directly is preferred, but not always possible or practical. By adding the FieldCal() or FieldCalStrain() instruction to a CRBasic program, measurements of a linear sensor can be adjusted by modifying the programmed multiplier and offset applied to the measurement, without modifying or recompiling the CRBasic program. See the CRBasic Editor help for detailed instruction information and program examples: https://help.campbellsci.com/crbasic/cr350/ .

21.12 File name and resource errors The maximum file name size that can be stored, run as a program, or FTP transferred in the data logger is 59 characters. If the name + file extension is longer than 59 characters, an Invalid Filename error is displayed. If several files are stored, each with a long file name, memory allocated to the root directory can be exceeded before the actual memory of storing files is exceeded. When this occurs, an Insufficient resources or memory full error is displayed.

21. Tips and troubleshooting 189

22. Information tables and settings (advanced) Information tables and settings consist of fields, settings, and system information essential to setup, programming, and debugging of many advanced CR350 systems. In many cases, the info tables and settings keyword can be used to pull that field into a running CRBasic program. There are several locations where this system information and settings are stored or changed:

l Status table: The Status table is an automatically created data table. View the Status table by connecting the data logger to your computer (see Making the software connection (p. 62) for more information) Station Status , then clicking the Status Table tab.

l DataTableInfo table: The DataTableInfo table is automatically created when a program produces other data tables. View the DataTableInfo table by connecting the data logger to your computer (see Making the software connection (p. 62) for more information).

o PC400 users, click the Monitor Data tab and add the DataTableInfo to display it. o LoggerNet users, select DataTableInfo from the Table Monitor list.

l Settings: Settings can be accessed from the LoggerNet Connect Screen Datalogger > Settings Editor, or using Device Configuration Utility Settings Editor tab. Clicking on a setting in Device Configuration Utility also provides information about that setting.

l Terminal Mode: A list of setting field names is also available from the data logger terminal mode (from Device Configuration Utility, click the Terminal tab) using command "F".

l Status, DataTableInfo and Settings values may be accessed programmatically using Tablename.Fieldname syntax. For example: Variable = Settings.Fieldname. For more information see: https://www.campbellsci.com/blog/programmatically-access- stored-data-values .

Communications and processor bandwidth are consumed when generating the Status and other information tables. If data logger is very tight on processing time, as may occur in very fast, long, or complex operations, retrieving these tables repeatedly may cause skipped scans.

Settings that affect memory usage force the data logger program to recompile, which may cause loss of data. Before changing settings, it is a good practice to collect your data (see Collecting data (p. 69) for more information). Examples of settings that force the data logger program to recompile:

22. Information tables and settings (advanced) 190

l IP address l IP default gateway l Subnet mask l PPP interface l PPP dial string l PPP dial response l Baud rate change on control ports l Maximum number of TLS server connections

l PakBus encryption key l PakBus/TCP server port l HTTP service port l FTP service port l PakBus/TCP service port l PakBus/TCP client connections l Communications allocation

22.1 DataTableInfo table system information The DataTableInfo table is automatically created when a program produces other data tables. View the DataTableInfo table by connecting the data logger to your computer (see Making the software connection (p. 62) for more information).

Most fields in the DataTableInfo table are read only and of a numeric data type unless noted. Error counters (for example SkippedRecord) may be reset to 0 for troubleshooting purposes.

l LoggerNet users, select DataTableInfo from the Table Monitor list. l PC400 users, click the Monitor Data tab and add the DataTableInfo to display it.

22.1.1 DataFillDays Reports the time required to fill a data table.

22.1.2 DataRecordSize Reports the number of records allocated to a data table.

22.1.3 DataTableName Reports the names of data tables. Array elements are in the order the data tables are declared in the CRBasic program.

l String data type

22.1.4 RecNum Record number is incremented when any one of the DataTableInfo fields change, for example SkippedRecord.

22.1.5 SecsPerRecord Reports the data output interval for a data table.

22. Information tables and settings (advanced) 191

22.1.6 SkippedRecord Reports how many times records have been skipped in a data table. Array elements are in the order that data tables are declared in the CRBasic program. Enter 0 to reset.

22.1.7 TimeStamp Scan time that a record was generated.

l NSEC data type

22.2 Status table system information The Status table is an automatically created data table. View the Status table by connecting the data logger to your computer (see Making the software connection (p. 62) for more information).

Most fields in the Status table are read only and of a numeric data type unless noted. Error counters (for example, WatchdogErrors or SkippedScan) may be reset to 0 for troubleshooting purposes.

Status table values may be accessed programatically using SetStatus() or Tablename.Fieldname syntax. For example: Variable = Status.Fieldname. For more information see: https://www.campbellsci.com/blog/programmatically-access-stored- data-values .

22.2.1 Battery Voltage (VDC) of the battery powering the system. Updates once per minute, when viewing the Status table, or programatically.

22.2.2 CalGain Array of floating-point values reporting calibration gain (mV) for each integration / range combination.

22.2.3 CalOffset Displays the offset calibration factor for the different voltage ranges.

22.2.4 CommsMemFree Memory allocations for communications. Numbers outside of parentheses reflect current memory allocation. Numbers inside parentheses reflect the lowest memory size reached.

22. Information tables and settings (advanced) 192

22.2.5 CompileResults Contains messages generated at compilation or during runtime. Updated after compile and for runtime errors such as variable out of bounds.

l String data type

22.2.6 CPUDriveFree Provides information on the available bytes for the CPU drive.

22.2.7 DataStorageFree Serial flash storage bytes free.

22.2.8 DataStorageSize See System specifications (p. 227).

22.2.9 FullMemReset Enter 98765 to start a full-memory reset, all data and programs will be erased.

22.2.10 LastSlowScan Reports the time of the of the last Slow Sequence scan.

22.2.11 LithiumBattery Voltage of the internal lithium battery. Updated at CR350 power up and once a day thereafter. For battery information, see Internal battery (p. 152).

22.2.12 MaxProcTime Maximum time (s) required to run through processing for the current scan. Value is reset when the scan exits. Enter 0 to reset. Updated at the conclusion of scan processing, prior to waiting for the next scan.

22.2.13 MaxSlowProcTime Maximum time (s) required to run through processing for the current Slow Sequence scan. Value is reset when the scan exits. Enter 0 to reset. Updated at the conclusion of scan processing, prior to waiting for the next scan.

22. Information tables and settings (advanced) 193

22.2.14 MeasureTime Reports the time (s) needed to make measurements in the current scan. Calculated at compile time. Includes integration and settling time. Assumes all measurement instructions will run each scan. Updated when a main scan begins.

22.2.15 MemoryFree Unallocated final-data memory on the CPU (bytes). All free memory may not be available for data tables. As memory is allocated and freed, holes of unallocated memory, which are unusable for final-data memory, may be created. Updated after compile completes.

22.2.16 MemorySize Total final-data memory size (bytes) in the CR350. Updated at startup.

22.2.17 OSDate Release date of the operating system in the format mm/dd/yyyy. Updated at startup.

l String data type

22.2.18 OSSignature Signature of the operating system.

22.2.19 OSVersion Version of the operating system in the CR350. Updated at OS startup.

l String data type

22.2.20 PakBusRoutes Lists routes or router neighbors known to the data logger at the time the setting was read. Each route is represented by four components separated by commas and enclosed in parentheses: (port, via neighbor address, pakbus address, response time in ms). Updates when routes are added or deleted.

l String data type

22.2.21 PanelTemp Current processor board temperature (C). Updates once per minute, when viewing the Status table, or programatically.

22. Information tables and settings (advanced) 194

22.2.22 PortConfig Provides information on the configuration settings (input, output, SDI-12, COM port) for C terminals in numeric order of terminals. Default = Input. Updates when the port configuration changes.

l String data type

22.2.23 PortStatus States of C terminals configured for control. On/high (true) or off/low (false). Array elements in numeric order of C terminals. Default = false. Updates when state changes. Enter -1 to set to true. Enter 0 to set to false.

l Boolean data type

22.2.24 ProcessTime Processing time (s) of the last scan. Time is measured from the end of the EndScan instruction (after the measurement event is set) to the beginning of the EndScan (before the wait for the measurement event begins) for the subsequent scan. Calculated on-the-fly. Updated at the conclusion of scan processing, prior to waiting for the next scan.

22.2.25 ProgErrors Number of compile or runtime errors for the running program. Updated after compile.

22.2.26 ProgName Name of current (running) program; updates at startup.

l String data type

22.2.27 ProgSignature Signature of the running CRBasic program including comments. Does not change with operating-system changes. Updates after compiling the program.

22.2.28 RecNum Record number increments when the Status Table is requested by support software. Range = 0 to 232.

l Long data type

22. Information tables and settings (advanced) 195

22.2.29 RunSignature Signature of the running binary (compiled) program. Value is independent of comments or non- functional changes. Often changes with operating-system changes. Updates after compiling and before running the program.

22.2.30 SerialNumber CR350 serial number assigned by the factory when the data logger was calibrated. Stored in flash memory. Updated at startup.

22.2.31 SerialFlashErrors Reports on the serial flash health and provides the number of errors detected in serial flash. 0 = No errors detected. For detailed information on serial flash, see Flash memory (p. 80).

22.2.32 SkippedScan Number of skipped program scans (see Checking station status (p. 159) for more information) that have occurred while running the CRBasic program. Does not include scans intentionally skipped as may occur with the use of ExitScan and Do / Loop instructions. Updated when they occur. Enter 0 to reset.

22.2.33 SlowProcTime Processing time (s) of the last Slow Sequence scan. Time is measured from the end of the EndScan instruction (after the measurement event is set) to the beginning of the EndScan (before the wait for the measurement event begins) for the subsequent scan. Calculated on-the- fly. Updated at the conclusion of scan processing, prior to waiting for the next scan.

22.2.34 StartTime Time (date and time) the CRBasic program started. Updates at beginning of program compile.

l NSEC data type

22.2.35 StartUpCode Indicates how the running program was compiled. Updated at startup. 65 = Run on powerup is running and normal powerup occurred. 0 = Normal shutdown. -1 = Restart due to a power loss. - 2 = Restart due to watchdog reset.

22. Information tables and settings (advanced) 196

22.2.36 StationName Station name stored in flash memory. This is not the same name as that is entered into your data logger support software. This station name can be sampled into a data table, but it is not the name that appears in data file headers. Updated at startup or when the name is changed.

l String data type

22.2.37 SW12Volts Status of switched, 12 VDC terminal(s). On/high (true) or off/low (false) Enter -1 to set to true. Enter 0 to set to false. Updates when the state changes.

l Boolean data type

22.2.38 TimeStamp Scan-time that a record was generated.

l NSEC data type

22.2.39 VarOutOfBound Number of attempts to write to an array outside of the declared size. The write does not occur. Indicates a CRBasic program error. If an array is used in a loop or expression, the pre-compiler and compiler do not check to see if an array is accessed out-of-bounds (i.e., accessing an array with a variable index such as arr(index) = arr(index1), where index is a variable). Updated at runtime when the error occurs. Enter 0 to reset.

22.2.40 WatchdogErrors Number of watchdog errors that have occurred while running this program. Resets automatically when a new program is compiled. Enter 0 to reset. Updated at startup and at occurrence.

22.2.41 WiFiUpdateReq Shows if WiFi operating system update is available. Update available (true) or not (false). Updates when state changes.

l Boolean data type

22. Information tables and settings (advanced) 197

22.3 Settings Settings can be accessed from the LoggerNet Connect Screen Datalogger > Setting Editor, or using Device Configuration Utility Settings Editor tab. Settings are organized in tabs and can be searched for.

Most Settings are read/write and of a numeric data type unless noted.

Settings may be accessed programatically using SetSetting() or Tablename.Fieldname syntax. For example: Variable = Settings.Fieldname. For more information see: https://www.campbellsci.com/blog/programmatically-access-stored-data-values .

NOTE: A list of Settings fieldnames is also available from the data logger terminal mode using command F.

22.3.1 Baudrate This setting governs the baud rate that the data logger will use for a given port in order to support serial communications. For some ports (COM), this setting also controls whether the port will be enabled for serial communications.

Some ports (RS-232) support auto-baud synchronization while the other ports support only fixed baud. With auto-baud synchronization, the data logger will attempt to match the baud rate to the rate used by another device based upon the receipt of serial framing errors and invalid packets.

22.3.2 Beacon This setting, in units of seconds, governs the rate at which the data logger will broadcast PakBus messages on the associated port in order to discover any new PakBus neighboring nodes. If this setting value is set to a value of 0 or 65,535, the data logger will not broadcast beacon messages on this port.

This setting will also govern the default verification interval if the value of the Verify() setting for the associated port is zero. If the value of this setting is non-zero, and the value of the Verify setting is zero, the effective verify interval will be calculated as 2.5 times the value for this setting. If both the value of this setting and the value of the Verify setting is zero, the effective verify interval will be 300 seconds (five minutes).

22. Information tables and settings (advanced) 198

22.3.3 Cell Settings For data loggers with integrated CELL modules, see Cellular settings (p. 207).

22.3.4 CentralRouters This setting specifies a list of PakBus addresses for routers that are able to work as Central Routers. By specifying a non-empty list for this setting, the data logger will be configured as a Branch Router meaning that it will not be required to keep track of neighbors of any routers except those in its own branch. Configured in this fashion, the data logger will ignore any neighbor lists received from addresses in the central routers setting and will forward any messages that it receives to the nearest default router if it does not have the destination address for those messages in its routing table.

l String data type

22.3.5 CommsMemAlloc Replaces PakBusNodes. Specifies the amount of memory that the data logger allocates for maintaining PakBus routing information and communications buffers. This value represents roughly the maximum number of PakBus nodes that the data logger will be able to track in its routing tables. This setting will also affect the amount of memory that the data logger allocates for TCP/IP communications.

22.3.6 DNS This setting specifies the addresses of up to two domain name servers that the data logger can use to resolve domain names to IP addresses. Note that if DHCP is used to resolve IP information, the addresses obtained via DHCP will be appended to this list.

l String data type

22.3.7 FilesManager This setting controls how the data logger will handle incoming files with specific extensions from various sources. There can be up to four specifications. Each specification has three required fields: PakBus Address, File Name, and Count.

l String data type

22.3.8 FTPEnabled Set to 1 if to enable FTP service. Default is 0.

22. Information tables and settings (advanced) 199

22.3.9 FTPPassword Specifies the password that is used to log in to the FTP server.

l String data type

22.3.10 FTPPort Configures the TCP port on which the FTP service is offered. The default value is usually sufficient unless a different value needs to be specified to accommodate port mapping rules in a network address translation firewall. Default = 21.

22.3.11 FTPUserName Specifies the user name that is used to log in to the FTP server. An empty string (the default) inactivates the FTP server.

l String data type

22.3.12 HTTPEnabled Specifies additions to the HTTP header in the web service response. It can include multiple lines. Set to 1 to enable HTTP (web server) service or 0 to disable it.

22.3.13 HTTPPort Configures the TCP port on which the HTTP (web server) service is offered. Generally, the default value is sufficient unless a different value needs to be specified to accommodate port-mapping rules in a network-address translation firewall. Default = 80.

22.3.14 IncludeFile This setting specifies the name of a file to be implicitly included at the end of the current CRBasic program or can be run as the default program. In order to work as an include file, the file referenced by this setting cannot contain a BeginProg() statement or define any variable names or tables that are defined in the main program file.

This setting must specify both the name of the file to run as well as on the device (CPU:) on which the file is located. The extension of the file must also be valid for a data logger program (.CRB, .DLD).

l String data type

22. Information tables and settings (advanced) 200

22.3.15 IPAddressEth Specifies the IP address used by the Ethernet interface. If this value is specified as "0.0.0.0" (the default), the data logger will use DHCP to configure the effective value for this setting as well as the Ethernet Default Gateway and Ethernet Subnet Mask settings. This setting is the equivalent to the IPAddressEth status table variable.

l String data type

22.3.16 IPGateway Specifies the IP address of the network gateway on the same subnet as the Ethernet interface. If the value of the Ethernet IP Address setting is set to "0.0.0.0" (the default), the data logger will configure the effective value of this setting using DHCP. This setting is the equivalent to the IPGateway status table variable.

l String data type

22.3.17 IPMaskEth Specifies the subnet mask for the Ethernet interface. If the value of the Ethernet IP Address setting is set to "0.0.0.0" (the default), the data logger will configure the effective value of this setting using DHCP.

l String data type

22.3.18 IPMaskWiFi Specifies the subnet mask for the WiFi interface.

l String data type

22.3.19 IPTrace Discontinued; aliased to IPTraceComport

22.3.20 IPTraceCode Controls what type of information is sent on the port specified by IPTraceComport and via Telnet. Each bit in this integer represents a certain aspect of tracing that can be turned on or off. Values for particular bits are described in the Device Configuration Utility. Default = 0, no messages generated.

22. Information tables and settings (advanced) 201

22.3.21 IPTraceComport Specifies the port (if any) on which TCP/IP trace information is sent. Information type is controlled by IPTraceCode.

22.3.22 IsRouter This setting controls whether the data logger is configured as a router or as a leaf node. If the value of this setting is true, the data logger will be configured to act as a PakBus router. That is, it will be able to forward PakBus packets from one port to another. To perform its routing duties, a data logger configured as a router will maintain its own list of neighbors and send this list to other routers in the PakBus network. It will also obtain and receive neighbor lists from other routers.

If the value of this setting is false, the data logger will be configured to act as a leaf node. In this configuration, the data logger will not be able to forward packets from one port to another and it will not maintain a list of neighbors. Under this configuration, the data logger can still communicate with other data loggers and wireless sensors. It cannot, however, be used as a means of reaching those other data loggers. The default value is false.

l Boolean data type

22.3.23 KeepAliveURL (Ping keep alive URL) The URL to send a ping to when there has been no network activity for the KeepAliveMin interval. If there is no ping response then the network connection is reestablished.

l String data type

22.3.24 KeepAliveMin (Ping keep alive timeout value) When there has been no network activity for this amount of time, in seconds, a ping will be sent to the KeepAliveURL. Default = 0 which disables keep alive pings.

l Long data type (allowed values: 0,5,10,15,30,60,120,180,240,300,360,480,720)

22.3.25 MaxPacketSize Specifies the maximum number of bytes per data collection packet.

22.3.26 Neighbors This setting specifies, for a given port, the explicit list of PakBus node addresses that the data logger will accept as neighbors. If the list is empty (the default value) any node will be accepted

22. Information tables and settings (advanced) 202

as a neighbor. This setting will not affect the acceptance of a neighbor if that neighbor's address is greater than 3999.

l String data type

22.3.27 PakBusAddress This setting specifies the PakBus address for this device. Valid values are in the range 1 to 4094. The value for this setting must be chosen such that the address of the device will be unique in the scope of the data logger network. Duplication of PakBus addresses can lead to failures and unpredictable behavior in the PakBus network.

When a device has an allowed neighbor list for a port, any device that has an address greater than or equal to 4000 will be allowed to connect to that device regardless of the allowed neighbor list.

22.3.28 PakBusEncryptionKey This setting specifies text that will be used to generate the key for encrypting PakBus messages sent or received by this data logger. If this value is specified as an empty string, the data logger will not use PakBus encryption. If this value is specified as a non-empty string, however, the data logger will not respond to any PakBus message unless that message has been encrypted.

l String data type

22.3.29 PakBusNodes Discontinued; aliased to CommsMemAlloc

22.3.30 PakBusPort This setting specifies the TCP service port for PakBus communications with the data logger. Unless firewall issues exist, this setting probably does not need to be changed from its default value. Default 6785.

22.3.31 PakBusTCPClients This setting specifies outgoing PakBus/TCP connections that the data logger should maintain. Up to four addresses can be specified.

l String data type

22. Information tables and settings (advanced) 203

22.3.32 PakBusTCPEnabled By default, PakBus TCP communications are enabled. To disable PakBus TCP communications, set the PakBusPort setting to 65535.

22.3.33 PakBusTCPPassword This setting specifies a password that, if not empty, will make the data logger authenticate any incoming or outgoing PakBus/TCP connection. This type of authentication is similar to that used by CRAM-MD5.

l String data type

22.3.34 PingEnabled Set to one to enable the ICMP ping service.

22.3.35 pppDial Specifies the dial string that would follow the ATD command (#777 for the Redwing CDMA).

Alternatively, this value can specify a list of AT commands where each command is separated by a semi-colon (;). When specified in this fashion, the data logger will transmit the string up to the semicolon, transmit a carriage return to the modem, and wait for two seconds before proceeding with the rest of the dial string (or up to the next semicolon). If multiple semicolons are specified in succession, the data logger will add a delay of one second for each additional semicolon.

If a value of PPP is specified for this setting, will configure the data logger to act as a PPP client without any modem dialing. Finally, an empty string (the default) will configure the data logger to listen for incoming PPP connections also without any modem dialing.

l String data type

22.3.36 pppDialResponse Specifies the response expected after dialing a modem before a PPP connection can be established.

l String data type

22.3.37 pppInfo Reports the IP address, network mask, and default gateway for each of the data logger's active network interfaces. If DHCP is used for the interface, this setting will report the value that was configured by the DHCP server.

22. Information tables and settings (advanced) 204

l String data type l Read only

22.3.38 pppInterface This setting controls which data logger port PPP service will be configured to use.

22.3.39 pppIPAddr Specifies the IP address that will be used for the PPP interface if that interface is active (the PPP Interface setting needs to be set to something other than Inactive).

l String data type

22.3.40 pppPassword Specifies the password that will be used for PPP connections when the value of PPP Interface is set to something other than Inactive.

l String data type

22.3.41 pppUsername Specifies the user name that is used to log in to the PPP server.

l String data type

22.3.42 RouteFilters This setting configures the data logger to restrict routing or processing of some PakBus message types so that a "state changing" message can only be processed or forwarded by this data logger if the source address of that message is in one of the source ranges and the destination address of that message is in the corresponding destination range. If no ranges are specified (the default), the data logger will not apply any routing restrictions. "State changing" message types include set variable, table reset, file control send file, set settings, and revert settings.

If a message is encoded using PakBus encryption, the router will forward that message regardless of its content. If, however, the routes filter setting is active in the destination node and the unencrypted message is of a state changing type, the route filter will be applied by that end node.

l String data type

22. Information tables and settings (advanced) 205

22.3.43 RS232Power Controls whether the RS-232 port will remain active even when communications are not taking place.

l Boolean data type

22.3.44 Security(1), Security(2), Security(3) An array of three security codes. A value of zero for a given level will grant access to that level's privileges for any given security code. For more information, see Data logger security (p. 142).

22.3.45 ServicesEnabled Discontinued; replaced by/aliased to HTTPEnabled, PingEnabled, TelnetEnabled.

22.3.46 TCPClientConnections Discontinued; replaced by / aliased to PakBusTCPClients.

22.3.47 TCPPort Discontinued; replaced by / aliased to PakBusPort.

22.3.48 TelnetEnabled Enables (1) or disables (0) the Telnet service.

22.3.49 TLSConnections (Max TLS Server Connections) This setting controls the number of concurrent TLS (secure or encrypted) client socket connections that the data logger will be capable of handling at any given time. This will affect FTPS and HTTPS services. This count will be increased by the number of DNP() instructions in the data logger program.

This setting will control the amount of RAM that the data logger will use for TLS connections. For every connection, approximately 20KBytes of RAM will be required. This will affect the amount of memory available for program and data storage. Changing this setting will force the data logger to recompile its program so that it can reallocate memory

22.3.50 TLSPassword This setting specifies the password that will be used to decrypt the TLS Private Key setting.

l String data type

22. Information tables and settings (advanced) 206

22.3.51 TLSStatus Reports the current status of the data logger TLS network stack.

l String data type l Read only

22.3.52 UDPBroadcastFilter Set to one if all broadcast IP packets should be filtered from IP interfaces. Do not set this if you use the IP discovery feature of the device configuration utility or of LoggerLink. If this is set, the data logger will fail to respond to the broadcast requests.

Default = 0.

22.3.53 IPAddressUSB (USB Virtual Ethernet Address (RNDIS)) Specifies the IP address for the USB Network Interface. When set to 0 it defaults to 192.168.66.1.

22.3.54 UTCOffset Specifies the offset, in seconds, of the data logger's clock from Coordinated Universal Time (UTC, or GMT). For example, if the clock is set to Mountain Standard Time in the U.S. (-7 Hours offset from UTC) then this setting should be -25200 (-7*3600). This setting is used by the NTP Server setting as well as EmailSend() and HTTP(), which require Universal Time in their headers. This setting will also be adjusted by the Daylight Savings functions if they adjust the clock.

If a value of -1 is supplied for this setting, no UTC offset will be applied.

22.3.55 Verify This setting specifies the interval, in units of seconds, that will be reported as the link verification interval in the PakBus hello transaction messages. It will indirectly govern the rate at which the data logger will attempt to start a hello transaction with a neighbor if no other communications have taken place within the interval.

22.3.56 Cellular settings Access cellular settings, using Device Configuration Utility. Clicking on a setting in Device Configuration Utility also provides information about that setting. These settings are available for data loggers with integrated CELL modules.

22. Information tables and settings (advanced) 207

NOTE: A list of Settings fieldnames is also available from the data logger terminal mode using command F.

22.3.56.1 CellAPN Specifies the APN, and is required. The APN is the gateway between the cell network and the internet. APN must be obtained from your cellular network provider.

l String data type

Where to find:

l Settings Editor tab in Device Configuration Utility: Cellular > APN

22.3.56.2 CellEnabled Global control for cell modem. This overrides the power schedule setting and CRBasic IPNetpower instruction. 0 Disabled, 1 or <>0 Enabled.

l Boolean data type

Where to find:

l Settings Editor tab in Device Configuration Utility: Cellular > Cell Modem Enable

22.3.56.3 CellInfo Cellular network/state information. Reports the cellular IP address, default gateway, DNS, network state, cell carrier, connection type, phone number associated with the SIM card, and data usage.

l String data type l Read only

Where to find:

l Settings Editor tab in Device Configuration Utility: Cellular > Diagnostic Info

22.3.56.4 CellKeepAlive URL for ping to verify network connectivity. This is only sent if there has been no network activity within the CellKeepAliveTime setting. If there is no ping response, the network connection is re- established. To disable keep alive pings, leave this setting blank.

l String data type

22. Information tables and settings (advanced) 208

Where to find:

l Settings Editor tab in Device Configuration Utility: Cellular > Ping Keep Alive URL

22.3.56.5 CellKeepAliveTime Ping keep alive timeout (in seconds).

l Long data type

Where to find:

l Settings Editor tab in Device Configuration Utility: Cellular > Ping Keep Alive Timeout Value

22.3.56.6 CellPDPAuth Specifies the PDP authentication type (if used). PDP Authentication is only used if there is a PDP Username and Password AND the PAP or CHAP authentication is required. If a PDP Authentication Type is required, it will be provided by your cellular provider with the APN. 0 None, 1 PAP, 2 CHAP

l Long data type

Where to find:

l Settings Editor tab in Device Configuration Utility: Cellular > PDP Authentication Type, PPP Authentication User Name, PPP Authentication Password

22.3.56.7 CellPDPPassword Specifies the PDP password used for authentication. Often there is no password, and this field can be left blank. If a password is required, it will be provided by your cellular provider with the APN.

l String data type

Where to find:

l Settings Editor tab in Device Configuration Utility: Cellular > PDP Cell Authentication Password

22.3.56.8 CellPDPUserName Specifies the username used for PDP authentication. Often there is no username, and this field can be left blank. If a Username is required, it will be provided by your cellular provider with the APN.

22. Information tables and settings (advanced) 209

l String data type

Where to find:

l Settings Editor tab in Device Configuration Utility: Cellular > PDP Cell Authentication Username

22.3.56.9 CellPwrDuration Specifies the interval, in minutes, over which the data logger will power its cellular interface. This can be done to save on battery life or cellular charges. This is adjusted using three components:

l Start (Power-On) Time: Specifies the time of day in terms of hours and minutes in which the data logger will first enable the cellular interface. If left at the default value of Always On, the data logger will power the cellular interface at all times.

l On Duration: Specifies the interval, in minutes, to power the data logger cellular interface for the first time of any day as well as for any repeat cycles (if applicable).

l Repeat Cycle: Specifies the interval after the first time that the data logger powers on its cellular interface, that the data logger will power its cellular interface at subsequent times throughout the day.

For example, setting a Start Time of 08:00, with an On Duration of 15 minutes, and a Repeat Cycle of Every Hour, will result in the cellular module being powered on at 8:00AM for 15 minutes every hour until midnight.

l Long data type

Where to find:

l Settings Editor tab in Device Configuration Utility: Cellular > On duration

22.3.56.10 CellPwrRepeat Specifies the interval in minutes to power on the cellular interface following the first time of the day that the data logger powers on its cellular interface. For example usage, see CellPwrDuration.

l Long data type

Where to find:

l Settings Editor tab in Device Configuration Utility: Cellular > Repeat cycle

22. Information tables and settings (advanced) 210

22.3.56.11 CellPwrStartTime Specifies time of day in minutes when the data logger will first enable the cellular interface. Examples:

l 15 = 00:15 15 minutes after midnight l 180 = 03:00 3:00 am l 1380 = 23:00 11:00 pm l 1440 = Always On

For example usage, see CellPwrDuration.

l Long data type

Where to find:

l Settings Editor tab in Device Configuration Utility: Cellular > Start (power-on) time

22.3.56.12 CellRSRQ CellECIO

Specifies the signal quality of the modem. For 3G, this is ECIO (Energy to Interference Ratio). For 4G, this is RSRQ (Reference Signal Received Quality). Updated when queried by your data logger support software or a program. Ranges expected for Signal Quality for 3G/4G:

Excellent: 0 to -6 (3G), >-9 (4G) Good: -7 to -10 (3G), -9 to -12 (4G) Fair to Poor: -11 to -20 (3G), -13 or less (4G)

l Float data type l Read only

Where to find:

l Settings Editor tab in Device Configuration Utility: Cellular > Signal Quality

22.3.56.13 CellRSSI CellRSRP

Specifies the signal strength of the modem in -dBm. For 3G, this is RSSI (Received Signal Strength Indicator). For 4G, this is RSRP (Reference Signal Received Power). Updated when queried by your data logger support software or a program. Ranges expected for Signal Strength for 3G/4G:

Excellent: -70dBm or less (3G), -90dBm or less (4G) Good: -70dBm to -85dBm (3G), -90dBm to -105dBm (4G)

22. Information tables and settings (advanced) 211

Fair: -86dBm to -100dBm (3G), -106dBm to -115dBm (4G) Poor: >-100dBm (3G), >-115dBm (4G)

l Long data type l Read only

Where to find:

l Settings Editor tab in Device Configuration Utility: Cellular > Signal Strength

22.3.56.14 CellState Specifies the current communications state with the cell modem and the network. The following states are available:

l Power off l Powering up l Powered up l SIM authorized l Setting baud rate l Waiting for baud rate l Baud rate set l Baud rate failure l Power off. Waiting for retry l Powered up. SIM auth failure l Querying modem l Waiting for network registration l Configuring modem l Dialing l Dialing (retry) l Dialed l PPP negotiation l Network ready l PPP closing l PPP paused l PPP dropped l Terminal AT command mode l Firmware update mode l Shutting down l String data type l Read only

22. Information tables and settings (advanced) 212

Where to find:

l Settings Editor tab in Device Configuration Utility: Cellular > Cellular State

22.3.56.15 CellStatus Cellular diagnostic information. Reports the PPP state, IMEI, IMSI, and ICCID for the data logger.

l String data type l Read only

Where to find:

l Settings Editor tab in Device Configuration Utility: Cellular > Cell Diagnostic Info

22.3.57 Wi-Fi settings Access Wi-Fi settings, using Device Configuration Utility. Clicking on a setting in Device Configuration Utility also provides information about that setting. These settings are available for data loggers with integrated WIFI modules.

Where to find:

l All settings: Settings Editor tab in Device Configuration Utility: Wi-Fi tab. l Key settings: in Device Configuration Utility: Deployment > Wi-Fi tab.

See also Wi-Fi communications option (p. 26)

NOTE: A list of Settings fieldnames is also available from the data logger terminal mode using command F.

22.3.57.1 IPAddressWiFi Specifies the IP address for the Wi-Fi Interface. If specified as zero, the address, net mask, and gateway will be configured automatically using DHCP.

l String data type

22.3.57.2 IPGatewayWiFi Specifies the address of the IP router to which the data logger will forward all non-local IP packets for which it has no route.

l String data type

22. Information tables and settings (advanced) 213

22.3.57.3 IPMaskWiFi Specifies the subnet mask for the WiFi interface.

l String data type

22.3.57.4 WiFiChannel This setting is only applicable when the device is configured to create a network (Configuration). It then specifies in which channel the network should be created. If Auto is selected, the device will use only channels 1, 6, and 11 to minimize interference from other networks detected in the area.

When manually selecting a channel, it should be noted that two Wi-Fi networks operating on the same channel will interfere with each other and will have to compete for bandwidth. The center frequencies of adjacent channels are 5 MHz apart and the bandwidth of each channel is 20 MHz which means that adjacent channels overlap. To completely avoid interference there must be a spacing of at least 5 channels between each Wi-Fi network. It is therefore recommended to use channels 1, 6, and 11.

l Long data type

22.3.57.5 WiFiConfig Configure the WiFi network. Join, create, or disable network.

l Long data type, where: o 0 = Join network o 1 = Create network o 4 = Disable network

22.3.57.6 WiFiEAPMethod The EAP Method must be chosen to match the EAP method being used by the Enterprise Security network. The inner EAP Methods supported are MSCHAPv2, MSCHAP, CHAP, and PAP.

l Long data type

22.3.57.7 WiFiEAPPassword If joining an Enterprise Security-enabled network enter password here.

l String data type

22. Information tables and settings (advanced) 214

22.3.57.8 WiFiEAPUser If joining an Enterprise Security-enabled network enter user name here.

l String data type

22.3.57.9 Networks Lists the networks available in the area. Information listed for each network is shown as {SSID, RSSI / Signal Strength, Channel, Security}. Sometimes areas are covered by multiple access points configured with the same network name (SSID). In that case multiple unique access points possessing the same network name (SSID) may be listed here.

l String data type l Read only

22.3.57.10 WiFiEnable Set to enable or disable the WiFi service. By default, WiFi is enabled. To disable, set the Configuration option to Disable. 0 Disabled, 1 or <>0 Enabled.

l Boolean data type

22.3.57.11 WiFiPassword If joining a WPA or WPA2 security enabled network then this is where the passphrase is entered. If joining a WEP security enabled network then this is where the WEP key is entered.

If creating a network and a password is supplied, the network will be created using WPA2 encryption. The password must be at least 8 characters. If a password is not supplied, an open (unencrypted) network will be created.

When joining a network the device supports 64-bit WEP and 128-bit WEP. For 64-bit WEP enter a 40 bit key in the form of 5 ASCII characters or 10 hexadecimal digits (0-9, A-F). For 128-bit WEP enter a 104 bit key in the form of 13 ASCII characters or 26 hexadecimal digits (0-9, A-F).

l String data type

22.3.57.12 WiFiPowerMode This setting controls the power saving mode of the device. Regardless of the Power Mode setting, the device enables power-save mode when communications are not active. Power Mode determines how the device acts when communications are ongoing. This setting only applies when the device is configured to Join a Network using the Configuration option.

l Long data type

22. Information tables and settings (advanced) 215

22.3.57.13 WiFiSSID (Network Name) The Network Name (SSID) is the name that identifies a wireless network (31 character maximum). The SSID differentiates one wireless network from another, so all devices attempting to connect to the same network must use the same SSID. If the device is configured to 'Join a Network', then enter the SSID of the network, including hidden networks, to join here. If the device is configured to Create a Network using the Configuration option, then the SSID entered here will be the SSID of the network created.

NOTE: When creating a network, the device will not create the network if the Network Name (SSID) specified is the same as one that already exists in the area.

l String data type

22.3.57.14 WiFiStatus Specifies the current status of the Wi-Fi module.

l String data type l Read only

22.3.57.15 WiFiTxPowerLevel This fixes the transmit power level of the Wi-fi module. This value can be set as follows: Low (7 +/- 1 dBm), Medium (10 +/- 1 dBm), High (15 +/- 2 dBm). The value of this setting does not affect power consumption.

l Long data type

22.3.57.16 WLANDomainName The WLAN Domain Name is only relevant when the device is configured to create a network. When attempting to communicate with the device, attached Wi-Fi client devices can simply use the domain name specified here which will be resolved to the device's IP address. For example, the data logger web page can be accessed simply by entering the domain name specified here into a web browser.

l String data type

22.3.58 MQTT settings Access MQTT settings using Device Configuration Utility. Clicking on a setting in Device Configuration Utility also provides information about that setting.

22. Information tables and settings (advanced) 216

Where to find:

l All settings: Settings Editor tab in Device Configuration Utility: MQTT tab, unless noted.

See also MQTT (p. 117).

NOTE: A list of Settings fieldnames is also available from the data logger terminal mode using command F.

22.3.58.1 CampbellCloudEnable (Enable or disable CAMPBELL CLOUD) By default, automatic connection to the CAMPBELL CLOUD to receive configuration is disabled.

l Long data type, allowed values: o 0 = Disable (default) o 1 = Enable

22.3.58.2 CloudConfigURL (CLOUD configuration URL) This setting is located: Settings Editor tab in Device Configuration Utility: Advanced tab.

Specifies the URL the data logger will use when it cannot connect to CAMPBELL CLOUD. This URL is used to retrieve CLOUD configuration settings, it is ignored unless CLOUD is enabled.

l String data type

22.3.58.3 MQTTBaseTopic (MQTT base topic) This is the base topic which will automatically be used. Use this setting to override the default format: CS/{CAMPBELL CLOUD Account ID}/{MQTT Client Id}/. The CLOUD Account level is only used when connecting to the CAMPBELL CLOUD Account.

l String data type

22.3.58.4 MQTTCleanSession (MQTT connection) Assigns the MQTT broker connection type. Persistent sessions save all relevant client information on the broker. The client gets messages that it misses offline.

If the connection between the client and broker is interrupted during a Clean session, topics may be lost and the client needs to subscribe again. The client does not get messages that it misses offline.

22. Information tables and settings (advanced) 217

l Long data type, allowed values: o 0 = Clean o 1 = Persistent (default)

22.3.58.5 MQTTClientID (MQTT client identifier) Unique identifier the data logger uses to connect to MQTT broker. The default is the hardware type_serial number. Example: CR350_123.

l String data type, maximum number of characters is 64

22.3.58.6 MQTTEnable (Enable or disable MQTT) By default, MQTT is disabled.

l Long data type, allowed values: o 0 = Disable (default) o 1 = Enable with TLS-Mutual Authentication o 2 = Enable with TLS o 3 = Enable MQTT

22.3.58.7 MQTTEndpoint (MQTT broker URL) Server URL for MQTT broker.

l String data type

22.3.58.8 MQTTKeepAlive (MQTT keep alive) When there has been no network activity for this amount of time, in seconds, a ping will be sent to the MQTTBrokerURL. Default = 0 which disables keep alive pings. Valid values are in the range 0 to 65535.

l Long data type

22.3.58.9 MQTTPassword (MQTT password) Password, in association with MQTTUserName, required to connect to the MQTT broker.

l String data type

22.3.58.10 MQTTPortNumber (MQTT port number) Port number to connect to the MQTT broker.

22. Information tables and settings (advanced) 218

l Long data type, maximum number of characters is 256

22.3.58.11 MQTTStatusInterval (Status information publish interval) Time (in minutes) between publishing MQTT status information. This interval determines how often the data logger publishes to the topic: {System Base Topic/}statuslnfo. Valid values are in the range 0 to 1440.

l Long data type

22.3.58.12 MQTTState (MQTT state) This is a read-only field indicating the current state of the data logger connection to the MQTT broker.

l Long data type, possible results: o 0 = Disabled / Off o 8 = Disconnected. Sleeping o 10 = Waiting for an IP network interface o 11 = Connection retry wait o 20 = Opening TCP connection o 11 = TCP Open failed o 22 = TCP connection opened o 24 = Closing TCP connection o 26 = TCP connection closed o 30 = TLS handshake started o 31 = TLS handshake failed o 32 = TLS handshake success o 50 = MQTT session established o 51 = Waiting for session start response o 52 = Publishing o 100 = Onboard started o 101 = Onboard retry o 102 = Onboard processing o 200 = Waiting for modem startup

22. Information tables and settings (advanced) 219

o 201 = Configuring SSL o 202 = Configuring MQTT o 203 = Opening network o 204 = Connecting to MQTT broker

22.3.58.13 MQTTStateInterval (State publish interval) Time (in minutes) between publishing MQTT state information. This interval determines how often the data logger publishes to the topic: {System Base Topic/}State. Valid values are in the range 0 to 1440. Setting the value to 0 will not disable normal state publishing activity, only interval publishing.

l Long data type

22.3.58.14 MQTTUserName (MQTT user name) User name, in association with MQTTPassword, used to connect to MQTT broker.

l String data type, maximum number of characters is 256

22.3.58.15 MQTTWillMessage (MQTT last will message) Message published on last will topic by broker if disconnected without a disconnect command.

l String data type, maximum number of characters is 256

22.3.58.16 MQTTWillQoS (Quality of service) This is an agreement that defines the guarantee of delivery for a specific message. Higher QoS levels are more reliable, but take more time and bandwidth.

l Long data type, allowed values: o 0 = At most once (default), no confirmation o 1 = At least once, confirmation required o 2 = Exactly once using a multi-step handshake

22.3.58.17 MQTTWillRetain (MQTT last will message retained by broker) Enables or disables the broker to retain MQTTWillMessage.

22. Information tables and settings (advanced) 220

l Long data type, allowed values: o 0 = Do not retain (default) o 1 = Retain

22.3.58.18 MQTTWillTopic (MQTT last will topic) Broker will publish the MQTTWillMessage to this topic if disconnected without a disconnect command.

l String data type, maximum number of characters is 64

22.3.59 RF407-series radio settings Access RF407-series radio settings, using Device Configuration Utility. Clicking on a setting in Device Configuration Utility also provides information about that setting. These settings are available for RF407-series dataloggers.

NOTE: A list of Settings fieldnames is also available from the data logger terminal mode using command F.

22.3.59.1 RadioAvailFreq Displays the bitfield of the frequencies that are available in the modules region of operation.

l String data type l Read only

Where to find:

l Settings Editor tab in Device Configuration Utility: Radio > Available Frequencies

22.3.59.2 RadioChanMask The channel mask allows channels to be selectively enabled or disabled. This allows you to avoid using frequencies that experience unacceptable levels of RF interference.

l String data type

Where to find:

l Settings Editor tab in Device Configuration Utility: Radio > Radio Channel Mask

22.3.59.3 RadioEnable Global control for the internal radio module.

22. Information tables and settings (advanced) 221

Where to find:

l Settings Editor tab in Device Configuration Utility: Radio > Radio Enable

22.3.59.4 RadioHopSeq Specifies the radio channel hop sequence. This setting must match in all radios in the same RF network. This setting can also be used to prevent radios in one RF network from listening to transmissions of another.

l Long data type

Where to find:

l Settings Editor tab in Device Configuration Utility: Radio > RF Hop Sequence

22.3.59.5 RadioMAC Radio serial number.

l String data type l Read only

Where to find:

l Settings Editor tab in Device Configuration Utility: Radio > Radio MAC Address

22.3.59.6 RadioModel Reports the model of the internal radio module.

l String data type l Read only

Where to find:

l Settings Editor tab in Device Configuration Utility: Radio > Radio Model

22.3.59.7 RadioModuleVer Radio hardware version.

l Long data type l Read only

Where to find:

l Settings Editor tab in Device Configuration Utility: Radio > Radio Hardware Version

22. Information tables and settings (advanced) 222

22.3.59.8 RadioNetID The RadioNetID specifies the identifier for the RF network. The radio will ignore any packets received that do not use this network identifier - therefore, all radios in the network must use the same value. Valid entries are between 0 and 32767.

l Long data type

Where to find:

l Settings Editor tab in Device Configuration Utility: Radio > Network ID

22.3.59.9 RadioProtocol Specifies the protocol mode that will be used by the radio.

Transparent: Provides a transparent link with no interpretation of the data packet. This mode is most commonly used with array based dataloggers, and it must be used when communicating with other transparent devices such as the stand alone and built-in RF407-series radios. This mode is also used for non PakBus protocols like Modbus. When used this way, Retry Level must be set to None.

PakBus Aware: This is the most commonly used protocol setting for PakBus networks. The radio will automatically inherit an RF identifier equal to the PakBus address of the device to which it is serially attached. In this mode, the radio will be capable of performing RF level retries and acknowledgments and provide a more reliable link than Transparent mode used for broadcast messaging. You do not need to manually set a unique RF Radio Address or a unique PakBus Address. This device will not appear in PakBus Graph.

l Long data type

Where to find:

l Settings Editor tab in Device Configuration Utility: Radio > Protocol

22.3.59.10 RadioPwrMode This setting governs the duty cycle that the radio will use for powering its receiver circuit. As such, it governs the amortized current drain for the radio. This setting should be set the same for all radios in the same network. Power Modes include:

Always On: The radio is always on and does not transmit a wakeup header.

.5 Second: The radio wakes every 0.5 seconds for a 100 msec interval to listen for RF activity. It will transmit a 700 msec wakeup header with the first transmission following a period of RF inactivity.

22. Information tables and settings (advanced) 223

1 Second: The radio wakes every 1 second for a 100 msec interval to listen for RF activity. It will transmit a 1200 msec wakeup header with the first transmission following a period of RF inactivity.

4 Second: The radio wakes every 4 seconds for a 100 msec interval to listen for RF activity. It will transmit a 4200 msec wakeup header with the first transmission following a period of RF inactivity.

l Long data type

Where to find:

l Settings Editor tab in Device Configuration Utility: Radio > Power Mode

22.3.59.11 RadioRetries Specifies the level to which the radio should retry to deliver an unacknowledged RF packet transmission. When an RF packet fails to be acknowledged by the destination, the radio will resend the packet again. A receiving radio responds to the sending radio with an ACK packet for every radio packet that it receives that is addressed to it and has a valid CRC. Retry levels and counts:

l None - 0 l Low - 2 l Medium - 4 l High - 6

Set Retry Level to None when the Protocol setting is set to Transparent for the purpose of communicating with other RF407 series radios.

l Long data type

Where to find:

l Settings Editor tab in Device Configuration Utility: Radio > Retry Level

22.3.59.12 RadioRSSI Indicates the signal strength of the last packet received by this radio.

The units of the RSSI are dBm; -40 is a stronger signal than -70. Because the received signal strength can vary due to multipath, interference, or other environmental effects; this setting may not give a true indication of communication performance or range. However, received signal strength can be useful for activities such as:

22. Information tables and settings (advanced) 224

l Determining the optimal direction to aim a Yagi antenna. l Determining the effects of antenna height and location. l Trying alternate (reflective) paths. l Seeing the effect of vegetation and weather over time.

l Long data type l Read only

Where to find:

l Settings Editor tab in Device Configuration Utility: Radio > RFSignalLevel (first number)

22.3.59.13 RadioRSSIAddr Indicates the PakBus address of the RadioRSSI signal radio.

l Long data type l Read only

Where to find:

l Settings Editor tab in Device Configuration Utility: Radio > RFSignalLevel (second number)

22.3.59.14 RadioStats Provides the performance statistics for the integrated radio for the data logger. The data logger will maintain a radio routing table for each PakBus neighbor accessed using the integrated radio and this setting is generated from that table. The fields reported for this setting are as follows:

l PakBus Address: Specifies the PakBus address of the neighbor reached through an integrated radio link.

l Sent Packets: Reports the number of radio packets that have been transmitted to the PakBus neighbor using the integrated radio link.

l Received Packets: Reports the number of radio packets that have been received from the PakBus neighbor using the integrated radio link.

l Packet Retries: Reports the number of radio packet transmissions to the PakBus neighbor using the integrated radio link that had to be retransmitted by the radio module.

l Packet Failures: Reports the number of radio packet transmissions to the PakBus neighbor that were never acknowledged.

l String data type

22. Information tables and settings (advanced) 225

Where to find:

l Settings Editor tab in Device Configuration Utility: Radio > Radio Performance Statistics

22.3.59.15 RadioTxPwr Specifies the power level at which the RF module transmits.

Levels are approximate. It is very important that the TX power level selected and the gain of the attached antenna do not exceed the maximum allowed ERP permitted by local laws. These rules vary from region to region.

l Long data type

Where to find:

l Settings Editor tab in Device Configuration Utility: Radio > Radio TX Power Level

22. Information tables and settings (advanced) 226

23. CR350 specifications Electrical specifications are valid over a -40 to +70 C, non-condensing environment, unless otherwise specified. Recalibration is recommended every three years. Critical specifications and system configuration should be confirmed with Campbell Scientific before purchase.

23.1 System specifications 227

23.2 Physical specifications 228

23.3 Power requirements 228

23.4 Power output specifications 230

23.5 Analog measurement specifications 231

23.6 Pulse measurement specifications 234

23.7 Digital input/output specifications 236

23.8 Communications specifications 237

23.9 Standards compliance specifications 240

23.1 System specifications Processor: ARM Cortex M4 running at 120 MHz

Memory:

l CPU Drive: 50 MB serial flash l Data Storage: 50 MB serial flash l Operating System: 2 MB flash l Settings, Calibration, TLS Certificates and Key, System Information: 3 MB serial flash l Background Tasks and Table Information, Buffers, System Memory, Program Variables:

7 MB RAM

Program Execution Period: 100 ms to 1 day

Real-Time Clock:

l Battery backed while external power is disconnected l Resolution: 1 ms l Accuracy: 3 min. per year

Wiring Panel Temperature: Measured using a sensor, located on the processor board.

23. CR350 specifications 227

NOTE: The measurement from the PanelTemp() instruction does not accurately reflect the temperature of the wiring panel, since it measures the temperature of the main processing board. Therefore, if the data logger processor, or charge (CHG) input are active, the PanelTemp() measurement will be warmer than ambient. This should be taken into consideration if this measurement is used as a reference temperature for other measurements such as thermocouples.

23.2 Physical specifications Dimensions (additional clearance required for cables, wires and antennas):

l CR350: 16.3 x 8.4 x 5.6 cm (6.4 x 3.3 x 2.2 in). For CAD files, see CR350 Images and CAD 2D Drawings.

Weight/Mass:

l CR350: 288 g (0.64 lb) l CR350-WIFI/RF407/RF412/RF422: 306 g (0.68 lb)

Case Material: High-impact-resistant polycarbonate, recycle code 7

23.3 Power requirements Power specifications for a communications option are shown within the specifications section for that option.

Protection: Power inputs are protected against surge, over-voltage, over-current, and reverse power. IEC 61000-4 Class 4 level.

Charge Terminal Characteristics (CHG+ and CHG-):

l Input from power converter or solar panel, typical l Voltage input 16 to 32 VDC l Current limit at 1.1 A

Battery Terminal Characteristics (BAT+ and BAT-):

l Input from external battery 12 VDC, 7 Ah lead-acid, typical l Voltage input 10 to 18 VDC l Current limit at 3.7 A

23. CR350 specifications 228

Internal Lithium Battery (see Internal battery (p. 152) for more information): 3 V coin cell CR2025 for battery-backed clock. 6-year life with no external power source.

Average Current Drain:

Assumes 12 VDC on BAT terminals add 2 mA if using CHG terminals.

l Idle: 0.5 mA l Active 1 Hz scan w/ one analog measurement: 1.5 mA l Active (Processor always on): 8 mA l Serial (RS-232): Active + 5 mA

USB Power: Functions that will be active with USB 5 VDC include sending programs, adjusting data logger settings, and making some measurements. If USB is the only power source, then the VX1 and VX2 ranges are reduced to 150 to 2500 mV. The SW1, SW2, and 12V terminals will not be operational. For the control terminals (C1, C2), voltage output is limited to 4.75 V.

Cellular Average Additional Current Contribution at 12 VDC:

l Idle: Connected to network, no data transfer. o -CELL205 average = 14 mA o -CELL210 average = 28 mA o -CELL215 average = 14 mA o -CELL220 average = 14 mA o -CELL225 average = 14 mA

l Transfer/Receive: o -CELL205 average = 75 mA o -CELL210 average = 90 mA o -CELL215 average = 75 mA o -CELL220 average = 75 mA o -CELL225 average = 75 mA

Wi-Fi Additional Current Contribution at 12 VDC:

l Client mode communicating: 70 mA typical l Client mode idle: 7 mA typical l Access point mode communicating: 70 mA l Access point mode idle: 62 mA typical l Idle (use IPNetPower() or DevConfig setting to disable): <0.1 mA

RF Average Additional Current Contribution at 12 VDC

23. CR350 specifications 229

-RF407, -RF412, -RF427 -RF422

Transmit < 80 mA 20 mA

Idle On 12 mA 9.5 mA

Idle 0.5 s Power Mode 4 mA 3.5 mA

Idle 1 s Power Mode 3 mA 2 mA

Idle 4 s Power Mode 1.5 mA 1.5 mA

See also Power output (p. 13).

23.4 Power output specifications System power out limits (when powered with 12 VDC):

Temperature (C) Current Limit1 (A)

40 5.8

20 3.7

70 2.0 1 Limited by self-resetting thermal fuse

12V: Provide unregulated 12 VDC power with voltage equal to BAT+ input voltage. Disabled when operating on USB power only. Current output limited by thermal fuses. Two 12V terminals share one thermal fuse up to 2.5 A @ 20 C.

l Terminals:  o 12V: two terminals, always on o SW1 and SW2: switched under program control, current limit at 2.1 A each

VX: Two independently configurable voltage terminals (VX1-VX2). VX outputs are produced by a 12-bit DAC. In this case, these terminals are regularly used with resistive-bridge measurements (see Resistance measurements (p. 87) for more information). VX terminals can also be used to supply a switched, regulated 5 VDC power source to power digital sensors and toggle control lines.

NOTE: CR350 data loggers are not capable of applying reverse excitation. Set the RevEx parameter of all bridge measurement instructions to False.

23. CR350 specifications 230

l Range: 150 to 5000 mV l Resolution: 1.6 mV l Maximum Source Current: 50 mA total, concurrently or independently.

See also Voltage measurements (p. 83).

See also Power output (p. 13).

23.5 Analog measurement specifications 4 single-ended (SE) or 2 differential (DIFF) terminals individually configurable for voltage, thermocouple, current loop, ratiometric, and period average measurements, using a 24-bit ADC. One channel at a time is measured.

23.5.1 Voltage measurements Terminals:

l Differential Configuration: DIFF 1H/1L 2H/2L l Single-Ended Configuration: SE1 SE4

Input Resistance:

l 5 G typical (fN1 = 50/60 Hz) l 300 M typical (fN1 = 4000 Hz)

Input Voltage Limits: -100 to +2500 mV

Sustained Input Voltage without Damage:

l SE1-SE2: 6 V, +9 V l SE3-SE4: 17 V

DC Common Mode Rejection:

l >120 dB with input reversal l 90 dB without input reversal

Normal Mode Rejection:

l >71 dB at 50 Hz l >74 dB at 60 Hz

Input Current @ 25 C:

l .08 nA typical (fN1 = 50/60 Hz) l 13 nA typical (fN1 = 4000 Hz)

23. CR350 specifications 231

Filter First Notch Frequency (fN1) Range: 50/60, 400, 4000 Hz (user specified)

Analog Range and Resolution:

Differential with Input Reversal

Single-Ended and Differential without Input

Reversal

Notch Frequency (fN1) (Hz)

Range1

(mV) RMS (V) Bits2 RMS

(V) Bits2

4000 100 to +2500 34 to +34

23 3.0

16.8 14.5

33 4.2

16.3 14.0

400 100 to +2500 34 to +34

3.8 0.58

19.4 16.8

5.4 0.82

18.9 16.3

50/603 100 to +2500 34 to +34

1.6 0.23

20.6 18.2

2.3 0.33

20.1 17.7

1 Range overhead of ~10% on all ranges guarantees that full-scale values will not cause over range

2 Typical effective resolution (ER) in bits; computed from ratio of full-scale range to RMS resolution.

3 50/60 corresponds to rejection of 50 and 60 Hz ac power mains noise.

Accuracy (does not include sensor or measurement noise):

l 0 to 40 C: (0.04% of measurement + offset) l 40 to 70 C: (0.1% of measurement+ offset)

Voltage Measurement Accuracy Offsets:

Typical Offset (V RMS)

Range (mV) Differential with Input Reversal

Differential without Input Reversal Single-Ended

100 to +2500 20 40 60

34 to +34 6 14 20

Measurement Settling Time: 10 s to 50 ms; 500 s default

Multiplexed Measurement Time:

These are not maximum speeds. Multiplexed denotes circuitry inside the data logger that switches signals into the ADC.

23. CR350 specifications 232

Measurement time = (multiplexed measurement time + settling time) reps +0.8 ms

Differential with Input Reversal

Single-Ended or Differential without Input Reversal

Example fN11 (Hz) Time2 (ms) Time2 (ms)

4000 2.9 1.4

400 14.6 7.3

50/60 103 51.5 1 Notch frequency (1/integration time).

2 Default settling time of 500 s used.

See also Voltage measurements (p. 83).

23.5.2 Resistance measurement specifications The data logger makes ratiometric-resistance measurements for four- and six-wire full-bridge circuits and two-, three-, and four-wire half-bridge circuits using voltage excitation. Typically, at least one terminal is configured for excitation output. Multiple sensors may be able to use a common excitation terminal.

Accuracy:

Assumes input reversal for differential measurements RevDiff. Does not include bridge resistor errors or sensor and measurement noise.

Ratiometric accuracy, rather than absolute accuracy, determines overall measurement accuracy. Offset is the same as specified for analog voltage measurements.

l 0 to 40 C: (0.05% of voltage measurement + offset) l 40 to 70 C: (0.06% of voltage measurement + offset)

23.5.3 Period-averaging measurement specifications Use PeriodAvg() to measure the period (in microseconds) or the frequency (in Hz) of a signal on a single-ended channel.

Terminals:

l SE1-SE4 l C1-C2

Accuracy: (0.01% of measurement + resolution), where resolution is 0.13 s divided by the number of cycles to be measured

23. CR350 specifications 233

Voltage Range: 0 to 3.3 V

Minimum Pulse Width: 33 ns

Voltage Threshold: Counts cycles on transition from <0.9 VDC to >2.1 VDC

See also Period-averaging measurements (p. 93).

23.5.4 Current-loop measurement specifications Two analog inputs terminals may be configured as independent, non-isolated 0-20 mA or 4-to- 20 mA current-loop inputs referenced to ground. One channel at a time is measured. Current is measured using a 24-bit ADC.

Terminals: SE1-SE2

Range: 0 to 25 mA

Accuracy:

l 0 to 40 C: 0.14% of reading l 40 to 70 C: 0.26% of reading

See also Current-loop measurements (p. 85).

23.6 Pulse measurement specifications Terminals are individually configurable for switch closure, high-frequency pulse, or low-level AC measurements.

23.6.1 Switch-closure input Terminals:

l P_SW l C1-C2 (Requires an external 100 k resistor connected from the terminal to VX1 or VX2.) l SE1-SE4 (Requires an external 100 k resistor connected from the terminal to VX1 or VX2.)

Maximum Input Frequency: 150 Hz

Minimum Switch Closed Time: 3 ms

Minimum Switch Open Time: 3 ms

Maximum Bounce Time: 1 ms open without being counted

23. CR350 specifications 234

23.6.2 High-frequency input Terminals:

l SE1-SE4 l P_LL l P_SW l C1-C2

Maximum Input Frequency:

l SE1-SE4: 35 kHz l P_LL: 20 kHz l P_SW: 35 kHz l C1-C2: 35 kHz

23.6.3 Low-level AC input Terminal: P_LL

Maximum Input Voltage: 20 VDC

DC-offset Rejection: Internal AC coupling eliminates DC-offset voltages up to 0.05 VDC

Input Hysteresis: 12 mV at 1 Hz

Low-Level AC Pulse Input Ranges:

Sine wave (mV RMS) Range (Hz)

20 1.0 to 20

200 0.5 to 200

2000 0.3 to 10,000

5000 0.3 to 20,000

23.6.4 Quadrature input Terminals: SE1 and SE2, SE3 and SE4, or C1 and C2 can be configured as digital terminal pairs to monitor the two sensing channels of an encoder.

Maximum Frequency: 2.5 kHz

See Pulse measurements (p. 93) for additional information.

23. CR350 specifications 235

23.7 Digital input/output specifications Up to seven terminals may be configured for digital input or output (I/O).

Terminals:

l SE1-SE4 l P_SW l C1-C2

Digital I/O Voltage Levels:

Terminal High State Low State Current Source Maximum Input Voltage

C1 C2

5.0 V output 3.3V input 0 V 10 mA at 3.5 V 10 V, +15 V

SE1 SE2 3.3 V 0 V 100 A at 3.0 V 6 V, +9 V

SE3 SE4

P_SW 3.3 V 0 V 100 A at 3.0 V 17 V

See also Power output (p. 13) and Pulse measurement specifications (p. 234).

23.7.1 Pulse-width modulation Terminals:

l SE1-SE4 l C1

Period Maximum: 2047 ms

Resolution

l 0 5 ms: 83.33 ns or 12 MHz l 5 325 ms: 5.00 s or 200 kHz l > 325 ms: 31.25 s or 32 kHz

See Digital input/output specifications (p. 236) for more information.

23. CR350 specifications 236

23.8 Communications specifications A data logger is normally part of a two-way conversation started by a computer. In applications with some types of interfaces, the data logger can also initiate the call (callback) when needed. In satellite applications, the data logger may simply send bursts of data at programmed times without waiting for a response.

Internet Protocols: Ethernet, PPP, RNDIS, ICMP/Ping, Auto-IP(APIPA), IPv4, IPv6, UDP, TCP, TLS (v1.2), DNS, DHCP, SLAAC, Telnet, HTTP(S), FTP(S), POP3/TLS, NTP, SMTP/TLS, MQTT

Additional Protocols: PakBus, PakBus Encryption, SDI-12, Modbus RTU / ASCII / TCP, DNP3, custom user definable over serial

USB: Type C 2.0. Full speed: 12 Mbps. Operates as:

l Device for computer communications l Host for mass storage devices

SDI-12 (C1, C2): Two independent SDI-12 compliant terminals are individually configured and meet SDI-12 Standard v 1.4.

RS-232:

l COMRS232: Female RS-232, 9-pin interface, 1200 to 115.2 kbps l COM1 (C1,C2): TTL or RS-232 logic l COM2 - COM3: Two independent RS-232 Rx/Tx pairs

RS-485 (COM2 - COM3): Two independent RS-485 half duplex or one full duplex

23. CR350 specifications 237

23.8.1 Wi-Fi specifications WLAN (Wi-Fi)

Maximum Possible Over-the-Air Data Rates: <11 Mbps over 802.11b, <54 Mbps over 802.11g, <72 Mbps over 802.11n

Operating Frequency: 2.4 GHz, 20 MHz bandwidth

Antenna Connector: Reverse Polarity SMA (RPSMA)

Antenna (shipped with data logger): Unity gain (0 dBd), 1/2 wave whip, omnidirectional. Features an articulating knuckle joint that can be oriented vertically or at right angles

Supported Technologies: 802.11 b/g/n, WPA/WPA2-Personal, WPA/WPA2-Enterprise Security, WEP

Client Mode: WPA/WPA2-Personal and Enterprise, WEP

Access Point Mode: WPA2-Personal

Receive Sensitivity: -97 dBm

For WiFi additional current contribution specifications, see Power requirements (p. 228).

23.8.2 RF radio option specifications Antenna Terminal: Reverse Polarity SMA (RPSMA)

Radio Type

l RF407, RF412, and RF427: Frequency Hopping Spread Spectrum (FHSS) l RF422: SRD860 Radio with Listen before Talk (LBT) and Automatic Frequency Agility (AFA)

Frequency

l RF407: 902 to 928 MHz (US, Canada) l RF412: 915 to 928 MHz (Australia, New Zealand) l RF422: 863 to 870 MHz (European Union) l RF427: 902 to 907.5 MHz/915 to 928 MHz (Brazil)

Transmit Power Output (software selectable)

l RF407 and RF412: 5 to 250 mW l RF422: 2 to 25 mW l RF427: 5 to 250 mW

23. CR350 specifications 238

Channel Capacity

l RF407: Eight 25-channel hop sequences sharing 64 available channels. l RF412: Eight 25-channel hop sequences sharing 31 available channels. l RF422: Ten 30-channel hop sequences (default), software configurable to meet local

regulations; 10 sequences for reducing interference through channel hop. l RF427: Eight 25-channel hop sequences sharing 43 available channels.

Receive Sensitivity

l RF407, RF412, and RF427: 101 dBm l RF422: 106 dBm

RF Data Rate

l RF407, RF412, and RF427: 200 kbps l RF422: 10 kbps

For RF additional current contribution specifications, see Power requirements (p. 228).

See also Radio communications option (p. 53).

23.8.3 Cellular option specifications Cell Technology:

Option Cellular Protocol Market Verizon AT&T T-Mobile International

-CELL205 4G LTE with automatic 3G fallback

North America

-CELL210 4G LTE CAT-1 United States

-CELL215 4G LTE with automatic 3G fallback

EMEA

-CELL220 4G LTE with automatic 3G fallback

Australia and New Zealand

-CELL225 4G LTE Japan

* Confirm modem compliance for country/carrier where services are needed.

23. CR350 specifications 239

See https://s.campbellsci.com/documents/us/miscellaneous/Cellular%20Modem%20Frequency%20 Bands.pdf for a complete list of supported frequency bands.

Antenna: Two SMA connectors, one for TX/RX, one for diversity RX

SIM Slot: Industry standard 3FF micro-SIM (6 position / contacts) (not externally accessible)

23.9 Standards compliance specifications View compliance and conformity documents at www.campbellsci.com/cr350 .

Shock and Vibration: ASTM D4169

Protection: IP30

EMI and ESD protection: 

l Immunity: Meets or exceeds following standards: o ESD: per IEC 61000-4-2; 15 kV air, 8 kV contact discharge o Radiated RF: per IEC 61000-4-3; 10 V/m, 80-1000 MHz o EFT: per IEC 61000-4-4; 4 kV power, 4 kV I/O o Surge: per IEC 61000-4-5; 4 kV power, 4kV I/O o Conducted RF: per IEC 61000-4-6; 10 V power, 10 V I/O

l Emissions and immunity performance criteria available on request.

RF407 Option

l United States FCC Part 15.247: MCQ-XB900HP l Industry Canada (IC): 1846A-XB900HP l Mexico IF: RCPDIXB15-0672-A1

RF412 Option

l ACMA RCM l United States FCC Part 15.247: l MCQ-XB900HP l Industry Canada (IC): 1846A-XB900HP

RF422 Option: View EU Declaration of Conformity at www.campbellsci.com/cr350 .

RF427 Option: Brazil ANATEL standards in Resolution No. 506: 08335-17-10644. View the RF427 Brazilian Certificate of Conformity at www.campbellsci.com/cr350 .

23. CR350 specifications 240

Wi-Fi

l United States FCC ID: XF6-RS9113SB l Industry Canada (IC): 8407A-RS9113SB

Cellular Option:

l Industry Canada (IC): 10224A-201611EC21A

NOTE: The user is responsible for emissions if changing the antenna type or increasing the gain.

23. CR350 specifications 241

Appendix A. Configure cellular settings and retrieve status information with SetSetting() Downloadable example programs are available at www.campbellsci.com/downloads/cell200- example-programs  . The CELL2XX-SetSettings example shows how to set up the cellular module using the SetSetting() instruction. It also illustrates how to retrieve status information from the module in the CRBasic program.

Appendix A. Configure cellular settings and retrieve status information with SetSetting() 242

Appendix B. Verizon Wireless and AT&T

NOTE: Campbell Scientific can provide Verizon Wireless or AT&T service. This is the simplest way to set up your module on the Verizon Wireless or AT&T network. See Campbell Scientific cellular data service (p. 37).

B.1 Verizon Wireless What you need:

l Verizon Wireless 4G LTE CAT-1 coverage at the data logger site. For a coverage map, refer to: www.verizonwireless.com/landingpages/better-matters/#maps

l Verizon Wireless 4G LTE private dynamic IP account in conjunction with Campbell Scientific Konect PakBus Router Service. (A Verizon Wireless 4G LTE static unrestricted IP account can also be used. However, Verizon generally requires new users to have 50 lines of service to obtain the static unrestricted IP account. Also, there is generally a $500 one-time-per- customer charge to activate static IP on the account.)

To set up an account, you will need the IMEI number of the module. The IMEI number is listed on a label on the module. To set up an account with Verizon Wireless, call:

800-526-3178 for Business Sales 800-256-4646 for Personal Sales

Verizon Wireless will provide a SIM (Subscriber Identity Module) card for each module. The Micro-SIM (3FF) (6 position / contacts) card must be installed inside of the module as described in Install the SIM card (p. 1). In addition to the SIM card, you should receive:

l 10-digit MSISDN number (telephone number associated with the SIM, used for billing) l An APN (Access Point Name) for 4G LTE CAT-1 service. A common APN used for this

application is: VZWINTERNET. The user must program the APN into the module. l For static IP accounts only, an IP Address will be included.

Appendix B. Verizon Wireless and AT&T 243

B.2 AT&T What you need:

l AT&T 4G LTE CAT-1 coverage at the data logger site. For a coverage map refer to: www.att.com/maps/wireless-coverage.html .

l AT&T 4G LTE private dynamic IP account in conjunction with Campbell Scientifics Konect Router Service. (An AT&T 4G LTE static unrestricted IP account can also be used. However, AT&T charges $3/month/device for the static IP account.)

To set up an AT&T account, contact your AT&T Business Account Representative or Blu- Telecommunications.

Blu-Telecommunications is part of the Alliance Channel with AT&T and can assist any customer nationwide. Blu-Telecommunications will contact AT&T and work with an AT&T account manager to set up an account.

Contact information for Blu-Telecommunication:

Website: www.blu-tel.com Phone number: (877) 422-2616, or Email box: i2gold@blu-tel.com What to ask for: M2M Setup Who to ask for: Carlos Morales or Andy Tran

An APN (Access Point Name) must be added onto the account to make the module accessible through the Internet. For networks with fewer than 30 modules, the standard I2Gold APN can be used; networks with more than 30 modules will require a Custom APN. A Custom APN has a setup fee starting at $500 and takes a minimum of 7 to 14 business days to complete. The user must program the APN into the module.

AT&T will provide a Subscriber Identity Module (SIM) card for each module. The Micro-SIM (3FF) (6 position / contacts) card must be installed inside of the module as described in Install the SIM card (p. 1). In addition to the SIM card, you should receive:

l 10-digit MSISDN number (telephone number associated with the SIM, used for billing) l An APN (Access Point Name) for 4G LTE CAT-1 service. A common APN used for this

application is: BROADBAND. The user must program the APN into the module. l For static IP accounts only, an IP Address will be included.

Appendix B. Verizon Wireless and AT&T 244

Appendix C. Cellular module regulatory information C.1 Important information for North American users

NOTE: This equipment has been tested and found to comply with the limits for a Class A digital device, pursuant to part 15 of the FCC Rules. These limits are designed to provide reasonable protection against harmful interference when the equipment is operated in a commercial environment. This equipment generates, uses, and can radiate radio frequency energy and, if not installed and used in accordance with the instruction manual, may cause harmful interference to radio communications. Operation of this equipment in a residential area is likely to cause harmful interference, in which case the user will be required to correct the interference at his own expense.

WARNING: Changes or modifications to this device not expressly approved by Campbell Scientific could void the users authority to operate this equipment.

C.2 RF exposure In accordance with FCC/IC requirements of human exposure to radio frequency fields, the radiating element shall be installed such that a minimum separation distance of 20 cm should be maintained from the antenna and the users body.

WARNING: This product is only to be installed by qualified personnel.

To comply with FCC/IC regulations limiting both maximum RF output power and human exposure to RF radiation, the maximum antenna gain must not exceed the specifications listed in the following tables for the device used.

Appendix C. Cellular module regulatory information 245

Device Frequency Band FCC ID XMR201606EC21A

CELL205

WCDMA Band 2 9.5 dBi

WCDMA Band 4 6.5 dBi

WCDMA Band 5 14.9 dBi

LTE Band 2 9.0 dBi

LTE Band 4 6.0 dBi

LTE Band 12 10.7 dBi

CELL210 LTE Band 4 6.5 dBi

LTE Band 13 10.6 dBi

C.3 EU Campbell Scientific hereby declares the CR350-CELL devices are in compliance with the essential requirements and other relevant provisions of Directive 2014/53/EU (RED Directive).

The CELL215 displays the CE mark.

WARNING: Changes or modifications to this device not expressly approved by Campbell Scientific could void the users authority to operate this equipment.

WARNING: This product is only to be installed by qualified personnel.

The Declaration of Conformity made under Directive 2014/53/EU (RED Directive) is available for viewing at: www.campbellsci.com/cell215 .

C.4 UK Campbell Scientific hereby declares the CR350-CELL devices are in compliance with the essential requirements and other relevant provisions of Regulation 2017 No. 1206 (The Radio Equipment Regulations 2017).

Appendix C. Cellular module regulatory information 246

WARNING: Changes or modifications to this device not expressly approved by Campbell Scientific could void the users authority to operate this equipment.

WARNING: This product is only to be installed by qualified personnel.

The Declaration of Conformity made under Regulation 2017 No. 1206 is available for viewing at: www.campbellsci.com/cell215 .

Appendix C. Cellular module regulatory information 247

Appendix D. MQTT commands D.1 MQTT topic structure The topic structure transitions from coarse to fine using the form /msgType/ . This allows the configurable groupID to be defined in a coarse manner, followed by a defined msgType and deviceID string. This topic naming follows a pattern similar to the Sparkplug specification sparkplug.eclipse.org used in SCADA applications. The Sparkplug namespace elements for a topic use the following structure:

namespace/group_id/message_type/edge_node_id/[device_id]

The message_type is fixed and provides a defined set of messages described in the Sparkplug specification.

Following this idea and making the groupID portion of the topic structure settings inside the data logger allows MQTT application developers to define their own coarse to fine topic definitions.

The portion of the topic will take the form:

model/UID

Where model will be: GRANITE10, GRANITE9, GRANITE6, CR6, CR1000X, CR350.

UID (unique identifier) is a placeholder for future functionality. If the internal UID has not yet been set the serial number will be used as the UID. If the UID is set, the default base topic will be: cs/v2/. If not set the default will be cs/v1. This allows the MQTT broker ingestion to differentiate between serial number and UID.

This topic structure allows the data ingestion stream to more easily route the topics published by the data logger. Taking advantage of the MQTT brokers topic parsing via the use of wildcards + and #, the messages can be ingested by small function specific micro-services.

This example shows a namespace, version, msgType, model, UID, Data Source as the coarse to fine transition within the topic.

cs/v2/data/model/UID/tableName

Which is a generic representation of:

/data/ /tableName

Appendix D. MQTT commands 248

NOTE: Both and can be defined as needed for the intended use case.

NOTE: The MQTT api uses the camelCase naming convention. The first character of the first word is lowercase and subsequent words within a name have the first letter capitalized. This applies to topics as well as JSON key:value names. All characters in the MQTT topics are sent as part of the MQTT packet; therefore, keep topic lengths to a minimum.

D.2 MQTT automatic publish topics The data logger automatically publishes to topics:

l /state/ l /state/ /watchdogEvent l /state/ /statusInfo

D.2.1 state This topic is used as a heartbeat to verify that the data logger is operating properly. The interval at which the topic is published to is controlled by the state publish interval setting. This topic is also used to report different result information for command and control topic actions.

Example:

Topic: /state/ /statusInfo

JSON: { "clientId" : "CR1000X_A399", "state" : "online" }

D.2.2 statusInfo This topic is published at program startup and contains a subset of information from the status table.

Example:

Topic: /state/ /statusInfo

Appendix D. MQTT commands 249

JSON: {   "state" : {     "reported" : {       "clientId" : "CR6_966",       "OS_Version" : "CR6.10.02.2020.12.14.0955",       "Program_Name" : "",       "Program_Signature" : "43690",       "Compile_Errors" : "1",       "Compile_Results" : "No Program",       "Low_12volt" : "0",       "Battery" : "11.11",       "Skipped_Scan" : "0",       "Watchdog_Errors" : "0"     }   } }

D.2.3 watchdogEvent If a watchdog event occurs, the data logger will reset and increment the watchdog count. Depending on the type of watchdog, a WatchdogInfo.txt file may be created on the data logger. When a watchdog happens a watchdog event notification will be published on the following topic:

/state/ /watchdogEvent

The payload published when a watchdog event occurs is a JSON object containing the watchdog count and the watchdog file name, if a file is present on the data logger. Under certain error conditions, the data logger will trigger a watchdog and increment the watchdog count without creating a watchdog file. If a watchdog file is not present, the JSON key file value will be an empty string.

Below is an example of the event payload: { count: 3, file: (When a watchdog file is present the file name is always WatchdogInfo.txt.) }

D.3 MQTT command and control (automatic subscription topics) When the data logger successfully connects to an MQTT broker, it will subscribe to a single topic to perform command and control.

Appendix D. MQTT commands 250

/cc/ /#

The command and control functionality consist of the following topics:

D.3.1 Command response 251

D.3.2 OS download 252

D.3.3 CRBasic program download 252

D.3.4 New mqtt configuration 253

D.3.5 Edit constant table (editConst) 253

D.3.6 Reboot data logger 253

D.3.7 File control 254

D.3.8 Settings 255

D.3.9 Historic Data Collection 258

D.3.10 Set Public Variable 258

D.3.11 Get Public variable 259

D.3.12 Serial talkThru 259

D.3.1 Command response For commands that elicit a response, the response will come on either the /state/ or on the targeted topic: /cr/ /ccCmd. The use of state vs. cr depends on the nature of the data returned in the response. If the response is just an acknowledgment, it is returned on state. If there is specific information to be returned, it is published on a targeted topic.

Command and control Topic Description

OS /cc/ /OS Download OS

program /cc/ /program Download CRBasic program

mqttConfig /cc/ /mqttConfig Download new MQTT

configuration

fileControl /cc/ /fileControl Perform file control actions

editConst /cc/ /editConst Update the constant

table values

Appendix D. MQTT commands 251

Command and control Topic Description

setting /cc/ /setting Set/Retrieve a Device Configuration setting

historicData /cc/ /historicData Retrieve past data from a

Data Table

talkThru /cc/ /talkThru Perform serial talk thru to

a sensor

setVar /cc/ /setVar Set a variables value in a Public,

Status or Structure table

getVar /cc/ /getVar Get variable from table

reboot /cc/ /reboot Reboot the data logger

D.3.2 OS download An OS can be updated by publishing the following JSON object to:

/cc/ /OS

{ url: url of OS file location }

Example: { url : https://example.123.xyz }

D.3.3 CRBasic program download A CRBasic Program file can be downloaded and run by publishing the following JSON object to:

Publish on /cc/ /program with the following JSON payload: { url : https://example.123.xyz, filename:MyProg.crb }

The data logger will issue a HTTP(s) GET to the specified URL and report success or failure on the /state/ topic. If successful, the program will be set to run now and run on power up and the data logger will restart and compile and run the program.

Example: With a GRANITE6 using the Base topic: cs/v1/ and a serial number of 123.

Publish to topic: cs/v1/cc/granite6/123/program

Appendix D. MQTT commands 252

{ "url":"https://s3.us-west-2.amazonaws.com/bucket.cr-basic/mqttPub27.cr6?X-Amz- Expires=3593&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz- Credential=AKIA4MADCTNFDCYIQHED/20200826/us-west-2/s3/aws4_request&X-Amz- Date=20200826T150138Z&X-Amz-SignedHeaders=host&X-Amz- Signature=496fccd4d14edfe39d270ccee8ae0247ee1b256d01e1810b2c288de940b58507", "fileName":"MyPub.crb" }

D.3.4 New mqtt configuration The mqttConfig command is used to set up the data logger. The file received from this command must follow the proprietary binary format expected by the parsing routine.

Example:

Publish on /cc/ /mqttConfig with the following JSON payload: { url : https://example.123.xyz }

The data logger will issue an HTTP(s) GET to the specified URL and report success or failure on the /state/ topic. Once this file is received, it will be parsed as a binary settings file and if valid, the settings applied, and the data logger restarted.

D.3.5 Edit constant table (editConst) To edit the constant table via MQTT, publish the new Const table values in a JSON object. The JSON keys and the values must be a string. The string values will be converted to the appropriate types by the data logger. Only the values to be changed are required in the JSON object.

Example:

Publish on /cc/ /editConst with the following JSON payload: { key1 : value1, key2 : value2, keyN : valueN }

The data logger will publish results on /state/ /.

D.3.6 Reboot data logger To remotely reboot (restart) the data logger, use the topic /cc/ /reboot with the following JSON payload: { "action : "reboot", }

Appendix D. MQTT commands 253

The additional JSON provides more safety when rebooting.

If successful, the data logger will report on /state/ , that it is rebooting: { "clientId" : "CR6_966", "state" : "online", "fileTransfer" : "Rebooting Datalogger" }

D.3.7 File control Use the fileControl topic to perform file manipulation commands. Part of the payload will be the action indicating which file function to perform. Since file control, in the full context of data logger capability, is too complex for the thing shadow, file control will be best handled while the data logger is online. The file control functions can be automated by triggering file transfer events via AWS lifecycle events.

Each file control action has a unique JSON object payload. Each of the unique JSON objects must contain the cmd key and fileControl value to perform the file control functions. Each file control function is described below:

D.3.7.1 list The data logger can store more files than can be listed in one MQTT publish packet. Therefore, a file list request will return a list of file names containing a maximum of 4800 characters. The names will be published on the fileList topic.

Publish on /cc/ /fileControl/ with the following JSON payload: { action : list drive :USR, (optional default is CPU) }

The data logger will publish on the topic:

/cr/ /fileControl/list

Example:

Publish topic: cs/v2/cc/cr6/ABCDEF/fileControl

JSON: {"action" : "List"}

Response topic: cs/v2/cr/cr6/ABCDEF/fileControl/list

Appendix D. MQTT commands 254

JSON: { "drive" : "CPU", "clientID" : "CR6_966", "fileList" : [ "simple.CR6", "spectrum_krohn_cal.crb", "spectrum_cal.crb", "PeriodAvg_testingDaveI.CR6", "spectrum_cal_check.crb", "mqttPub27.cr6", "WatchdogInfo.txt" ] }

D.3.8 Settings An individual Device Configuration Utility setting can be set or published via MQTT by publishing the following JSON object.

D.3.8.1 set A single setting can be changed in each message. To set multiple settings, a series of messages will be sent with the last having apply set to true. { action : set, name :Setting name, value : XXX, apply :true { this is optional } }

The data logger will notify success or failure on the topic /state/ /.

Example:

Publish Topic: cs/v2/cc/cr6/ABCDEF/setting

JSON: {"name": "PakBusAddress", "action" : "set", "value" : "3", "apply" : "true"}

Response topic: cs/v2/state/cr6/ABCDEF/ { "clientId" : "CR6_966", "state" : "Set Setting Succeeded" }

{ "clientId" : "CR6_966", "state" : "Applying Settings" }

D.3.8.2 download from CLOUD Send files to the CPU drive of the data logger by publishing the download URL of the file and the file name to a topic. These can be include files which will be used by the main CRBasic program.

Appendix D. MQTT commands 255

The CLOUD will publish one file URL at a time to a FileManager topic.

NOTE: All include files must be downloaded before the main program can be set to run.

download Publish on /cc/ /fileControl with the following JSON payload: { action : download, url : https://example.123.xyz, fileName : name of local file, drive :USR, (optional default is CPU) }

The data logger will perform an HTTP(s) GET to the specified URL. Any state or error information will be published on the topic /state/ /.

D.3.8.3 Delete a file Action to delete a file on the data logger. If the file being deleted is the running program, the program will not be stopped, only the associated text file will be deleted. { action : delete filename : name of file on device drive :USR, (optional default is CPU) }

The data logger will publish on topic /state/ /.

D.3.8.4 Stop Action to stop the currently running program. { action : stop }

The data logger will publish on topic /state/ /.

D.3.8.5 Run Action to stop the currently running program. { action : run, filename : name of file on device }

The data logger will publish on topic /state/ /.

Appendix D. MQTT commands 256

D.3.8.6 Upload to CLOUD Action to upload a file (HTTP PUT) from the data logger to the CLOUD. This action uses the AWS S3 bucket pre-signed URL. { action : upload, url : https://example.123.xyz, filename : name of file on device }

The url will be used to issue HTTP(s) POST and the file will be sent. The data logger will publish result information on topic /state/ /.

D.3.8.7 publish To read the value of a setting the topic /cc/ /setting is used with a payload: { action : publish, name :Setting name, }

The setting value will be published on:

/cr/ /setting

Example:

Publish topic: cs/v2/cc/cr6/ABCDEF/setting

JSON: {"name" : "PakBusAddress", "action" : "Publish"}

Response topic: cs/v2/cr/cr6/ABCDEF/setting

JSON: { "setting" : "PakBusAddress", "value" : " 3" }

D.3.8.8 apply To apply previously set settings, /cc/ /setting is used with a payload: { apply :true }

Appendix D. MQTT commands 257

The data logger will notify success or failure on the topic /state/ . If successful, this will commit settings to non-volatile memory and restart the data logger.

D.3.9 Historic Data Collection Historic data can be requested via MQTT by publishing the appropriate JSON payload on the following topic:

/cc/ /historicData

The payload published on the topic must be in the JSON format as follows: { table: {table name}, start: {utc time stamp}, end: {utc time stamp} }

Only data from a DataTable containing the MQTTPublishTable instruction will be published. The data will be published in the same format as indicated in the table publish instruction. In the case of GEOJSON, the point coordinates used when re-publishing the data will be the latest values passed into the table publish instruction. GEOJSON coordinates are not stored.

The historic data will be published on the following topic:

/cr/ /historicData/TableName

{ "cmd" : "HistoricData", "table" : "ThirtySecond", "start" : "2020-04-14T10:10:24.865Z", "end" : "2020-04-14T10:20:32.176Z" }

D.3.10 Set Public Variable A value can be set in a CRBasic program Public table by using the a setVar topic. To set the value of the public table variable, publish associate JSON object to the following topic.

D.3.10.1 setVar To change a variable in the running program of the data logger publish to /cc/ /getVar with a payload like: { "name : "VarOne", "Value" : "12.345" }

The data logger will report on /state/ .

Appendix D. MQTT commands 258

NOTE: The stringified value will be converted to the type of the variable by the data logger.

D.3.11 Get Public variable A value can be set in a CRBasic programs Public table by using a getVar topic. To get the value of the public table variable, publish associate JSON object to the following topic.

D.3.11.1 getVar To read a variable in the running program of the data logger publish to /cc/ /getVar with a payload similar to this, where VarOne is the variable name: { "name : "VarOne", }

The data logger will report on /state/ .

NOTE: The value will be converted from the type of the variable to a string by the data logger.

D.3.12 Serial talkThru Serial talkThru allows remote interaction with sensors connected to data logger serial ports. It works similar to the terminal mode serial talk through.

D.3.12.1 Talk through to sensor Serial talk through is initiated by sending a JSON payload to the topic /cc/ /talkThru. The data logger will transmit to the serial sensor and receive one response. One transmission is required for each response from sensor. This feature is not designed to sniff serial sensor output. The desired communications port must be configured prior to using serial talk through. This command causes the data logger to enter a talk through session. The session will stay active, meaning that the sensor port will remain in a state of not transferring data through to the instructions using the port until it is aborted or times out. The timeout associated with a talkThru session is 1 minute. If no further talkThru commands are received within a minute, the session will end, and normal communications port operations will resume. The session can also be ended by publishing to the talkThru topic with the JSON key value pair with the key of abort (the value does not matter).

The talk thru payload must follow the described format and be published to:

/cc/ /talkThru

Appendix D. MQTT commands 259

{ comPort: {Port Description}, outString: {ASCII string to be sent to sensor}, numberTries: {ASCII number string indicating number of transmissions of outString} (Optional), respDelay: {ASCII number string indicating time (milliseconds) to wait for the complete response from sensor} (Optional) abort : true }

D.3.12.2 TalkThru from sensor A serial string response from a smart sensor can only be received as a response to a transmission to a sensor. The response will be published to the following topic in the specified JSON format.

/cr/ /talkThru

TalkThru response JSON payload: { response: {String response from Sensor} }

If an error occurred, the response will contain an error message:

l Illegal ComPort l ComPort must be open to use MQTT talkThru l No response received

D.3.12.3 Allowable Com port values The Com port values must follow the case shown.

l ComRS232 l Com1 l Com2 l Com3

Appendix D. MQTT commands 260

Appendix E. Glossary A

AC

Alternating current (see VAC).

accuracy

The degree to which the result of a measurement, calculation, or specification conforms to the correct value or a standard.

ADC

Analog to digital conversion. The process that translates analog voltage levels to digital values.

alias

A second name assigned to variable in CRBasic.

allowed neighbor list

In PakBus networking, an allowed neighbor list is a list of neighbors with which a device will communicate. If a device address is entered in an allowed neighbor list, a hello exchange will be initiated with that device. Any device with an address between 1 and 3999 that is not entered in the allowed neighbor list will be filtered from communicating with the device using the list.

amperes (A)

Base unit for electric current. Used to quantify the capacity of a power source or the requirements of a power-consuming device.

analog

Data presented as continuously variable electrical signals.

Appendix E. Glossary 261

APN

Cellular Access Point Name (obtained from your cellular network provider)

argument

Part of a procedure call (or command execution).

array

A group of variables as declared in CRBasic.

ASCII/ANSI

Abbreviation for American Standard Code for Information Interchange / American National Standards Institute. An encoding scheme in which numbers from 0-127 (ASCII) or 0-255 (ANSI) are used to represent pre-defined alphanumeric characters. Each number is usually stored and transmitted as 8 binary digits (8 bits), resulting in 1 byte of storage per character of text.

asynchronous

The transmission of data between a transmitting and a receiving device occurs as a series of zeros and ones. For the data to be "read" correctly, the receiving device must begin reading at the proper point in the series. In asynchronous communications, this coordination is accomplished by having each character surrounded by one or more start and stop bits which designate the beginning and ending points of the information. Also indicates the sending and receiving devices are not synchronized using a clock signal.

AWG

AWG ("gauge") is the accepted unit when identifying wire diameters. Larger AWG values indicate smaller cross-sectional diameter wires. Smaller AWG values indicate large-diameter wires. For example, a 14 AWG wire is often used for grounding because it can carry large currents. 22 AWG wire is often used as sensor wire since only small currents are carried when measurements are made.

Appendix E. Glossary 262

B

baud rate

The rate at which data is transmitted.

beacon

A signal broadcasted to other devices in a PakBus network to identify "neighbor" devices. A beacon in a PakBus network ensures that all devices in the network are aware of other devices that are viable.

binary

Describes data represented by a series of zeros and ones. Also describes the state of a switch, either being on or off.

BOOL8

A one-byte data type that holds eight bits (0 or 1) of information. BOOL8 uses less space than the 32 bit BOOLEAN data type.

boolean

Name given a function, the result of which is either true or false.

boolean data type

Typically used for flags and to represent conditions or hardware that have only two states (true or false) such as flags and control ports.

burst

Refers to a burst of measurements. Analogous to a burst of light, a burst of measurements is intense, such that it features a series of measurements in rapid succession, and is not continuous.

Appendix E. Glossary 263

C

calibration wizard

The calibration wizard facilitates the use of the CRBasic field calibration instructions FieldCal () and FieldCalStrain(). It is found in LoggerNet (4.0 and later) or RTDAQ.

callback

A name given to the process by which the data logger initiates communications with a computer running appropriate Campbell Scientific data logger support software. Also known as "Initiate Comms."

CardConvert software

A utility to retrieve binary final data from memory cards and convert the data to ASCII or other formats.

CDM/CPI

CPI is a proprietary interface for communications between Campbell Scientific data loggers and Campbell Scientific CDM peripheral devices. It consists of a physical layer definition and a data protocol.

CF

CompactFlash

code

A CRBasic program, or a portion of a program.

Collect button

Button or command in data logger support software that facilitates collection-on-demand of final-data memory. This feature is found in PC400, LoggerNet, and RTDAQ software.

Collect Now button

Button or command in data logger support software that facilitates collection-on-demand of final-data memory. This feature is found in PC400, LoggerNet, and RTDAQ software.

Appendix E. Glossary 264

COM port

COM is a generic name given to physical and virtual serial communications ports.

COM1

When configured as a communications port, terminals C1 and C2 act as a pair to form Com1.

command

An instruction or signal that causes a computer to perform one of its basic functions (usually in CRBasic).

command line

One line in a CRBasic program. Maximum length, even with the line continuation characters ( _), is 512 characters. A command line usually consists of one program statement, but it may consist of multiple program statements separated by a (:).

CompactFlash

CompactFlash (CF) is a memory-card technology used in some Campbell Scientific card- storage modules.

compile

The software process of converting human-readable program code to binary machine code. Data logger user programs are compiled internally by the data logger operating system.

conditioned output

The output of a sensor after scaling factors are applied.

connector

A connector is a device that allows one or more electron conduits (wires, traces, leads, etc) to be connected or disconnected as a group. A connector consists of two parts male and female. For example, a common household ac power receptacle is the female portion of a connector. The plug at the end of a lamp power cord is the male portion of the connector.

Appendix E. Glossary 265

constant

A packet of memory given an alpha-numeric name and assigned a fixed number.

control I/O

C terminals configured for controlling or monitoring a device.

CoraScript

CoraScript is a command-line interpreter associated with LoggerNet data logger support software.

CPU

Central processing unit. The brains of the data logger.

cr

Carriage return.

CRBasic

Campbell Scientific's BASIC-like programming language that supports analog and digital measurements, data processing and analysis routines, hardware control, and many communications protocols.

CRBasic Editor

The CRBasic programming editor; stand-alone software and also included with LoggerNet, PC400, and RTDAQ software.

CRC

Cyclic Redundancy Check

CRD

An optional memory drive that resides on a memory card.

Appendix E. Glossary 266

CVI

Communications verification interval. The interval at which a PakBus device verifies the accessibility of neighbors in its neighbor list. If a neighbor does not communicate for a period of time equal to 2.5 times the CVI, the device will send up to four Hellos. If no response is received, the neighbor is removed from the neighbor list.

D

DAC

Digital to analog conversion. The process that translates digital voltage levels to analog values.

data bits

Number of bits used to describe the data and fit between the start and stop bit. Sensors typically use 7 or 8 data bits.

data cache

The data cache is a set of binary files kept on the hard disk of the computer running the data logger support software. A binary file is created for each table in each data logger. These files mimic the storage areas in data logger memory, and by default are two times the size of the data logger storage area. When the software collects data from a data logger, the data is stored in the binary file for that data logger. Various software functions retrieve data from the data cache instead of the data logger directly. This allows the simultaneous sharing of data among software functions.

data logger support software

LoggerNet, RTDAQ, and PC400 - these Campbell Scientific software applications include at least the following functions: data logger communications, downloading programs, clock setting, and retrieval of measurement data.

data output interval

The interval between each write of a record to a final-storage memory data table.

Appendix E. Glossary 267

data output processing instructions

CRBasic instructions that process data values for eventual output to final-data memory. Examples of output-processing instructions include Totalize(), Maximize(), Minimize(), and Average(). Data sources for these instructions are values or strings in variable memory. The results of intermediate calculations are stored in data output processing memory to await the output trigger. The ultimate destination of data generated by data output processing instructions is usually final-storage memory, but the CRBasic program can be written to divert to variable memory by the CRBasic program for further processing. The transfer of processed summaries to final-data memory takes place when the Trigger argument in the DataTable() instruction is set to True.

data output processing memory

Memory automatically allocated for intermediate calculations performed by CRBasic data output processing instructions. Data output processing memory cannot be monitored.

data point

A data value which is sent to final-data memory as the result of a data-output processing instruction. Data points output at the same time make up a record in a data table.

data table

A concept that describes how data is organized in memory, or in files that result from collecting data in memory. The fundamental data table is created by the CRBasic program as a result of the DataTable() instruction and resides in binary form in memory. The data table structure resides in the data cache, in discrete data files, and in files that result from collecting final-data memory with data logger support software.

DC

Direct current.

DCE

Data Communications Equipment. While the term has much wider meaning, in the limited context of practical use with the data logger, it denotes the pin configuration, gender, and function of an RS-232 port. The RS-232 port on the data logger is DCE. Interfacing a DCE device to a DCE device requires a null-modem cable.

Appendix E. Glossary 268

desiccant

A hygroscopic material that absorbs water vapor from the surrounding air. When placed in a sealed enclosure, such as a data logger enclosure, it prevents condensation.

Device Configuration Utility

Software tool used to set up data loggers and peripherals, and to configure PakBus settings before those devices are deployed in the field and/or added to networks.

DHCP

Dynamic Host Configuration Protocol. A TCP/IP application protocol.

differential

A sensor or measurement terminal wherein the analog voltage signal is carried on two wires. The phenomenon measured is proportional to the difference in voltage between the two wires.

Dim

A CRBasic command for declaring and dimensioning variables. Variables declared with Dim remain hidden during data logger operations.

dimension

To code a CRBasic program for a variable array as shown in the following examples: DIM example(3) creates the three variables example(1), example(2), and example(3); DIM example(3,3) creates nine variables; DIM example(3,3,3) creates 27 variables.

DNP3

Distributed Network Protocol is a set of communications protocols used between components in process automation systems. Its main use is in utilities such as electric and water companies.

DNS

Domain name server. A TCP/IP application protocol.

Appendix E. Glossary 269

DTE

Data Terminal Equipment. While the term has much wider meaning, in the limited context of practical use with the data logger, it denotes the pin configuration, gender, and function of an RS-232 port. The RS-232 port on the data logger is DCE. Attachment of a null-modem cable to a DCE device effectively converts it to a DTE device.

duplex

A serial communications protocol. Serial communications can be simplex, half-duplex, or full-duplex.

duty cycle

The percentage of available time a feature is in an active state. For example, if the data logger is programmed with 1 second scan interval, but the program completes after only 100 milliseconds, the program can be said to have a 10% duty cycle.

E

earth ground

A grounding rod or other suitable device that electrically ties a system or device to the earth. Earth ground is a sink for electrical transients and possibly damaging potentials, such as those produced by a nearby lightning strike. Earth ground is the preferred reference potential for analog voltage measurements. Note that most objects have a "an electrical potential" and the potential at different places on the earth - even a few meters away - may be different.

endian

The sequential order in which bytes are arranged into larger numerical values when stored in memory.

engineering units

Units that explicitly describe phenomena, as opposed to, for example, the data logger base analog-measurement unit of millivolts.

Appendix E. Glossary 270

ESD

Electrostatic discharge.

ESS

Environmental sensor station.

excitation

Application of a precise voltage, usually to a resistive bridge circuit.

execution interval

The time interval between initiating each execution of a given Scan() of a CRBasic program. If the Scan() Interval is evenly divisible into 24 hours (86,400 seconds), it is synchronized with the 24 hour clock, so that the program is executed at midnight and every Scan() Interval thereafter. The program is executed for the first time at the first occurrence of the Scan() Interval after compilation. If the Scan() Interval does not divide evenly into 24 hours, execution will start on the first even second after compilation.

execution time

Time required to execute an instruction or group of instructions. If the execution time of a program exceeds the Scan() Interval, the program is executed less frequently than programmed and the Status table SkippedScan field will increment.

expression

A series of words, operators, or numbers that produce a value or result.

F

FAT

File Allocation Table - a computer file system architecture and a family of industry-standard file systems utilizing it.

FFT

Fast Fourier Transform. A technique for analyzing frequency-spectrum data.

Appendix E. Glossary 271

field

Data tables are made up of records and fields. Each row in a table represents a record and each column represents a field. The number of fields in a record is determined by the number and configuration of output processing instructions that are included as part of the DataTable() declaration.

File Control

File Control is a feature of LoggerNet, PC400, Device Configuration Utility, and RTDAQ data logger support software. It provides a view of the data logger file system and a menu of file management commands.

fill and stop memory

A memory configuration for data tables forcing a data table to stop accepting data when full.

final-data memory

The portion of memory allocated for storing data tables. Once data is written to final-data memory, it cannot be changed but only overwritten when it becomes the oldest data. Final- data memory is configured as ring memory by default, with new data overwriting the oldest data.

final-storage data

Data that resides in final-data memory.

Flash

A type of memory media that does not require battery backup. Flash memory, however, has a lifetime based on the number of writes to it. The more frequently data is written, the shorter the life expectancy.

FLOAT

Four-byte floating-point data type. Default data logger data type for Public or Dim variables. Same format as IEEE4.

Appendix E. Glossary 272

FP2

Two-byte floating-point data type. Default data logger data type for stored data. While IEEE4 four-byte floating point is used for variables and internal calculations, FP2 is adequate for most stored data. FP2 provides three or four significant digits of resolution, and requires half the memory as IEEE4.

frequency domain

Frequency domain describes data graphed on an X-Y plot with frequency as the X axis. VSPECT vibrating wire data is in the frequency domain.

frequency response

Sample rate is how often an instrument reports a result at its output; frequency response is how well an instrument responds to fast fluctuations on its input. By way of example, sampling a large gage thermocouple at 1 kHz will give a high sample rate but does not ensure the measurement has a high frequency response. A fine-wire thermocouple, which changes output quickly with changes in temperature, is more likely to have a high frequency response.

FTP

File Transfer Protocol. A TCP/IP application protocol.

full-duplex

A serial communications protocol. Simultaneous bi-directional communications. Communications between a serial port and a computer is typically full duplex.

G

garbage

The refuse of the data communications world. When data is sent or received incorrectly (there are numerous reasons why this happens), a string of invalid, meaningless characters (garbage) often results. Two common causes are: 1) a baud-rate mismatch and 2) synchronous data being sent to an asynchronous device and vice versa.

Appendix E. Glossary 273

global variable

A variable available for use throughout a CRBasic program. The term is usually used in connection with subroutines, differentiating global variables (those declared using Public or Dim) from local variables, which are declared in the Sub() and Function() instructions.

ground

Being or related to an electrical potential of 0 volts.

ground currents

Pulling power from the data logger wiring panel, as is done when using some communications devices from other manufacturers, or a sensor that requires a lot of power, can cause voltage potential differences between points in data logger circuitry that are supposed to be at ground or 0 Volts. This difference in potentials can cause errors when measuring single-ended analog voltages.

H

half-duplex

A serial communications protocol. Bi-directional, but not simultaneous, communications. SDI-12 is a half-duplex protocol.

handshake

The exchange of predetermined information between two devices to assure each that it is connected to the other.

hello exchange

In a PakBus network, this is the process of verifying a node as a neighbor.

hertz

SI unit of frequency. Cycles or pulses per second.

HTML

Hypertext Markup Language. Programming language used for the creation of web pages.

Appendix E. Glossary 274

HTTP

Hypertext Transfer Protocol. A TCP/IP application protocol.

HTTPS

Hypertext Transfer Protocol Secure. A secure version of HTTP.

hysteresis

The dependence of the state of the system on its history.

Hz

SI unit of frequency. Cycles or pulses per second.

I

I2C

Inter-Integrated Circuit is a multi-controller, multi-peripheral, packet switched, single- ended, serial computer bus.

IEEE4

Four-byte, floating-point data type. IEEE Standard 754. Same format as Float.

Include file

A file containing CRBasic code to be included at the end of the current CRBasic program, or it can be run as the default program.

INF

A data word indicating the result of a function is infinite or undefined.

initiate comms

A name given to a processes by which the data logger initiates communications with a computer running LoggerNet. Also known as Callback.

Appendix E. Glossary 275

input/output instructions

Used to initiate measurements and store the results in input storage or to set or read control/logic ports.

instruction

Usually refers to a CRBasic command.

integer

A number written without a fractional or decimal component. 15 and 7956 are integers; 1.5 and 79.56 are not.

intermediate memory

Memory automatically allocated for intermediate calculations performed by CRBasic data output processing instructions. Data output processing memory cannot be monitored.

IP

Internet Protocol. A TCP/IP internet protocol.

IP address

A unique address for a device on the internet.

IP trace

Function associated with IP data transmissions. IP trace information was originally accessed through the CRBasic instruction IPTrace() and stored in a string variable. Files Manager setting is now modified to allow for creation of a file in data logger memory.

isolation

Hardwire communications devices and cables can serve as alternate paths to earth ground and entry points into the data logger for electromagnetic noise. Alternate paths to ground and electromagnetic noise can cause measurement errors. Using opto-couplers in a connecting device allows communications signals to pass, but breaks alternate ground paths and may filter some electromagnetic noise.

Appendix E. Glossary 276

J

JSON

Java Script Object Notation. A data file format available through the data logger or LoggerNet.

K

keep memory

Keep memory is non-volatile memory that preserves some settings during a power-up or program start up reset. Examples include PakBus address, station name, beacon intervals, neighbor lists, routing table, and communications timeouts.

keyboard/display

The data logger has an optional external keyboard/display.

L

leaf node

A PakBus node at the end of a branch. When in this mode, the data logger is not able to forward packets from one of its communications ports to another. It will not maintain a list of neighbors, but it still communicates with other PakBus data loggers and wireless sensors. It cannot be used as a means of reaching (routing to) other data loggers.

lf

Line feed. Often associated with carriage return ( ). .

linearity

The quality of delivering identical sensitivity throughout the measurement.

local variable

A variable available for use only by the subroutine in which it is declared. The term differentiates local variables, which are declared in the Sub() and Function() instructions, from global variables, which are declared using Public or Dim.

Appendix E. Glossary 277

LoggerLink

Mobile applications that allow a mobile device to communicate with IP, wi-fi, or Bluetooth enabled data loggers.

LoggerNet

Campbell Scientific's data logger support software for programming, communications, and data retrieval between data loggers and a computer.

LONG

Data type used when declaring integers.

loop

A series of instructions in a CRBasic program that are repeated for a programmed number of times. The loop ends with an End instruction.

loop counter

Increments by one with each pass through a loop.

LSB

Least significant bit (the trailing bit).

LVDT

The linear variable differential transformer (LVDT) is a type of electrical transformer used for measuring linear displacement (position).

M

mains power

The national power grid.

Appendix E. Glossary 278

manually initiated

Initiated by the user, usually with a Keyboard/Display, as opposed to occurring under program control.

mass storage device

A mass storage device may also be referred to as an auxiliary storage device. The term is commonly used to describe USB mass storage devices.

MD5 digest

16 byte checksum of the TCP/IP VTP configuration.

milli

The SI prefix denoting 1/1000 of a base SI unit.

Modbus

Communications protocol published by Modicon in 1979 for use in programmable logic controllers (PLCs).

modem/terminal

Any device that has the following: ability to raise the ring line or be used with an optically isolated interface to raise the ring line and put the data logger in the communications command state, or an asynchronous serial communications port that can be configured to communicate with the data logger.

modulo divide

A math operation. Result equals the remainder after a division.

MQTT

An open communications protocol for the Internet of Things (IoT). MQTT is not an acronym, it is simply the name of the protocol. Source: https://www.hivemq.com/blog/mqtt- essentials-part-1-introducing-mqtt/

Appendix E. Glossary 279

MSB

Most significant bit (the leading bit).

multimeter

An inexpensive and readily available device useful in troubleshooting data acquisition system faults.

multiplier

A term, often a parameter in a CRBasic measurement instruction, that designates the slope (aka, scaling factor or gain) in a linear function. For example, when converting C to F, the equation is F = C*1.8 + 32. The factor 1.8 is the multiplier.

mV

The SI abbreviation for millivolts.

N

NAN

Not a number. A data word indicating a measurement or processing error. Voltage overrange, SDI-12 sensor error, and undefined mathematical results can produce NAN.

neighbor device

Device in a PakBus network that communicates directly with a device without being routed through an intermediate device.

Network Planner

Campbell Scientific software designed to help set up datal oggers in PakBus networks so that they can communicate with each other and the LoggerNet server. For more information, see https://www.campbellsci.com/loggernet.

NIST

National Institute of Standards and Technology.

Appendix E. Glossary 280

node

Devices in a network usually a PakBus network. The communications server dials through, or communicates with, a node. Nodes are organized as a hierarchy with all nodes accessed by the same device (parent node) entered as child nodes. A node can be both a parent and a child.

NSEC

Eight-byte data type divided up as four bytes of seconds since 1990 and four bytes of nanoseconds into the second.

null modem

A device, usually a multi-conductor cable, which converts an RS-232 port from DCE to DTE or from DTE to DCE.

Numeric Monitor

A digital monitor in data logger support software or in a keyboard/display.

O

offset

A term, often a parameter in a CRBasic measurement instruction, that designates the y- intercept (aka, shifting factor or zeroing factor) in a linear function. For example, when converting C to F, the equation is F = C*1.8 + 32. The factor 32 is the offset.

ohm

The unit of resistance. Symbol is the Greek letter Omega (). 1.0 equals the ratio of 1.0 volt divided by 1.0 ampere.

Ohm's Law

Describes the relationship of current and resistance to voltage. Voltage equals the product of current and resistance (V = I R).

Appendix E. Glossary 281

on-line data transfer

Routine transfer of data to a peripheral left on-site. Transfer is controlled by the program entered in the data logger.

operating system

The operating system (also known as "firmware") is a set of instructions that controls the basic functions of the data logger and enables the use of user written CRBasic programs. The operating system is preloaded into the data logger at the factory but can be re-loaded or upgraded by you using Device Configuration Utility software. The most recent data logger operating system .obj file is available at www.campbellsci.com/downloads.

output

A loosely applied term. Denotes a) the information carrier generated by an electronic sensor, b) the transfer of data from variable memory to final-data memory, or c) the transfer of electric power from the data logger or a peripheral to another device.

output array

A string of data values output to final-data memory. Output occurs when the data table output trigger is True.

output interval

The interval between each write of a record to a data table.

output processing instructions

CRBasic instructions that process data values for eventual output to final-data memory. Examples of output-processing instructions include Totalize(), Maximum(), Minimum(), and Average(). Data sources for these instructions are values or strings in variable memory. The results of intermediate calculations are stored in data output processing memory to await the output trigger. The ultimate destination of data generated by data output processing instructions is usually final-data memory, but the CRBasic program can be written to divert to variable memory for further processing. The transfer of processed summaries to final- data memory takes place when the Trigger argument in the DataTable() instruction is set to True.

Appendix E. Glossary 282

output processing memory

Memory automatically allocated for intermediate calculations performed by CRBasic data output processing instructions. Data output processing memory cannot be monitored.

P

PakBus

A proprietary communications protocol developed by Campbell Scientific to facilitate communications between Campbell Scientific devices. Similar in concept to IP (Internet Protocol), PakBus is a packet-switched network protocol with routing capabilities. A registered trademark of Campbell Scientific, Inc.

PakBus Graph

Software that shows the relationship of various nodes in a PakBus network and allows for monitoring and adjustment of some registers in each node.

parameter

Part of a procedure (or command) definition.

PC200W

Retired basic data logger support software for direct connect.

PC400

Free entry-level data logger support software that supports a variety of communications options, manual data collection, and data monitoring displays. Short Cut and CRBasic Editor are included for creating data logger programs. PC400 does not support scheduled data collection or complex communications options such as phone-to-RF.

PDP

Packet Data Protocol

Appendix E. Glossary 283

period average

A measurement technique using a high-frequency digital clock to measure time differences between signal transitions. Sensors commonly measured with period average include water- content reflectometers.

peripheral

Any device designed for use with the data logger. A peripheral requires the data logger to operate. Peripherals include measurement, control, and data retrieval and communications modules.

PGA

Programmable Gain Amplifier

ping

A software utility that attempts to contact another device in a network.

pipeline mode

A CRBasic program execution mode wherein instructions are evaluated in groups of like instructions, with a set group prioritization.

PLC

Programmable Logic Controllers

Poisson ratio

A ratio used in strain measurements.

ppm

Parts per million.

precision

The amount of agreement between repeated measurements of the same quantity (AKA repeatability).

Appendix E. Glossary 284

PreserveVariables

CRBasic instruction that protects Public variables from being erased when a program is recompiled.

print device

Any device capable of receiving output over pin 6 (the PE line) in a receive-only mode. Printers, "dumb" terminals, and computers in a terminal mode fall in this category.

print peripheral

Any device capable of receiving output over pin 6 (the PE line) in a receive-only mode. Printers, "dumb" terminals, and computers in a terminal mode fall in this category.

processing instructions

CRBasic instructions used to further process input-data values and return the result to a variable where it can be accessed for output processing. Arithmetic and transcendental functions are included.

program control instructions

Modify the execution sequence of CRBasic instructions. Also used to set or clear flags.

Program Send command

Program Send is a feature of data logger support software.

program statement

A complete program command construct confined to one command line or to multiple command lines merged with the line continuation characters ( _). A command line, even with line continuation, cannot exceed 512 characters.

public

A CRBasic command for declaring and dimensioning variables. Variables declared with Public can be monitored during data logger operation.

Appendix E. Glossary 285

pulse

An electrical signal characterized by a rapid increase in voltage follow by a short plateau and a rapid voltage decrease.

R

ratiometric

Describes a type of measurement or a type of math. Ratiometric usually refers to an aspect of resistive-bridge measurements - either the measurement or the math used to process it. Measuring ratios and using ratio math eliminates several sources of error from the end result.

record

A record is a complete line of data in a data table or data file. All data in a record share a common time stamp. Data tables are made up of records and fields. Each row in a table represents a record and each column represents a field. The number of fields in a record is determined by the number and configuration of output processing instructions that are included as part of the DataTable() declaration.

regulator

A setting, a Status table element, or a DataTableInformation table element. Also a device for conditioning an electrical power source. Campbell Scientific regulators typically condition ac or dc voltages greater than 16 VDC to about 14 VDC.

resistance

A feature of an electronic circuit that impedes or redirects the flow of electrons through the circuit.

resistor

A device that provides a known quantity of resistance.

resolution

The smallest interval measurable.

Appendix E. Glossary 286

ring memory

A memory configuration that allows the oldest data to be overwritten with the newest data. This is the default setting for data tables.

ringing

Oscillation of sensor output (voltage or current) that occurs when sensor excitation causes parasitic capacitances and inductances to resonate.

RMS

Root-mean square, or quadratic mean. A measure of the magnitude of wave or other varying quantities around zero.

RNDIS

Remote Network Driver Interface Specification - a Microsoft protocol that provides a virtual Ethernet link via USB.

router

A device configured as a router is able to forward PakBus packets from one port to another. To perform its routing duties, a data logger configured as a router maintains its own list of neighbors and sends this list to other routers in the PakBus network. It also obtains and receives neighbor lists from other routers. Routers maintain a routing table, which is a list of known nodes and routes. A router will only accept and forward packets that are destined for known devices. Routers pass their lists of known neighbors to other routers to build the network routing system.

RS-232

Recommended Standard 232. A loose standard defining how two computing devices can communicate with each other. The implementation of RS-232 in Campbell Scientific data loggers to computer communications is quite rigid, but transparent to most users. Features in the data logger that implement RS-232 communications with smart sensors are flexible.

Appendix E. Glossary 287

RS-422

Communications protocol similar to RS-485. Most RS-422 sensors will work with RS-485 protocol.

RS-485

Recommended Standard 485. A standard defining how two computing devices can communicate with each other.

RTDAQ

Real Time Data Acquisition software for high-speed data acquisition applications. RTDAQ supports a variety of telecommunication options, manual data collection, and extensive data display. It includes Short Cut for creating data logger programs, as well as full-featured program editors.

RTU

Remote Telemetry Units

Rx

Receive

S

sample rate

The rate at which measurements are made by the data logger. The measurement sample rate is of interest when considering the effect of time skew, or how close in time are a series of measurements, or how close a time stamp on a measurement is to the true time the phenomenon being measured occurred. A 'maximum sample rate' is the rate at which a measurement can repeatedly be made by a single CRBasic instruction. Sample rate is how often an instrument reports a result at its output; frequency response is how well an instrument responds to fast fluctuations on its input. By way of example, sampling a large gage thermocouple at 1 kHz will give a high sample rate but does not ensure the measurement has a high frequency response. A fine-wire thermocouple, which changes output quickly with changes in temperature, is more likely to have a high frequency response.

Appendix E. Glossary 288

SCADA

Supervisory Control And Data Acquisition

scan interval

The time interval between initiating each execution of a given Scan() of a CRBasic program. If the Scan() Interval is evenly divisible into 24 hours (86,400 seconds), it is synchronized with the 24 hour clock, so that the program is executed at midnight and every Scan() Interval thereafter. The program is executed for the first time at the first occurrence of the Scan() Interval after compilation. If the Scan() Interval does not divide evenly into 24 hours, execution will start on the first even second after compilation.

scan time

When time functions are run inside the Scan() / NextScan construct, time stamps are based on when the scan was started according to the data logger clock. Resolution of scan time is equal to the length of the scan.

SDI-12

Serial Data Interface at 1200 baud. Communications protocol for transferring data between the data logger and SDI-12 compatible smart sensors.

SDK

Software Development Kit

SDM

Synchronous Device for Measurement. A processor-based peripheral device or sensor that communicates with the data logger via hardwire over a short distance using a protocol proprietary to Campbell Scientific.

Seebeck effect

Induces microvolt level thermal electromotive forces (EMF) across junctions of dissimilar metals in the presence of temperature gradients. This is the principle behind thermocouple temperature measurement. It also causes small, correctable voltage offsets in data logger measurement circuitry.

Appendix E. Glossary 289

semaphore

(Measurement semaphore.) In sequential mode, when the main scan executes, it locks the resources associated with measurements. In other words, it acquires the measurement semaphore. This is at the scan level, so all subscans within the scan (whether they make measurements or not), will lock out measurements from slow sequences (including the auto self-calibration). Locking measurement resources at the scan level gives non-interrupted measurement execution of the main scan.

send button

Send button in data logger support software. Sends a CRBasic program or operating system to a data logger.

sequential mode

A CRBasic program execution mode wherein each statement is evaluated in the order it is listed in the program.

serial

A loose term denoting output of a series of ASCII, HEX, or binary characters or numbers in electronic form.

Settings Editor

An editor for observing and adjusting settings. Settings Editor is a feature of LoggerNet|Connect, PakBus Graph, and Device Configuration Utility.

Short Cut

A CRBasic programming wizard suitable for many data logger applications. Knowledge of CRBasic is not required to use Short Cut.

SI

Systme Internationale. The uniform international system of metric units. Specifies accepted units of measure.

Appendix E. Glossary 290

signature

A number which is a function of the data and the sequence of data in memory. It is derived using an algorithm that assures a 99.998% probability that if either the data or the data sequence changes, the signature changes.

simplex

A serial communications protocol. One-direction data only. Serial communications between a serial sensor and the data logger may be simplex.

single-ended

Denotes a sensor or measurement terminal wherein the analog voltage signal is carried on a single wire and measured with respect to ground (0 V).

skipped scans

Occur when the CRBasic program is too long for the scan interval. Skipped scans can cause errors in pulse measurements.

slow sequence

A usually slower secondary scan in the CRBasic program. The main scan has priority over a slow sequence.

SMS

Short message service. A text messaging service for web and mobile device systems.

SMTP

Simple Mail Transfer Protocol. A TCP/IP application protocol.

SNP

Snapshot file.

SP

Space.

Appendix E. Glossary 291

SPI

Serial Peripheral Interface - a clocked synchronous interface, used for short distance communications, generally between embedded devices.

start bit

The bit used to indicate the beginning of data.

state

Whether a device is on or off.

Station Status command

A command available in most data logger support software.

stop bit

The end of the data bits. The stop bit can be 1, 1.5, or 2.

string

A datum or variable consisting of alphanumeric characters.

support software

Campbell Scientific software that includes at least the following functions: data logger communications, downloading programs, clock setting, and retrieval of measurement data.

synchronous

The transmission of data between a transmitting and a receiving device occurs as a series of zeros and ones. For the data to be "read" correctly, the receiving device must begin reading at the proper point in the series. In synchronous communications, this coordination is accomplished by synchronizing the transmitting and receiving devices to a common clock signal (see also asynchronous).

Appendix E. Glossary 292

system time

When time functions are run outside the Scan() / NextScan construct, the time registered by the instruction will be based on the system clock, which has a 10 ms resolution.

T

table

See data table.

task

Grouping of CRBasic program instructions automatically by the data logger compiler. Tasks include measurement, SDM or digital, and processing. Tasks are prioritized when the CRBasic program runs in pipeline mode. Also, a user-customized function defined through LoggerNet Task Master.

TCP/IP

Transmission Control Protocol / Internet Protocol.

TCR

Temperature Coefficient of Resistance. TCR tells how much the resistance of a resistor changes as the temperature of the resistor changes. The unit of TCR is ppm/C (parts-per- million per degree Celsius). A positive TCR means that resistance increases as temperature increases. For example, a resistor with a specification of 10 ppm/C will not increase in resistance by more than 0.000010 per ohm over a 1 C increase of the resistor temperature or by more than .00010 per ohm over a 10 C increase.

Telnet

A software utility that attempts to contact and interrogate another specific device in a network. Telnet is resident in Windows OS.

terminal

Point at which a wire (or wires) connects to a wiring panel or connector. Wires are usually secured in terminals by screw- or lever-and-spring actuated gates with small screw- or

Appendix E. Glossary 293

spring-loaded clamps.

terminal emulator

A command-line shell that facilitates the issuance of low-level commands to a data logger or some other compatible device. A terminal emulator is available in most data logger support software available from Campbell Scientific.

thermistor

A thermistor is a temperature measurement device with a resistive element that changes in resistance with temperature. The change is wide, stable, and well characterized. The output of a thermistor is usually non-linear, so measurement requires linearization by means of a Steinhart-Hart or polynomial equation. CRBasic instructions Therm107(), Therm108(), and Therm109() use Steinhart-Hart equations.

throughput rate

Rate that a measurement can be taken, scaled to engineering units, and the stored in a final- memory data table. The data logger has the ability to scan sensors at a rate exceeding the throughput rate. The primary factor determining throughput rate is the processing programmed into the CRBasic program. In sequential-mode operation, all processing called for by an instruction must be completed before moving on to the next instruction.

time domain

Time domain describes data graphed on an X-Y plot with time on the X axis. Time series data is in the time domain.

TLS

Transport Layer Security. An Internet communications security protocol.

toggle

To reverse the current power state.

TTL

Transistor-to-Transistor Logic. A serial protocol using 0 VDC and 5 VDC as logic signal levels.

Appendix E. Glossary 294

Tx

Transmit

U

UART

Universal Asynchronous Receiver/Transmitter for asynchronous serial communications.

UINT2

Data type used for efficient storage of totalized pulse counts, port status (status of 16 ports stored in one variable, for example) or integer values that store binary flags.

unconditioned output

The fundamental output of a sensor, or the output of a sensor before scaling factors are applied.

UPS

Uninterruptible Power Supply. A UPS can be constructed for most data logger applications using ac line power, a solar panel, an ac/ac or ac/dc wall adapter, a charge controller, and a rechargeable battery.

URI

Uniform Resource Identifier

URL

Uniform Resource Locator

user program

The CRBasic program written by you in Short Cut program wizard.

Appendix E. Glossary 295

V

VAC

Volts alternating current.

variable

A packet of memory given an alphanumeric name.

VDC

Volts direct current.

VisualWeather

Data logger support software specialized for weather and agricultural applications. The software allows you to initialize the setup, interrogate the station, display data, and generate reports from one or more weather stations.

volt meter

An inexpensive and readily available device useful in troubleshooting data acquisition system faults.

voltage divider

A circuit of resistors that ratiometrically divides voltage. For example, a simple two-resistor voltage divider can be used to divide a voltage in half. So, when fed through the voltage divider, 1 mV becomes 500 V, 10 mV becomes 5 mV, and so forth. Resistive-bridge circuits are voltage dividers.

volts

SI unit for electrical potential.

VSPECT

A registered trademark for Campbell Scientific's proprietary spectral-analysis, frequency domain, vibrating wire measurement technique.

Appendix E. Glossary 296

W

watchdog timer

An error-checking system that examines the processor state, software timers, and program- related counters when the CRBasic program is running. The following will cause watchdog timer resets, which reset the processor and CRBasic program execution: processor bombed, processor neglecting standard system updates, counters are outside the limits, voltage surges, and voltage transients. When a reset occurs, a counter is incremented in the WatchdogTimer entry of the Status table. A low number (1 to 10) of watchdog timer resets is of concern, but normally indicates that the situation should just be monitored. A large number of errors (>10) accumulating over a short period indicates a hardware or software problem. Consult with a Campbell Scientific support engineer.

weather-tight

Describes an instrumentation enclosure impenetrable by common environmental conditions. During extraordinary weather events, however, seals on the enclosure may be breached.

web API

Application Programming Interface

wild card

A character or expression that substitutes for any other character or expression.

X

XML

Extensible markup language.

Time constant

Appendix E. Glossary 297

Warranty and Acknowledgements The data logger is warranted by Campbell Scientific to be free from defects in materials and workmanship under normal use and service, from the date of shipment, for: 

l Standard: Three years against defects in materials and workmanship.

See Product Details on the Ordering Information pages at www.campbellsci.com .

Refer to www.campbellsci.com/terms#warranty for more information.

CAMPBELL SCIENTIFIC EXPRESSLY DISCLAIMS AND EXCLUDES ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Campbell Scientific hereby disclaims, to the fullest extent allowed by applicable law, any and all warranties and conditions with respect to the Products, whether express, implied or statutory, other than those expressly provided herein.

Acknowledgements lwIP

Copyright 2022 Campbell Scientific.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,

EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

mbed TLS

Copyright 2022 Campbell Scientific.

Licensed under the Apache License, Version 2.0 (the "License") http://www.apache.org/licenses/LICENSE-2.0 .

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Assistance Products may not be returned without prior authorization.

Products shipped to Campbell Scientific require a Returned Materials Authorization (RMA) or Repair Reference number and must be clean and uncontaminated by harmful substances, such as hazardous materials, chemicals, insects, and pests. Please complete the required forms prior to shipping equipment.

Campbell Scientific regional offices handle repairs for customers within their territories. Please see the back page for the Global Sales and Support Network or visit www.campbellsci.com/contact to determine which Campbell Scientific office serves your country.

To obtain a Returned Materials Authorization or Repair Reference number, contact your CAMPBELL SCIENTIFIC regional office. Please write the issued number clearly on the outside of the shipping container and ship as directed.

For all returns, the customer must provide a Statement of Product Cleanliness and Decontamination or Declaration of Hazardous Material and Decontamination form and comply with the requirements specified in it. The form is available from your CAMPBELL SCIENTIFIC regional office. Campbell Scientific is unable to process any returns until we receive this statement. If the statement is not received within three days of product receipt or is incomplete, the product will be returned to the customer at the customers expense. Campbell Scientific reserves the right to refuse service on products that were exposed to contaminants that may cause health or safety concerns for our employees.

Safety DANGER MANY HAZARDS ARE ASSOCIATED WITH INSTALLING, USING, MAINTAINING, AND WORKING ON OR AROUND TRIPODS, TOWERS, AND ANY ATTACHMENTS TO TRIPODS AND TOWERS SUCH AS SENSORS, CROSSARMS, ENCLOSURES, ANTENNAS, ETC. FAILURE TO PROPERLY AND COMPLETELY ASSEMBLE, INSTALL, OPERATE, USE, AND MAINTAIN TRIPODS, TOWERS, AND ATTACHMENTS, AND FAILURE TO HEED WARNINGS, INCREASES THE RISK OF DEATH, ACCIDENT, SERIOUS INJURY, PROPERTY DAMAGE, AND PRODUCT FAILURE. TAKE ALL REASONABLE PRECAUTIONS TO AVOID THESE HAZARDS. CHECK WITH YOUR ORGANIZATION'S SAFETY COORDINATOR (OR POLICY) FOR PROCEDURES AND REQUIRED PROTECTIVE EQUIPMENT PRIOR TO PERFORMING ANY WORK. Use tripods, towers, and attachments to tripods and towers only for purposes for which they are designed. Do not exceed design limits. Be familiar and comply with all instructions provided in product manuals. Manuals are available at www.campbellsci.com. You are responsible for conformance with governing codes and regulations, including safety regulations, and the integrity and location of structures or land to which towers, tripods, and any attachments are attached. Installation sites should be evaluated and approved by a qualified engineer. If questions or concerns arise regarding installation, use, or maintenance of tripods, towers, attachments, or electrical connections, consult with a licensed and qualified engineer or electrician. General

l Protect from over-voltage. l Protect electrical equipment from water. l Protect from electrostatic discharge (ESD). l Protect from lightning. l Prior to performing site or installation work, obtain required approvals and permits. Comply with all governing structure-height regulations. l Use only qualified personnel for installation, use, and maintenance of tripods and towers, and any attachments to tripods and towers. The

use of licensed and qualified contractors is highly recommended. l Read all applicable instructions carefully and understand procedures thoroughly before beginning work. l Wear a hardhat and eye protection, and take other appropriate safety precautions while working on or around tripods and towers. l Do not climb tripods or towers at any time, and prohibit climbing by other persons. Take reasonable precautions to secure tripod and tower

sites from trespassers. l Use only manufacturer recommended parts, materials, and tools.

Utility and Electrical l You can be killed or sustain serious bodily injury if the tripod, tower, or attachments you are installing, constructing, using, or maintaining, or

a tool, stake, or anchor, come in contact with overhead or underground utility lines. l Maintain a distance of at least one-and-one-half times structure height, 6 meters (20 feet), or the distance required by applicable law,

whichever is greater, between overhead utility lines and the structure (tripod, tower, attachments, or tools). l Prior to performing site or installation work, inform all utility companies and have all underground utilities marked. l Comply with all electrical codes. Electrical equipment and related grounding devices should be installed by a licensed and qualified

electrician. l Only use power sources approved for use in the country of installation to power Campbell Scientific devices.

Elevated Work and Weather l Exercise extreme caution when performing elevated work. l Use appropriate equipment and safety practices. l During installation and maintenance, keep tower and tripod sites clear of un-trained or non-essential personnel. Take precautions to prevent

elevated tools and objects from dropping. l Do not perform any work in inclement weather, including wind, rain, snow, lightning, etc.

Maintenance l Periodically (at least yearly) check for wear and damage, including corrosion, stress cracks, frayed cables, loose cable clamps, cable tightness,

etc. and take necessary corrective actions. l Periodically (at least yearly) check electrical ground connections.

Internal Battery l Be aware of fire, explosion, and severe-burn hazards. l Misuse or improper installation of the internal lithium battery can cause severe injury. l Do not recharge, disassemble, heat above 100 C (212 F), solder directly to the cell, incinerate, or expose contents to water. Dispose of spent

batteries properly. WHILE EVERY ATTEMPT IS MADE TO EMBODY THE HIGHEST DEGREE OF SAFETY IN ALL CAMPBELL SCIENTIFIC PRODUCTS, THE CUSTOMER ASSUMES ALL RISK FROM ANY INJURY RESULTING FROM IMPROPER INSTALLATION, USE, OR MAINTENANCE OF TRIPODS, TOWERS, OR ATTACHMENTS TO TRIPODS AND TOWERS SUCH AS SENSORS, CROSSARMS, ENCLOSURES, ANTENNAS, ETC.

Australia Location: Phone: Email: Website:

Garbutt, QLD Australia 61.7.4401.7700 info@campbellsci.com.au www.campbellsci.com.au

Brazil Location: Phone: Email: Website:

So Paulo, SP Brazil 11.3732.3399 vendas@campbellsci.com.br www.campbellsci.com.br

Canada Location: Phone: Email: Website:

Edmonton, AB Canada 780.454.2505 dataloggers@campbellsci.ca www.campbellsci.ca

China Location: Phone: Email: Website:

Beijing, P. R. China 86.10.6561.0080 info@campbellsci.com.cn www.campbellsci.com.cn

Costa Rica Location: Phone: Email: Website:

San Pedro, Costa Rica 506.2280.1564 info@campbellsci.cc www.campbellsci.cc

France Location: Phone: Email: Website:

Vincennes, France 0033.0.1.56.45.15.20 info@campbellsci.fr www.campbellsci.fr

Germany Location: Phone: Email: Website:

Bremen, Germany 49.0.421.460974.0 info@campbellsci.de www.campbellsci.de

India Location: Phone: Email: Website:

New Delhi, DL India 91.11.46500481.482 info@campbellsci.in www.campbellsci.in

South Africa Location: Phone: Email: Website:

Stellenbosch, South Africa 27.21.8809960 sales@campbellsci.co.za www.campbellsci.co.za

Spain Location: Phone: Email: Website:

Barcelona, Spain 34.93.2323938 info@campbellsci.es www.campbellsci.es

Thailand Location: Phone: Email: Website:

Bangkok, Thailand 66.2.719.3399 info@campbellsci.asia www.campbellsci.asia

UK <

Manualsnet FAQs

If you want to find out how the CR350 Series Campbell Scientific works, you can view and download the Campbell Scientific CR350 Series Datalogger Product Manual on the Manualsnet website.

Yes, we have the Product Manual for Campbell Scientific CR350 Series as well as other Campbell Scientific manuals. All you need to do is to use our search bar and find the user manual that you are looking for.

The Product Manual should include all the details that are needed to use a Campbell Scientific CR350 Series. Full manuals and user guide PDFs can be downloaded from Manualsnet.com.

The best way to navigate the Campbell Scientific CR350 Series Datalogger Product Manual is by checking the Table of Contents at the top of the page where available. This allows you to navigate a manual by jumping to the section you are looking for.

This Campbell Scientific CR350 Series Datalogger Product Manual consists of sections like Table of Contents, to name a few. For easier navigation, use the Table of Contents in the upper left corner.

You can download Campbell Scientific CR350 Series Datalogger Product Manual free of charge simply by clicking the “download” button in the upper right corner of any manuals page. This feature allows you to download any manual in a couple of seconds and is generally in PDF format. You can also save a manual for later by adding it to your saved documents in the user profile.

To be able to print Campbell Scientific CR350 Series Datalogger Product Manual, simply download the document to your computer. Once downloaded, open the PDF file and print the Campbell Scientific CR350 Series Datalogger Product Manual as you would any other document. This can usually be achieved by clicking on “File” and then “Print” from the menu bar.