Show last authors
1 (% style="text-align:center" %)
2 [[image:1652856952171-363.png]]
3
4
5
6
7
8 **Table of Contents:**
9
10 {{toc/}}
11
12
13
14 = 1. Introduction =
15
16 == 1.1 What is CPL01 LoRaWAN Pulse/Contact Sensor ==
17
18 (((
19
20
21 The Dragino CPL01 is a (% style="color:blue" %)**LoRaWAN Contact Sensor**(%%). It detects open/close status and uplink to IoT server via LoRaWAN network. user can see the dry contact status, open time, open counts in the IoT Server.
22 )))
23
24 (((
25 CPL01 is powered by (% style="color:blue" %)**8500mAh Li-SOCI2 battery**(%%), It is designed for long term use up to 10 years. (Actually Battery life depends on the use environment, update period.)
26 )))
27
28 (((
29 The CPL01 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.
30 )))
31
32 (((
33 CPL01 has the open alarm feature, user can set this feature so device will send Alarm if the contact has been open for a certain time.
34 )))
35
36 (((
37 CPL01 is designed for outdoor use. It has a weatherproof enclosure and industrial level battery to work in low to high temperatures.
38 )))
39
40 (((
41 Each CPL01 is pre-load with a set of unique keys for LoRaWAN registration, register these keys to LoRaWAN server and it will auto connect after power on.
42 )))
43
44 (((
45 *Battery life depends on how often to send data, please see [[battery analyzer>>||anchor="H4.Battery26howtoreplace"]].
46 )))
47
48
49 == 1.2 Features ==
50
51
52 * LoRaWAN v1.0.3 Class A protocol.
53 * Frequency Bands: CN470/EU433/KR920/US915/EU868/AS923/AU915/IN865/RU864
54 * Open/Close detect
55 * Open/Close statistics
56 * 8500mAh industrial battery(none-rechargeable)
57 * AT Commands to change parameters
58 * Uplink on periodically and open/close event
59 * Datalog feature
60 * Remote configure parameters via LoRa Downlink
61 * Firmware upgradable via program port
62 * Wall Mountable
63 * Outdoor Use
64
65
66
67 == 1.3 Installation ==
68
69
70 Connect CPL01 to an Open Close sensor like below. So it can detect the open/close event.
71
72
73 [[image:1652857419839-473.png||height="435" width="482"]]
74
75
76 [[image:image-20221117175638-1.png||height="282" width="750"]]
77
78
79 == 1.4 Storage & Operation Temperature ==
80
81
82 -40°C to +85°C
83
84
85 == 1.5 Applications ==
86
87
88 (% class="wikigeneratedid" %)
89 (% style="display:none" %)
90
91 * Open/Close Detection
92 * Pulse meter application
93 * Dry Contact Detection
94
95
96
97 == 1.6 Mechanical ==
98
99
100 [[image:1652857762997-798.png]]
101
102
103 [[image:1652857791347-991.png]]
104
105
106 == 1.7 Pin Definitions and Switch ==
107
108
109 [[image:1652857867227-591.png||height="374" width="727"]]
110
111
112 === 1.7.1 Pin Definition ===
113
114
115 CPL01 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 user manual of LSN50v2 at: [[https:~~/~~/www.dropbox.com/sh/djkxs7mr17y94mi/AABVlWbM9uzK9OA3mXyAT10Za?dl=0>>https://www.dropbox.com/sh/djkxs7mr17y94mi/AABVlWbM9uzK9OA3mXyAT10Za?dl=0]]
116
117
118 === 1.7.2 Jumper JP2(Power ON/OFF) ===
119
120
121 Power on Device when putting this jumper.
122
123
124 === 1.7.3 BOOT MODE / SW1 ===
125
126
127 (((
128 1) ISP: upgrade mode, device won't have any signal in this mode. but ready for upgrade firmware. LED won't work. Firmware won't run.
129 )))
130
131 (((
132 2) Flash: work mode, the device starts to work and send out console output for further debug
133 )))
134
135
136 === 1.7.4 Reset Button ===
137
138
139 Press to reboot the device.
140
141
142 === 1.7.5 LED ===
143
144
145 It will flash:
146
147 1. Boot the device in flash mode
148 1. Send an uplink packet
149
150
151
152 = 2. Operation Mode =
153
154 == 2.1 How it works? ==
155
156
157 (((
158 Each CPL01 is shipped with a worldwide unique set of OTAA keys. To use CPL01 in a LoRaWAN network, user needs to input the OTAA keys in the LoRaWAN network server. So CPL01 can join the LoRaWAN network and start to transmit sensor data.
159 )))
160
161
162 == 2.2 Example to use for LoRaWAN network ==
163
164
165 This section shows an example of how to join the TTN V3 LoRaWAN IoT server. Usages with other LoRaWAN IoT servers are similar.
166
167
168 [[image:1652858412212-334.png||height="327" width="723"]]
169
170
171 * (((
172 In this use case, the CPL01 is connect to a dry contact sensor to detect the open/close event and send the status to the LoRaWAN server. The CPL01 will uplink different types of messages to the LoRaWAN server. See [[Uplink payload>>||anchor="H2.3UplinkPayload"]] for detail.
173 )))
174
175 (((
176 Assume the DLOS8 is already set to connect to the [[TTN V3 network >>url:https://eu1.cloud.thethings.network]]. We need to add the CPL01 device in TTN V3:
177
178
179 )))
180
181 (((
182 (% style="color:blue" %)**Step 1**(%%): Create a device in TTN V3 with the OTAA keys from CPL01.
183 )))
184
185 (((
186 Each CPL01 is shipped with a sticker with the default device EUI as below:
187 )))
188
189 [[image:1652858451221-297.png]]
190
191
192 Users can enter these keys in the LoRaWAN Server portal. Below is the TTN V3 screenshot:
193
194 Add APP EUI in the application.
195
196 [[image:1652858478050-325.png]]
197
198
199 [[image:1652858498638-881.png||height="327" width="727"]]
200
201
202 [[image:1652858507748-628.png]]
203
204
205 [[image:1652858520534-791.png]]
206
207
208 Add APP KEY and DEV EUI
209
210
211
212 (% style="color:blue" %)**Step 2**(%%): Power on CPL01
213
214
215 [[image:1652858584749-726.png]]
216
217
218
219 (((
220 Put the jumper to power on CPL01 and it will auto-join to the TTN V3 network. After join success, it will start to upload sensor data to TTN V3 and the user can see it in the panel.
221 )))
222
223 [[image:1652858597931-989.png||height="322" width="721"]]
224
225
226 == 2.3 Uplink Payload ==
227
228
229 (((
230 Uplink payloads have two types:
231 )))
232
233 * (((
234 Open/Close Status: Use FPORT=2
235 )))
236 * (((
237 Other control commands: Use other FPORT fields.
238 )))
239
240 (((
241 The application server should parse the correct value based on FPORT settings.
242 )))
243
244
245 === 2.3.1 Device Status, FPORT~=5 ===
246
247
248 (((
249 Include device configure status. Once CPL01 Joined the network, it will uplink this message to the server. After that, CPL01 will uplink Device Status every 12 hours.
250 )))
251
252 (((
253 Users can also use the downlink command(0x26 01) to ask CPL01 to resend this uplink. This uplink payload also includes the DeviceTimeReq to get time.
254
255 [[image:image-20220609150022-3.png]]
256 )))
257
258
259 Example parse in TTNv3
260
261 [[image:1652859749264-179.png||height="275" width="723"]]
262
263
264 * (((
265 (% style="color:#037691" %)** Sensor Model**(%%): For CPL01, this value is 0x0E
266 )))
267
268 * (((
269 (% style="color:#037691" %)** Firmware Version**(%%): 0x0100, Means: v1.0.0 version
270 )))
271
272 * (((
273 (% style="color:#037691" %)** Frequency Band**:
274 )))
275
276 (% class="box" %)
277 (((
278 *0x01: EU868
279 *0x02: US915
280 *0x03: IN865
281 *0x04: AU915
282 *0x05: KZ865
283 *0x06: RU864
284 *0x07: AS923
285 *0x08: AS923-1
286 *0x09: AS923-2
287 *0x0a: AS923-3
288 *0x0b: CN470
289 *0x0c: EU433
290 *0x0d: KR920
291 *0x0e: MA869
292 )))
293
294 * (((
295 (((
296 (% style="color:#037691" %)** Sub-Band**:
297 )))
298
299 * (((
300 AU915 and US915:value 0x00 ~~ 0x08
301 )))
302 * (((
303 CN470: value 0x0B ~~ 0x0C
304 )))
305 * (((
306 Other Bands: Always 0x00
307 )))
308 )))
309
310 * (((
311 (% style="color:#037691" %)** Battery Info:**
312 )))
313
314 (((
315 Check the battery voltage.
316 )))
317
318 (((
319 (% style="color:blue" %)** Ex1**(%%): 0x0B45 = 2885mV
320 )))
321
322 (((
323 (% style="color:blue" %)** Ex2**(%%): 0x0B49 = 2889mV
324 )))
325
326
327 === 2.3.2 Sensor Configuration, FPORT~=4 ===
328
329
330 CPL01 will only send this command after getting the downlink command (0x26 02) from the server.
331
332 [[image:image-20220609150109-4.png]]
333
334
335 * (((
336 (% style="color:#037691" %)** TDC: (default: 0x001C20)**
337 )))
338
339 (((
340 Uplink interval for the total pulse count, default value is 0x001C20 which is 7200 seconds = 2 hours.
341
342
343 )))
344
345 * (((
346 (% style="color:#037691" %)** Disalarm: (default: 0)**
347 )))
348
349 (((
350 (% style="color:blue" %)** If Disalarm = 1**(%%), CPL01 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.
351 )))
352
353 (((
354 (% style="color:blue" %)** If Disalarm = 0**(%%), CPL01 will send uplink at every TDC periodically.
355
356
357 )))
358
359 * (((
360 (% style="color:#037691" %)** Keep Status & Keep Time**
361 )))
362
363 (((
364 Shows the configure value of [[Alarm Base on Timeout Feature>>||anchor="H3.5AlarmBaseonTimeout"]]
365
366
367 )))
368
369 * (((
370 (% style="color:#037691" %)** Trigger mode (default: 0)**
371 )))
372
373 (((
374 (% style="color:blue" %)** If Trigger mode = 0**(%%), count close to open event.
375 )))
376
377 (((
378 (% style="color:blue" %)** If Trigger mode = 1**(%%), count open to close event.
379 )))
380
381 [[image:1652860064987-743.png||height="152" width="730"]]
382
383
384 [[image:1652860079526-831.png||height="209" width="729"]]
385
386
387 === 2.3.3 Real-Time Open/Close Status, Uplink FPORT~=2 ===
388
389
390 (((
391 (((
392 CPL01 will send this uplink **after** Device Status once join the LoRaWAN network successfully. And CPL01 will:
393 )))
394 )))
395
396 (((
397 (((
398 periodically send this uplink every 2 hours, this interval [[can be changed>>||anchor="H3.1SetTransmitIntervalTime"]].
399 )))
400 )))
401
402 (((
403 (((
404 Uplink Payload totals 11 bytes.
405 )))
406 )))
407
408 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:510px" %)
409 |=(% colspan="5" style="width: 723px;" %)**Real-Time Open/Close Status, FPORT=2**
410 |(% style="width:101px" %)**Size (bytes)**|(% style="width:133px" %)**1**|(% style="width:92px" %)**3**|(% style="width:247px" %)**3**|(% style="width:149px" %)**4**
411 |(% style="width:101px" %)**Value**|(% style="width:133px" %)Status & [[Alarm>>||anchor="H3.5AlarmBaseonTimeout"]]|(% style="width:92px" %)Total pulse|(% style="width:247px" %)The last open duration (unit: min)|(% style="width:149px" %)[[Unix TimeStamp>>||anchor="H2.4.1UnixTimeStamp"]]
412
413 [[image:image-20220609150155-5.png]]
414
415
416 * (((
417 (% style="color:#037691" %)** Calculate Flag**
418 )))
419
420 (((
421 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.
422 )))
423
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
428 (((
429 Default value: 0. 
430 )))
431
432 (((
433 Range (6 bits): (b)000000 ~~ (b) 111111
434 )))
435
436 (((
437 Refer: [[Set Calculate Flag>>||anchor="H3.9Setthecalculateflag"]]
438
439
440 )))
441
442 * (((
443 (% style="color:#037691" %)** Alarm**
444 )))
445
446 (((
447 See [[Alarm Base on Timeout>>||anchor="H3.5AlarmBaseonTimeout"]]
448
449
450 )))
451
452 * (((
453 (% style="color:#037691" %)** Contact Status**
454 )))
455
456 (((
457 0: Open
458 )))
459
460 (((
461 1: Close
462
463
464 )))
465
466 * (((
467 (% style="color:#037691" %)** Total pulse**
468 )))
469
470 (((
471 Total pulse/counting base on dry [[contact trigger event>>||anchor="H2.3.2SensorConfiguration2CFPORT3D4"]]
472 )))
473
474 (((
475 Range (3 Bytes) : 0x000000 ~~ 0xFFFFFF . Max: 16777215
476
477
478 )))
479
480 * (((
481 (% style="color:#037691" %)** The last open duration**
482 )))
483
484 (((
485 Dry Contact last open duration.
486 )))
487
488 (((
489 Unit: min.
490 )))
491
492 [[image:1652860403792-491.png||height="153" width="735"]]
493
494
495 === 2.3.4 Real-Time Open/Close Status, 3 pulse mode, Uplink FPORT~=6 ( Firmware not release) ===
496
497
498 (% style="color:red" %)**Note:**
499
500 * Firmware support for this mode is not released. If users want to test, please contact Dragino support.
501 * Users need to run (% style="color:blue" %)**AT+MOD=3**(%%) to support this model after updating the firmware.
502 * This mode doesn't support Historical Events and Datalog features.
503
504 (% style="color:blue" %)**CPL03 3 Pulse Wiring:**
505
506 [[image:image-20221013153352-1.png||height="628" width="720"]]
507
508
509 (% style="color:blue" %)**Payload:**
510
511 [[image:image-20221013153352-2.png||height="167" width="1215"]]
512
513
514 (% border="1.5" cellspacing="3" style="background-color:#ffffcc; color:green; width:447px" %)
515 |(% style="width:93px" %)**Size(bytes)**|(% style="width:59px" %)**1**|(% style="width:98px" %)**3**|(% style="width:96px" %)**3**|(% style="width:94px" %)**3**
516 |(% style="width:93px" %)**Value**|(% style="width:59px" %)Status|(% style="width:98px" %)(((
517 Port1 Total Pulse(PB14)
518 )))|(% style="width:96px" %)(((
519 Port2 Total Pulse(PB15)
520 )))|(% style="width:94px" %)(((
521 Port3 Total Pulse(PA4)
522 )))
523
524 (% style="color:blue" %)**Status:**
525
526 (% border="1.5" cellspacing="3" style="background-color:#ffffcc; color:green; width:257px" %)
527 |(% style="width:75px" %)**Size(bit)**|(% style="width:111px" %)**6**|(% style="width:68px" %)**2**
528 |(% style="width:75px" %)**Value**|(% style="width:111px" %)Calculate Flag|(% style="width:68px" %)Reserve
529
530 (% style="color:red" %)**Max COUNT for each port is 16777215. Exceed this number will reset to 1.**
531
532
533 (% style="color:blue" %)**Related AT Command:**
534
535 (% style="color:#037691" %)**AT+TTRMOD1:  Port1 count mode;  0: Signal falling edge(Default), 1: Signal raising edge**
536
537 AT+TTRMOD1=0  Downlink Command: 0xA4 01 00
538
539 AT+TTRMOD1=1  Downlink Command: 0xA4 01 01
540
541
542 (% style="color:#037691" %)**AT+TTRMOD2:  Port2 count mode;  0: Signal falling edge(Default), 1: Signal raising edge**
543
544 AT+TTRMOD1=0  Downlink Command: 0xA4 02 00
545
546 AT+TTRMOD1=1  Downlink Command: 0xA4 02 01
547
548
549 (% style="color:#037691" %)**AT+TTRMOD3:  Port3 count mode;  0: Signal falling edge(Default), 1: Signal raising edge**
550
551 AT+TTRMOD1=0  Downlink Command: 0xA4 03 00
552
553 AT+TTRMOD1=1  Downlink Command: 0xA4 03 01
554
555
556 (% style="color:#037691" %)**AT+CALCFLAG:  Calculate Flag ( Default : 0 )**
557
558 AT+CALCFLAG=aa
559
560
561 (% style="color:blue" %)**Downlink Command: 0xA5 aa**
562
563 (% style="color:#037691" %)**AT+COUNTMOD:  Accumulative Mode;  0: Accumulative (Default),1: Reset after uplink.**
564
565 AT+COUNTMOD=0 Downlink Command: 0x0B 00
566
567 AT+COUNTMOD=1 Downlink Command: 0x0B 01
568
569
570 (% style="color:#037691" %)**AT+SETCNT:  Set count value**
571
572 AT+SETCNT=1,aa  Downlink Command: 0xA6 01 aa aa aa
573
574 AT+SETCNT=2,aa  Downlink Command: 0xA6 02 aa aa aa
575
576 AT+SETCNT=3,aa  Downlink Command: 0xA6 03 aa aa aa
577
578
579 (% style="color:blue" %)**Decode:  **(%%)[[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>https://github.com/dragino/dragino-end-node-decoder]]
580
581
582 === 2.3.5 Historical Door Open/Close Event, FPORT~=3 ===
583
584
585 (((
586 CPL01 stores sensor values and users can retrieve these history values via the [[downlink command>>||anchor="H2.4DatalogFeature"]].
587 )))
588
589 (((
590 The historical payload includes one or multiplies entries and every entry has the same payload as Real-Time open/close status.
591 )))
592
593 * (((
594 Each data entry is 11 bytes and has the same structure as [[Real-Time open/close status>>||anchor="H2.3.3Real-TimeOpen2FCloseStatus2CUplinkFPORT3D2"]], to save airtime and battery, CPL01 will send max bytes according to the current DR and Frequency bands.
595 )))
596
597 (((
598 For example, in the US915 band, the max payload for different DR is:
599 )))
600
601 (((
602 a) (% style="color:blue" %)**DR0**(%%): max is 11 bytes so one entry of data
603 )))
604
605 (((
606 b) (% style="color:blue" %)**DR1**(%%): max is 53 bytes so devices will upload 4 entries of data (total 44 bytes)
607 )))
608
609 (((
610 c) (% style="color:blue" %)**DR2**(%%): total payload includes 11 entries of data
611 )))
612
613 (((
614 d) (% style="color:blue" %)**DR3**(%%): total payload includes 22 entries of data.
615 )))
616
617 (((
618 If CPL01 doesn't have any data in the polling time. It will uplink 11 bytes of 0
619
620
621 )))
622
623 (% style="color:blue" %)** Downlink:**
624
625 (% class="box" %)
626 (((
627 **0x31 61 E9 3A D4 61 E9 3D E0 05**
628 )))
629
630 [[image:1652861353248-624.png||height="189" width="720"]]
631
632
633 (% style="color:blue" %)** Uplink:**
634
635 (% class="box" %)
636 (((
637 **0E 00 23 E6 00 00 00 61 E9 3B 04 0E 00 23 E6 00 00 00 61 E9 3B 25 0D 00 00 00 00 00 00 61 E9 3B C8 0E 00 00 02 00 00 00 61 E9 3B D4 0E 00 00 06 00 00 00 61 E9 3B DB 01 00 00 00 00 00 00 61 E9 3C 91 01 00 00 00 00 00 00 61 E9 3C A1 0D 00 00 00 00 00 00 61 E9 3C BC 0E 00 00 07 00 00 00 61 E9 3C D6 00 00 00 00 00 00 00 61 E9 3D A6**
638 )))
639
640 (% style="color:#037691" %)** **
641
642 (% style="color:#037691" %)**Parsed Value:**
643
644 (((
645 [ALARM, PIN_STATUS, TOTAL_PULSE, CALCULATE_FLAG, LAST_OPEN_DURATION, TIME]
646 )))
647
648 (((
649
650 )))
651
652 (((
653 [TRUE, CLOSE, 9190, 3, 0, 2022-01-20 10:35:48],
654 )))
655
656 (((
657 [TRUE, CLOSE, 9190, 3, 0, 2022-01-20 10:36:21],
658 )))
659
660 (((
661 [FALSE, OPEN, 0, 3, 0, 2022-01-20 10:39:04],
662 )))
663
664 (((
665 [TRUE, CLOSE, 2, 3, 0, 2022-01-20 10:39:16],
666 )))
667
668 (((
669 [TRUE, CLOSE, 6, 3, 0, 2022-01-20 10:39:23],
670 )))
671
672 (((
673 [FALSE, OPEN, 0, 0, 0, 2022-01-20 10:42:25],
674 )))
675
676 (((
677 [FALSE, OPEN, 0, 0, 0, 2022-01-20 10:42:41],
678 )))
679
680 (((
681 [FALSE, OPEN, 0, 3, 0, 2022-01-20 10:43:08],
682 )))
683
684 (((
685 [TRUE, CLOSE, 7, 3, 0, 2022-01-20 10:43:34],
686 )))
687
688 (((
689 [FALSE, CLOSE, 0, 0, 0, 2022-01-20 10:47:02],
690
691
692 )))
693
694 [[image:1652861480446-216.png]]
695
696
697 == 2.4 Datalog Feature ==
698
699
700 When a user wants to retrieve sensor value, he can send a poll command from the IoT platform to ask the sensor to send value in the required time slot.
701
702
703 === 2.4.1 Unix TimeStamp ===
704
705
706 CPL01 uses Unix TimeStamp format based on
707
708 [[image:1652861618065-927.png||height="109" width="705"]]
709
710 Users can get this time from the link:  [[https:~~/~~/www.epochconverter.com/>>url:https://www.epochconverter.com/]] :
711
712 Below is the converter example
713
714 [[image:1652861637105-371.png||height="428" width="732"]]
715
716
717 === 2.4.2 Set Device Time ===
718
719
720 (((
721 (((
722 There are two ways to set the device's time:
723
724
725 )))
726 )))
727
728 (((
729 (((
730 (% style="color:blue" %)**1. Through LoRaWAN MAC Command (Default settings)**
731 )))
732 )))
733
734 (((
735 (((
736 Users need to set SYNCMOD=1 to enable sync time via the MAC command.
737 )))
738 )))
739
740 (((
741 (((
742 Once CPL01 Joined the LoRaWAN network, it will send the MAC command (DeviceTimeReq) and the server will reply with (DeviceTimeAns) to send the current time to CPL01. If CPL01 fails to get the time from the server, CPL01 will use the internal time and wait for the next time request ~[[[via Device Status (FPORT=5)>>||anchor="H2.3.1DeviceStatus2CFPORT3D5"]]].
743
744
745 )))
746 )))
747
748 (((
749 (((
750 (% style="color:red" %)**Note: LoRaWAN Server needs to support LoRaWAN v1.0.3(MAC v1.0.3) or higher to support this MAC command feature.**
751 )))
752
753 (((
754
755 )))
756
757 (((
758 (% style="color:blue" %)**2. Manually Set Time**
759 )))
760
761 (((
762 Users need to set SYNCMOD=0 to manual time, otherwise, the user set time will be overwritten by the time set by the server.
763 )))
764 )))
765
766
767 === 2.4.3 Poll sensor value ===
768
769
770 Users can poll sensor values based on timestamps. Below is the downlink command.
771
772 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:453.989px" %)
773 |=(% colspan="4" style="width: 451px;" %)**Downlink Command to poll Open/Close status (0x31)**
774 |(% style="width:59px" %)**1byte**|(% style="width:126px" %)**4bytes**|(% style="width:138px" %)**4bytes**|(% style="width:128px" %)**1byte**
775 |(% style="width:59px" %)31|(% style="width:126px" %)Timestamp start|(% style="width:138px" %)Timestamp end|(% style="width:128px" %)Uplink Interval
776
777 (((
778 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.
779 )))
780
781 (((
782 For example, downlink command[[image:image-20220518162852-1.png]]
783 )))
784
785 (((
786 Is to check 2021/11/12 12:00:00 to 2021/11/12 15:00:00's data
787 )))
788
789 (((
790 Uplink Internal =5s,means CPL01 will send one packet every 5s. range 5~~255s.
791 )))
792
793
794 === 2.4.4 Decoder in TTN V3 ===
795
796
797 [[image:1652862574387-195.png||height="359" width="722"]]
798
799 (((
800 Please check the decoder from this link: [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>https://github.com/dragino/dragino-end-node-decoder]]
801 )))
802
803 (((
804
805 )))
806
807 = 2.5 Show data on Datacake =
808
809
810 (((
811 Datacake IoT platform provides a human-friendly interface to show the sensor data, once we have sensor data in TTN V3, we can use Datacake to connect to TTN V3 and see the data in Datacake. Below are the steps:
812 )))
813
814 (((
815 (% style="color:blue" %)**Step 1**(%%): Link TTNv3 to Datacake [[https:~~/~~/docs.datacake.de/lorawan/lns/thethingsindustries#create-integration-on-tti>>url:https://docs.datacake.de/lorawan/lns/thethingsindustries#create-integration-on-tti]]
816 )))
817
818 (((
819 (% style="color:blue" %)**Step 2**(%%): Configure CPL01 in Datacake
820 )))
821
822 [[image:1652862663124-805.png]]
823
824 [[image:1652862686700-576.png]]
825
826
827
828
829 [[image:1652862716106-261.png]]
830
831 [[image:1652862734313-990.png||height="229" width="707"]]
832
833
834 [[image:1652862744310-982.png||height="380" width="715"]]
835
836
837 [[image:1652862755419-628.png||height="258" width="718"]]
838
839
840 [[image:1652862763975-153.png||height="214" width="720"]]
841
842
843 [[image:1652862773781-198.png||height="321" width="499"]]
844
845
846 [[image:1652862794151-835.png||height="327" width="487"]]
847
848
849 [[image:1652862807472-427.png||height="378" width="670"]]
850
851
852 = 3. Configure CPL01 via AT Command or LoRaWAN Downlink =
853
854
855 (((
856 Use can configure CPL01 via AT Command or LoRaWAN Downlink.
857 )))
858
859 * (((
860 AT Command Connection: See [[FAQ>>||anchor="H5.FAQ"]].
861 )))
862 * (((
863 LoRaWAN Downlink instruction for different platforms:  [[IoT LoRaWAN Server>>doc:Main.WebHome]]
864 )))
865
866 (((
867 There are two kinds of commands to configure CPL01, they are:
868 )))
869
870 * (((
871 (% style="color:#4f81bd" %)**General Commands**.
872 )))
873
874 (((
875 These commands are to configure:
876 )))
877
878 * (((
879 General system settings like uplink interval.
880 )))
881 * (((
882 LoRaWAN protocol & radio related command.
883 )))
884
885 (((
886 They are the same for all Dragino Devices which support DLWS-005 LoRaWAN Stack(Note~*~*). These commands can be found on the wiki: [[End Device AT Commands and Downlink Command>>doc:Main.End Device AT Commands and Downlink Command.WebHome]]
887 )))
888
889 (((
890
891 )))
892
893 * (((
894 (% style="color:#4f81bd" %)**Commands special design for CPL01**
895 )))
896
897 (((
898 These commands are only valid for CPL01, as below:
899 )))
900
901
902 == 3.1 Set Transmit Interval Time ==
903
904
905 (((
906 Feature: Change LoRaWAN End Node Transmit Interval.
907
908
909 )))
910
911 (((
912 (% style="color:#4f81bd" %)**AT Command: AT+TDC**
913 )))
914
915 (((
916 [[image:image-20220609134826-1.png]]
917 )))
918
919 (((
920
921 )))
922
923 (((
924 (% style="color:#4f81bd" %)**Downlink Command: 0x01**
925 )))
926
927 (((
928 Format: Command Code (0x01) followed by 3 bytes time value.
929 )))
930
931 (((
932 If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01.
933 )))
934
935 * (((
936 Example 1: Downlink Payload: 0100001E  ~/~/ Set Transmit Interval (TDC) = 30 seconds
937 )))
938 * (((
939 Example 2: Downlink Payload: 0100003C  ~/~/ Set Transmit Interval (TDC) = 60 seconds
940
941
942
943 )))
944
945 == 3.2 Set Password ==
946
947
948 Feature: Set device password, max 9 digits
949
950
951 (% style="color:#4f81bd" %)**AT Command: AT+PWORD**
952
953
954 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:404.989px" %)
955 |=(% style="width: 170px;" %)**Command Example**|=(% style="width: 123px;" %)**Function**|=(% style="width: 109px;" %)**Response**
956 |(% style="width:170px" %)(((
957 AT+PWORD=?
958 )))|(% style="width:123px" %)(((
959 Show password
960 )))|(% style="width:109px" %)(((
961 (((
962 123456
963 )))
964
965 (((
966 OK
967 )))
968 )))
969 |(% style="width:170px" %)(((
970 AT+PWORD=999999
971 )))|(% style="width:123px" %)(((
972 Set password
973 )))|(% style="width:109px" %)(((
974 OK
975 )))
976
977 (% style="color:#4f81bd" %)**Downlink Command:**
978
979 No downlink command for this feature.
980
981
982 == 3.3 Quit AT Command ==
983
984
985 Feature: Quit AT Command mode, so user needs to input the password again before using AT Commands.
986
987
988 (% style="color:#4f81bd" %)**AT Command: AT+DISAT**
989
990
991 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:451.989px" %)
992 |=(% style="width: 155px;" %)**Command Example**|=(% style="width: 198px;" %)**Function**|=(% style="width: 96px;" %)**Response**
993 |(% style="width:155px" %)AT+DISAT|(% style="width:198px" %)Quit AT Commands mode|(% style="width:96px" %)OK
994
995 (% style="color:#4f81bd" %)**Downlink Command:**
996
997 No downlink command for this feature.
998
999
1000 == 3.4 Enable / Disable Alarm ==
1001
1002
1003 Feature: Enable/Disable Alarm for open/close event. Default value 0.
1004
1005
1006 (% style="color:#4f81bd" %)**AT Command:**
1007
1008 (% id="cke_bm_3822S" style="display:none" %) [[image:image-20220609151041-6.png]]
1009
1010 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LDS03A%20-%20Outdoor%20LoRaWAN%20OpenClose%20Door%20Sensor%20Manual/WebHome/image-20220609140712-1.png?rev=1.1||alt="image-20220609140712-1.png"]]
1011
1012
1013 (% style="color:#4f81bd" %)**Downlink Command:**
1014
1015 **0xA7 01**  ~/~/  Same As AT+DISALARM=1
1016
1017 **0xA7 00    ** ~/~/  Same As AT+DISALARM=0
1018
1019
1020 (% style="color:red" %)**Notice, This command requires setting CPL01 to LDS03A Mode first. See **(%%)**"(% style="color:blue" %)3.7 Set the sensor mode"(%%)**
1021
1022
1023 == 3.5 Alarm Base on Timeout ==
1024
1025
1026 (((
1027 (((
1028 CPL01 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:
1029
1030
1031 )))
1032 )))
1033
1034 (((
1035 (((
1036 (% style="color:#4f81bd" %)**1. Keep Status: Status to be monitor**
1037 )))
1038 )))
1039
1040 (((
1041 (((
1042 Keep Status = 1: Monitor Close to Open event
1043 )))
1044 )))
1045
1046 (((
1047 (((
1048 Keep Status = 0: Monitor Open to Close event
1049
1050
1051 )))
1052 )))
1053
1054 (((
1055 (((
1056 (% style="color:#4f81bd" %)**2. Keep Time: Timeout to send an Alarm**
1057 )))
1058 )))
1059
1060 (((
1061 (((
1062 Range 0 ~~ 65535(0xFFFF) seconds.
1063 )))
1064 )))
1065
1066 (((
1067 (((
1068 If keep time = 0, Disable Alarm Base on Timeout feature.
1069 )))
1070 )))
1071
1072 (((
1073 (((
1074 If keep time > 0, device will monitor the keep status event and send an alarm when status doesn’t change after timeout.
1075 )))
1076
1077 (((
1078
1079 )))
1080 )))
1081
1082 (((
1083 (((
1084 (% style="color:#4f81bd" %)**AT Command**(%%) to configure:
1085 )))
1086
1087 (((
1088 (% 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. CPL01 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.
1089 )))
1090
1091 (((
1092 (% style="color:blue" %)**AT+TTIG=0,0 **(%%) ~-~-> Default Value, disable timeout Alarm.
1093 )))
1094 )))
1095
1096 (((
1097
1098 )))
1099
1100 (((
1101 (((
1102 (% style="color:#4f81bd" %)**Downlink Command**(%%) to configure:
1103 )))
1104
1105 (((
1106 **Command: 0xA9 aa bb cc**
1107 )))
1108 )))
1109
1110 (((
1111 (((
1112 A9: Command Type Code
1113 )))
1114 )))
1115
1116 (((
1117 (((
1118 aa: status to be monitored
1119 )))
1120 )))
1121
1122 (((
1123 (((
1124 bb cc: timeout.
1125 )))
1126 )))
1127
1128 (((
1129
1130 )))
1131
1132 (((
1133 (((
1134 If user send 0xA9 01 00 1E: equal to AT+TTRIG=1,30
1135 )))
1136 )))
1137
1138 (((
1139 (((
1140 Or
1141 )))
1142 )))
1143
1144 (((
1145 (((
1146 0xA9 00 00 00: Equal to AT+TTRIG=0,0. Disable timeout Alarm.
1147 )))
1148 )))
1149
1150
1151 == 3.6 Clear Flash Record ==
1152
1153
1154 Feature: Clear flash storage for data log feature.
1155
1156
1157 (% style="color:#4f81bd" %)**AT Command: AT+CLRDTA**
1158
1159 [[image:image-20220609151132-7.png]]
1160
1161
1162 (((
1163 (((
1164 (% style="color:#4f81bd" %)**Downlink Command:**
1165 )))
1166
1167 (((
1168 * **Example**: 0xA301  ~/~/  Same as AT+CLRDTA
1169 )))
1170 )))
1171
1172
1173
1174 == 3.7 Set the sensor mode ==
1175
1176
1177 Feature: LDS03A and CPL01 use the same firmware. User is possible to switch between this two models.
1178
1179
1180 (% style="color:#4f81bd" %)**AT Command: AT+MOD**
1181
1182 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:443.222px" %)
1183 |=(% style="width: 156px;" %)**Command Example**|=(% style="width: 195px;" %)**Function**|=(% style="width: 88px;" %)**Response**
1184 |(% style="width:156px" %)AT+MOD =1|(% style="width:195px" %)Set the sensor to LDS03A.|(% style="width:88px" %)OK
1185 |(% style="width:156px" %)AT+MOD=2|(% style="width:195px" %)Set the sensor to CPL01.|(% style="width:88px" %)OK
1186
1187 (% style="color:#4f81bd" %)**Downlink Command:**
1188
1189 * **Example**: 0x0A02  ~/~/  Same as AT+MOD=2
1190
1191
1192
1193 == 3.8 Set trigger mode ==
1194
1195
1196 Feature: Set the trigger interrupt mode.
1197
1198
1199 (% style="color:#4f81bd" %)**AT Command: AT+TTRMOD**
1200
1201 [[image:image-20220609151344-9.png]]
1202
1203
1204 (% style="color:#4f81bd" %)**Downlink Command:**
1205
1206 * **Example**: 0xA401  ~/~/  Same as AT+ TTRMOD =1
1207
1208
1209
1210 == 3.9 Set the calculate flag ==
1211
1212
1213 Feature: Set the calculate flag
1214
1215
1216 (% style="color:#4f81bd" %)**AT Command: AT+CALCFLAG**
1217
1218 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:461.222px" %)
1219 |=(% style="width: 158px;" %)**Command Example**|=(% style="width: 192px;" %)**Function**|=(% style="width: 109px;" %)**Response**
1220 |(% style="width:158px" %)AT+CALCFLAG =1|(% style="width:192px" %)Set the calculate flag to 1.|(% style="width:109px" %)OK
1221 |(% style="width:158px" %)AT+CALCFLAG =2|(% style="width:192px" %)Set the calculate flag to 2.|(% style="width:109px" %)OK
1222
1223 (% style="color:#4f81bd" %)**Downlink Command:**
1224
1225 * **Example**: 0XA501  ~/~/  Same as AT+CALCFLAG =1
1226
1227
1228
1229 == 3.10 Set count number ==
1230
1231
1232 Feature: Manually set the count number
1233
1234
1235 (% style="color:#4f81bd" %)**AT Command: AT+SETCNT**
1236
1237 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:479.989px" %)
1238 |=(% style="width: 160px;" %)**Command Example**|=(% style="width: 221px;" %)**Function**|=(% style="width: 95px;" %)**Response**
1239 |(% style="width:160px" %)AT+ SETCNT =0|(% style="width:221px" %)Set the count number to 0.|(% style="width:95px" %)OK
1240 |(% style="width:160px" %)AT+ SETCNT =100|(% style="width:221px" %)Set the count number to 100.|(% style="width:95px" %)OK
1241
1242 (% style="color:#4f81bd" %)**Downlink Command:**
1243
1244 1. **Example**: 0xA6000001  ~/~/  Same as AT+ SETCNT =1
1245 1. **Example**: 0xA6000064  ~/~/  Same as AT+ SETCNT =100
1246
1247
1248
1249 = 4. Battery & Power Consumption =
1250
1251
1252 CPL01 uses ER26500 + SPC1520 battery pack. See below link for detail information about the battery info and how to replace.
1253
1254 [[**Battery Info & Power Consumption Analyze**>>url:http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] .
1255
1256
1257 = 5. FAQ =
1258
1259 == 5.1 How to use AT Command to configure CPL01 ==
1260
1261
1262 CPL01 UART connection photo
1263
1264 [[image:1652864909750-855.png||height="356" width="728"]]
1265
1266
1267 (((
1268 In the PC, you need to set the serial baud rate to (% style="color:green" %)**9600**(%%) to access the serial console for LSN50. LSN50 will output system info once power on as below:
1269 )))
1270
1271 [[image:1652864915792-686.png||height="508" width="726"]]
1272
1273
1274 == 5.2 How to upgrade the firmware? ==
1275
1276
1277 (((
1278 (((
1279 A new firmware might be available for:
1280 )))
1281 )))
1282
1283 * (((
1284 (((
1285 Support new features
1286 )))
1287 )))
1288 * (((
1289 (((
1290 For bug fix
1291 )))
1292 )))
1293 * (((
1294 (((
1295 Change LoRaWAN bands.
1296 )))
1297 )))
1298
1299 (((
1300 (((
1301 Instruction for how to upgrade: [[Firmware Upgrade Instruction>>doc:Main.Firmware Upgrade Instruction for STM32 base products.WebHome||anchor="H2.HardwareUpgradeMethodSupportList"]]
1302 )))
1303 )))
1304
1305 (((
1306 (((
1307 Firmware location: (**​​(% style="color:red" %)same firmware as LDS03A(%%)**)[[https:~~/~~/www.dropbox.com/sh/x9rpz9ftyljg135/AAAhC5hqtQOAw9_AoEEZbl9Ca?dl=0>>https://www.dropbox.com/sh/x9rpz9ftyljg135/AAAhC5hqtQOAw9_AoEEZbl9Ca?dl=0]]
1308 )))
1309 )))
1310
1311
1312 == 5.3 How to change the LoRa Frequency Bands/Region? ==
1313
1314
1315 Users can follow the introduction for how to upgrade image. When downloading the images, choose the required image file for download.
1316
1317
1318 == 5.4 How to change CPL01 to uplink on every contact status change? ==
1319
1320
1321 ~1. Set mod to 1 (the setting method is in chapter 3.7)
1322 2. Use ATZ or physically restart the device
1323 (If you set a timeout alarm command, the open state will send an uplink according to the set timeout command.
1324 Example: If you set AT+TTRIG=1,10, then the uplink will be sent after the open state reaches ten seconds)
1325
1326
1327 = 6. Trouble Shooting =
1328
1329 == 6.1  AT Commands input doesn't work ==
1330
1331
1332 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.
1333
1334
1335 = 7. Order Info =
1336
1337
1338 (((
1339 (((
1340 Part Number: (% style="color:#4f81bd" %)**CPL01-XX**
1341 )))
1342 )))
1343
1344 (((
1345 (((
1346 (% style="color:#4f81bd" %)**XX**(%%): The default frequency band
1347 )))
1348 )))
1349
1350 * (((
1351 (% style="color:red" %)**AS923 **(%%)**:** LoRaWAN AS923 band
1352 )))
1353 * (((
1354 (% style="color:red" %)**AU915 **(%%)**: **LoRaWAN AU915 band
1355 )))
1356 * (((
1357 (% style="color:red" %)**EU433 **(%%)**:** LoRaWAN EU433 band
1358 )))
1359 * (((
1360 (% style="color:red" %)**EU868 **(%%)**:** LoRaWAN EU868 band
1361 )))
1362 * (((
1363 (% style="color:red" %)**KR920 **(%%)**:** LoRaWAN KR920 band
1364 )))
1365 * (((
1366 (% style="color:red" %)**US915 **(%%)**: **LoRaWAN US915 band
1367 )))
1368 * (((
1369 (% style="color:red" %)**IN865 **(%%)**:  **LoRaWAN IN865 band
1370 )))
1371 * (((
1372 (% style="color:red" %)**CN470 **(%%)**: **LoRaWAN CN470 band
1373
1374
1375
1376 )))
1377
1378 = 8. Packing Info =
1379
1380
1381 (((
1382 **Package Includes**:
1383 )))
1384
1385 * (((
1386 CPL01 Open/Close Sensor x 1
1387
1388
1389
1390 )))
1391
1392 = 9. Support =
1393
1394
1395 * (((
1396 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.
1397 )))
1398 * (((
1399 Provide as much information as possible regarding your inquiry (product models, accurately describe your problem and steps to replicate it etc) and send a mail to [[support@dragino.com>>url:file:///D:/市场资料/说明书/LoRa/LT系列/support@dragino.com]].
1400
1401
1402
1403 )))
Copyright ©2010-2024 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0