Last modified by Xiaoling on 2025/05/06 09:20

Hide last authors
Xiaoling 56.6 1
2
Xiaoling 1.5 3 (% style="text-align:center" %)
David Huang 31.1 4 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/CPL01%20LoRaWAN%20Outdoor%20PulseContact%20%20Sensor%20Manual/WebHome/1652856952171-363.png?rev=1.1||alt="1652856952171-363.png" height="578" width="588"]]
Xiaoling 1.5 5
Xiaoling 48.2 6
7
Xiaoling 56.6 8 **Table of Contents:**
Xiaoling 48.2 9
David Huang 32.1 10 {{toc/}}
Xiaoling 1.5 11
12
13
Xiaoling 48.2 14
15
16 = 1.  Introduction =
17
18 == 1.1 ​ What is CPN01 NB-IoT Pulse/Contact Sensor ==
19
20
Xiaoling 52.2 21 (((
Edwin Chen 38.1 22 The Dragino CPN01 is an (% style="color:blue" %)**NB-IoT Dry Contact Sensor**(%%). It detects open/close status and uplinks the info to IoT server via NB-IoT network. User can see the (% style="color:blue" %)**dry contact status, open time, and open counts**(%%) in the IoT Server.
Xiaoling 52.2 23 )))
Xiaoling 1.5 24
Xiaoling 52.2 25 (((
Edwin Chen 38.1 26 The CPN01 will send periodically data every day as well as for each dry contact action. It also counts the contact open times and calculates the last open duration. Users can also disable the uplink for each Open/Close event, instead, device can count each open event and uplink periodically.
Xiaoling 52.2 27 )))
Xiaoling 1.5 28
Xiaoling 52.2 29 (((
Edwin Chen 38.1 30 CPN01 has** (% style="color:blue" %)Open-Alarm feature(%%)**, user can set this feature so CPN01 will send an alarm if the contact has been open exceeds a certain time.
Xiaoling 52.2 31 )))
Xiaoling 1.5 32
Xiaoling 52.2 33 (((
Edwin Chen 34.1 34 CPN01 is designed for outdoor use. It has a weatherproof enclosure and industrial-level battery to work in low to high temperatures.
Xiaoling 52.2 35 )))
Xiaoling 1.5 36
Xiaoling 52.2 37 (((
Edwin Chen 34.1 38 NarrowBand-Internet of Things (NB-IoT) is a standards-based low power wide area (LPWA) technology developed to enable a wide range of new IoT devices and services. NB-IoT significantly improves the power consumption of user devices, system capacity, and spectrum efficiency, especially in deep coverage.
39 \\CPN01 supports different uplink methods including (% style="color:blue" %)**TCP, MQTT, UDP, and CoAP**(%%) for different application requirements.
40 \\CPN01 is powered by (% style="color:blue" %)**8500mAh Li-SOCI2 battery**(%%), It is designed for long-term use of up to 5 years. (Actually Battery life depends on the use environment, update period & uplink method)
41 \\To use CPN01, user needs to check if there is NB-IoT coverage in the field and with the Nb-IoT bands that CPN01 supports. If local operator support it, user needs to get a (% style="color:blue" %)**NB-IoT SIM card**(%%) from the operator and install into CPN01 to get NB-IoT network connection.
Xiaoling 52.2 42 )))
Xiaoling 1.5 43
Edwin Chen 35.1 44
Xiaoling 48.2 45 == ​1.2  Features ==
46
47
David Huang 2.1 48 * NB-IoT Bands: B1/B3/B8/B5/B20/B28 @H-FDD
49 * Open/Close detect
50 * Open/Close statistics
51 * Monitor Battery Level
Xiaoling 58.1 52 * IP protection level: IP66
David Huang 2.1 53 * Uplink on periodically and open/close event
54 * Datalog feature
Edwin Chen 34.1 55 * Uplink periodically
David Huang 2.1 56 * Downlink to change configure
57 * Wall Mountable
58 * Outdoor Use
59 * Ultra-Low Power consumption
60 * AT Commands to change parameters
61 * Micro SIM card slot for NB-IoT SIM
Edwin Chen 34.1 62 * 8500mAh Battery for long-term use
Xiaoling 1.5 63
Xiaoling 48.2 64 == 1.3  Specification ==
Xiaoling 1.5 65
66
Xiaoling 48.2 67 (% style="color:blue" %)**Common DC Characteristics:**
68
David Huang 2.1 69 * Supply Voltage: 2.1v ~~ 3.6v
70 * Operating Temperature: -40 ~~ 85°C
Xiaoling 1.5 71
Xiaoling 48.2 72 (% style="color:blue" %)**NB-IoT Spec:**
Xiaoling 1.5 73
Xiaoling 54.2 74 * B1 @H-FDD: 2100MHz
75 * B3 @H-FDD: 1800MHz
76 * B8 @H-FDD: 900MHz
77 * B5 @H-FDD: 850MHz
78 * B20 @H-FDD: 800MHz
79 * B28 @H-FDD: 700MHz
Xiaoling 1.5 80
Xiaoling 48.2 81 == 1.4  Installation ==
Xiaoling 1.5 82
Xiaoling 48.2 83
Edwin Chen 38.1 84 Connect CPN01 to an Open Close sensor like below. So it can detect the Open/Close event.
Xiaoling 1.5 85
David Huang 31.1 86 [[image:image-20221021110329-1.png]]
Xiaoling 1.5 87
Xiaoling 52.2 88
Edwin Chen 54.1 89 [[image:image-20221117175717-1.png||height="323" width="861"]]
Xiaoling 1.5 90
Edwin Chen 38.1 91
Xiaoling 48.2 92 == 1.5 ​ Applications ==
93
94
David Huang 2.1 95 * Open/Close Detection
96 * Pulse meter application
97 * Dry Contact Detection
Xiaoling 1.5 98
Xiaoling 48.2 99 == 1.6  Mechanical ==
Xiaoling 1.5 100
Xiaoling 48.2 101
David Huang 31.1 102 ​[[image:image-20221021110415-3.png]]
Xiaoling 1.5 103
104
Xiaoling 48.2 105 == 1.7  Pin Definitions and Switch ==
106
Xiaoling 52.2 107
David Huang 31.1 108 [[image:image-20221021110429-4.png]]
Xiaoling 1.5 109
Xiaoling 56.1 110
Xiaoling 48.2 111 === 1.7.1  Pin Definition ===
112
113
Edwin Chen 38.1 114 CPN01 is pre-configured to connect to two external wires. The other pins are not used. If user wants to know more about other pins, please refer to the **[[LSN50v2 User Manual>>doc:Main.User Manual for LoRaWAN End Nodes.LSN50 & LSN50-V2 - LoRaWAN Sensor Node User Manual.WebHome]]**.
Xiaoling 1.5 115
Edwin Chen 38.1 116
Xiaoling 48.2 117 === 1.7.2  Jumper JP2(Power ON/OFF) ===
118
119
David Huang 2.1 120 Power on Device when putting this jumper.
121
122
Xiaoling 48.2 123 === 1.7.3  BOOT MODE / SW1 ===
David Huang 2.1 124
125
Xiaoling 48.3 126 1)  ISP:  upgrade mode, device won't have any signal in this mode. but ready for upgrade firmware. LED won't work. The firmware won't run.
David Huang 2.1 127
Xiaoling 48.3 128 2)  Flash:  working mode, the device starts to work for NB-IoT connection and sends out console output for further debugging.
David Huang 2.1 129
130
Xiaoling 48.2 131 === 1.7.4  Reset Button ===
132
133
David Huang 2.1 134 Press to reboot the device.
135
136
Xiaoling 48.2 137 === 1.7.5  LED ===
David Huang 2.1 138
Xiaoling 48.2 139
Edwin Chen 38.1 140 The LED will blink when :
David Huang 2.1 141
Xiaoling 48.2 142 1.  Boot the device in flash mode
David Huang 2.1 143
Xiaoling 48.2 144 2.  Send an uplink packet
David Huang 2.1 145
146
Xiaoling 48.2 147 = 2.  Use CPN01 to communicate with IoT Server =
148
149 == 2.1  How it works ==
150
151
152 The CPN01 is equipped with an NB-IoT module, the pre-loaded firmware in CPN01 will get (% style="color:blue" %)**Open/Close Event or Count**(%%) from sensor and send the value to the NB-IoT network. The NB-IoT network will forward this value to IoT server via the protocol defined by CPN01.
153
Edwin Chen 40.1 154 The diagram below shows the working flow in the default firmware of CPN01:
David Huang 2.1 155
David Huang 31.1 156 [[image:image-20221021110615-5.png]]
David Huang 2.1 157
158
Xiaoling 48.2 159 == 2.2 ​ Configure CPN01 ==
David Huang 2.1 160
Xiaoling 48.2 161 === 2.2.1 Test Requirement ===
162
163
Edwin Chen 40.1 164 To use CPN01 in your city, make sure to meet below requirements:
David Huang 2.1 165
Edwin Chen 40.1 166 * Your local operator has already distributed an NB-IoT Network.
David Huang 2.1 167 * The local NB-IoT network used the band that CPN01 supports.
168 * Your operator is able to distribute the data received in their NB-IoT network to your IoT server.
169
Xiaoling 48.2 170 Below figure shows our testing structure. Here we have NB-IoT network coverage by China Mobile, the band they use is B8.  The CPN01 will use** (% style="color:red" %)CoAP(120.24.4.116:5683)(%%)** or raw (% style="color:red" %)**UDP(120.24.4.116:5601) **(%%)or (% style="color:red" %)**MQTT(120.24.4.116:1883) **(%%)or (% style="color:red" %)**TCP(120.24.4.116:5600)protocol**(%%) to send data to the test server.
David Huang 2.1 171
Xiaoling 56.1 172 [[image:image-20221023000439-3.png]]
Edwin Chen 40.1 173
David Huang 2.1 174
Xiaoling 48.2 175 === 2.2.2 Insert NB-IoT SIM card ===
176
177
David Huang 2.1 178 Insert the NB-IoT Card get from your provider.
179
Edwin Chen 40.1 180 User needs to take out the NB-IoT module and insert the SIM card like below:
David Huang 2.1 181
David Huang 31.1 182 [[image:image-20221021110745-6.png]] ​
David Huang 2.1 183
Edwin Chen 40.1 184
Xiaoling 48.2 185 === 2.2.3 Connect USB – TTL to CPN01 and configure it ===
David Huang 2.1 186
187
Xiaoling 48.2 188 User need to configure CPN01 via serial port to set the (% style="color:red" %)**Server Address** / **Uplink Topic**(%%) to define where and how-to uplink packets. CPN01 support AT Commands, user can use a USB to TTL adapter to connect to CPN01 and use AT Commands to configure it, as below.
David Huang 2.1 189
Xiaoling 48.2 190 (% style="color:blue" %)**Connection:**
David Huang 2.1 191
Xiaoling 48.2 192 (% style="background-color:yellow" %)** USB TTL GND <~-~-~-~-> GND**
David Huang 2.1 193
Xiaoling 48.2 194 (% style="background-color:yellow" %)** USB TTL TXD <~-~-~-~-> UART_RXD**
195
196 (% style="background-color:yellow" %)** USB TTL RXD <~-~-~-~-> UART_TXD**
197
198
David Huang 2.1 199 In the PC, use below serial tool settings:
200
Xiaoling 48.2 201 * Baud:  (% style="color:red" %)**9600**
David Huang 2.1 202
Xiaoling 48.2 203 * Data bits:** (% style="color:red" %)8(%%)**
204
205 * Stop bits: (% style="color:red" %)**1**
206
207 * Parity:  (% style="color:red" %)**None**
208
209 * Flow Control: (% style="color:red" %)**None**
210
Edwin Chen 41.1 211 Make sure the switch is in FLASH position, then power on CPN01 by connecting the (% style="color:orange" %)**Yellow Jumper**(%%).
David Huang 2.1 212
David Huang 31.1 213 ​[[image:image-20221021110817-7.png]]
David Huang 2.1 214
Edwin Chen 40.1 215 CPN01 will output system info once powered on as below, we can enter the **password: 12345678** to access AT Command input.
216
Xiaoling 48.2 217 (% style="color:red" %)**Note: the valid AT Commands can be found at:  **(%%)[[**https:~~/~~/www.dropbox.com/sh/351dwor6joz8nwh/AADn1BQaAAxLF_QMyU8NkW47a?dl=0**>>url:https://www.dropbox.com/sh/351dwor6joz8nwh/AADn1BQaAAxLF_QMyU8NkW47a?dl=0]]
David Huang 2.1 218
Edwin Chen 42.1 219
Xiaoling 48.2 220 === 2.2.4 Use CoAP protocol to uplink data ===
David Huang 2.1 221
222
Xiaoling 48.2 223 (% style="color:red" %)**Note: if you don't have a CoAP server, you can refer this link to set up a CoAP server: **(%%)[[**http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/Set%20up%20CoAP%20Server/**>>url:http://wiki.dragino.com/xwiki/bin/view/Main/Set%20up%20CoAP%20Server/]]
Edwin Chen 42.1 224
Xiaoling 48.2 225 (% style="color:blue" %)**Use below commands in CPN01:**
226
Xiaoling 48.3 227 * (% style="color:#037691" %)**AT+PRO=1**                (%%) ~/~/ Set to use CoAP protocol to uplink
Xiaoling 48.2 228
Xiaoling 48.3 229 * (% style="color:#037691" %)**AT+SERVADDR=120.24.4.116,5683   ** (%%) ~/~/ Set CoAP server address and port
Xiaoling 48.2 230
Xiaoling 48.3 231 * (% style="color:#037691" %)**AT+URI=0,0,11,2,"mqtt" ** (%%) ~/~/  Set CoAP resource path
Xiaoling 48.2 232
David Huang 2.1 233 For parameter description, please refer to AT command set
234
David Huang 31.1 235 [[image:image-20221021110948-8.png]]
David Huang 2.1 236
237
Xiaoling 48.2 238 After configuring the server address and (% style="color:green" %)**reset CPN01**(%%) (via AT+ATZ ), CPN01 will start to uplink sensor values to the CoAP server.
Edwin Chen 42.1 239
David Huang 31.1 240 [[image:image-20221021110956-9.png]] ​
David Huang 2.1 241
Edwin Chen 42.1 242
Xiaoling 48.2 243 === 2.2.5 Use UDP protocol to uplink data(Default protocol) ===
David Huang 2.1 244
Edwin Chen 42.1 245
Xiaoling 48.2 246 (% style="color:blue" %)**AT Commands:**
David Huang 2.1 247
Xiaoling 48.3 248 * (% style="color:#037691" %)**AT+PRO=2   ** (%%) ~/~/  Set to use UDP protocol to uplink
Xiaoling 48.2 249
Xiaoling 48.3 250 * (% style="color:#037691" %)**AT+SERVADDR=120.24.4.116,5601   ** (%%) ~/~/  Set UDP server address and port
Xiaoling 48.2 251
David Huang 32.1 252 ​ [[image:image-20221021111025-10.png]]
David Huang 2.1 253
Xiaoling 48.3 254
David Huang 31.1 255 [[image:image-20221021111033-11.png||height="241" width="576"]]
David Huang 2.1 256
257
Xiaoling 48.2 258 === 2.2.6 Use MQTT protocol to uplink data ===
David Huang 2.1 259
Edwin Chen 42.1 260
Xiaoling 48.2 261 (% style="color:blue" %)**AT Commands:**
David Huang 2.1 262
Xiaoling 48.3 263 * (% style="color:#037691" %)**AT+PRO=3   ** (%%) ~/~/  Set to use MQTT protocol to uplink
Xiaoling 48.2 264
Xiaoling 48.3 265 * (% style="color:#037691" %)**AT+SERVADDR=120.24.4.116,1883   ** (%%) ~/~/  Set MQTT server address and port
Xiaoling 48.2 266
Xiaoling 48.3 267 * (% style="color:#037691" %)**AT+CLIENT=CLIENT       ** (%%) ~/~/  Set up the CLIENT of MQTT
Xiaoling 48.2 268
Xiaoling 48.3 269 * (% style="color:#037691" %)**AT+UNAME=UNAME                     **(%%)** **~/~/  Set the username of MQTT
Xiaoling 48.2 270
Xiaoling 48.3 271 * (% style="color:#037691" %)**AT+PWD=PWD                         **(%%)** **~/~/  Set the password of MQTT
Xiaoling 48.2 272
Xiaoling 48.3 273 * (% style="color:#037691" %)**AT+PUBTOPIC=NSE01_PUB              **(%%)** **~/~/  Set the sending topic of MQTT
Xiaoling 48.2 274
Xiaoling 48.3 275 * (% style="color:#037691" %)**AT+SUBTOPIC=NSE01_SUB          ** (%%) ~/~/  Set the subscription topic of MQTT
Xiaoling 48.2 276
David Huang 32.1 277 ​ [[image:image-20221021111058-12.png]]
David Huang 2.1 278
Xiaoling 48.3 279
David Huang 47.1 280 [[image:image-20221021111201-16.png||height="472" width="653"]]
David Huang 2.1 281
282
283
Edwin Chen 42.1 284 MQTT protocol has a much higher power consumption compare with UDP / CoAP protocol. Please check the power analyze document and adjust the uplink period to a suitable interval.
David Huang 2.1 285
Edwin Chen 42.1 286
Xiaoling 48.2 287 === 2.2.7 Use TCP protocol to uplink data ===
David Huang 2.1 288
289
Xiaoling 48.3 290 (% style="color:blue" %)**AT Commands:**
David Huang 2.1 291
Xiaoling 48.3 292 * (% style="color:#037691" %)**AT+PRO=4   ** (%%) ~/~/  Set to use TCP protocol to uplink
Xiaoling 48.2 293
Xiaoling 48.3 294 * (% style="color:#037691" %)**AT+SERVADDR=120.24.4.116,5600   ** (%%) ~/~/  Set TCP server address and port
Xiaoling 48.2 295
David Huang 32.1 296 ​ [[image:image-20221021111125-14.png]]
David Huang 2.1 297
Xiaoling 54.3 298
David Huang 31.1 299 [[image:image-20221021111131-15.png]]
David Huang 2.1 300
301
302
Xiaoling 48.2 303 === 2.2.8 Change Update Interval ===
David Huang 2.1 304
305
Xiaoling 48.2 306 User can use below command to change the (% style="color:blue" %)**uplink interval**.
David Huang 2.1 307
Xiaoling 48.2 308 * (% style="color:#037691" %)**AT+TDC=7200      ** (%%) ~/~/ Set Update Interval to 7200s (2 hours)
David Huang 2.1 309
Xiaoling 48.2 310 (% style="color:red" %)**NOTE:**
David Huang 2.1 311
Xiaoling 48.3 312 1.  By default, the device will send an uplink message every 1 hour.
Edwin Chen 42.1 313
Xiaoling 48.3 314
Xiaoling 48.2 315 == 2.3  Uplink Payload ==
David Huang 2.1 316
Xiaoling 48.2 317
David Huang 43.1 318 The uplink payload includes 123 bytes in total by default.
David Huang 2.1 319
320 Each time the device uploads a data package, 8 sets of recorded data will be attached. Up to 32 sets of recorded data can be uploaded.
321
322
Xiaoling 56.2 323 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:515px" %)
Xiaoling 56.5 324 |(% style="background-color:#4f81bd; color:white; width:60px" %)**Size(bytes)**|(% style="background-color:#4f81bd; color:white; width:40px" %)**8**|(% style="background-color:#4f81bd; color:white; width:25px" %)**2**|(% style="background-color:#4f81bd; color:white; width:25px" %)**2**|(% style="background-color:#4f81bd; color:white; width:79px" %)**1**|(% style="background-color:#4f81bd; color:white; width:30px" %)**1**|(% style="background-color:#4f81bd; color:white; width:79px" %)**1**|(% style="background-color:#4f81bd; color:white; width:79px" %)**1**|(% style="background-color:#4f81bd; color:white; width:39px" %)**1**|(% style="background-color:#4f81bd; color:white; width:59px" %)**3**
Xiaoling 56.2 325 |(% style="width:96px" %)Value|(% style="width:84px" %)[[Device ID>>||anchor="H2.4.1A0A0DeviceID"]]|(% style="width:40px" %)[[Ver>>||anchor="H2.4.2A0VersionInfo"]]|(% style="width:44px" %)[[BAT>>||anchor="H2.4.3A0BatteryInfo"]]|(% style="width:121px" %)[[Signal Strength>>||anchor="H2.4.4A0SignalStrength"]]|(% style="width:52px" %)MOD|(% style="width:84px" %)[[ Calculate Flag>>||anchor="H2.4.5A0CalculateFlag"]]|(% style="width:116px" %)[[Contact Status>>||anchor="H2.4.7A0ContactStatus"]]|(% style="width:57px" %)[[Alarm>>||anchor="H2.4.6A0Alarm"]]|(% style="width:91px" %)[[Total pulse>>||anchor="H2.4.8A0Totalpulse"]]
Xiaoling 56.1 326
Xiaoling 56.2 327 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:500px" %)
Xiaoling 56.5 328 |(% style="background-color:#4f81bd; color:white; width:100px" %)**3**|(% style="background-color:#4f81bd; color:white; width:50px" %)**4**|(% style="background-color:#4f81bd; color:white; width:70px" %)**1**|(% style="background-color:#4f81bd; color:white; width:50px" %)**3**|(% style="background-color:#4f81bd; color:white; width:100px" %)**3**|(% style="background-color:#4f81bd; color:white; width:80px" %)**4**|(% style="background-color:#4f81bd; color:white; width:50px" %)**8group**
Xiaoling 52.2 329 |(% style="width:176px" %)[[The last open duration>>||anchor="H2.4.9A0Thelastopenduration"]]|(% style="width:98px" %)[[Time stamp>>||anchor="H2.4.10A0Timestamp"]]|(% style="width:115px" %)Contact Status|(% style="width:92px" %)Total pulse|(% style="width:169px" %)The last open duration|(% style="width:97px" %)Time stamp|(% style="width:74px" %)...
Xiaoling 48.3 330
David Huang 2.1 331 If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the CPN01 uplink data.
332
David Huang 31.1 333 [[image:image-20221021111201-16.png||height="572" width="792"]]
David Huang 2.1 334
Xiaoling 48.3 335
David Huang 2.1 336 The payload is ASCII string, representative same HEX:
337
Xiaoling 56.1 338 **0x (% style="color:red" %)__f867787050213317__  (% style="color:blue" %)__0064__ (% style="color:green" %) __0c78__(% style="color:#00b0f0" %) __17__(% style="color:#7030a0" %) __01__(% style="color:#0020b0" %) __00__ (% style="color:#420042" %)__00__ (% style="color:#660066" %)__00__ (% style="color:#aaaa40" %)__000009__(% style="color:#663300" %) __000002__ (% style="color:#d60093" %)__6315537b__ (% style="color:#660066" %)__01 00000b 02 0000026 63510fed__ (%%)__0100000e0200000263510f39__ __010000000000000063510e85__ __010000000000000063510d2e__ __010000000000000063510c7a__ __010000000000000063510bc6__ __010000000000000063510954__ __010000000000000063510882 __**
David Huang 2.1 339
Xiaoling 48.2 340 **where:**
David Huang 2.1 341
Xiaoling 48.13 342 * (% style="color:#037691" %)**Device ID:**(%%) 0x f867787050213317 = f867787050213317
David Huang 2.1 343
Xiaoling 48.13 344 * (% style="color:#037691" %)**Version:**(%%) 0x0064=100=1.0.0
David Huang 33.1 345
Edwin Chen 49.1 346 * (% style="color:#037691" %)**BAT :**(%%) 0x0c78 = 3192 mV = 3.192V
David Huang 33.1 347
Xiaoling 48.13 348 * (% style="color:#037691" %)**Singal: **(%%)0x17 = 23
David Huang 33.1 349
Xiaoling 48.13 350 * (% style="color:#037691" %)**Mod:**(%%) 0x01 = 1
David Huang 33.1 351
Xiaoling 48.13 352 * (% style="color:#037691" %)**Calculate Flag:**(%%) 0x00=0
David Huang 33.1 353
Xiaoling 48.13 354 * (% style="color:#037691" %)**Contact Status:**(%%) 0x00=0
David Huang 33.1 355
Xiaoling 48.13 356 * (% style="color:#037691" %)**Alarm: **(%%)0x00 =0
David Huang 33.1 357
David Huang 52.1 358 * (% style="color:#037691" %)**Total pulse: **(%%)0x000009 =9
David Huang 33.1 359
David Huang 52.1 360 * (% style="color:#037691" %)**The last open duration: **(%%)0x000002 =2
David Huang 33.1 361
Edwin Chen 49.1 362 * (% style="color:#037691" %)**Timestamp:**(%%) 0x6315537b =1662342011 (Unix Time)
David Huang 33.1 363
David Huang 51.1 364 * (% style="color:#037691" %)**Contact Status, Total pulse,The last open duration ,Time stamp :**(%%) 01  00000b  000026  63510fed
David Huang 33.1 365
David Huang 51.1 366 * (% style="color:#037691" %)**8 sets of recorded data: Contact Status, Total pulse, The last open duration ,Time stamp :**(%%) 0100000e00002663510f39,.......
Edwin Chen 42.1 367
Xiaoling 48.2 368 == 2.4  Payload Explanation and Sensor Interface ==
369
370 === 2.4.1  Device ID ===
371
372
Edwin Chen 42.1 373 By default, the Device ID is equal to the last 15 bits of IMEI.
David Huang 2.1 374
Xiaoling 48.2 375 User can use (% style="color:blue" %)**AT+DEUI** (%%)to set Device ID
David Huang 2.1 376
377 **Example:**
378
379 AT+DEUI=868411056754138
380
Edwin Chen 42.1 381 The Device ID is stored in a non-erase area, Upgrade the firmware or run AT+FDR won't erase the Device ID.
David Huang 2.1 382
Edwin Chen 42.1 383
Xiaoling 48.2 384 === 2.4.2  Version Info ===
385
386
Edwin Chen 42.1 387 Specify the software version: 0x64=100, which means firmware version 1.00.
David Huang 2.1 388
Edwin Chen 42.1 389 For example 0x00 64 : This device is CPN01 with firmware version 1.0.0.
David Huang 2.1 390
Edwin Chen 42.1 391
Xiaoling 48.2 392 === 2.4.3  Battery Info ===
393
394
David Huang 2.1 395 Check the battery voltage for CPN01.
396
397 Ex1: 0x0B45 = 2885mV
398
399 Ex2: 0x0B49 = 2889mV
400
Edwin Chen 42.1 401
Xiaoling 48.2 402 === 2.4.4  Signal Strength ===
403
404
David Huang 2.1 405 NB-IoT Network signal Strength.
406
407 **Ex1: 0x1d = 29**
408
409 **0**  -113dBm or less
410
411 **1**  -111dBm
412
413 **2...30** -109dBm... -53dBm
414
415 **31**   -51dBm or greater
416
417 **99**    Not known or not detectable
418
Edwin Chen 42.1 419
Xiaoling 48.2 420 === 2.4.5  Calculate Flag ===
421
422
Edwin Chen 42.1 423 The calculate flag is a user defined field, IoT server can use this filed to handle different meters with different pulse factors. For example, if there are 100 water meters, meter 1~~50 are 1 liter/pulse and meter 51 ~~ 100 has 1.5 liter/pulse.
David Huang 2.1 424
425 User can set calculate flag to 1 for meter 1~~50 and 2 for meter 51 ~~ 100, So IoT Server can use this field for calculation.
426
427 Default value: 0. 
428
429 Range (6 bits): (b)000000 ~~ (b) 111111
430
Edwin Chen 42.1 431
Xiaoling 48.2 432 === 2.4.6  Alarm ===
433
434
Xiaoling 48.10 435 See [[Alarm Base on Timeout>>||anchor="H2.7A0AlarmBaseonTimeout"]]
David Huang 2.1 436
Edwin Chen 42.1 437
Xiaoling 48.2 438 === 2.4.7  Contact Status ===
439
440
David Huang 2.1 441 0: Open
442
443 1: Close
444
Edwin Chen 42.1 445
Xiaoling 48.2 446 === 2.4.8  Total pulse ===
447
448
Xiaoling 48.11 449 Total pulse/counting based on dry [[contact trigger event>>||anchor="H2.12Setcountnumber"]]
David Huang 2.1 450
451 Range (3 Bytes) : 0x000000 ~~ 0xFFFFFF . Max: 16777215
452
Edwin Chen 42.1 453
Xiaoling 48.2 454 === 2.4.9  The last open duration ===
455
456
David Huang 2.1 457 Dry Contact last open duration.
458
459 Unit: min.
460
David Huang 31.1 461 [[image:image-20221021111346-17.png||height="146" width="770"]]
David Huang 2.1 462
463
Xiaoling 48.2 464 === 2.4.10  Timestamp ===
465
466
Edwin Chen 42.1 467 Timestamp : 0x6315537b =1662342011
David Huang 2.1 468
469 Convert Unix timestamp to time 2022-9-5 9:40:11.
470
471 **~ **
472
Xiaoling 48.2 473 == 2.5  Downlink Payload ==
474
475
David Huang 2.1 476 By default, CPN01 prints the downlink payload to console port.
477
Xiaoling 56.4 478 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:505px" %)
Xiaoling 56.5 479 |(% style="background-color:#4f81bd; color:white; width:207px" %)**Downlink Control Type**|(% style="background-color:#4f81bd; color:white; width:56px" %)**FPort**|(% style="background-color:#4f81bd; color:white; width:93px" %)**Type Code**|(% style="background-color:#4f81bd; color:white; width:149px" %)**Downlink payload size(bytes)**
Xiaoling 54.7 480 |(% style="width:207px" %)TDC(Transmit Time Interval)|(% style="width:56px" %)Any|(% style="width:93px" %)01|(% style="width:144px" %)4
481 |(% style="width:207px" %)RESET|(% style="width:56px" %)Any|(% style="width:93px" %)04|(% style="width:144px" %)2
482 |(% style="width:207px" %)INTMOD|(% style="width:56px" %)Any|(% style="width:93px" %)06|(% style="width:144px" %)4
David Huang 2.1 483
484 **Examples:**
485
Xiaoling 48.2 486 * (% style="color:#037691" %)**Set TDC**
David Huang 2.1 487
488 If the payload=0100003C, it means set the END Node's TDC to 0x00003C=60(S), while type code is 01.
489
490 Payload:    01 00 00 1E    TDC=30S
491
492 Payload:    01 00 00 3C    TDC=60S
493
Xiaoling 48.2 494 * (% style="color:#037691" %)**Reset**
David Huang 2.1 495
Xiaoling 54.3 496 If payload = 0x04FF, it will reset the CPN01
David Huang 2.1 497
Xiaoling 48.2 498 * (% style="color:#037691" %)**INTMOD**
David Huang 2.1 499
500 Downlink Payload: 06000003, Set AT+INTMOD=3
501
502
Xiaoling 48.2 503 == 2.6  ​LED Indicator ==
504
505
Edwin Chen 42.1 506 The CPN01 has an internal LED which is to show the status of different states.
David Huang 2.1 507
David Huang 45.1 508 * When the device starts normally, the LED will light up for 1 second.
David Huang 2.1 509 * After CPN01 join NB-IoT network. The LED will be ON for 3 seconds.
510 * For each uplink probe, LED will be on for 500ms.
511
Xiaoling 48.2 512 == 2.7  Alarm Base on Timeout ==
David Huang 2.1 513
Xiaoling 48.2 514
Edwin Chen 42.1 515 CPN01 can monitor the timeout for a status change, this feature can be used to monitor some events such as door opening too long etc. Related Parameters are:
David Huang 2.1 516
517
Xiaoling 48.2 518 (% style="color:blue" %)**1. Keep Status: Status to be monitor**
David Huang 2.1 519
520 Keep Status = 1: Monitor Close to Open event
521
522 Keep Status = 0: Monitor Open to Close event
523
524
Xiaoling 48.2 525 (% style="color:blue" %)**2. Keep Time: Timeout to send an Alarm**
David Huang 2.1 526
527 Range 0 ~~ 65535(0xFFFF) seconds.
528
529 If keep time = 0, Disable Alarm Base on Timeout feature.
530
531 If keep time > 0, device will monitor the keep status event and send an alarm when status doesn’t change after timeout.
532
533
Xiaoling 48.2 534 (% style="color:blue" %)**AT Command to configure:**
David Huang 2.1 535
Xiaoling 48.2 536 (% style="color:#037691" %)**AT+TTRIG=1,30** (%%) **~-~->**  When the **Keep Status** change from connected to disconnect, and device remains in disconnect status for more than 30 seconds. CPN01 will send an uplink packet, the [[Alarm bit>>url:http://wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/CPL01%20LoRaWAN%20Outdoor%20PulseContact%20%20Sensor%20Manual/#H2.3.3Real-TimeOpen2FCloseStatus2CUplinkFPORT3D2]] (the second bit of 1^^st^^ byte of payload) on this uplink packet is set to 1.
David Huang 2.1 537
Xiaoling 48.2 538 (% style="color:#037691" %)**AT+TTRIG=0,0 ** (%%) **~-~->** Default Value, disable timeout Alarm.
David Huang 2.1 539
Edwin Chen 42.1 540
Xiaoling 48.2 541 == 2.8  Set debug mode ==
542
543
David Huang 2.1 544 Feature: Enable or Disable debug mode
545
Xiaoling 48.2 546 (% style="color:blue" %)**AT Command: AT+DEBUG**
David Huang 2.1 547
Xiaoling 56.1 548
Xiaoling 56.4 549 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:430px" %)
Xiaoling 56.5 550 |(% style="background-color:#4f81bd; color:white; width:158px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:196px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:76px" %)**Response**
Xiaoling 54.4 551 |(% style="width:158px" %)AT+DEBUG=0|(% style="width:196px" %)Disable debug mode to 0|(% style="width:74px" %)OK
552 |(% style="width:158px" %)AT+DEBUG=1|(% style="width:196px" %)Enable debug mode to 1|(% style="width:74px" %)OK
David Huang 2.1 553
Xiaoling 48.2 554 == 2.9  Clear Flash Record ==
555
556
David Huang 2.1 557 Feature: Clear flash storage for data log feature.
558
Xiaoling 48.2 559 (% style="color:blue" %)**AT Command: AT+CLRDTA**
David Huang 2.1 560
Xiaoling 56.1 561
Xiaoling 56.4 562 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:498px" %)
Xiaoling 56.5 563 |(% style="background-color:#4f81bd; color:white; width:159px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:170px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:169px" %)**Response**
Xiaoling 54.7 564 |(% style="width:158px" %)AT+CLRDTA|(% style="width:169px" %)Clear flash storage for data log feature.|(% style="width:167px" %)(((
Xiaoling 54.5 565 Clear all stored sensor data…OK
566 )))
David Huang 2.1 567
Xiaoling 48.2 568 == 2.10  Set trigger mode ==
569
570
571 (% style="color:blue" %)**AT Command: AT+TTRMOD**
572
David Huang 2.1 573 Feature: Set the trigger interrupt mode.
574
Xiaoling 56.4 575 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:472px" %)
Xiaoling 56.5 576 |(% style="background-color:#4f81bd; color:white; width:158px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:225px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:89px" %)**Response**
Xiaoling 54.5 577 |(% style="width:158px" %)AT+TTRMOD=1|(% style="width:225px" %)Count and trigger from open to close (rising edge)|(% style="width:88px" %)OK
578 |(% style="width:158px" %)AT+TTRMOD=0|(% style="width:225px" %)Count and trigger from close to open (falling edge)|(% style="width:88px" %)OK
David Huang 2.1 579
Xiaoling 48.2 580 == 2.11  Set the calculate flag ==
581
582
David Huang 2.1 583 Feature: Set the calculate flag
584
Xiaoling 48.2 585 (% style="color:blue" %)**AT Command: AT+CALCFLAG**
David Huang 2.1 586
Xiaoling 56.1 587
Xiaoling 56.4 588 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:430px" %)
Xiaoling 56.5 589 |(% style="background-color:#4f81bd; color:white; width:158px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:197px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:75px" %)**Response**
Xiaoling 54.5 590 |(% style="width:158px" %)AT+CALCFLAG=1|(% style="width:196px" %)Set the calculate flag to 1|(% style="width:74px" %)OK
591 |(% style="width:158px" %)AT+CALCFLAG=2|(% style="width:196px" %)Set the calculate flag to 2|(% style="width:74px" %)OK
David Huang 2.1 592
Xiaoling 48.2 593 == 2.12 Set count number ==
594
595
David Huang 2.1 596 Feature: Manually set the count number
597
Xiaoling 48.2 598 (% style="color:blue" %)**AT Command: AT+SETCNT**
David Huang 2.1 599
600
Xiaoling 56.4 601 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:459px" %)
Xiaoling 56.5 602 |(% style="background-color:#4f81bd; color:white; width:158px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:239px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:62px" %)**Response**
Xiaoling 54.5 603 |(% style="width:158px" %)AT+SETCNT=0|(% style="width:239px" %)Set the count number to 0|(% style="width:85px" %)OK
604 |(% style="width:158px" %)AT+SETCNT=100|(% style="width:239px" %)Set the count number to 100|(% style="width:85px" %)OK
David Huang 2.1 605
Xiaoling 48.2 606 == 2.13  Set the number of data to be uploaded and the recording time ==
David Huang 2.1 607
608
Xiaoling 48.2 609 (% style="color:blue" %)**AT Command:**
David Huang 2.1 610
Xiaoling 48.2 611 (% style="color:#037691" %)**AT+TR=900**        (%%)~/~/  The unit is seconds, and the default is to record data once every 900 seconds.( The minimum can be set to 180 seconds)
David Huang 2.1 612
Xiaoling 48.2 613 (% style="color:#037691" %)**AT+NOUD=8 ** (%%)~/~/  The device uploads 8 sets of recorded data by default. Up to 32 sets of record data can be uploaded.
David Huang 2.1 614
615
Xiaoling 48.2 616 == 2.14  Read or Clear cached data ==
617
618
619 (% style="color:blue" %)**AT Command:**
620
621 (% style="color:#037691" %)**AT+CDP**  (%%) ~/~/ Read cached data
622
623 (% style="color:#037691" %)**AT+CDP=0**  (%%) ~/~/ Clear cached data ​
624
David Huang 31.1 625 [[image:image-20221021111810-25.png||height="364" width="797"]]
David Huang 2.1 626
627
Xiaoling 48.2 628 == 2.15  ​Firmware Change Log ==
David Huang 2.1 629
Xiaoling 48.2 630
Xiaoling 48.14 631 Download URL & Firmware Change log:  [[https:~~/~~/www.dropbox.com/sh/8p5nuvo6gh7je4n/AAAMP7MMusgbXMz9Ik7Ls03Ga?dl=0>>https://www.dropbox.com/sh/8p5nuvo6gh7je4n/AAAMP7MMusgbXMz9Ik7Ls03Ga?dl=0]]
David Huang 2.1 632
Xiaoling 48.12 633 Upgrade Instruction: [[Upgrade Firmware>>||anchor="H5.1200BHowtoUpgradeFirmware"]]
David Huang 2.1 634
635
Xiaoling 54.11 636 == 2.16 Battery & Power Consumption ==
Xiaoling 48.2 637
638
Xiaoling 54.11 639 CPN01 uses ER26500 + SPC1520 battery pack. See below link for detail information about the battery info and how to replace.
Xiaoling 48.2 640
Xiaoling 54.11 641 [[**Battery Info & Power Consumption Analyze**>>url:http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] .
David Huang 2.1 642
643
Xiaoling 48.2 644 = 3. ​ Access NB-IoT Module =
645
646
David Huang 2.1 647 Users can directly access the AT command set of the NB-IoT module.
648
649 The AT Command set can refer the BC35-G NB-IoT Module AT Command: [[https:~~/~~/www.dragino.com/downloads/index.php?dir=datasheet/other_vendors/BC35-G/>>url:https://www.dragino.com/downloads/index.php?dir=datasheet/other_vendors/BC35-G/]] 
650
David Huang 31.1 651 [[image:image-20221021112006-28.png]] ​
David Huang 2.1 652
653
Xiaoling 48.2 654 = 4.  Using the AT Commands =
655
656 == 4.1  Access AT Commands ==
657
658
David Huang 2.1 659 See this link for detail:  [[https:~~/~~/www.dropbox.com/sh/351dwor6joz8nwh/AADn1BQaAAxLF_QMyU8NkW47a?dl=0>>url:https://www.dropbox.com/sh/351dwor6joz8nwh/AADn1BQaAAxLF_QMyU8NkW47a?dl=0]]
660
661 AT+<CMD>?  : Help on <CMD>
662
663 AT+<CMD>         : Run <CMD>
664
665 AT+<CMD>=<value> : Set the value
666
667 AT+<CMD>=?  : Get the value
668
669
Xiaoling 48.2 670 (% style="color:blue" %)**General Commands**      
671
David Huang 2.1 672 AT  : Attention       
673
674 AT?  : Short Help     
675
676 ATZ  : MCU Reset    
677
678 AT+TDC  : Application Data Transmission Interval
679
680 AT+CFG  : Print all configurations
681
682 AT+CFGMOD           : Working mode selection
683
684 AT+INTMOD            : Set the trigger interrupt mode
685
686 AT+5VT  : Set extend the time of 5V power  
687
688 AT+PRO  : Choose agreement
689
690 AT+RXDL  : Extend the sending and receiving time
691
692 AT+SERVADDR  : Server Address
693
Xiaoling 48.2 694 AT+TR      :  Get or Set record time
David Huang 2.1 695
696 AT+NOUD      : Get or Set the number of data to be uploaded
697
Xiaoling 48.2 698 AT+CDP     :  Read or Clear cached data
David Huang 2.1 699
700 AT+ DEBUG   : Enable or Disable debug mode
701
702 AT+ TTRIG   : Get or Set Alarm Base on Timeout
703
704 AT+ TTRMOD   : Get or Set the trigger interrupt mode(0:falling,1:rising)
705
706 AT+ CALCFLAG   : Get or Set the calculate flag
707
708 AT+ CLRC   : Clear current door open count
709
710
Xiaoling 48.2 711 (% style="color:blue" %)**COAP Management**      
712
David Huang 2.1 713 AT+URI            : Resource parameters
714
715
Xiaoling 48.2 716
717 (% style="color:blue" %)**MQTT Management**
718
David Huang 2.1 719 AT+CLIENT               : Get or Set MQTT client
720
721 AT+UNAME  : Get or Set MQTT Username
722
723 AT+PWD                  : Get or Set MQTT password
724
725 AT+PUBTOPIC  : Get or Set MQTT publish topic
726
727 AT+SUBTOPIC  : Get or Set MQTT subscription topic
728
729
Xiaoling 48.2 730 (% style="color:blue" %)**Information**          
731
David Huang 2.1 732 AT+FDR  : Factory Data Reset
733
734 AT+PWORD  : Serial Access Password
735
736
Xiaoling 48.2 737 = ​5.  FAQ =
David Huang 2.1 738
Xiaoling 48.2 739 == 5.1 ​ How to Upgrade Firmware ==
David Huang 2.1 740
741
Xiaoling 48.2 742 User can upgrade the firmware for 1) bug fix, 2) new feature release.
David Huang 2.1 743
Xiaoling 48.2 744 Please see this link for how to upgrade:  [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/Firmware%20Upgrade%20Instruction%20for%20STM32%20base%20products/#H2.HardwareUpgradeMethodSupportList>>url:http://wiki.dragino.com/xwiki/bin/view/Main/Firmware%20Upgrade%20Instruction%20for%20STM32%20base%20products/#H2.HardwareUpgradeMethodSupportList]]
David Huang 2.1 745
Xiaoling 48.2 746 (% style="color:red" %)**Notice: **(% style="color:blue" %)**CPN01** (%%)**and (% style="color:blue" %)CPL01(%%)**(% style="color:blue" %) (%%)**share the same mother board. They use the same connection and method to update.**
David Huang 2.1 747
Edwin Chen 42.1 748
Xiaoling 48.2 749 = 6.  Trouble Shooting =
David Huang 2.1 750
Xiaoling 48.2 751 == 6.1  ​Connection problem when uploading firmware ==
David Huang 2.1 752
753
Xiaoling 48.2 754 (% style="color:blue" %)**Please see: **[[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/Firmware%20Upgrade%20Instruction%20for%20STM32%20base%20products/#H3.3Troubleshooting>>url:http://wiki.dragino.com/xwiki/bin/view/Main/Firmware%20Upgrade%20Instruction%20for%20STM32%20base%20products/#H3.3Troubleshooting]]
Edwin Chen 42.1 755
David Huang 2.1 756
Xiaoling 48.2 757 == 6.2  AT Command input doesn't work ==
David Huang 2.1 758
759
Xiaoling 48.2 760 In the case if user can see the console output but can't type input to the device. Please check if you already include the (% style="color:green" %)**ENTER**(%%) while sending out the command. Some serial tool doesn't send (% style="color:green" %)**ENTER** (%%)while press the send key, user need to add ENTER in their string.
David Huang 2.1 761
762
Xiaoling 54.13 763 == 6.3 Not able to connect to NB-IoT network and keep showing "Signal Strength:99". ==
764
765
766 This means sensor is trying to join the NB-IoT network but fail. Please see this link for **//[[trouble shooting for signal strenght:99>>doc:Main.CSQ\:99,99.WebHome]]//**.
767
768
Xiaoling 48.2 769 = 7. ​ Order Info =
David Huang 2.1 770
771
Xiaoling 48.2 772 Part Number**:** CPN01
David Huang 2.1 773
774
Xiaoling 48.2 775 = 8.  Packing Info =
David Huang 2.1 776
777
Xiaoling 48.2 778 (% style="color:blue" %)**Package Includes**:
David Huang 2.1 779
Xiaoling 48.2 780 * CPN01 Open/Close Sensor x 1
781 * External antenna x 1
David Huang 2.1 782
Xiaoling 48.2 783 (% style="color:blue" %)**Dimension and weight**:
David Huang 2.1 784
Xiaoling 48.2 785 * Size: 195 x 125 x 55 mm
786 * Weight:   420g
David Huang 2.1 787
Xiaoling 48.2 788 = 9.  Support =
David Huang 2.1 789
790
Xiaoling 48.2 791 * Support is provided Monday to Friday, from 09:00 to 18:00 GMT+8. Due to different timezones we cannot offer live support. However, your questions will be answered as soon as possible in the before-mentioned schedule.
David Huang 2.1 792
Xiaoling 48.2 793 * Provide as much information as possible regarding your enquiry (product models, accurately describe your problem and steps to replicate it etc) and send a mail to [[support@dragino.com>>url:http://../../../../../../D:%5C%E5%B8%82%E5%9C%BA%E8%B5%84%E6%96%99%5C%E8%AF%B4%E6%98%8E%E4%B9%A6%5CLoRa%5CLT%E7%B3%BB%E5%88%97%5Csupport@dragino.com]]
David Huang 2.1 794
Xiaoling 48.2 795