Show last authors
1
2
3 (% style="text-align:center" %)
4 [[image:image-20240108180055-3.png]]
5
6
7
8
9
10
11
12
13
14 **Table of Contents :**
15
16 {{toc/}}
17
18
19
20
21
22
23 = 1. Introduction =
24
25 == 1.1 What is CPL03-LB/LS LoRaWAN Pulse/Contact Sensor ==
26
27
28 The Dragino CPL03-LB/LS is a (% style="color:blue" %)**LoRaWAN Contact Sensor**(%%) for Internet of Things solution. It detects dry contact status, open time, open counts, and then upload to IoT server via LoRaWAN wireless protocol.
29
30 The CPL03-LB/LS will send periodically data every day as well as for each dry contact action. It also counts the contact open times and calculate last open duration. User can also disable the uplink for each open/close event, instead, device can count each open event and uplink periodically.
31
32 The LoRa wireless technology used in CPL03-LB/LS allows device to send data and reach extremely long ranges at low data-rates. It provides ultra-long range spread spectrum communication and high interference immunity whilst minimizing current consumption.
33
34 CPL03-LB/LS (% style="color:blue" %)**supports open alarm feature**(%%), user can set open alarm for instant notice. CPL03-LB/LS (% style="color:blue" %)**supports Datalog feature**(%%), it can save the data when there is no LoRaWAN network and uplink when network recover.
35
36 CPL03-LB/LS is designed for outdoor use. It has a weatherproof enclosure and industrial level battery to work in low to high temperatures.
37
38 CPL03-LB/LS (% style="color:blue" %)**supports BLE configure**(%%) and (% style="color:blue" %)**wireless OTA update**(%%) which make user easy to use.
39
40 CPL03-LB/LS is powered by (% style="color:blue" %)**8500mAh Li-SOCI2 battery **(%%)or (% style="color:blue" %)**solar powered + li-on battery**(%%), it is designed for long term use up to 5 years.
41
42 Each CPL03-LB/LS is pre-load with a set of unique keys for LoRaWAN registrations, register these keys to local LoRaWAN server and it will auto connect after power on.
43
44
45 [[image:image-20230530111051-3.png||height="402" width="850"]]
46
47
48 == 1.2 ​Features ==
49
50
51 * LoRaWAN 1.0.3 Class A
52 * Bands: CN470/EU433/KR920/US915/EU868/AS923/AU915/IN865
53 * Ultra-low power consumption
54 * Open/Close detect
55 * Open/Close statistics
56 * Supports open alarm feature
57 * Supports Datalog feature
58 * Support Bluetooth v5.1 and LoRaWAN remote configure
59 * Support wireless OTA update firmware
60 * Uplink on periodically and open/close event
61 * Downlink to change configure
62 * 8500mAh Li/SOCl2 Battery (CPL03-LB)
63 * Solar panel + 3000mAh Li-on battery (CPL03-LS)
64
65 == 1.3 Specification ==
66
67
68 (% style="color:#037691" %)**Common DC Characteristics:**
69
70 * Supply Voltage: Built-in Battery , 2.5v ~~ 3.6v
71 * Operating Temperature: -40 ~~ 85°C
72
73 (% style="color:#037691" %)**LoRa Spec:**
74
75 * Frequency Range,  Band 1 (HF): 862 ~~ 1020 Mhz
76 * Max +22 dBm constant RF output vs.
77 * RX sensitivity: down to -139 dBm.
78 * Excellent blocking immunity
79
80 (% style="color:#037691" %)**Battery:**
81
82 * Li/SOCI2 un-chargeable battery
83 * Capacity: 8500mAh
84 * Self-Discharge: <1% / Year @ 25°C
85 * Max continuously current: 130mA
86 * Max boost current: 2A, 1 second
87
88 (% style="color:#037691" %)**Power Consumption**
89
90 * Sleep Mode: 5uA @ 3.3v
91 * LoRa Transmit Mode: 125mA @ 20dBm, 82mA @ 14dBm
92
93 == 1.4 Applications ==
94
95
96 * Open/Close Detection
97 * Pulse meter application
98 * Dry Contact Detection
99
100 == 1.5 Sleep mode and working mode ==
101
102
103 (% style="color:blue" %)**Deep Sleep Mode: **(%%)Sensor doesn't have any LoRaWAN activate. This mode is used for storage and shipping to save battery life.
104
105 (% style="color:blue" %)**Working Mode:** (%%)In this mode, Sensor will work as LoRaWAN Sensor to Join LoRaWAN network and send out sensor data to server. Between each sampling/tx/rx periodically, sensor will be in IDLE mode), in IDLE mode, sensor has the same power consumption as Deep Sleep mode.
106
107
108 == 1.6 Button & LEDs ==
109
110
111 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/RS485-LB_Waterproof_RS485UART_to_LoRaWAN_Converter/WebHome/image-20240103160425-4.png?rev=1.1||alt="image-20240103160425-4.png"]]
112
113 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
114 |=(% style="width: 167px;background-color:#4F81BD;color:white" %)**Behavior on ACT**|=(% style="width: 117px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 226px;background-color:#4F81BD;color:white" %)**Action**
115 |(% style="width:167px" %)Pressing ACT between 1s < time < 3s|(% style="width:117px" %)Send an uplink|(% style="width:225px" %)(((
116 If sensor is already Joined to LoRaWAN network, sensor will send an uplink packet, (% style="color:blue" %)**blue led** (%%)will blink once.
117 Meanwhile, BLE module will be active and user can connect via BLE to configure device.
118 )))
119 |(% style="width:167px" %)Pressing ACT for more than 3s|(% style="width:117px" %)Active Device|(% style="width:225px" %)(((
120 (% style="color:green" %)**Green led**(%%) will fast blink 5 times, device will enter (% style="color:#037691" %)**OTA mode**(%%) for 3 seconds. And then start to JOIN LoRaWAN network.
121 (% style="color:green" %)**Green led**(%%) will solidly turn on for 5 seconds after joined in network.
122 Once sensor is active, BLE module will be active and user can connect via BLE to configure device, no matter if device join or not join LoRaWAN network.
123 )))
124 |(% style="width:167px" %)Fast press ACT 5 times.|(% style="width:117px" %)Deactivate Device|(% style="width:225px" %)(% style="color:red" %)**Red led**(%%) will solid on for 5 seconds. Means device is in Deep Sleep Mode.
125
126 == 1.7 BLE connection ==
127
128
129 CPL03-LB/LS support BLE remote configure.
130
131
132 BLE can be used to configure the parameter of sensor or see the console output from sensor. BLE will be only activate on below case:
133
134 * Press button to send an uplink
135 * Press button to active device.
136 * Device Power on or reset.
137
138 If there is no activity connection on BLE in 60 seconds, sensor will shut down BLE module to enter low power mode.
139
140
141 == 1.8 Pin Definitions ==
142
143
144 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/SN50v3-LB/WebHome/image-20230610163213-1.png?width=699&height=404&rev=1.1||alt="image-20230610163213-1.png"]]
145
146
147 == 1.9 Mechanical ==
148
149 === 1.9.1 for LB version ===
150
151
152 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/DDS75-LB_LoRaWAN_Distance_Detection_Sensor_User_Manual/WebHome/image-20240105152536-3.png?rev=1.1||alt="image-20240105152536-3.png"]]
153
154
155 === 1.9.2 for LS version ===
156
157
158 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/SN50v3-LB/WebHome/image-20231231203439-3.png?width=886&height=385&rev=1.1||alt="image-20231231203439-3.png"]]
159
160
161 = 2. Configure CPL03-LB/LS to connect to LoRaWAN network =
162
163 == 2.1 How it works ==
164
165
166 The CPL03-LB/LS is configured as (% style="color:#037691" %)**LoRaWAN OTAA Class A**(%%) mode by default. It has OTAA keys to join LoRaWAN network. To connect a local LoRaWAN network, you need to input the OTAA keys in the LoRaWAN IoT server and press the button to activate the CPL03-LB/LS. It will automatically join the network via OTAA and start to send the sensor value. The default uplink interval is 2 hours.
167
168 (% style="display:none" %) (%%)
169
170 == 2.2 ​Quick guide to connect to LoRaWAN server (OTAA) ==
171
172
173 Following is an example for how to join the [[TTN v3 LoRaWAN Network>>url:https://console.cloud.thethings.network/]]. Below is the network structure; we use the [[LPS8v2>>url:https://www.dragino.com/products/lora-lorawan-gateway/item/228-lps8v2.html]] as a LoRaWAN gateway in this example.
174
175 The LPS8v2 is already set to connected to [[TTN network >>url:https://console.cloud.thethings.network/]], so what we need to now is configure the TTN server.
176
177 [[image:image-20230530111412-4.png||height="398" width="805"]](% style="display:none" %)
178
179
180 (% style="color:blue" %)**Step 1:**(%%) Create a device in TTN with the OTAA keys from CPL03-LB/LS.
181
182 Each CPL03-LB/LS is shipped with a sticker with the default device EUI as below:
183
184 [[image:image-20230426084152-1.png||alt="图片-20230426084152-1.png" height="233" width="502"]]
185
186
187 You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:
188
189
190 (% style="color:blue" %)**Register the device**
191
192 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50v2-S31-S31B%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20User%20Manual/WebHome/1654935135620-998.png?rev=1.1||alt="1654935135620-998.png"]]
193
194
195 (% style="color:blue" %)**Add APP EUI and DEV EUI**
196
197 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50v2-S31-S31B%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20User%20Manual/WebHome/image-20220611161308-4.png?width=753&height=551&rev=1.1||alt="图片-20220611161308-4.png"]]
198
199
200 (% style="color:blue" %)**Add APP EUI in the application**
201
202
203 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50v2-S31-S31B%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20User%20Manual/WebHome/image-20220611161308-5.png?width=742&height=601&rev=1.1||alt="图片-20220611161308-5.png"]]
204
205
206 (% style="color:blue" %)**Add APP KEY**
207
208 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50v2-S31-S31B%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20User%20Manual/WebHome/image-20220611161308-6.png?width=744&height=485&rev=1.1||alt="图片-20220611161308-6.png"]]
209
210
211 (% style="color:blue" %)**Step 2:**(%%) Activate on CPL03-LB/LS
212
213
214 Press the button for 5 seconds to activate the CPL03-LB/LS.
215
216 (% style="color:green" %)**Green led**(%%) will fast blink 5 times, device will enter (% style="color:blue" %)**OTA mode**(%%) for 3 seconds. And then start to JOIN LoRaWAN network. (% style="color:green" %)**Green led**(%%) will solidly turn on for 5 seconds after joined in network.
217
218 After join success, it will start to upload messages to TTN and you can see the messages in the panel.
219
220
221 == 2.3 ​Uplink Payload ==
222
223 === 2.3.1 Device Status, FPORT~=5 ===
224
225
226 Include device configure status. Once CPL03-LB/LS Joined the network, it will uplink this message to the server. After that, CPL03-LB/LS will uplink Device Status every 12 hours.
227
228 Users can also use the downlink command**(0x26 01)** to ask CPL03-LB/LS to resend this uplink. This uplink payload also includes the DeviceTimeReq to get time.
229
230 The Payload format is as below.
231
232
233 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
234 |(% colspan="6" style="background-color:#4f81bd; color:white" %)**Device Status (FPORT=5)**
235 |(% style="width:103px" %)**Size (bytes)**|(% style="width:72px" %)**1**|**2**|(% style="width:91px" %)**1**|(% style="width:86px" %)**1**|(% style="width:44px" %)**2**
236 |(% style="width:103px" %)Value|(% style="width:72px" %)Sensor Model|Firmware Version|(% style="width:91px" %)Frequency Band|(% style="width:86px" %)Sub-band|(% style="width:44px" %)BAT
237
238 Example parse in TTNv3
239
240 [[image:image-20230702165811-1.png||height="166" width="913"]]
241
242
243 (% style="color:#037691" %)**Sensor Model**(%%): For CPL03-LB/LS, this value is 0x20
244
245 (% style="color:#037691" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version
246
247 (% style="color:#037691" %)**Frequency Band**:
248
249 0x01: EU868
250
251 0x02: US915
252
253 0x03: IN865
254
255 0x04: AU915
256
257 0x05: KZ865
258
259 0x06: RU864
260
261 0x07: AS923
262
263 0x08: AS923-1
264
265 0x09: AS923-2
266
267 0x0a: AS923-3
268
269 0x0b: CN470
270
271 0x0c: EU433
272
273 0x0d: KR920
274
275 0x0e: MA869
276
277
278 (% style="color:#037691" %)**Sub-Band**:
279
280 AU915 and US915:value 0x00 ~~ 0x08
281
282 CN470: value 0x0B ~~ 0x0C
283
284 Other Bands: Always 0x00
285
286
287 (% style="color:#037691" %)**Battery Info**:
288
289 Check the battery voltage.
290
291 Ex1: 0x0B45 = 2885mV
292
293 Ex2: 0x0B49 = 2889mV
294
295
296 === 2.3.2 Sensor Configuration, FPORT~=4 ===
297
298
299 CPL03-LB/LS will only send this command after getting the downlink command **(0x26 02)** from the server.
300
301 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:515px" %)
302 |(% colspan="9" style="background-color:#4f81bd; color:white; width:515px" %)**Sensor Configuration FPORT=4**
303 |**Size(bytes)**|(% style="width:73px" %)**3**|(% style="width:73px" %)**1**|(% style="width:61px" %)**1**|(% style="width:88px" %)**2**|(% style="width:72px" %)**1**|(% style="width:73px" %)**1**|(% style="width:73px" %)**1**|(% style="width:114px" %)**1**
304 |Value|(% style="width:73px" %)TDC (unit:sec)|(% style="width:73px" %)Disalarm|(% style="width:61px" %)Keep status|(% style="width:88px" %)Keep time (unit: sec)|(% style="width:72px" %)(((
305 Trigger1 mod(PA8)
306 )))|(% style="width:73px" %)(((
307 Trigger2 mod(PA4)
308 )))|(% style="width:73px" %)(((
309 Trigger3 mod(PB15)
310 )))|(% style="width:114px" %)(((
311 Alarm interval(unit: min)
312 )))
313
314 Example parse in TTNv3
315
316 [[image:image-20230702170310-2.png||height="135" width="892"]]
317
318
319 * (((
320 (% style="color:#037691" %)** TDC: (default: 0x001C20)**
321 )))
322
323 (((
324 Uplink interval for the total pulse count, default value is 0x001C20 which is 7200 seconds = 2 hours.
325
326
327 )))
328
329 * (((
330 (% style="color:#037691" %)** Disalarm: (default: 0)**
331 )))
332
333 (((
334 (% style="color:blue" %)** If Disalarm = 1**(%%), CPL03-LB/LS will only send uplink at every TDC periodically. This is normally use for pulse meter application, in this application, there are many disconnect/connect event, and platform only care about the total number of pulse.
335 )))
336
337 (((
338 (% style="color:blue" %)** If Disalarm = 0**(%%), CPL03-LB/LS will send uplink at every TDC periodically.
339
340
341 )))
342
343 * (((
344 (% style="color:#037691" %)** Keep Status & Keep Time**
345 )))
346
347 (((
348 Shows the configure value of [[Alarm Base on Timeout Feature>>||anchor="H3.3.4AlarmBaseonTimeout"]]
349
350
351 )))
352
353 * (((
354 (% style="color:#037691" %)** Trigger1 mod (default: 0)**
355 )))
356
357 (((
358 The trigger mode of PA8 pin.
359
360 (((
361 0: The pulse count will increment by one after a close to open event.
362 )))
363
364 (((
365 1: The pulse count will increment by one after a open to close event.
366 )))
367 )))
368
369
370
371 * (((
372 (% style="color:#037691" %)** Trigger2 mod (default: 0)**
373 )))
374
375 (((
376 (((
377 The trigger mode of PA4 pin. Only valid when AT+MOD=2.
378
379 (((
380 0: The pulse count will increment by one after a close to open event.
381 )))
382
383 (((
384 1: The pulse count will increment by one after a open to close event.
385 )))
386 )))
387
388
389
390 * (((
391 (% style="color:#037691" %)** Trigger3 mod (default: 0)**
392 )))
393
394 (((
395 (((
396 The trigger mode of PB15 pin. Only valid when AT+MOD=2.
397
398 (((
399 0: The pulse count will increment by one after a close to open event.
400 )))
401
402 (((
403 1: The pulse count will increment by one after a open to close event.
404 )))
405 )))
406
407
408 )))
409 )))
410
411 * (((
412 (% style="color:#037691" %)**Alarm interval(default: 0)**
413 )))
414
415 When the state of the door sensor has not been changed after the timeout alarm, the device will send a uplink every alarm interval. It will stop the alarm until the state of the door sensor is changed after the timeout alarm.
416
417
418 === 2.3.3 CPL01:Real-Time Open/Close Status, Uplink FPORT~=2 ===
419
420
421 **Default working mode, (% style="color:blue" %)AT+MOD=1:(%%)**
422
423 The wiring of the Real-Time Open/Close Status mode is as follows:
424
425 [[image:image-20230810113214-2.png||height="399" width="565"]]
426
427 (((
428 CPL03-LB/LS will send this uplink **after** Device Status once join the LoRaWAN network successfully. And CPL03-LB/LS will:
429 )))
430
431 (((
432 periodically send this uplink every 2 hours, this interval [[can be changed>>||anchor="H3.3.1SetTransmitIntervalTime"]].
433 )))
434
435 (((
436 Uplink Payload totals 11 bytes.
437 )))
438
439 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:515px" %)
440 |=(% colspan="5" style="background-color:#4F81BD;color:white; width: 515px;" %)**Real-Time Open/Close Status, FPORT=2**
441 |(% style="width:60px" %)**Size(bytes)**|(% style="width:65px" %)**1**|(% style="width:65px" %)**3**|(% style="width:240px" %)**3**|(% style="width:90px" %)**4**
442 |(% style="width:101px" %)Value|(% style="width:133px" %)Status & [[Alarm>>||anchor="H3.3.5TTRIGtimeoutstatusalarm"]]|(% style="width:92px" %)Total pulse|(% style="width:247px" %)The last  duration (unit: sec)|(% style="width:149px" %)[[Unix TimeStamp>>||anchor="H2.5.2UnixTimeStamp"]]
443
444 **Status & Alarm field:**
445
446 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:515px" %)
447 |(% style="width:50px" %)**Size(bit)**|(% style="width:50px" %)**[bit7:bit6]**|(% style="width:55px" %)**bit5**|(% style="width:70px" %)**bit4**|(% style="width:60px" %)**bit3**|(% style="width:70px" %)**bit2**|(% style="width:80px" %)**bit1**|(% style="width:80px" %)**bit0**
448 |(% style="width:76px" %)Value|(% style="width:85px" %)Reserve|(% style="width:53px" %)Count mod|(% style="width:61px" %)TDC flag 0:No;1:Yes|(% style="width:65px" %)(((
449 work mod
450 )))|(% style="width:69px" %)Trigger1 mod|(% style="width:90px" %)Alarm: 0: No Alarm; 1: Alarm|(% style="width:82px" %)Status 0: Close; 1: Open
451
452 [[image:image-20230702170355-3.png||height="258" width="902"]]
453
454
455 * (((
456 (% style="color:#037691" %)**Count mod:Default=0**
457 )))
458
459 0: Uplink total open door times since factory
460
461 1 : Uplink total open door times since last FPORT=2 uplink.
462
463
464 * (% style="color:#037691" %)**TDC flag**
465
466 When the flag is 1, it means sending packets at normal time intervals.
467
468 Otherwise, it is a packet sent at non-TDC time.
469
470 (((
471
472
473 * (% style="color:#037691" %)**Work mod**
474
475 0: CPL01-Real-Time Open/Close Status mode.
476
477 1: CPL03-3 pulse mode.
478
479
480 * (% style="color:#037691" %)**Trigger1 mod**
481
482 (((
483 0: The pulse count will increment by one after a close to open event and the last duration is for the open event.
484 )))
485
486 (((
487 1: The pulse count will increment by one after a open to close event and the last duration is for the close event.
488 )))
489
490
491 )))
492
493 * (((
494 (% style="color:#037691" %)** Alarm**
495 )))
496
497 (((
498 See [[Alarm Base on Timeout>>||anchor="H3.3.4AlarmBaseonTimeout"]]
499
500
501 )))
502
503 * (((
504 (% style="color:#037691" %)** Status**
505 )))
506
507 (((
508 0: Open
509 )))
510
511 (((
512 1: Close
513
514
515 )))
516
517 * (((
518 (% style="color:#037691" %)** Total pulse**
519 )))
520
521 (((
522 Total pulse/counting base on dry [[contact trigger event>>||anchor="H2.3.2SensorConfiguration2CFPORT3D4"]]
523 )))
524
525 (((
526 Range (3 Bytes) : 0x000000 ~~ 0xFFFFFF . Max: 16777215
527
528
529 )))
530
531 * (((
532 (% style="color:#037691" %)** The last duration**
533 )))
534
535 (((
536 **1) AT+TTRMOD1=0 **: Dry Contact last open duration.(Unit: sec)
537 )))
538
539 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/CPL01%20LoRaWAN%20Outdoor%20PulseContact%20%20Sensor%20Manual/WebHome/1652860403792-491.png?width=735&height=153&rev=1.1||alt="1652860403792-491.png"]]
540
541
542 (((
543 **2) AT+TTRMOD1=1 **: Dry Contact last close duration.(Unit: sec)
544 )))
545
546 [[image:image-20230710144115-1.png||height="153" width="627"]]
547
548
549 === 2.3.4 CPL03:3 pulse mode, Uplink FPORT~=6 ===
550
551
552 **To use this working mode, you need to set (% style="color:blue" %)AT+MOD=2.(%%)**
553
554 The wiring of the three pulse counting mode are as follows:
555
556 [[image:image-20230810114416-3.png||height="497" width="610"]]
557
558 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:447px" %)
559 |(% style="background-color:#4f81bd; color:white; width:95px" %)**Size(bytes)**|(% style="background-color:#4f81bd; color:white; width:61px" %)**1**|(% style="background-color:#4f81bd; color:white; width:98px" %)**3**|(% style="background-color:#4f81bd; color:white; width:98px" %)**3**|(% style="background-color:#4f81bd; color:white; width:95px" %)**3**
560 |(% style="width:93px" %)Value|(% style="width:59px" %)Status|(% style="width:98px" %)(((
561 Port1 Total Pulse(PA8)
562 )))|(% style="width:96px" %)(((
563 Port2 Total Pulse(PA4)
564 )))|(% style="width:94px" %)(((
565 Port3 Total Pulse(PB15)
566 )))
567
568 (% style="color:blue" %)**Status:**
569
570 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:480px" %)
571 |(% style="background-color:#4f81bd; color:white; width:55px" %)**Size(bit)**|(% style="background-color:#4f81bd; color:white; width:65px" %)**[bit7:bit6]**|(% style="background-color:#4f81bd; color:white; width:75px" %)**bit5**|(% style="background-color:#4f81bd; color:white; width:115px" %)**bit4**|(% style="background-color:#4f81bd; color:white; width:65px" %)**bit3**|(% style="background-color:#4f81bd; color:white; width:105px" %)**[bit2:bit0]**
572 |(% style="width:75px" %)Value|(% style="width:89px" %)Reserve|(% style="width:70px" %)Count mod|(% style="width:111px" %)TDC flag 0:No; 1:Yes|(% style="width:83px" %)(((
573 work mod
574 )))|(% style="width:103px" %)Calculate Flag
575
576 (% style="color:red" %)**Max COUNT for each port is 16777215. Exceed this number will reset to 1.**
577
578 [[image:image-20230702170602-4.png||height="210" width="896"]]
579
580
581 * (((
582 (% style="color:#037691" %)**Count mod:Default=0**
583 )))
584
585 0: Uplink total open door times since factory
586
587 1 : Uplink total open door times since last FPORT=2 uplink.
588
589
590 * (% style="color:#037691" %)**TDC flag**
591
592 When the flag is 1, it means sending packets at normal time intervals.
593
594 Otherwise, it is a packet sent at non-TDC time.
595
596
597 * (% style="color:#037691" %)**Work mod**
598
599 0: CPL01-Real-Time Open/Close Status mode.
600
601 1: CPL03-3 pulse mode.
602
603
604 * (((
605 (% style="color:#037691" %)** Calculate Flag**
606 )))
607
608 (((
609 The calculate flag is a user define field, IoT server can use this filed to handle different meter with different pulse factor. For example, if there are 100 water meters, meter 1 ~~50 are 1 liter/pulse and meter 51 ~~ 100 has 1.5 liter/pulse.
610 )))
611
612 (((
613 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.
614 )))
615
616 (((
617 Default value: 0. 
618 )))
619
620 (((
621 Range (3 bits): (b)000 ~~ (b) 111
622 )))
623
624 (((
625 Refer: [[Set Calculate Flag>>||anchor="H3.3.9Setthecalculateflag"]]
626
627
628 * (((
629 (% style="color:#037691" %)** Port1 Total Pulse(PA8 of pin)**
630 )))
631
632 (((
633 Range (3 Bytes) : 0x000000 ~~ 0xFFFFFF . Max: 16777215.Exceed this number will reset to 1.
634
635
636 * (((
637 (% style="color:#037691" %)** Port2 Total Pulse(PA4 of pin)**
638 )))
639
640 (((
641 Range (3 Bytes) : 0x000000 ~~ 0xFFFFFF . Max: 16777215.Exceed this number will reset to 1.
642
643
644 * (((
645 (% style="color:#037691" %)** Port3 Total Pulse(PB15 of pin)**
646 )))
647
648 (((
649 Range (3 Bytes) : 0x000000 ~~ 0xFFFFFF . Max: 16777215.Exceed this number will reset to 1.
650
651
652 )))
653 )))
654 )))
655 )))
656
657 (% style="color:blue" %)**Related AT Command:**
658
659 (% style="color:#037691" %)**AT+TTRMOD1:  Port1 count mode;  0: Signal falling edge(Default), 1: Signal raising edge**
660
661 AT+TTRMOD1=0  Downlink Command: 0xA4 01 00
662
663 AT+TTRMOD1=1  Downlink Command: 0xA4 01 01
664
665
666 (% style="color:#037691" %)**AT+TTRMOD2:  Port2 count mode;  0: Signal falling edge(Default), 1: Signal raising edge**
667
668 AT+TTRMOD2=0  Downlink Command: 0xA4 02 00
669
670 AT+TTRMOD2=1  Downlink Command: 0xA4 02 01
671
672
673 (% style="color:#037691" %)**AT+TTRMOD3:  Port3 count mode;  0: Signal falling edge(Default), 1: Signal raising edge**
674
675 AT+TTRMOD3=0  Downlink Command: 0xA4 03 00
676
677 AT+TTRMOD3=1  Downlink Command: 0xA4 03 01
678
679
680 (% style="color:#037691" %)**AT+CALCFLAG:  Calculate Flag ( Default : 0 )**
681
682 AT+CALCFLAG=aa  Downlink Command: 0xA5 aa
683
684
685 (% style="color:#037691" %)**AT+COUNTMOD:  Accumulative Mode;  0: Accumulative (Default),1: Reset after uplink.**
686
687 AT+COUNTMOD=0 Downlink Command: 0x0B 00
688
689 AT+COUNTMOD=1 Downlink Command: 0x0B 01
690
691
692 (% style="color:#037691" %)**AT+SETCNT:  Set count value**
693
694 AT+SETCNT=1,aa  Downlink Command: 0xA6 01 aa aa aa
695
696 AT+SETCNT=2,aa  Downlink Command: 0xA6 02 aa aa aa
697
698 AT+SETCNT=3,aa  Downlink Command: 0xA6 03 aa aa aa
699
700
701 === 2.3.5 Historical Open/Close Event, FPORT~=3 ===
702
703
704 (((
705 CPL03-LB/LS stores sensor values and users can retrieve these history values via the [[downlink command>>||anchor="H2.5DatalogFeature"]].
706 )))
707
708 (((
709 The historical payload includes one or multiplies entries and every entry has the same payload as Real-Time open/close status.
710 )))
711
712 * (((
713 Each data entry is 11 bytes and has the same structure as [[Real-Time open/close status>>||anchor="H2.3.3CPL01:Real-TimeOpen2FCloseStatus2CUplinkFPORT3D2"]], to save airtime and battery, CPL03-LB/LS will send max bytes according to the current DR and Frequency bands.
714 )))
715
716 (((
717 For example, in the US915 band, the max payload for different DR is:
718 )))
719
720 (((
721 a) (% style="color:blue" %)**DR0**(%%): max is 11 bytes so one entry of data
722 )))
723
724 (((
725 b) (% style="color:blue" %)**DR1**(%%): max is 53 bytes so devices will upload 4 entries of data (total 44 bytes)
726 )))
727
728 (((
729 c) (% style="color:blue" %)**DR2**(%%): total payload includes 11 entries of data
730 )))
731
732 (((
733 d) (% style="color:blue" %)**DR3**(%%): total payload includes 22 entries of data.
734 )))
735
736 (((
737 If CPL03-LB/LS doesn't have any data in the polling time. It will uplink 11 bytes of 0
738
739
740 )))
741
742 (% style="color:blue" %)** Downlink:**
743
744 (% class="box" %)
745 (((
746 0x31 64 AE 52 C2 64 AE 54 E0 05
747 )))
748
749 [[image:image-20230712154740-1.png||height="160" width="1050"]]
750
751
752 (% style="color:blue" %)** Uplink:**
753
754 (% class="box" %)
755 (((
756 41 00 00 01 00 00 32 64 AE 52 C2 41 00 00 20 00 00 00 64 AE 52 C9 61 00 00 0C 00 00 00 64 AE 53 45 64 00 00 12 00 00 3D 64 AE 54 11 78 00 00 00 00 00 00 64 AE 54 4B 68 00 00 17 00 00 05 64 AE 54 86 4C 00 00 17 00 00 05 64 AE 54 AB 4C 00 00 17 00 00 05 64 AE 54 B7 4C 00 00 17 00 00 05 64 AE 54 E0
757 )))
758
759 (% style="color:#037691" %)** **
760
761 (% style="color:#037691" %)**Parsed Value:**
762
763 (% style="color:#037691" %)**CPL01:**
764
765 (((
766 (% class="MsoNormal" %)
767 (% lang="EN-US" style="background-attachment:initial; background-clip:initial; background-image:initial; background-origin:initial; background-position:initial; background-repeat:initial; background-size:initial; font-family:Arial,sans-serif" %)[WORKMOD,  COUNTMOD,  TDC_FLAG, ALARM,  STATUS,  TRIGGER1_MOD,  TOTAL_PULSE,  LAST_DURATION, TIME]
768
769 (% class="MsoNormal" %)
770 (% lang="EN-US" %)[CPL01,SUM,NO,FALSE,OPEN,0,1,50,2023-07-12 07:14:10],
771
772 (% class="MsoNormal" %)
773 (% lang="EN-US" %)[CPL01,SUM,NO,FALSE,OPEN,0,32,0,2023-07-12 07:14:17],
774
775 (% class="MsoNormal" %)
776 (% lang="EN-US" %)[CPL01,PART,NO,FALSE,OPEN,0,12,0,2023-07-12 07:16:21],
777
778 (% class="MsoNormal" %)
779 (% lang="EN-US" %)[CPL01,PART,NO,FALSE,CLOSE,1,18,61,2023-07-12 07:19:45],
780
781 (((
782
783
784 (% style="color:#037691" %)**CPL03:Due to the limitation of byte length, only count value 1 and count value 2 are sent in the data record data.**
785 )))
786
787 (% class="MsoNormal" %)
788 (% lang="EN-US" style="background-attachment:initial; background-clip:initial; background-image:initial; background-origin:initial; background-position:initial; background-repeat:initial; background-size:initial; font-family:Arial,sans-serif" %)[WORKMOD, COUNTMOD, TDC_FLAG, (%%)CALCULATE_FLAG, (% lang="EN-US" style="background-attachment:initial; background-clip:initial; background-image:initial; background-origin:initial; background-position:initial; background-repeat:initial; background-size:initial; font-family:Arial,sans-serif" %) PORT1_TOTAL_PULSE,  PORT2_TOTAL_PULSE, TIME]
789
790 (% class="MsoNormal" %)
791 (% lang="EN-US" %)[CPL03,PART,YES,0,0,0,2023-07-12 07:20:43],
792
793 (% class="MsoNormal" %)
794 (% lang="EN-US" %)[CPL03,PART,NO,0,23,5,2023-07-12 07:21:42],
795
796 (% class="MsoNormal" %)
797 (% lang="EN-US" %)[CPL03,SUM,NO,4,23,5,2023-07-12 07:22:19],
798
799 (% class="MsoNormal" %)
800 (% lang="EN-US" %)[CPL03,SUM,NO,4,23,5,2023-07-12 07:22:31],
801
802 (% class="MsoNormal" %)
803 (% lang="EN-US" %)[CPL03,SUM,NO,4,23,5,2023-07-12 07:23:12],
804 )))
805
806 [[image:image-20230712155210-4.png||height="194" width="785"]]
807
808
809 == 2.4 Payload Decoder file ==
810
811
812 In TTN, use can add a custom payload so it shows friendly reading
813
814 In the page (% style="color:#037691" %)**Applications ~-~-> Payload Formats ~-~-> Custom ~-~-> decoder**(%%) to add the decoder from: [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>https://github.com/dragino/dragino-end-node-decoder]]
815
816
817 == 2.5 Datalog Feature ==
818
819
820 Datalog Feature is to ensure IoT Server can get all sampling data from Sensor even if the LoRaWAN network is down. For each sampling, CPL03-LB/LS will store the reading for future retrieving purposes.
821
822 (% style="color:red" %)**Note:After the device is reset, in cumulative counting mode ,the last stored count value will be read as the initial value.**
823
824
825 === 2.5.1 Ways to get datalog via LoRaWAN ===
826
827
828 Set PNACKMD=1, CPL03-LB/LS will wait for ACK for every uplink, when there is no LoRaWAN network, CPL03-LB/LS will mark these records with non-ack messages and store the sensor data, and it will send all messages (10s interval) after the network recovery.
829
830 * (((
831 a) CPL03-LB/LS will do an ACK check for data records sending to make sure every data arrive server.
832 )))
833 * (((
834 b) CPL03-LB/LS will send data in **CONFIRMED Mode** when PNACKMD=1, but CPL03-LB/LS won't re-transmit the packet if it doesn't get ACK, it will just mark it as a NONE-ACK message. In a future uplink if CPL03-LB/LS gets a ACK, CPL03-LB/LS will consider there is a network connection and resend all NONE-ACK messages.
835 )))
836
837 === 2.5.2 Unix TimeStamp ===
838
839
840 CPL03-LB/LS uses Unix TimeStamp format based on
841
842 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20220523001219-11.png?width=627&height=97&rev=1.1||alt="图片-20220523001219-11.png" height="97" width="627"]]
843
844 User can get this time from link:  [[https:~~/~~/www.epochconverter.com/>>url:https://www.epochconverter.com/]] :
845
846 Below is the converter example
847
848 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20220523001219-12.png?width=720&height=298&rev=1.1||alt="图片-20220523001219-12.png" height="298" width="720"]]
849
850
851 So, we can use AT+TIMESTAMP=1611889405 or downlink 3060137afd00 to set the current time 2021 – Jan ~-~- 29 Friday 03:03:25
852
853
854 === 2.5.3 Set Device Time ===
855
856
857 User need to set (% style="color:blue" %)**SYNCMOD=1**(%%) to enable sync time via MAC command.
858
859 Once CPL03-LB/LS Joined LoRaWAN network, it will send the MAC command (DeviceTimeReq) and the server will reply with (DeviceTimeAns) to send the current time to CPL03-LB/LS. If CPL03-LB/LS fails to get the time from the server, CPL03-LB/LS will use the internal time and wait for next time request (AT+SYNCTDC to set the time request period, default is 10 days).
860
861 (% style="color:red" %)**Note: LoRaWAN Server need to support LoRaWAN v1.0.3(MAC v1.0.3) or higher to support this MAC command feature, Chirpstack,TTN V3 v3 and loriot support but TTN V3 v2 doesn't support. If server doesn't support this command, it will through away uplink packet with this command, so user will lose the packet with time request for TTN V3 v2 if SYNCMOD=1.**
862
863
864 === 2.5.4 Poll sensor value ===
865
866
867 Users can poll sensor values based on timestamps. Below is the downlink command.
868
869 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:425.818px" %)
870 |(% colspan="4" style="background-color:#4f81bd; color:white; width:423px" %)**Downlink Command to poll Open/Close status (0x31)**
871 |(% style="width:58px" %)**1byte**|(% style="width:127px" %)**4bytes**|(% style="width:124px" %)**4bytes**|(% style="width:114px" %)**1byte**
872 |(% style="width:58px" %)31|(% style="width:127px" %)Timestamp start|(% style="width:124px" %)Timestamp end|(% style="width:114px" %)Uplink Interval
873
874 (((
875 Timestamp start and Timestamp end-use Unix TimeStamp format as mentioned above. Devices will reply with all data logs during this period, using the uplink interval.
876 )))
877
878 (((
879 For example, downlink command [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/CPL01%20LoRaWAN%20Outdoor%20PulseContact%20%20Sensor%20Manual/WebHome/image-20220518162852-1.png?rev=1.1||alt="image-20220518162852-1.png"]]
880 )))
881
882 (((
883 Is to check 2021/11/12 12:00:00 to 2021/11/12 15:00:00's data
884 )))
885
886 (((
887 Uplink Internal =5s,means CPL03-LB/LS will send one packet every 5s. range 5~~255s.
888 )))
889
890
891 == 2.6 Frequency Plans ==
892
893
894 The CPL03-LB/LS uses OTAA mode and below frequency plans by default. Each frequency band use different firmware, user update the firmware to the corresponding band for their country.
895
896 [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/]]
897
898
899 = 3. Configure CPL03-LB/LS =
900
901 == 3.1 Configure Methods ==
902
903
904 CPL03-LB/LS supports below configure method:
905
906 * AT Command via Bluetooth Connection (**Recommended**): [[BLE Configure Instruction>>http://wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/]].
907
908 * AT Command via UART Connection : See [[UART Connection>>http://wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H2.3UARTConnectionforSN50v3basemotherboard]].
909
910 * LoRaWAN Downlink.  Instruction for different platforms: See [[IoT LoRaWAN Server>>http://wiki.dragino.com/xwiki/bin/view/Main/]] section.
911
912 == 3.2 General Commands ==
913
914
915 These commands are to configure:
916
917 * General system settings like: uplink interval.
918
919 * LoRaWAN protocol & radio related command.
920
921 They are same for all Dragino Devices which support DLWS-005 LoRaWAN Stack. These commands can be found on the wiki:
922
923 [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/]]
924
925
926 == 3.3 Commands special design for CPL03-LB/LS ==
927
928
929 These commands only valid for CPL03-LB/LS, as below:
930
931
932 === 3.3.1 Set Transmit Interval Time ===
933
934
935 (((
936 Feature: Change LoRaWAN End Node Transmit Interval.
937 )))
938
939 (((
940 (% style="color:blue" %)**AT Command: AT+TDC**
941 )))
942
943 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
944 |=(% style="width: 156px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 137px;background-color:#4F81BD;color:white" %)**Function**|=(% style="background-color:#4F81BD;color:white" %)**Response**
945 |(% style="width:156px" %)AT+TDC=?|(% style="width:137px" %)Show current transmit Interval|(((
946 30000
947 OK
948 the interval is 30000ms = 30s
949 )))
950 |(% style="width:156px" %)AT+TDC=60000|(% style="width:137px" %)Set Transmit Interval|(((
951 OK
952 Set transmit interval to 60000ms = 60 seconds
953 )))
954
955 (((
956 (% style="color:blue" %)**Downlink Command: 0x01**
957 )))
958
959 (((
960 Format: Command Code (0x01) followed by 3 bytes time value.
961 )))
962
963 (((
964 If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01.
965 )))
966
967 * (((
968 Example 1: Downlink Payload: 01 00 00 1E  ~/~/ Set Transmit Interval (TDC) = 30 seconds
969 )))
970
971 * (((
972 Example 2: Downlink Payload: 01 00 00 3C  ~/~/ Set Transmit Interval (TDC) = 60 seconds
973 )))
974
975 === 3.3.2 Set Power Output Duration ===
976
977
978 Control the output duration 5V . Before each sampling, device will
979
980 ~1. first enable the power output to external sensor,
981
982 2. keep it on as per duration, read sensor value and construct uplink payload
983
984 3. final, close the power output.
985
986 (% style="color:blue" %)**AT Command: AT+5VT**
987
988 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
989 |=(% style="width: 155px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 197px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 158px;background-color:#4F81BD;color:white" %)**Response**
990 |(% style="width:154px" %)AT+5VT=?|(% style="width:196px" %)Show 5V open time.|(% style="width:157px" %)0 (default)
991 OK
992 |(% style="width:154px" %)AT+5VT=500|(% style="width:196px" %)Close after a delay of 500 milliseconds.|(% style="width:157px" %)OK
993
994 (% style="color:blue" %)**Downlink Command: 0x07**
995
996 Format: Command Code (0x07) followed by 2 bytes.
997
998 The first and second bytes are the time to turn on.
999
1000 * Example 1: Downlink Payload: 07 00 00  **~-~-->**  AT+5VT=0
1001
1002 * Example 2: Downlink Payload: 07 01 F4  **~-~-->**  AT+5VT=500
1003
1004 === 3.3.3 Enable / Disable Alarm ===
1005
1006
1007 **It only takes effect when (% style="color:blue" %)AT+MOD=1(%%).**
1008
1009 Feature: Enable/Disable Alarm for open/close event. Default value 0.
1010
1011 (% style="color:blue" %)**AT Command:**
1012
1013 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:515px" %)
1014 |(% style="background-color:#4f81bd; color:white; width:153px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:277px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:85px" %)**Response**
1015 |(% style="width:154px" %)AT+DISALARM=1|(% style="width:278px" %)End node will only send packets in TDC time.|OK
1016 |(% style="width:154px" %)AT+DISALARM=0|(% style="width:278px" %)End node will send packets in TDC time or status change for door sensor|OK
1017
1018 (% style="color:blue" %)**Downlink Command:**
1019
1020 **0xA7 01**  ~/~/  Same As AT+DISALARM=1
1021
1022 **0xA7 00    ** ~/~/  Same As AT+DISALARM=0
1023
1024
1025 === 3.3.4 Alarm Base on Timeout ===
1026
1027
1028 **It only takes effect when (% style="color:blue" %)AT+MOD=1(%%).**
1029
1030 (((
1031 CPL03-LB/LS 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:
1032 )))
1033
1034 (((
1035 (% style="color:#4f81bd" %)**1. Keep Status: Status to be monitor**
1036 )))
1037
1038 (((
1039 **Keep Status = 1**: Monitor Close to Open event
1040 )))
1041
1042 (((
1043 **Keep Status = 0**: Monitor Open to Close event
1044 )))
1045
1046
1047 (((
1048 (% style="color:#4f81bd" %)**2. Keep Time: Timeout to send an Alarm**
1049 )))
1050
1051 (((
1052 Range 0 ~~ 65535(0xFFFF) seconds.
1053 )))
1054
1055 (((
1056 If** keep time = 0**, Disable Alarm Base on Timeout feature.
1057 )))
1058
1059 (((
1060 If **keep time > 0**, device will monitor the keep status event and send an alarm when status doesn’t change after timeout.
1061 )))
1062
1063
1064 (((
1065 (% style="color:#4f81bd" %)**AT Command**(%%) to configure:
1066 )))
1067
1068 (((
1069 (% style="color:blue" %)**AT+TTRIG=1,30**(%%)  ~-~-> When the **Keep Status** change from connect to disconnect, and device remains in disconnect status for more than 30 seconds. CPL03-LB/LS will send an uplink packet, the [[Alarm bit>>||anchor="H2.3.3Real-TimeOpen2FCloseStatus2CUplinkFPORT3D2"]] (the second bit of 1^^st^^ byte of payload) on this uplink packet is set to 1.
1070 )))
1071
1072 (((
1073 (% style="color:blue" %)**AT+TTRIG=0,0 **(%%) ~-~-> Default Value, disable timeout Alarm.
1074 )))
1075
1076
1077 (((
1078 (% style="color:#4f81bd" %)**Downlink Command**(%%) to configure:
1079 )))
1080
1081 (((
1082 **Command: 0xA9 aa bb cc**
1083 )))
1084
1085 (((
1086 **A9: **Command Type Code
1087 )))
1088
1089 (((
1090 **aa: **status to be monitored
1091 )))
1092
1093 (((
1094 **bb cc: **timeout.
1095 )))
1096
1097
1098 (((
1099 If user send 0xA9 01 00 1E: equal to AT+TTRIG=1,30
1100 )))
1101
1102 (((
1103 Or
1104 )))
1105
1106 (((
1107 0xA9 00 00 00: Equal to AT+TTRIG=0,0. Disable timeout Alarm.
1108 )))
1109
1110
1111 === 3.3.5 TTRIG timeout status alarm ===
1112
1113
1114 **It only takes effect when (% style="color:blue" %)AT+MOD=1(%%).**
1115
1116 (((
1117 It needs to be used with AT+TTRIG . When TTRIG times out and causes an alarm, and the status does not change subsequently, an alarm packet will be sent at the alarm interval.
1118 )))
1119
1120 (% style="color:blue" %)**AT Command:**
1121
1122 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:515px" %)
1123 |(% style="background-color:#4f81bd; color:white; width:181px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:248px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:86px" %)**Response**
1124 |(% style="width:181px" %)AT+TTRALARM=0|(% style="width:248px" %)Disable continuous alarm.|(% style="width:104px" %)OK(default)
1125 |(% style="width:181px" %)AT+TTRALARM=60|(% style="width:248px" %)The alarm interval is 60 minutes (unit: minutes)|(% style="width:104px" %)OK
1126
1127 (% style="color:blue" %)**Downlink Command:**
1128
1129 Example:  0C aa  => AT+TTRALARM= aa
1130
1131
1132 === 3.3.6 Set trigger mode of PA8 ===
1133
1134
1135 Feature: Set the trigger interrupt mode.
1136
1137 (% style="color:blue" %)**AT Command: AT+TTRMOD1**
1138
1139 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:499px" %)
1140 |=(% style="width: 157px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 246px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 96px; background-color:#4F81BD;color:white" %)**Response**
1141 |(% style="width:157px" %)(((
1142 AT+TTRMOD1=1
1143 )))|(% style="width:156px" %)Count and trigger from open to close (rising edge)|(% style="width:96px" %)(((
1144 (((
1145 OK
1146 )))
1147 )))
1148 |(% style="width:157px" %)(((
1149 AT+TTRMOD1=0
1150 )))|(% style="width:156px" %)Count and trigger from close to open (falling edge)|(% style="width:96px" %)(((
1151 OK(default)
1152 )))
1153
1154 (% style="color:blue" %)**Downlink Command:**
1155
1156 * **Example1**: 0xA4 01 01  ~/~/  Same as AT+ TTRMOD1 =1
1157 * **Example2**: 0xA4 01 00  ~/~/  Same as AT+ TTRMOD1 =0
1158
1159 === 3.3.7 Set trigger mode of PA4 ===
1160
1161
1162 **It only takes effect when (% style="color:blue" %)AT+MOD=2(%%).**
1163
1164 Feature: Set the trigger interrupt mode.
1165
1166 (% style="color:blue" %)**AT Command: AT+TTRMOD2**
1167
1168 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:501px" %)
1169 |=(% style="width: 157px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 246px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 98px; background-color:#4F81BD;color:white" %)**Response**
1170 |(% style="width:157px" %)(((
1171 AT+TTRMOD2=1
1172 )))|(% style="width:156px" %)Count and trigger from open to close (rising edge)|(% style="width:98px" %)(((
1173 (((
1174 OK
1175 )))
1176 )))
1177 |(% style="width:157px" %)(((
1178 AT+TTRMOD2=0
1179 )))|(% style="width:156px" %)Count and trigger from close to open (falling edge)|(% style="width:98px" %)(((
1180 OK(default)
1181 )))
1182
1183 (% style="color:blue" %)**Downlink Command:**
1184
1185 * **Example1**: 0xA4 02 01  ~/~/  Same as AT+ TTRMOD2 =1
1186 * **Example2**: 0xA4 02 00  ~/~/  Same as AT+ TTRMOD2 =0
1187
1188 === 3.3.8 Set trigger mode of PB15 ===
1189
1190
1191 **It only takes effect when (% style="color:blue" %)AT+MOD=2(%%).**
1192
1193 Feature: Set the trigger interrupt mode.
1194
1195 (% style="color:blue" %)**AT Command: AT+TTRMOD3**
1196
1197 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:500px" %)
1198 |=(% style="width: 157px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 246px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 97px; background-color:#4F81BD;color:white" %)**Response**
1199 |(% style="width:157px" %)(((
1200 AT+TTRMOD3=1
1201 )))|(% style="width:156px" %)Count and trigger from open to close (rising edge)|(% style="width:97px" %)(((
1202 (((
1203 OK
1204 )))
1205 )))
1206 |(% style="width:157px" %)(((
1207 AT+TTRMOD3=0
1208 )))|(% style="width:156px" %)Count and trigger from close to open (falling edge)|(% style="width:97px" %)(((
1209 OK(default)
1210 )))
1211
1212 (% style="color:blue" %)**Downlink Command:**
1213
1214 * **Example1**: 0xA4 03 01  ~/~/  Same as AT+ TTRMOD3 =1
1215 * **Example2**: 0xA4 03 00  ~/~/  Same as AT+ TTRMOD3 =0
1216
1217 === 3.3.9 Set the calculate flag ===
1218
1219
1220 **It only takes effect when (% style="color:blue" %)AT+MOD=2(%%).**
1221
1222 Feature: Set the calculate flag.**(Range is 0 to 7)**
1223
1224 (% style="color:blue" %)**AT Command: AT+CALCFLAG**
1225
1226 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:472px" %)
1227 |=(% style="width: 158px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 193px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 121px; background-color:#4F81BD;color:white" %)**Response**
1228 |(% style="width:158px" %)AT+CALCFLAG =0|(% style="width:192px" %)Set the calculate flag to 0.|(% style="width:119px" %)OK(default)
1229 |(% style="width:158px" %)AT+CALCFLAG =2|(% style="width:192px" %)Set the calculate flag to 2.|(% style="width:119px" %)OK
1230
1231 (% style="color:blue" %)**Downlink Command:**
1232
1233 * **Example**: 0XA5 01  ~/~/  Same as AT+CALCFLAG =1
1234
1235 === 3.3.10 Set count number ===
1236
1237
1238 Feature: Manually set the count number
1239
1240 In CPL01 work mode, the Total_pulse set by the "AT+SETCNT=1,xx" command.
1241
1242 In CPL03 work mode, the Port1_Total_pulse(PA8) set by the "AT+SETCNT=1,xx" command.
1243
1244 (% style="color:blue" %)**AT Command: AT+SETCNT**
1245
1246 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:479px" %)
1247 |=(% style="width: 160px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 223px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 96px;background-color:#4F81BD;color:white" %)**Response**
1248 |(% style="width:160px" %)AT+ SETCNT =1,100|(% style="width:221px" %)Set the count number to 0.|(% style="width:95px" %)OK
1249 |(% style="width:160px" %)AT+ SETCNT =2,0|(% style="width:221px" %)Set the count number to 100.|(% style="width:95px" %)OK
1250 |(% style="width:160px" %)AT+ SETCNT =3,50|(% style="width:221px" %)Set the count number to 50.|(% style="width:95px" %)OK
1251
1252 (% style="color:blue" %)**Downlink Command:**
1253
1254 0xA6 01 00 00 64  ==>  AT+SETCNT=1,100
1255
1256 0xA6 02 00 00 00  ==>  AT+SETCNT=2,0
1257
1258 0xA6 03 00 00 32  ==>  AT+SETCNT=3,50
1259
1260
1261 === 3.3.11  Clear all counter values ===
1262
1263
1264 Feature: Manually clear all counter values
1265
1266 (% style="color:blue" %)**AT Command:**
1267
1268 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:479px" %)
1269 |=(% style="width: 160px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 223px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 96px;background-color:#4F81BD;color:white" %)**Response**
1270 |(% style="width:160px" %)AT+CLRC|(% style="width:221px" %)Set all counter values to 0.|(% style="width:95px" %)OK
1271
1272 (% style="color:blue" %)**Downlink Command: **(%%)0xA6 01
1273
1274
1275 === 3.3.12  Count Mod ===
1276
1277
1278 Feature: Manually set the count mode.
1279
1280 (% style="color:blue" %)**AT Command:**
1281
1282 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:515px" %)
1283 |=(% style="width: 160px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 269px; background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 86px; background-color:#4F81BD;color:white" %)**Response**
1284 |(% style="width:160px" %)AT+COUNTMOD=0|(% style="width:318px" %)the count value keeps accumulating mode|(% style="width:96px" %)OK(default)
1285 |(% style="width:160px" %)AT+COUNTMOD=1|(% style="width:318px" %)the count value will be reset after each TDC time(Last Close Duration Reset after each uplink)|(% style="width:96px" %)OK
1286
1287 (% style="color:blue" %)**Downlink Command:**
1288
1289 Example1:  0B 00  => AT+COUNTMOD=0
1290
1291 Example2:  0B 01  => AT+COUNTMOD=1
1292
1293
1294 === 3.3.13  Work Mod ===
1295
1296
1297 Feature: Manually set the work mode.
1298
1299 (% style="color:blue" %)**AT Command:**
1300
1301 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:474px" %)
1302 |=(% style="width: 155px; background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 223px; background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 96px; background-color:#4F81BD;color:white" %)**Response**
1303 |(% style="width:155px" %)AT+MOD=1|(% style="width:223px" %)Set the Real-Time Open/Close Status mode(CPL01).|(% style="width:96px" %)OK(default)
1304 |(% style="width:155px" %)AT+MOD=2|(% style="width:223px" %)Set the 3 pulse mode(CPL03).|(% style="width:96px" %)OK
1305
1306 (% style="color:blue" %)**Downlink Command:**
1307
1308 Example1:  0A 01  => AT+MOD=1
1309
1310 Example2:  0A 02  => AT+MOD=2
1311
1312
1313 === 3.3.14  Set Time Sync Mode ===
1314
1315
1316 Feature: Enable/Disable Sync system time via LoRaWAN MAC Command (DeviceTimeReq), LoRaWAN server must support v1.0.3 protocol to reply to this command.
1317
1318 SYNCMOD is set to 1 by default. If user wants to set a different time from the LoRaWAN server, the user needs to set this to 0.
1319
1320 (% style="color:blue" %)**AT Command:**
1321
1322 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:515px" %)
1323 |=(% style="width: 160px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 269px; background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 86px; background-color:#4F81BD;color:white" %)**Response**
1324 |(% style="width:160px" %)AT+SYNCMOD=1|(% style="width:318px" %)Enable Sync system time via LoRaWAN MAC Command (DeviceTimeReq) The default is zero time zone.|(% style="width:98px" %)OK(default)
1325 |(% style="width:160px" %)AT+SYNCMOD=1,8|(% style="width:318px" %)Enable Sync system time via LoRaWAN MAC Command (DeviceTimeReq) Set to East eight time zone.|(% style="width:98px" %)OK
1326 |(% style="width:160px" %)AT+SYNCMOD=1,-12|(% style="width:318px" %)Enable Sync system time via LoRaWAN MAC Command (DeviceTimeReq) Set to West Twelve Time Zone.|(% style="width:98px" %)OK
1327
1328 (% style="color:blue" %)**Downlink Command:**
1329
1330 0x28 01  ~/~/ Same As AT+SYNCMOD=1
1331
1332 0x28 01 08  ~/~/ Same As AT+SYNCMOD=1,8
1333
1334 0x28 01 F4  ~/~/ Same As AT+SYNCMOD=1,-12
1335
1336 0x28 00  ~/~/ Same As AT+SYNCMOD=0
1337
1338
1339 = 4. Battery & Power Consumption =
1340
1341
1342 CPL03-LB use ER26500 + SPC1520 battery pack and CPL03-LS use 3000mAh Recharable Battery with Solar Panel. See below link for detail information about the battery info and how to replace.
1343
1344 [[**Battery Info & Power Consumption Analyze**>>http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] .
1345
1346
1347 = 5. OTA Firmware update =
1348
1349
1350 (% class="wikigeneratedid" %)
1351 User can change firmware CPL03-LB/LS to:
1352
1353 * Change Frequency band/ region.
1354
1355 * Update with new features.
1356
1357 * Fix bugs.
1358
1359 Firmware and changelog can be downloaded from : **[[Firmware download link>>https://www.dropbox.com/sh/f3r5k6l7ksplc8x/AACmkH3z1aRpujcaMeEGyPxwa?dl=0]]**
1360
1361 Methods to Update Firmware:
1362
1363 * (Recommanded way) OTA firmware update via wireless : **[[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/Firmware%20OTA%20Update%20for%20Sensors/>>url:http://wiki.dragino.com/xwiki/bin/view/Main/Firmware%20OTA%20Update%20for%20Sensors/]]**
1364
1365 * Update through UART TTL interface : **[[Instruction>>url:http://wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H1.LoRaSTv4baseHardware]]**.
1366
1367 = 6. FAQ =
1368
1369 == 6.1  AT Commands input doesn't work ==
1370
1371
1372 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.
1373
1374
1375 == 6.2  How to Connect Dry contacts or Wet Contacts ==
1376
1377
1378 CPL03-LB/LS can only be connected to dry contacts by default, and the wiring method is to connect the two ports of dry contacts to the VDD pin and pulse input pin of CPL03-LB/LS respectively.
1379
1380 If you want to connect a wet contact, you need to change the original wiring method. The wiring method is that the GND of the wet contact is connected to the GND of CPL03-LB/LS, and the pulse output is connected to the pulse pin, but the pulse output voltage of the wet contact must be less than 3.6V.
1381
1382
1383 == 6.3 What is the maximum total number of pulses for CPL03? What happens after the maximum total number of pulses is reached? ==
1384
1385
1386 The maximum total number of pulses for CPL03 is three bytes FF FF FF (16,777,215)
1387 The count is reset when the maximum total number of pulses is reached
1388
1389
1390 = 7. Order Info =
1391
1392
1393 **Part Number: (% style="color:blue" %)CPL03-LB-XX (%%)or(% style="color:blue" %) CPL03-LS-XX(%%)**
1394
1395 (% style="color:red" %)**XX**(%%): The default frequency band
1396
1397 * (% style="color:red" %)**AS923**(%%): LoRaWAN AS923 band
1398
1399 * (% style="color:red" %)**AU915**(%%): LoRaWAN AU915 band
1400
1401 * (% style="color:red" %)**EU433**(%%): LoRaWAN EU433 band
1402
1403 * (% style="color:red" %)**EU868**(%%): LoRaWAN EU868 band
1404
1405 * (% style="color:red" %)**KR920**(%%): LoRaWAN KR920 band
1406
1407 * (% style="color:red" %)**US915**(%%): LoRaWAN US915 band
1408
1409 * (% style="color:red" %)**IN865**(%%): LoRaWAN IN865 band
1410
1411 * (% style="color:red" %)**CN470**(%%): LoRaWAN CN470 band
1412
1413 = 8. ​Packing Info =
1414
1415
1416 (% style="color:#037691" %)**Package Includes**:
1417
1418 * CPL03-LB or CPL03-LS** **LoRaWAN Pulse/Contact Sensor x 1
1419
1420 (% style="color:#037691" %)**Dimension and weight**:
1421
1422 * Device Size: cm
1423
1424 * Device Weight: g
1425
1426 * Package Size / pcs : cm
1427
1428 * Weight / pcs : g
1429
1430 = 9. Support =
1431
1432
1433 * 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.
1434
1435 * 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.cc>>mailto:Support@dragino.cc]].
Copyright ©2010-2022 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0