Version 170.1 by Edwin Chen on 2023/12/11 22:50

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