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