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