Show last authors
1
2
3 (% style="text-align:center" %)
4 [[image:image-20221031143350-3.png]]
5
6 (% style="display:none" %) (%%)
7
8
9
10 **Table of Contents:**
11
12
13
14
15
16
17
18
19
20
21 = 1.  Introduction =
22
23
24 == 1.1  ​What is LWL03A LoRaWAN Water Leak ==
25
26 (((
27
28
29 (((
30 The Dragino LWL03A is a **LoRaWAN None-Position Rope Type Water Leak Controller**. User can lay the **LWL03A + Water Leak Cable** on the ground to detect water leakage. The water leak cable is sensitivity, when there is water over the leak cable. LWL03A will indicates a **water leak event** and uplink to IoT server via LoRaWAN network.
31
32 LWL03A is powered by **8500mAh battery** and target for long time use up to 10 years.
33
34 The LWL03A will send periodically data every day as well as for each water leak event. It also counts the water leak times and calculate last water leak duration.
35 )))
36
37 (((
38 Each LWL03A 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.
39 )))
40 )))
41
42
43
44 == ​1.2  Features ==
45
46
47 * LoRaWAN v1.0.3 Class A protocol.
48 * Frequency Bands: CN470/EU433/KR920/US915/EU868/AS923/AU915/IN865/RU864
49 * Water Leak detect
50 * 8500mAh Li-SoCI2 battery
51 * AT Commands to change parameters
52 * Uplink on periodically and leakage event
53 * Remote configure parameters via LoRa Downlink
54 * Firmware upgradable via program port
55
56
57 == 1.3  Cable Specification ==
58
59
60
61
62 == 1.4  ​Applications ==
63
64
65 * Smart Buildings & Home Automation
66 * Logistics and Supply Chain Management
67 * Smart Metering
68 * Smart Agriculture
69 * Smart Cities
70 * Smart Factory
71
72
73
74
75 == 1.5  Mechanical ==
76
77
78 [[image:1654741444887-479.png]]
79
80
81 [[image:1654741488515-626.png]]
82
83
84 [[image:1654741510204-377.png]]
85
86
87 == 1.6  Installation ==
88
89
90 [[image:image-20221031145604-4.png]]
91
92
93
94 == 1.7  Firmware Change log ==
95
96
97 [[LWL03A Image files – Download link & Changelog>>url:https://www.dropbox.com/sh/23v29gi61jq9mp6/AABgwJQ_xuybFivgbDZwTyNGa?dl=0]]
98
99
100
101 == 1.8  Pin Definitions and Switch ==
102
103
104 [[image:1654741572060-177.png]]
105
106 **LWL03A is based on LSN50v2**
107
108
109
110 === 1.8.1  Pin Definition ===
111
112
113 (((
114 The device is pre-configured to connect to a door sensor. 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]]
115 )))
116
117
118
119 === 1.8.2  Jumper JP2(Power ON/OFF) ===
120
121
122 Power on Device when putting this jumper.
123
124
125
126 === 1.8.3  BOOT MODE / SW1 ===
127
128
129 (((
130 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.
131 )))
132
133 (((
134 2)  Flash: work mode, the device starts to work and send out console output for further debug
135 )))
136
137
138
139 === 1.8.4  Reset Button ===
140
141
142 Press to reboot the device.
143
144
145
146 === 1.8.5  LED ===
147
148
149 It will flash:
150
151 ~1. Boot the device in flash mode
152
153 2. Send an uplink packet
154
155
156
157 = 2.  Operation Mode =
158
159
160 == 2.1  How it works ==
161
162
163 (((
164 (((
165 The LWL03A is configured as LoRaWAN OTAA Class A mode by default. It has OTAA keys to join network. To connect a local LoRaWAN network, user just need to input the OTAA keys in the network server and [[power on>>path:#power]] the LWL03A. It will auto join the network via OTAA.
166
167
168 In case user can't set the OTAA keys in the network server and has to use the existing keys from server. User can [[use AT Command>>https://www.dragino.com/downloads/index.php?dir=LoRa_End_Node/LDS01/]] to set the keys in the devices.
169 )))
170 )))
171
172
173
174 == 2.2  Example to use for LoRaWAN network ==
175
176
177 (((
178 Here shows an example for how to join the [[TTN V3 Network>>url:https://eu1.cloud.thethings.network/]]. Below is the network structure, we use [[LG308>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/140-lg308.html]] as LoRaWAN gateway here.
179
180
181 )))
182
183 (((
184 [[image:image-20221031151740-5.png]]
185
186
187 )))
188
189 (((
190 The LWL03A has water leak detect probe as above. When there is water between these two detect probe, they will be short and generate the water leak event. and send the status to LoRaWAN server. The LWL03A will uplink two type of messages to the server.
191
192 * A keep-alive message which send every 2 hours. (Interval can be changed)
193 * An emergency event message when detect a water leak/water no leak. (leak/no [[leak event can be disabled>>path:#Alarm]])
194 * A periodically update at every 10 minutes when in water leak.(Interval can be changed)
195 * A message when switch from water leak to none water leak. ([[Alarm event can be disabled>>path:#Alarm]])
196
197
198
199 The LG308 is already set to connect to [[TTN V3 network >>url:https://eu1.cloud.thethings.network/]]. What we need to now is only configure the TTN V3:
200
201 (((
202
203 )))
204 )))
205
206 (((
207 (((
208 (% style="color:blue" %)**Step 1**(%%):  Create a device in TTN V3 with the OTAA keys from LWL03A.
209 )))
210
211 (((
212 Each LWL03A is shipped with a sticker with the default device EUI as below:
213 )))
214 )))
215
216 [[image:image-20220607170145-1.jpeg]]
217
218
219 Users can enter these keys in the LoRaWAN Server portal. Below is the TTN V3 screenshot:
220
221
222 **Add APP EUI in the application:**
223
224 [[image:1654742558691-332.png]]
225
226
227 [[image:1654742595660-519.png]]
228
229
230 [[image:1654742610413-498.png]]
231
232
233
234 [[image:1654742630064-347.png]]
235
236 **Add APP KEY and DEV EUI**
237
238
239
240 (% style="color:blue" %)**Step 2**(%%): Power on LWL03A
241
242
243 [[image:1654742860601-778.png]]
244
245
246
247 Put the jumper to power on LWL03A 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.
248
249 [[image:image-20221031161420-7.png||height="289" width="1322"]]
250
251
252
253 == 2.3  ​Uplink Payload ==
254
255
256 (((
257 (((
258 Uplink payloads have two types:
259 )))
260
261 * (((
262 Open/Close Status: Use FPORT=2
263 )))
264 * (((
265 Other control commands: Use other FPORT fields.
266 )))
267
268 (((
269 The application server should parse the correct value based on FPORT settings.
270 )))
271
272 (((
273
274
275
276 )))
277
278 === 2.3.1  Device Status, FPORT~=5 ===
279
280
281 )))
282
283 (((
284 Include device configure status. Once LDS03A Joined the network, it will uplink this message to the server. After that, LDS03A will uplink Device Status every 12 hours.
285 )))
286
287 (((
288 Users can also use the downlink command**(0x26 01)** to ask LDS03A to resend this uplink. This uplink payload also includes the DeviceTimeReq to get time.
289 )))
290
291 [[image:image-20220609105437-3.png]]
292
293
294 Example parse in TTNv3
295
296 [[image:image-20220609105101-2.png||height="295" width="1208"]]
297
298
299 * (% style="color:#4f81bd" %)**Sensor Model**(%%): For LDS03A, this value is 0x0A
300
301 * (% style="color:#4f81bd" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version
302
303 * (% style="color:#4f81bd" %)**Frequency Band**:
304
305 *0x01: EU868
306
307 *0x02: US915
308
309 *0x03: IN865
310
311 *0x04: AU915
312
313 *0x05: KZ865
314
315 *0x06: RU864
316
317 *0x07: AS923
318
319 *0x08: AS923-1
320
321 *0x09: AS923-2
322
323 *0x0a: AS923-3
324
325 *0x0b: CN470
326
327 *0x0c: EU433
328
329 *0x0d: KR920
330
331 *0x0e: MA869
332
333
334 * (% style="color:#4f81bd" %)**Sub-Band**:
335 ** AU915 and US915:value 0x00 ~~ 0x08
336 ** CN470: value 0x0B ~~ 0x0C
337 ** Other Bands: Always 0x00
338
339 * (% style="color:#4f81bd" %)**Battery Info:**
340
341 Check the battery voltage.
342
343 Ex1: 0x0B45 = 2885mV
344
345 Ex2: 0x0B49 = 2889mV
346
347
348
349 === 2.3.2  Sensor Configuration, FPORT~=4 ===
350
351
352 (((
353 LDS03A will only send this command after getting the downlink command (0x26 02) from the server.
354 )))
355
356 (((
357 [[image:image-20220609110123-5.png]]
358 )))
359
360 (((
361
362 )))
363
364 * (((
365 (% style="color:#4f81bd" %)**TDC: (default: 0x001C20)**
366 )))
367
368 (((
369 Uplink interval for the Open/Close Event, default value is 0x001C20 which is 7200 seconds = 2 hours.
370 )))
371
372 (((
373
374 )))
375
376 * (((
377 (% style="color:#4f81bd" %)**Disalarm: (default: 0)**
378 )))
379
380 (((
381 (% style="color:#037691" %) **If Disalarm = 1**(%%), LDS03A will only send uplink at every TDC periodically. This is normally use for pulse meter application, in this application, there are many open/close event, and platform only care about the total number of pulse.
382 )))
383
384 (((
385 (% style="color:#037691" %) **If Disalarm = 0**(%%), LDS03A will send uplink at every TDC periodically and send data on each open/close event. This is useful for the application user need to monitor the open/close event in real-time.
386
387
388 )))
389
390 (((
391 (% style="color:red" %)** Note: When Disalarm=0, a high frequently open/close event will cause lots of uplink and drain battery very fast. **
392 )))
393
394 (((
395
396 )))
397
398 * (((
399 (% style="color:#4f81bd" %)**Keep Status & Keep Time**
400 )))
401
402 (((
403 Shows the configure value of [[Alarm Base on Timeout Feature>>||anchor="H3.8A0AlarmBaseonTimeout"]]
404 )))
405
406
407 [[image:image-20220609110018-4.png||height="291" width="1159"]]
408
409
410
411 === 2.3.3  Real-Time Open/Close Status, Uplink FPORT~=2 ===
412
413
414 LDS03A will send this uplink **after** Device Status once join the LoRaWAN network successfully. And LDS03A will:
415
416 ~1. periodically send this uplink every 2 hours, this interval [[can be changed>>||anchor="H3.1A0SetTransmitIntervalTime"]].
417
418 2. There is an Open/Close event. 
419
420
421 Uplink Payload totals 11 bytes.
422
423 (% border="1" cellspacing="5" style="background-color:#ffffcc; color:green; width:500px" %)
424 |=(% colspan="5" style="width: 492px;" %)**Real-Time Open/Close Status, FPORT=2**
425 |(% style="width:60px" %)**Size(bytes)**|(% style="width:70px" %)**1**|(% style="width:90px" %)**3**|(% style="width:120px" %)**3**|(% style="width:80px" %)**4**
426 |(% style="width:101px" %)**Value**|(% style="width:77px" %)Status & [[Alarm>>||anchor="H3.8A0AlarmBaseonTimeout"]]|(% style="width:99px" %)Total open door events|(% style="width:88px" %)(((
427 The last door open
428 duration (unit: min)
429 )))|(% style="width:126px" %)[[Unix TimeStamp>>||anchor="H2.4.1A0UnixTimeStamp"]]
430
431
432 (% border="1" cellspacing="5" style="background-color:#ffffcc; color:green; width:465px" %)
433 |=(% colspan="4" style="width: 462px;" %)**Status & Alarm field**
434 |(% style="width:60px" %)**Size(bit)**|(% style="width:50px" %)**6**|(% style="width:176px" %)**1**|(% style="width:131px" %)**1**
435 |(% style="width:82px" %)**Value**|(% style="width:71px" %)Reserve|(% style="width:176px" %)[[Enable/disable Timeout Alarm>>||anchor="H3.8A0AlarmBaseonTimeout"]]
436 0: No Alarm; 1: Alarm|(% style="width:131px" %)Status
437 0: Close, 1: Open
438
439 [[image:image-20220609110547-6.png||height="337" width="1191"]]
440
441
442
443 === 2.3.4  Historical Door Open/Close Event, FPORT~=3 ===
444
445
446 (((
447 LDS03A stores sensor values and users can retrieve these history values via the [[downlink command>>||anchor="H2.4A0DatalogFeature"]].
448 )))
449
450 (((
451 The historical payload includes one or multiplies entries and every entry has the same payload as Real-Time open/close status.
452 )))
453
454 (((
455
456 )))
457
458 * (((
459 Each data entry is 11 bytes and has the same structure as [[Real-Time open/close status>>||anchor="H2.3.3A0Real-TimeOpen2FCloseStatus2CUplinkFPORT3D2"]], to save airtime and battery, LDS03A will send max bytes according to the current DR and Frequency bands.
460 )))
461
462 (((
463 For example, in the US915 band, the max payload for different DR is:
464 )))
465
466 1. (((
467 (% style="color:blue" %)**DR0**(%%): max is 11 bytes so one entry of data
468 )))
469 1. (((
470 (% style="color:blue" %)**DR1**(%%): max is 53 bytes so devices will upload 4 entries of data (total 44 bytes)
471 )))
472 1. (((
473 (% style="color:blue" %)**DR2**(%%): total payload includes 11 entries of data
474 )))
475 1. (((
476 (% style="color:blue" %)**DR3**(%%): total payload includes 22 entries of data.
477 )))
478
479 (((
480
481
482 If LDS03A doesn't have any data in the polling time. It will uplink 11 bytes of 0
483 )))
484
485
486 [[image:image-20220609112215-7.png||height="277" width="1250"]]
487
488
489 (((
490 (% style="color:#037691" %)**Downlink:**
491 )))
492
493 (((
494 0x31 61 8E 57 40 61 8E 81 70 05
495 )))
496
497 (((
498
499 )))
500
501 (((
502 (% style="color:#037691" %)**Uplink:**
503 )))
504
505 (((
506 00 00 00 00 00 00 00 61 8E 5F 8F 01 00 00 01 00 00 00 61 8E 5F D2 00 00 00 01 00 00 02 61 8E 60 64 01 00 00 02 00 00 02 61 8E 60 75 00 00 00 02 00 00 01 61 8E 60 C6 00 00 00 02 00 00 01 61 8E 7B A7 01 00 00 03 00 00 01 61 8E 7F 38 00 00 00 03 00 00 02 61 8E 7F CE 01 00 00 04 00 00 02 61 8E 81 1B 00 00 00 04 00 00 00 61 8E 81 50
507 )))
508
509 (((
510
511 )))
512
513 (((
514 (% style="color:#037691" %)**Parsed Value:**
515 )))
516
517 (((
518 [ALARM, DOOR_OPEN_STATUS, DOOR_OPEN_TIMES,LAST_DOOR_OPEN_DURATION, TIME]
519 )))
520
521 (((
522
523 )))
524
525 (((
526 [FALSE, CLOSE, 0, 0, 2021-11-12 12:35:27],
527 )))
528
529 (((
530 [FALSE, OPEN,  1, 0, 2021-11-12 12:36:34],
531 )))
532
533 (((
534 [FALSE, CLOSE, 1, 2, 2021-11-12 12:39:00],
535 )))
536
537 (((
538 [FALSE, OPEN,  2, 2, 2021-11-12 12:39:17],
539 )))
540
541 (((
542 [FALSE, CLOSE, 2, 1, 2021-11-12 12:40:38],
543 )))
544
545 (((
546 [FALSE, CLOSE, 2, 1, 2021-11-12 14:35:19],
547 )))
548
549 (((
550 [FALSE, OPEN,  3, 1, 2021-11-12 14:50:32],
551 )))
552
553 (((
554 [FALSE, CLOSE, 3, 2, 2021-11-12 14:53:02],
555 )))
556
557 (((
558 [FALSE, OPEN,  4, 2, 2021-11-12 14:58:35],
559 )))
560
561 (((
562 [FALSE, CLOSE, 4, 0, 2021-11-12 14:59:28],
563 )))
564
565
566
567 == 2.4  Datalog Feature ==
568
569
570 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.
571
572
573
574 === 2.4.1  Unix TimeStamp ===
575
576
577 LDS03A use Unix TimeStamp format based on
578
579 [[image:image-20220609113256-8.png]]
580
581
582 (((
583 Users can get this time from the link:  [[https:~~/~~/www.epochconverter.com/>>url:https://www.epochconverter.com/]] :
584 )))
585
586 (((
587 Below is the converter example
588 )))
589
590 [[image:image-20220609113256-9.png||height="467" width="1127"]]
591
592
593 (((
594 So, we can use AT+TIMESTAMP=1611889405 or downlink 3060137afd00 to set the current time 2021 – Jan ~-~- 29 Friday 03:03:25
595 )))
596
597
598
599 === 2.4.2  Set Device Time ===
600
601
602 (((
603 There are two ways to set the device's time:
604 )))
605
606 (((
607
608
609 (% style="color:blue" %)**1.  Through LoRaWAN MAC Command (Default settings)**
610 )))
611
612 (((
613 Users need to set SYNCMOD=1 to enable sync time via the MAC command.
614 )))
615
616 (((
617 Once LDS03A Joined the LoRaWAN network, it will send the MAC command (DeviceTimeReq) and the server will reply with (DeviceTimeAns) to send the current time to LDS03A. If LDS03A fails to get the time from the server, LDS03A will use the internal time and wait for the next time request ~[[[via Device Status (FPORT=5)>>||anchor="H2.3.1A0DeviceStatus2CFPORT3D5"]]].
618 )))
619
620 (((
621
622 )))
623
624 (((
625 (% 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.**
626 )))
627
628 (((
629
630 )))
631
632 (((
633 (% style="color:blue" %)**2.  Manually Set Time**
634 )))
635
636 (((
637 Users need to set SYNCMOD=0 to manual time, otherwise, the user set time will be overwritten by the time set by the server.
638 )))
639
640
641
642 == 2.5 ​Show Data in DataCake IoT Server ==
643
644
645 (((
646 (((
647 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:
648 )))
649 )))
650
651 (((
652 (((
653
654 )))
655 )))
656
657 (((
658 (((
659 (% 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]]
660 )))
661 )))
662
663 (((
664 (((
665 (% style="color:blue" %)**Step 2**(%%)**: Configure LDS03A in Datacake.**
666 )))
667 )))
668
669
670 [[image:1654746350207-427.png]]
671
672
673 [[image:1654747162439-840.png]]
674
675
676 [[image:1654746405400-203.png]]
677
678
679
680 [[image:1654746763908-732.png]]
681
682
683
684 [[image:1654746716087-684.png]]
685
686
687 [[image:1654746693868-718.png]]
688
689
690 [[image:1654746674738-826.png]]
691
692
693 [[image:1654746646379-591.png]]
694
695
696 [[image:1654746549277-209.png]]
697
698
699 [[image:1654746593411-887.png]]
700
701
702
703 = 3.  Configure LDS03A via AT Command or LoRaWAN Downlink =
704
705
706 (((
707 Use can configure LDS03A via AT Command or LoRaWAN Downlink.
708 )))
709
710 * (((
711 AT Command Connection: See [[FAQ>>||anchor="H5.A0FAQ"]].
712 )))
713 * (((
714 LoRaWAN Downlink instruction for different platforms: [[IoT LoRaWAN Server>>doc:Main.WebHome]]
715
716
717 )))
718
719 (((
720 There are two kinds of commands to configure LDS03A, they are:
721 )))
722
723 * (((
724 (% style="color:#4f81bd" %)** General Commands**.
725 )))
726
727 (((
728 These commands are to configure:
729 )))
730
731 * (((
732 General system settings like: uplink interval.
733 )))
734 * (((
735 LoRaWAN protocol & radio related command.
736 )))
737
738 (((
739 They are same for all Dragino Device which support DLWS-005 LoRaWAN Stack. 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]]
740 )))
741
742 (((
743
744 )))
745
746 * (((
747 (% style="color:#4f81bd" %)** Commands special design for LDS03A**
748 )))
749
750 (((
751 These commands only valid for LDS03A, as below:
752 )))
753
754
755
756 == 3.1  Set Transmit Interval Time ==
757
758
759 Feature: Change LoRaWAN End Node Transmit Interval.
760
761 (% style="color:#4472c4" %)**AT Command: AT+TDC**
762
763
764 [[image:image-20220607171554-8.png]]
765
766
767 (((
768 (% style="color:#4472c4" %)**Downlink Command: 0x01**
769 )))
770
771 (((
772 Format: Command Code (0x01) followed by 3 bytes time value.
773 )))
774
775 (((
776 If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01.
777 )))
778
779 * (((
780 Example 1: Downlink Payload: 0100001E  ~/~/ Set Transmit Interval (TDC) = 30 seconds
781 )))
782 * (((
783 Example 2: Downlink Payload: 0100003C  ~/~/ Set Transmit Interval (TDC) = 60 seconds
784
785
786
787
788
789 )))
790
791 == 3.2  Set Password ==
792
793
794 Feature: Set device password, max 9 digits.
795
796 (% style="color:#4472c4" %)**AT Command: AT+PWORD**
797
798 (% border="1" cellspacing="5" style="background-color:#ffffcc; color:green; width:404.989px" %)
799 |=(% style="width: 170px;" %)**Command Example**|=(% style="width: 123px;" %)**Function**|=(% style="width: 109px;" %)**Response**
800 |(% style="width:170px" %)(((
801 AT+PWORD=?
802 )))|(% style="width:123px" %)(((
803 Show password
804 )))|(% style="width:109px" %)(((
805 (((
806 123456
807 )))
808
809 (((
810 OK
811 )))
812 )))
813 |(% style="width:170px" %)(((
814 AT+PWORD=999999
815 )))|(% style="width:123px" %)(((
816 Set password
817 )))|(% style="width:109px" %)(((
818 OK
819 )))
820
821 (% style="color:#4472c4" %)**Downlink Command:**
822
823 No downlink command for this feature.
824
825
826
827 == 3.3  Quit AT Command ==
828
829
830 Feature: Quit AT Command mode, so user needs to input the password again before using AT Commands.
831
832 (% style="color:#4472c4" %)**AT Command: AT+DISAT**
833
834
835 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:451.989px" %)
836 |=(% style="width: 155px;" %)**Command Example**|=(% style="width: 198px;" %)**Function**|=(% style="width: 96px;" %)**Response**
837 |(% style="width:155px" %)AT+DISAT|(% style="width:198px" %)Quit AT Commands mode|(% style="width:96px" %)OK
838
839 (% style="color:#4472c4" %)**Downlink Command:**
840
841 No downlink command for this feature.
842
843
844
845 == 3.4  Enable / Disable Alarm ==
846
847
848 Feature: Enable/Disable Alarm for open/close event. Default value 0.
849
850 (% style="color:#4472c4" %)**AT Command:**
851
852 [[image:image-20220609140712-1.png]]
853
854
855 (% style="color:#4472c4" %)**Downlink Command:**
856
857 0xA7 01  ~/~/ Same As AT+DISALARM=1
858
859 0xA7 00  ~/~/ Same As AT+DISALARM=0
860
861
862
863 == 3.5  Clear count ==
864
865
866 Feature: Clear current door open.
867
868 (% style="color:#4472c4" %)**AT Command:**
869
870 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:510.222px" %)
871 |=(% style="width: 155px;" %)**Command Example**|=(% style="width: 266px;" %)**Function**|=(% style="width: 85px;" %)**Response**
872 |(% style="width:155px" %)AT+CLRC|(% style="width:266px" %)Clear the count of door open events.|(% style="width:85px" %)OK
873
874 (% style="color:#4472c4" %)**Downlink Command:**
875
876 0xA6 01 ~/~/ Same As AT+ CLRC
877
878
879
880 == 3.6  Set system time ==
881
882
883 Feature: Set system time, Unix format. [[See here for format detail.>>||anchor="H2.4.1A0UnixTimeStamp"]]
884
885 (% style="color:#4472c4" %)**AT Command:**
886
887 [[image:image-20220609141735-2.png]]
888
889
890 (% style="color:#4472c4" %)**Downlink Command:**
891
892 0x306007806000  ~/~/ Set timestamp to 0x(6007806000),Same as AT+TIMESTAMP=1611104352
893
894
895
896 == 3.7  Set Time Sync Mode ==
897
898
899 (((
900 Feature: Enable/Disable Sync system time via LoRaWAN MAC Command (DeviceTimeReq), LoRaWAN server must support v1.0.3 protocol to reply to this command.
901 )))
902
903 (((
904 SYNCMOD is set to 1 by default. If user wants to set a different time from the LoRaWAN server, the user needs to set this to 0.
905 )))
906
907
908 (% style="color:#4472c4" %)**AT Command:**
909
910 [[image:image-20220609142205-4.png]]
911
912
913 (% style="color:#4472c4" %)**Downlink Command:**
914
915 0x28 01  ~/~/ Same As AT+SYNCMOD=1
916
917 0x28 01 08  ~/~/ Same As AT+SYNCMOD=1,8
918
919 0x28 01 F4  ~/~/ Same As AT+SYNCMOD=1,-12
920
921 0x28 00  ~/~/ Same As AT+SYNCMOD=0
922
923
924
925 == 3.8  Alarm Base on Timeout ==
926
927
928 (((
929 (((
930 LDS03A 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:
931 )))
932
933 (((
934
935 )))
936
937 * (((
938 (% style="color:blue" %)**Keep Status: Status to be monitor**
939 )))
940
941 (((
942 Keep Status = 1: Monitor Close to Open event
943 )))
944
945 (((
946 Keep Status = 0: Monitor Open to Close event
947 )))
948
949 (((
950
951 )))
952
953 * (((
954 (% style="color:blue" %)**Keep Time: Timeout to send an Alarm**
955 )))
956
957 (((
958 Range 0 ~~ 65535(0xFFFF) seconds.
959 )))
960
961 (((
962 If keep time = 0, Disable Alarm Base on Timeout feature.
963 )))
964
965 (((
966 If keep time > 0, device will monitor the keep status event and send an alarm when status doesn't change after timeout.
967 )))
968
969 (((
970
971 )))
972 )))
973
974 (((
975 (((
976 (% style="color:#4472c4" %)**AT Command to configure:**
977 )))
978
979 * (((
980 (% style="color:red" %)**AT+TTRIG=1,30** (%%) **~-~->** When the **Keep Status** change from close to open, and device remains in open status for more than 30 seconds. LDS03A will send an uplink packet, the [[Alarm bit>>||anchor="H2.3.3A0Real-TimeOpen2FCloseStatus2CUplinkFPORT3D2"]] (the second bit of 1^^st^^ byte of payload) on this uplink packet is set to 1.
981 )))
982
983 * (((
984 (% style="color:red" %)**AT+TTRIG=0,0**  (%%) **~-~-> ** Default Value, disable timeout Alarm.
985 )))
986 )))
987
988 (((
989 (((
990
991 )))
992
993 (((
994 (% style="color:#4472c4" %)**Downlink Command to configure:**
995 )))
996
997 (((
998 **Command: (% style="color:red" %)0xA9 aa bb cc(%%)**
999 )))
1000 )))
1001
1002 (((
1003 (((
1004 **A9:** Command Type Code
1005 )))
1006 )))
1007
1008 (((
1009 (((
1010 **aa:** status to be monitored
1011 )))
1012 )))
1013
1014 (((
1015 (((
1016 **bb cc:** timeout.
1017 )))
1018 )))
1019
1020 (((
1021
1022 )))
1023
1024 (((
1025 (((
1026 If user send 0xA9 01 00 1E: equal to AT+TTRIG=1,30
1027 )))
1028 )))
1029
1030 (((
1031 (((
1032 Or
1033 )))
1034 )))
1035
1036 (((
1037 (((
1038 0xA9 00 00 00: Equal to AT+TTRIG=0,0. Disable timeout Alarm.
1039 )))
1040 )))
1041
1042
1043
1044 == 3.9  Clear Flash Record ==
1045
1046
1047 (((
1048 Feature: Clear flash storage for data log feature.
1049 )))
1050
1051 (((
1052 (% style="color:#4472c4" %)**AT Command: AT+CLRDTA**
1053 )))
1054
1055 (((
1056 [[image:image-20220609142912-5.png]]
1057 )))
1058
1059 (((
1060
1061 )))
1062
1063 (((
1064 (((
1065 (% style="color:#4472c4" %)**Downlink Command:**
1066 )))
1067
1068 (((
1069 Example: 0xA301  ~/~/  Same as AT+CLRDTA
1070 )))
1071 )))
1072
1073
1074
1075 == 3.10  Count Mod (Since firmware v1.2.0) ==
1076
1077
1078 (% style="color:#4472c4" %)**AT Command:**
1079
1080 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:404.989px" %)
1081 |=(% style="width: 157px;" %)**Command Example**|=(% style="width: 156px;" %)**Function**|=(% style="width: 89px;" %)**Response**
1082 |(% style="width:157px" %)(((
1083 AT+COUNTMOD=0
1084 )))|(% style="width:156px" %)(((
1085 the count value keeps accumulating mode
1086 )))|(% style="width:89px" %)(((
1087 (((
1088
1089 )))
1090
1091 (((
1092 OK
1093 )))
1094 )))
1095 |(% style="width:157px" %)(((
1096 AT+COUNTMOD=1
1097 )))|(% style="width:156px" %)(((
1098 the count value will be reset after each TDC time(Last Close Duration Reset after each uplink)
1099 )))|(% style="width:89px" %)(((
1100 OK
1101 )))
1102
1103 (% style="color:#4472c4" %)**Downlink Command:**
1104
1105 Example:  0B aa  => AT+COUNTMOD = second byte
1106
1107
1108
1109 == 3.11  Interrupt Pin Channel Mod(Since firmware v1.2.0) ==
1110
1111
1112 (% style="color:#4472c4" %)**AT Command:**
1113
1114 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:404.989px" %)
1115 |=(% style="width: 157px;" %)**Command Example**|=(% style="width: 156px;" %)**Function**|=(% style="width: 89px;" %)**Response**
1116 |(% style="width:157px" %)(((
1117 AT+TTRCHANNEL=1
1118 )))|(% style="width:156px" %)(((
1119 set as single channel, only use PB14 pin as interrupt pin.
1120 )))|(% style="width:89px" %)(((
1121 (((
1122
1123 )))
1124
1125 (((
1126 OK
1127 )))
1128 )))
1129 |(% style="width:157px" %)(((
1130 AT+TTRCHANNEL=2
1131 )))|(% style="width:156px" %)(((
1132 is set as dual channel, use PB14 pin and PB15 pin as interrupt pin.
1133 )))|(% style="width:89px" %)(((
1134 OK
1135 )))
1136
1137 (% style="color:#4472c4" %)**Downlink Command:**
1138
1139 Example:  0D aa => AT+TTRCHANNEL = second byte
1140
1141
1142
1143 == 3.12  Change the name of AT+TTRIG to AT+TTRIG1(Since firmware v1.2.0) ==
1144
1145
1146 (% style="color:#4472c4" %)**Downlink Command:**
1147
1148 Example:  A9 01 aa bb cc  => AT+TTRIG1= third byte, 4th byte and 5th byte
1149
1150
1151
1152 == 3.13  Added AT+TTRIG2 for PB15 pin(Since firmware v1.2.0) ==
1153
1154
1155 (% style="color:#4472c4" %)**Downlink Command:**
1156
1157 Example: A9 02 aa bb cc  => AT+TTRIG2= third byte, 4th byte and 5th byte
1158
1159
1160
1161 == 3.14  TTRIG1/2 timeout status alarm(Since firmware v1.2.0) ==
1162
1163
1164 It needs to be used with AT+TTRIG1 or AT+TTRIG2. When TTRIG1 or TTRIG2 times out and causes an alarm, and the status does not change subsequently, an alarm packet will be sent at the alarm interval.
1165
1166 (% style="color:#4472c4" %)**AT Command:**
1167
1168 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:404.989px" %)
1169 |=(% style="width: 157px;" %)**Command Example**|=(% style="width: 156px;" %)**Function**|=(% style="width: 89px;" %)**Response**
1170 |(% style="width:157px" %)(((
1171 AT+TTRALARM=0
1172 )))|(% style="width:156px" %)(((
1173 disable continuous alarm
1174 )))|(% style="width:89px" %)(((
1175 (((
1176
1177 )))
1178
1179 (((
1180 OK
1181 )))
1182 )))
1183 |(% style="width:157px" %)(((
1184 AT+TTRALARM=60
1185 )))|(% style="width:156px" %)(((
1186 The alarm interval is 60 minutes (unit: minutes)
1187 )))|(% style="width:89px" %)(((
1188 OK
1189 )))
1190
1191 (% style="color:#4472c4" %)**Downlink Command:**
1192
1193 Example:  0C aa  => AT+TTRALARM= third byte
1194
1195
1196
1197 == 3.15  Select counting mode(Since firmware V1.2.1) ==
1198
1199
1200 (% style="color:blue" %)**AT+TTRMODx=a,b**
1201
1202 When (% style="color:red" %)**a=0**,(%%) the door is opened to count, and when (% style="color:red" %)**a=1**,(%%)the closed door is counted.
1203
1204 When (% style="color:red" %)**b=0**,(%%) it is the last door open duration, and when (% style="color:red" %)**b=1**,(%%)the last door close duration.
1205
1206
1207 (% style="color:#4472c4" %)**AT Command:**
1208
1209 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:404.989px" %)
1210 |=(% style="width: 157px;" %)**Command Example**|=(% style="width: 156px;" %)**Function**|=(% style="width: 89px;" %)**Response**
1211 |(% style="width:157px" %)(((
1212 AT+TTRMODx=1,0
1213 )))|(% style="width:156px" %)Door closed count and record the last door opened duration|(% style="width:89px" %)(((
1214 (((
1215
1216 )))
1217
1218 (((
1219 OK
1220 )))
1221 )))
1222 |(% style="width:157px" %)(((
1223 AT+TTRMODx=0,1
1224 )))|(% style="width:156px" %)(((
1225 Door opened count and record the last door Door Door open closed duration
1226 )))|(% style="width:89px" %)(((
1227 OK
1228 )))
1229
1230
1231 = 4.  Battery & How to replace =
1232
1233
1234 == 4.1  Battery Info ==
1235
1236
1237 (((
1238 (((
1239 LWL03A 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.
1240
1241 The battery related documents as below:
1242
1243 * (((
1244 [[Battery Dimension>>url:https://www.dragino.com/downloads/index.php?dir=datasheet/Battery/]],
1245 )))
1246 * (((
1247 [[Lithium-Thionyl Chloride Battery  datasheet>>url:https://www.dragino.com/downloads/downloads/datasheet/Battery/ER26500/ER26500_Datasheet-EN.pdf]],
1248 )))
1249 * (((
1250 [[Lithium-ion Battery-Capacitor datasheet>>url:https://www.dragino.com/downloads/index.php?dir=datasheet/Battery/]], [[Tech Spec>>url:https://www.dragino.com/downloads/index.php?dir=datasheet/Battery/]]
1251 )))
1252 )))
1253
1254 (((
1255 The discharge curve is not linear so can't simply use percentage to show the battery level. Below is the battery performance.
1256
1257
1258 )))
1259 )))
1260
1261 [[image:1654593587246-335.png]]
1262
1263
1264 Minimum Working Voltage for the LWL03A:
1265
1266 LWL03A:  2.45v ~~ 3.6v
1267
1268
1269
1270 === 4.1.1  ​Battery Note ===
1271
1272
1273 (((
1274 (((
1275 The Li-SICO battery is designed for small current / long period application. 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 time to transmit LoRa, then the battery life may be decreased.
1276 )))
1277 )))
1278
1279
1280
1281 == 4.2  Replace Battery ==
1282
1283
1284 (((
1285 Any battery with range 2.45 ~~ 3.6v can be a replacement. We recommend to use Li-SOCl2 Battery.
1286 )))
1287
1288 (((
1289 And make sure the positive and negative pins match.
1290 )))
1291
1292 [[image:image-20221031154914-6.png]]
1293
1294
1295
1296 == 4.3  Battery Life Analyze ==
1297
1298
1299 (((
1300 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:
1301
1302 [[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]]
1303
1304
1305 When entering the first command, the **RED LED** will on and user can now input AT Commands. After input all needed AT Commands, please input **AT+CLPM=1** to set the device to work in Low Power mode and **RED LED** will be off.
1306
1307 More detail AT Command manual can be found at [[AT Command Manual>>url:http://www.dragino.com/downloads/index.php?dir=LoRa_End_Node/LDS01/]]
1308 )))
1309
1310 (((
1311 (((
1312
1313 )))
1314 )))
1315
1316
1317
1318 = 5.  FAQ =
1319
1320
1321 == 5.1  How to use AT Command to configure LDS03A ==
1322
1323
1324 LWL03A UART connection photo
1325
1326
1327 [[image:1654757007713-791.png]]
1328
1329
1330 (((
1331 In the PC, you need to set the serial baud rate to (% style="color:green" %)**9600**(%%) to access the serial console for LWL03A. LWL03A will output system info once power on as below:
1332 )))
1333
1334
1335 [[image:image-20220609144231-3.png||height="644" width="922"]]
1336
1337
1338
1339 == 5.2  How to upgrade the firmware? ==
1340
1341
1342 A new firmware might be available for:
1343
1344 * (((
1345 Support new features
1346 )))
1347 * (((
1348 For bug fix
1349 )))
1350 * (((
1351 Change LoRaWAN bands.
1352 )))
1353
1354 Instruction for how to upgrade: [[Firmware Upgrade Instruction>>doc:Main.Firmware Upgrade Instruction for STM32 base products.WebHome||anchor="H2.HardwareUpgradeMethodSupportList"]]
1355
1356
1357 Firmware location:
1358
1359 [[https:~~/~~/www.dropbox.com/sh/23v29gi61jq9mp6/AABgwJQ_xuybFivgbDZwTyNGa?dl=0>>url:https://www.dropbox.com/sh/23v29gi61jq9mp6/AABgwJQ_xuybFivgbDZwTyNGa?dl=0]]
1360
1361
1362
1363 == 5.3  How to change the LoRa Frequency Bands/Region? ==
1364
1365
1366 Users can follow the introduction for how to upgrade image. When downloading the images, choose the required image file for download.
1367
1368
1369
1370 = 6.  Order Info =
1371
1372
1373 **Water Leak Controller Part Number:** (% style="color:blue" %)**LWL03A-XXX**
1374
1375 (% style="color:blue" %)**XXX**(%%):
1376
1377 * **EU433**: frequency bands EU433
1378 * **EU868**: frequency bands EU868
1379 * **KR920**: frequency bands KR920
1380 * **CN470**: frequency bands CN470
1381 * **AS923**: frequency bands AS923
1382 * **AU915**: frequency bands AU915
1383 * **US915**: frequency bands US915
1384 * **IN865**: frequency  bands IN865
1385 * **CN779**: frequency bands CN779
1386
1387
1388
1389 **Water Leak Cable Part Number: DR-WLN-XXX**
1390
1391 **XXX:**
1392
1393 * **1M : 1 meter water leak cable**
1394 * **5M : 5 meters water leak cable**
1395 * **10M: 10 meters water leak cable**
1396
1397
1398 = 7.  ​Packing Info =
1399
1400
1401 **LWL03A Package Includes**:
1402
1403 * LWL03A x 1
1404 * 1 x 1m water lead cable
1405 * 1 x termination end
1406
1407
1408
1409 = 8.  ​Support =
1410
1411
1412 * 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.
1413 * Provide as much information as possible regarding your enquiry (product models, accurately describe your problem and steps to replicate it etc) and send a mail to [[support@dragino.com>>url:http://../../../../../../D:%5C%E5%B8%82%E5%9C%BA%E8%B5%84%E6%96%99%5C%E8%AF%B4%E6%98%8E%E4%B9%A6%5CLoRa%5CLT%E7%B3%BB%E5%88%97%5Csupport@dragino.com]].
1414
1415
1416 = =
Copyright ©2010-2022 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0