Version 170.2 by Mengting Qiu on 2023/12/12 10:36

Show last authors
1 (% style="text-align:center" %)
2 [[image:image-20231110085342-2.png||height="481" width="481"]]
3
4
5
6
7
8
9
10
11 **Table of Contents:(% style="display:none" %) (%%)**
12
13 {{toc/}}
14
15
16
17
18
19
20 = 1. Introduction =
21
22 == 1.1 What is LoRaWAN Smart Distance Detector ==
23
24
25 The Dragino (% style="color:blue" %)**DS20L is a smart distance detector**(%%) base on long-range wireless LoRaWAN technology. It uses (% style="color:blue" %)**LiDAR sensor**(%%) to detect the distance between DS20L and object, then DS20L will send the distance data to the IoT Platform via LoRaWAN. DS20L can measure range between 3cm ~~ 200cm.
26
27 DS20L allows users to send data and reach extremely long ranges via LoRaWAN. It provides ultra-long range spread spectrum communication and high interference immunity whilst minimizing current 
28 consumption. It targets professional wireless sensor network applications such smart cities, building automation, and so on.
29
30 DS20L has a (% style="color:blue" %)**built-in 2400mAh non-chargeable battery**(%%) for long-term use up to several years*. Users can also power DS20L with an external power source for (% style="color:blue" %)**continuous measuring and distance alarm / counting purposes.**
31
32 DS20L is fully compatible with (% style="color:blue" %)**LoRaWAN v1.0.3 Class A protocol**(%%), it can work with a standard LoRaWAN gateway.
33
34
35 [[image:image-20231110102635-5.png||height="402" width="807"]]
36
37
38 == 1.2 ​Features ==
39
40
41 * LoRaWAN Class A protocol
42 * LiDAR distance detector, range 3 ~~ 200cm
43 * Periodically detect or continuously detect mode
44 * AT Commands to change parameters
45 * Remotely configure parameters via LoRaWAN Downlink
46 * Alarm & Counting mode
47 * Firmware upgradable via program port or LoRa protocol
48 * Built-in 2400mAh battery or power by external power source
49
50 == 1.3 Specification ==
51
52 (% style="color:#037691" %)**LiDAR Sensor:**
53
54 * Operation Temperature: -40 ~~ 80 °C
55 * Operation Humidity: 0~~99.9%RH (no Dew)
56 * Storage Temperature: -10 ~~ 45°C
57 * Measure Range: 3cm~~200cm @ 90% reflectivity
58 * Accuracy: ±2cm @ (3cm~~100cm); ±5% @ (100~~200cm)
59 * ToF FoV: ±9°, Total 18°
60 * Light source: VCSEL
61
62 == 1.4 Power Consumption ==
63
64
65 (% style="color:#037691" %)**Battery Power Mode:**
66
67 * Idle: 3uA @ 3.3v
68 * Max : 360 mA
69
70 (% style="color:#037691" %)**Continuously mode**:
71
72 * Idle: 21 mA @ 3.3v
73 * Max : 360 mA
74
75 == 1.5 Use Case ==
76
77 (% class="mark" %)**Regular Distance Detect**
78
79 [[image:image-20231211220922-1.png||height="352" width="605"]]
80
81
82 (% class="mark" %)**Counting / Alarm**
83
84 [[image:image-20231211221253-2.png]]
85
86
87 [[image:image-20231211221436-3.png]]
88
89
90 = 2. Configure DS20L to connect to LoRaWAN network =
91
92 == 2.1 How it works ==
93
94
95 The DS20L is configured as (% style="color:#037691" %)**LoRaWAN OTAA Class A**(%%) mode by default. It has OTAA keys to join LoRaWAN network. To connect a local LoRaWAN network, you need to input the OTAA keys in the LoRaWAN IoT server and press the button to activate the DS20L. It will automatically join the network via OTAA and start to send the sensor value. The default uplink interval is 20 minutes.
96
97 (% style="display:none" %) (%%)
98
99 == 2.2 ​Quick guide to connect to LoRaWAN server (OTAA) ==
100
101
102 Following is an example for how to join the [[TTN v3 LoRaWAN Network>>url:https://console.cloud.thethings.network/]]. Below is the network structure; we use the [[LPS8v2>>url:https://www.dragino.com/products/lora-lorawan-gateway/item/228-lps8v2.html]] as a LoRaWAN gateway in this example.
103
104 The LPS8v2 is already set to connected to [[TTN network >>url:https://console.cloud.thethings.network/]], so what we need to now is configure the TTN server.(% style="display:none" %)
105
106 [[image:image-20231110102635-5.png||height="402" width="807"]](% style="display:none" %)
107
108 === Step 1: Create a device in TTN with the OTAA keys from DS20L. ===
109
110 Each DS20L is shipped with a sticker with the default device EUI as below:
111
112 [[image:image-20230426084152-1.png||alt="图片-20230426084152-1.png" height="233" width="502"]]
113
114
115 You can enter this key in the LoRaWAN Server portal. Below is TTN V3 screenshot:
116
117
118 (% style="color:blue" %)**Register the device**
119
120 [[image:image-20231207144600-2.png||height="703" width="756"]]
121
122
123 (% style="color:blue" %)**Add DevEUI and AppKey**
124
125 [[image:image-20231207145121-5.png||height="540" width="756"]]
126
127
128
129 === Step 2: Activate DS20L ===
130
131 [[image:image-20231128133704-1.png||height="189" width="441"]]
132
133 Press the button for 5 seconds to activate the DS20L.
134
135 The switch is switched to (% style="color:blue" %)**E** (%%)and the external power supply is used.
136
137 The switch is switched to (% style="color:blue" %)**I** (%%)and DS20L will be power by the built-in battery.
138
139 (% style="color:green" %)**Green led**(%%) will fast blink 5 times, device will enter (% style="color:blue" %)**OTA mode**(%%) for 3 seconds. And then start to JOIN LoRaWAN network. (% style="color:green" %)**Green led**(%%) will solidly turn on for 5 seconds after joined in network.
140
141 After join success, it will start to upload messages to TTN and you can see the messages in the panel.
142
143
144
145 == 2.3 ​Uplink Payload ==
146
147 === 2.3.1 Device Status, FPORT~=5 ===
148
149
150 Users can use the downlink command(**0x26 01**) to ask DS20L to send device configure detail, include device configure status. DS20L will uplink a payload via FPort=5 to server.
151
152 The Payload format is as below.
153
154 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
155 |=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
156 **Size(bytes)**
157 )))|=(% style="width: 100px; background-color: #4F81BD;color:white;" %)**1**|=(% style="width: 100px; background-color: #4F81BD;color:white;" %)**2**|=(% style="background-color: #4F81BD;color:white; width: 100px;" %)**1**|=(% style="background-color: #4F81BD;color:white; width: 100px;" %)**1**|=(% style="background-color: #4F81BD;color:white; width: 50px;" %)**2**
158 |(% style="width:62.5px" %)Value|(% style="width:110px" %)Sensor Model|(% style="width:48px" %)Firmware Version|(% style="width:94px" %)Frequency Band|(% style="width:91px" %)Sub-band|(% style="width:60px" %)BAT
159
160 Example parse in TTNv3
161
162 [[image:image-20231206151412-3.png||height="179" width="1070"]]
163
164 (% style="color:blue" %)**Sensor Model**(%%): For DS20L, this value is 0x21
165
166 (% style="color:blue" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version
167
168 (% style="color:blue" %)**Frequency Band**:
169
170 0x01: EU868
171
172 0x02: US915
173
174 0x03: IN865
175
176 0x04: AU915
177
178 0x05: KZ865
179
180 0x06: RU864
181
182 0x07: AS923
183
184 0x08: AS923-1
185
186 0x09: AS923-2
187
188 0x0a: AS923-3
189
190 0x0b: CN470
191
192 0x0c: EU433
193
194 0x0d: KR920
195
196 0x0e: MA869
197
198 (% style="color:blue" %)**Sub-Band**:
199
200 AU915 and US915:value 0x00 ~~ 0x08
201
202 CN470: value 0x0B ~~ 0x0C
203
204 Other Bands: Always 0x00
205
206 (% style="color:blue" %)**Battery Info**:
207
208 Check the battery voltage.
209
210 Ex1: 0x0B45 = 2885mV
211
212 Ex2: 0x0B49 = 2889mV
213
214
215 === 2.3.2 Uplink Payload, FPORT~=2 ===
216
217
218 ==== (% style="color:red" %)**AT+MOD~=1**(%%) ====
219
220 Regularly detect distance and report. When the distance exceeds the limit, the alarm flag is set to 1, and the report can be triggered by external interrupts.
221
222 **Uplink Payload totals 10 bytes.**
223
224 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
225 |(% style="background-color:#4f81bd; color:White; width:60px" %)**Size(bytes)**|(% style="background-color:#4f81bd; color:White; width:30px" %)**2**|(% style="background-color:#4f81bd; color:White; width:130px" %)**1**|(% style="background-color:#4f81bd; color:White; width:70px" %)**2**|(% style="background-color:#4f81bd; color:White; width:100px" %)**1**|(% style="background-color:#4f81bd; color:White; width:120px" %)**4**
226 |(% style="width:91px" %)Value|(% style="width:41px" %)BAT|(% style="width:176px" %)MOD+ Alarm+ Interrupt|(% style="width:74px" %)Distance|(% style="width:100px" %)Sensor State|(% style="width:119px" %)Interrupt Count
227
228 **MOD+ Alarm+ Interrupt:**
229
230 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:400px" %)
231 |(% style="background-color:#4f81bd; color:White; width:50px" %)**Size(bit)**|(% style="background-color:#4f81bd; color:White; width:60px" %)**[bit7:bit6]**|(% style="background-color:#4f81bd; color:White; width:70px" %)**bit5**|(% style="background-color:#4f81bd; color:White; width:120px" %)**bit4**
232 |(% style="width:80px" %)Value|(% style="width:80px" %)MOD|(% style="width:89px" %)Digital Interrupt
233 |(% style="width:167px" %)(((
234 Distance Alarm
235
236 0: No Alarm;
237
238 1: Alarm
239 )))
240
241 Example parse in TTNv3
242
243 [[image:image-20231209152917-1.png||height="300" width="1172"]]
244
245 (% style="color:blue" %)**Battery Info:**
246
247 Check the battery voltage for DS20L
248
249 Ex1: 0x0E10 = 3600mV
250
251
252 (% style="color:blue" %)**MOD & Alarm & Interrupt:**
253
254 (% style="color:red" %)**MOD:**
255
256 **Example: ** (0x60>>6) & 0x3f =1
257
258 **0x01:**  Regularly detect distance and report.
259 **0x02: ** Uninterrupted measurement (external power supply).
260
261 (% style="color:red" %)**Alarm:**
262
263 When the detection distance exceeds the limit, the alarm flag is set to 1.
264
265 (% style="color:red" %)**Interrupt:**
266
267 Whether it is an external interrupt.
268
269
270 (% style="color:blue" %)**Distance info:**
271
272 **Example**:
273
274 If payload is: 0708H: distance = 0708H = 1800 mm
275
276
277 (% style="color:blue" %)**Sensor State:**
278
279 Ex1: 0x00: Normal collection distance
280
281 Ex2: 0x0x: Distance collection is wrong
282
283
284 (% style="color:blue" %)**Interrupt Count:**
285
286 If payload is:000007D0H: count = 07D0H =2000
287
288
289
290 ==== (% style="color:red" %)**AT+MOD~=2**(%%)** ** ====
291
292
293 The power consumption of uninterrupted measurement is high, and the device needs to use external power supply.(The switch is switched to E and the external power supply is used.)
294
295 [[image:image-20231128133704-1.png||height="189" width="441"]]
296
297
298 * **Set over-limit alarm mode: AT+DOL=3,500,244,**(% style="color:red" %)0(%%)**,120**
299
300 (% class="wikigeneratedid" id="HUninterruptedmeasurement.Whenthedistanceexceedsthelimit2CtheoutputIOissethighandreportsarereportedeveryfiveminutes.Thetimecanbesetandpoweredbyanexternalpowersupply.UplinkPayloadtotals11bytes." %)
301 Uninterrupted measurement. When the distance exceeds the limit, the output IO high, instant alarm. Uplink Payload totals 9 bytes.
302
303 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
304 |(% style="background-color:#4f81bd; color:white; width:70px" %)**Size(bytes)**|(% style="background-color:#4f81bd; color:white; width:40px" %)**2**|(% style="background-color:#4f81bd; color:white; width:130px" %)**1**|(% style="background-color:#4f81bd; color:white; width:130px" %)**2**|(% style="background-color:#4f81bd; color:white; width:70px" %)**2**|(% style="background-color:#4f81bd; color:white; width:70px" %)**2**
305 |(% style="width:91px" %)Value|(% style="width:41px" %)BAT|(% style="width:176px" %)MOD+Alarm+DO+Limit flag|(% style="width:74px" %)Distance |(% style="width:100px" %)Upper limit|(% style="width:119px" %)Lower limit
306
307 [[image:image-20231209171127-3.png||height="374" width="1209"]]
308
309 (% style="color:blue" %)**MOD & Alarm & Do & Limit flag:**
310
311 (% style="color:red" %)**MOD:**
312
313 **Example: ** (0x60>>6) & 0x3f =1
314
315 **0x01:**  Regularly detect distance and report.
316 **0x02: ** Uninterrupted measurement (external power supply).
317
318 (% style="color:red" %)**Alarm:**
319
320 When the detection distance exceeds the limit, the alarm flag is set to 1.
321
322 (% style="color:red" %)**DO:**
323
324 When the distance exceeds the set threshold, pull the Do pin high.
325
326 (% style="color:red" %)**Limit flag:**
327
328 Mode for setting threshold: **0~~3**
329
330 **0:** does not use upper and lower limits
331
332 **1:** Use upper and lower limits
333
334 **2:** Less than the upper limit
335
336 **3: **Greater than the lower limit
337
338
339 (% style="color:blue" %)**Distance:**
340
341 Actual sampling distance values.
342
343 **Example:**
344
345 **AT+DOL=1,500,244,**(% style="color:red" %)0(%%)**,120  **
346
347 The distance is detected every 120ms.
348
349 When the actual detection value is within the range of [244mm,500mm], the data is uploaded in the normal TDC time.
350
351 When the actual detection value is outside the range of [244mm,500mm], the uplink data will be immediately alerted.
352
353 If payload is: 0708H: distance = 0708H = 1800 mm
354
355
356 (% style="color:blue" %)**Upper limit:**
357
358 The upper limit of the threshold cannot exceed 2000mm.
359
360
361 (% style="color:blue" %)**Lower limit:**
362
363 The lower limit of the threshold cannot be less than 3mm.
364
365
366 * **Set the person or object count mode: AT+DOL=1,500,244,**(% style="color:red" %)1(%%)**,120**
367
368 Continuous measurement, detect and count people or things passing by in distance limit mode. Uplink Payload totals 11 bytes.
369
370 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:600px" %)
371 |(% style="background-color:#4f81bd; color:white; width:70px" %)**Size(bytes)**|(% style="background-color:#4f81bd; color:white; width:40px" %)**2**|(% style="background-color:#4f81bd; color:white; width:130px" %)**1**|(% style="background-color:#4f81bd; color:white; width:130px" %)**4**|(% style="background-color:#4f81bd; color:white; width:70px" %)**2**|(% style="background-color:#4f81bd; color:white; width:70px" %)**2**
372 |(% style="width:91px" %)Value|(% style="width:41px" %)BAT|(% style="width:176px" %)MOD+Alarm+Do+Limit flag|(% style="width:176px" %)Distance limit alarm count|(% style="width:100px" %)Upper limit|(% style="width:119px" %)Lower limit
373
374 [[image:image-20231209173457-5.png||height="277" width="1098"]]
375
376 (% style="color:blue" %)**MOD & Alarm & Do & Limit flag:**
377
378 (% style="color:red" %)**MOD:**
379
380 **Example: ** (0x60>>6) & 0x3f =1
381
382 **0x01:**  Regularly detect distance and report.
383 **0x02: ** Uninterrupted measurement (external power supply).
384
385 (% style="color:red" %)**Alarm:**
386
387 When the detection distance exceeds the limit, the alarm flag is set to 1.
388
389 (% style="color:red" %)**Do:**
390
391 When the distance exceeds the set threshold, pull the Do pin high.
392
393 (% style="color:red" %)**Limit flag:**
394
395 Mode for setting threshold: **0~~3**
396
397 **0:** does not use upper and lower limits
398
399 **1:** Use upper and lower limits
400
401 **2:** Less than the upper limit
402
403 **3: **Greater than the lower limit
404
405
406 (% style="color:blue" %)**Distance limit alarm count:**
407
408 People or objects are collected and counted within a limited distance.
409
410 The detection of a stationary person or object at each sampling time will be repeated three times, and the fourth sampling count will be added by 1.
411
412 **Example:**
413
414 **AT+DOL=1,500,244,**(% style="color:red" %)1(%%)**,120   **
415
416 People or objects passing within the distance range of [244mm,500mm] are detected and counted every 120ms.
417
418 If payload is: 0x56H, interrupt count =0x56H =86
419
420
421 (% style="color:blue" %)**Upper limit:**
422
423 The upper limit of the threshold cannot exceed 2000mm.
424
425
426 (% style="color:blue" %)**Lower limit:**
427
428 The lower limit of the threshold cannot be less than 3mm.
429
430
431 == 2.4 Decode payload in The Things Network ==
432
433
434 While using TTN network, you can add the payload format to decode the payload.
435
436 [[image:image-20231206143515-1.png||height="534" width="759"]]
437
438
439 (((
440 The payload decoder function for TTN is here:
441 )))
442
443 (((
444 DS20L TTN Payload Decoder:  [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>https://github.com/dragino/dragino-end-node-decoder]]
445 )))
446
447
448 == 2.5 ​Show Data in DataCake IoT Server ==
449
450
451 (((
452 [[DATACAKE>>url:https://datacake.co/]] provides a human friendly interface to show the sensor data, onhuman-friendlya in TTN, we can use [[DATACAKE>>url:https://datacake.co/]] to connect to TTN and see the data in DATACAKE. Below are the steps:
453 )))
454
455
456 (((
457 (% style="color:blue" %)**Step 1**(%%)**: Be sure that your device is programmed and properly connected to the network at this time.**
458 )))
459
460 (((
461 (% style="color:blue" %)**Step 2**(%%)**: To configure the Application to forward data to DATACAKE you will need to add integration. To add the DATACAKE integration, perform the following steps:**
462 )))
463
464
465 [[image:image-20231207153532-6.png||height="562" width="861"]]
466
467
468 [[image:image-20231207155940-8.png]]
469
470 For more detailed instructions, refer to the following instructions: [[Welcome - Datacake Docs>>url:https://docs.datacake.de/]]
471
472 [[image:image-20231207160733-11.png||height="429" width="759"]]
473
474
475 (% style="color:blue" %)**Step 3**(%%)**: Create an account or log in Datacake.**
476
477 (% style="color:blue" %)**Step 4**(%%)**: Search the DS20L and add DevEUI.**
478
479 [[image:image-20231207160343-10.png||height="665" width="705"]]
480
481
482 After added, the sensor data arrive TTN V3, it will also arrive and show in Datacake.
483
484 [[image:image-20231129100454-2.png||height="501" width="928"]]
485
486
487 == 2.6 Frequency Plans ==
488
489
490 The DS20L uses OTAA mode and below frequency plans by default. If user want to use it with different frequency plan, please refer the AT command sets.
491
492 [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/]]
493
494
495 = 3. Configure DS20L =
496
497 == 3.1 Configure Methods ==
498
499
500 DS20L supports below configure method:
501
502 * AT Command via Bluetooth Connection (**Recommended**): [[BLE Configure Instruction>>http://wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/]].
503
504 * AT Command via UART Connection : See [[UART Connection>>http://wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H2.3UARTConnectionforSN50v3basemotherboard]].
505
506 * LoRaWAN Downlink.  Instruction for different platforms: See [[IoT LoRaWAN Server>>http://wiki.dragino.com/xwiki/bin/view/Main/]] section.
507
508 == 3.2 General Commands ==
509
510
511 These commands are to configure:
512
513 * General system settings like: uplink interval.
514
515 * LoRaWAN protocol & radio related command.
516
517 They are same for all Dragino Devices which support DLWS-005 LoRaWAN Stack. These commands can be found on the wiki:
518
519 [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/]]
520
521
522 == 3.3 Commands special design for DS20L ==
523
524
525 Below commands only valid for DS20L, as below:
526
527
528 === 3.3.1 Set Transmit Interval Time ===
529
530
531 (((
532 Feature: Change LoRaWAN End Node Transmit Interval.
533 )))
534
535 (((
536 (% style="color:blue" %)**AT Command: AT+TDC**
537 )))
538
539 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
540 |=(% style="width: 156px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 137px;background-color:#4F81BD;color:white" %)**Function**|=(% style="background-color:#4F81BD;color:white" %)**Response**
541 |(% style="width:156px" %)AT+TDC=?|(% style="width:137px" %)Show current transmit Interval|(((
542 30000
543 OK
544 the interval is 30000ms = 30s
545 )))
546 |(% style="width:156px" %)AT+TDC=60000|(% style="width:137px" %)Set Transmit Interval|(((
547 OK
548 Set transmit interval to 60000ms = 60 seconds
549 )))
550
551 (((
552 (% style="color:blue" %)**Downlink Command: 0x01**
553 )))
554
555 (((
556 Format: Command Code (0x01) followed by 3 bytes time value.
557 )))
558
559 (((
560 If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01.
561 )))
562
563 * (((
564 Example 1: Downlink Payload: 0100001E  ~/~/ Set Transmit Interval (TDC) = 30 seconds
565 )))
566 * (((
567 Example 2: Downlink Payload: 0100003C  ~/~/ Set Transmit Interval (TDC) = 60 seconds
568
569
570
571 )))
572
573 === 3.3.2 Set Interrupt Mode ===
574
575
576 Feature, Set Interrupt mode for pin of GPIO_EXTI.
577
578 When AT+INTMOD=0 is set, GPIO_EXTI is used as a digital input port.
579
580 (% style="color:blue" %)**AT Command: AT+INTMOD**
581
582 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
583 |=(% style="width: 155px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 197px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 158px;background-color:#4F81BD;color:white" %)**Response**
584 |(% style="width:154px" %)AT+INTMOD=?|(% style="width:196px" %)Show current interrupt mode|(% style="width:157px" %)(((
585 0
586 OK
587 the mode is 0 =Disable Interrupt
588 )))
589 |(% style="width:154px" %)(((
590 AT+INTMOD=3
591
592 (default)
593 )))|(% style="width:196px" %)(((
594 Set Transmit Interval
595 0. (Disable Interrupt),
596 ~1. (Trigger by rising and falling edge)
597 2. (Trigger by falling edge)
598 3. (Trigger by rising edge)
599 )))|(% style="width:157px" %)OK
600
601 (% style="color:blue" %)**Downlink Command: 0x06**
602
603 Format: Command Code (0x06) followed by 3 bytes.
604
605 This means that the interrupt mode of the end node is set to 0x000003=3 (rising edge trigger), and the type code is 06.
606
607 * Example 1: Downlink Payload: 06000000  ~/~/  Turn off interrupt mode
608
609 * Example 2: Downlink Payload: 06000003  ~/~/  Set the interrupt mode to rising edge trigger
610
611 === 3.3.3 Set work mode ===
612
613
614 Feature: Switch working mode
615
616 (% style="color:blue" %)**AT Command: AT+MOD**
617
618 (% border="1" cellspacing="5" style="background-color:#f2f2f2; width:510px" %)
619 |=(% style="width: 162px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 193px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 155px;background-color:#4F81BD;color:white" %)**Response**
620 |(% style="width:162px" %)AT+MOD=?|(% style="width:191px" %)Get the current working mode.|(% style="width:106px" %)OK
621 |(% style="width:162px" %)AT+MOD=1|(% style="width:191px" %)Set the working mode to Regular measurements.|(% style="width:106px" %)(((
622 OK
623 Attention:Take effect after ATZ
624 )))
625
626 (% style="color:blue" %)**Downlink Command:**
627
628 * **Example: **0x0A01 ~/~/  Same as AT+MOD=1
629
630 * **Example:** 0x0A02  ~/~/  Same as AT+MOD=2
631
632 === 3.3.4 Set threshold and threshold mode ===
633
634
635 Feature, Set threshold and threshold mode
636
637 When (% style="color:#037691" %)**AT+DOL=0,0,0,0,400**(%%) is set, No threshold is used, the sampling time is 400ms.
638
639 (% style="color:blue" %)**AT Command: AT+DOL**
640
641 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
642 |(% style="background-color:#4f81bd; color:white; width:162px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:240px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:108px" %)**Response**
643 |(% style="width:172px" %)AT+ DOL =?|(% style="width:279px" %)Get the current threshold mode and sampling time|(% style="width:118px" %)(((
644 0,0,0,0,400
645 OK
646 )))
647 |(% style="width:172px" %)AT+ DOL =1,1800,100,0,400|(% style="width:279px" %)Set only the upper and lower thresholds|(% style="width:118px" %)OK
648
649 (% border="1" cellspacing="5" style="background-color:#f2f2f2; width:510px" %)
650 |=(% style="width: 162px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 193px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 155px;background-color:#4F81BD;color:white" %) Parameter
651 |(% rowspan="11" style="color:blue; width:120px" %)(((
652
653
654
655
656
657
658
659
660
661
662
663 **AT+DOL=1,1800,3,0,400**
664 )))|(% rowspan="4" style="width:240px" %)(((
665
666
667
668
669 The first bit sets the limit mode
670 )))|(% style="width:150px" %)0: Do not use upper and lower limits
671 |(% style="width:251px" %)1: Use upper and lower limits
672 |(% style="width:251px" %)2:Less than the upper limit
673 |(% style="width:251px" %)3: Greater than the lower limit
674 |(% style="width:226px" %)The second bit sets the upper limit value|(% style="width:251px" %)3~~2000MM
675 |(% style="width:226px" %)The third bit sets the lower limit value|(% style="width:251px" %)3~~2000MM
676 |(% rowspan="2" style="width:226px" %)The fourth bit sets the over-limit alarm or person or object count.|(% style="width:251px" %)0 Over-limit alarm, DO output is high
677 |(% style="width:251px" %)1 Person or object counting statistics
678 |(% style="width:226px" %)The fifth bit sets the sampling time|(% style="width:251px" %)(((
679 100~~10000ms
680
681
682 )))
683
684 (% style="color:blue" %)**Downlink Command: 0x07**
685
686 Format: Command Code (0x07) followed by 9 bytes.
687
688 If the downlink payload=**07 01 0708 0064 00 0190**, it means set the END Node's limit mode to 0x01,upper limit value to 0x0708=1800(mm), lower limit value to 0x0064=100(mm), to over-limit alarm(0x00) ,the sampling time to 0x0190=400(ms), while type code is 0x07.
689
690 * Example 0: Downlink Payload: 07 00 0000 0000 00 0190  **~-~-->**  AT+MOD=0,0,0,0,400
691
692 * Example 1: Downlink Payload: 070107080064000190  **~-~-->**  AT+MOD=1,1800,100,0,400
693
694 * Example 2: Downlink Payload: 070200000064000190  **~-~-->**  AT+MOD=2,1800,100,0,400
695
696 * Example 3: Downlink Payload: 070300000064000190  **~-~-->**  AT+MOD=3,0,100,0,400
697
698 (% style="color:Red" %)**Note: The over-limit alarm is applied to MOD1 and MOD2.**
699
700 **For example:**
701
702 * **AT+MOD=1**
703
704 **AT+DOL=1,500,244,**(% style="color:blue" %)0(%%)**,300**
705
706 Send data according to the normal TDC time. If the mode limit is exceeded, the alarm flag is set to 1:
707
708 [[image:image-20231211113204-2.png||height="292" width="1093"]]
709
710 * **AT+MOD=2  **
711
712 **AT+DOL=1,500,244,**(% style="color:blue" %)0(%%)**,300**
713
714 If the mode limit is exceeded, the data is immediately uplink and the alarm flag is set to 1:
715
716 [[image:image-20231211114932-3.png||height="277" width="1248"]]
717
718
719
720
721
722 = 4. Battery & Power Consumption =
723
724
725 DS20L use built-in 2400mAh non-chargeable battery for long-term use up to several years*. See below link for detail information about the battery info and how to replace.
726
727 [[**Battery Info & Power Consumption Analyze**>>http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] .
728
729
730 = 5. OTA Firmware update =
731
732
733 (% class="wikigeneratedid" %)
734 User can change firmware DS20L to:
735
736 * Change Frequency band/ region.
737
738 * Update with new features.
739
740 * Fix bugs.
741
742 Firmware and changelog can be downloaded from : **[[Firmware download link>>https://www.dropbox.com/sh/zqv1vt3komgp4tu/AAC33PnXIcWOVl_UXBEAeT_xa?dl=0]]**
743
744 Methods to Update Firmware:
745
746 * (Recommanded way) OTA firmware update via wireless:  **[[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/Firmware%20OTA%20Update%20for%20Sensors/>>url:http://wiki.dragino.com/xwiki/bin/view/Main/Firmware%20OTA%20Update%20for%20Sensors/]]**
747
748 * Update through UART TTL interface: **[[Instruction>>url:http://wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H1.LoRaSTv4baseHardware]]**.
749
750 = 6. FAQ =
751
752 == 6.1 What is the frequency plan for DS20L? ==
753
754
755 DS20L use the same frequency as other Dragino products. User can see the detail from this link:  [[Introduction>>doc:Main.End Device Frequency Band.WebHome||anchor="H1.Introduction"]]
756
757
758 == 6.2 DS20L programming line ==
759
760
761 缺图 后续补上
762
763 feature:
764
765 for AT commands
766
767 Update the firmware of DS20L
768
769 Support interrupt mode
770
771
772 == 6.3 LiDAR probe position ==
773
774
775 [[image:1701155390576-216.png||height="285" width="307"]]
776
777 The black oval hole in the picture is the LiDAR probe.
778
779
780 == 6.4 Interface definition ==
781
782 [[image:image-20231128151132-2.png||height="305" width="557"]]
783
784
785 = 7. Trouble Shooting =
786
787 == 7.1 AT Command input doesn't work ==
788
789
790 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:blue" %)**ENTER**(%%) while sending out the command. Some serial tool doesn't send (% style="color:blue" %)**ENTER**(%%) while press the send key, user need to add ENTER in their string.
791
792
793 == 7.2 Significant error between the output distant value of LiDAR and actual distance ==
794
795
796 (((
797 (% style="color:blue" %)**Cause ①**(%%)**:**Due to the physical principles of The LiDAR probe, the above phenomenon is likely to occur if the detection object is the material with high reflectivity (such as mirror, smooth floor tile, etc.) or transparent substance. (such as glass and water, etc.)
798 )))
799
800 (((
801 (% style="color:red" %)**Troubleshooting**(%%): Please avoid use of this product under such circumstance in practice.
802 )))
803
804
805 (((
806 (% style="color:blue" %)**Cause ②**(%%)**: **The IR-pass filters are blocked.
807 )))
808
809 (((
810 (% style="color:red" %)**Troubleshooting**(%%): please use dry dust-free cloth to gently remove the foreign matter.
811 )))
812
813
814 = 8. Order Info =
815
816
817 Part Number: (% style="color:blue" %)**DS20L-XXX**
818
819 (% style="color:red" %)**XXX**(%%): **The default frequency band**
820
821 * (% style="color:red" %)**AS923**(%%): LoRaWAN AS923 band
822
823 * (% style="color:red" %)**AU915**(%%): LoRaWAN AU915 band
824
825 * (% style="color:red" %)**EU433**(%%): LoRaWAN EU433 band
826
827 * (% style="color:red" %)**EU868**(%%): LoRaWAN EU868 band
828
829 * (% style="color:red" %)**KR920**(%%): LoRaWAN KR920 band
830
831 * (% style="color:red" %)**US915**(%%): LoRaWAN US915 band
832
833 * (% style="color:red" %)**IN865**(%%): LoRaWAN IN865 band
834
835 * (% style="color:red" %)**CN470**(%%): LoRaWAN CN470 band
836
837 = 9. ​Packing Info =
838
839
840 (% style="color:#037691" %)**Package Includes**:
841
842 * DS20L LoRaWAN Smart Distance Detector x 1
843
844 (% style="color:#037691" %)**Dimension and weight**:
845
846 * Device Size: cm
847
848 * Device Weight: g
849
850 * Package Size / pcs : cm
851
852 * Weight / pcs : g
853
854 = 10. Support =
855
856
857 * 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.
858
859 * Provide as much information as possible regarding your enquiry (product models, accurately describe your problem and steps to replicate it etc) and send a mail to [[Support@dragino.cc>>mailto:Support@dragino.cc]].