Version 171.1 by Mengting Qiu on 2023/12/12 11:11

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.
302
303 (% class="wikigeneratedid" %)
304 **Uplink Payload totals 9 bytes.**
305
306 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:680px" %)
307 |(% 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**
308 |(% style="width:91px" %)Value|(% style="width:41px" %)BAT|(% style="width:210px" %)MOD+ DO+ Alarm+ DO flag+ Limit flag|(% style="width:74px" %)Distance |(% style="width:100px" %)Upper limit|(% style="width:119px" %)Lower limit
309
310 **MOD+DO+ Alarm+ Do flag+ Limit flag:**
311
312 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:680px" %)
313 |(% 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:90px" %)**bit5**|(% style="background-color:#4f81bd; color:white; width:90px" %)**bit4**|(% style="background-color:#4f81bd; color:white; width:120px" %)**bit3**|(% style="background-color:#4f81bd; color:white; width:100px" %)**[bit2:bit1:bit0]**
314 |(% style="width:50px" %)Value|(% style="width:60px" %)MOD|(% style="width:89px" %)(((
315 (((
316 DO
317 )))
318
319 (((
320 0:Within limit
321
322 1:Out of limit
323 )))
324 )))|(% style="width:73px" %)(((
325 Alarm
326
327 0: No Alarm;
328
329 1: Alarm
330 )))|(% style="width:150px" %)(((
331 DO flag
332
333 0:the over-limit alarm mode
334
335 1:the person or object count mode
336 )))|(% style="width:103px" %)Limit flag
337 (0~~3)
338
339 Example parse in TTNv3
340
341 [[image:image-20231209171127-3.png||height="374" width="1209"]]
342
343 (% style="color:blue" %)**MOD & Alarm & Do & Limit flag:**
344
345 (% style="color:red" %)**MOD:**
346
347 **Example: ** (0x60>>6) & 0x3f =1
348
349 **0x01:**  Regularly detect distance and report.
350 **0x02: ** Uninterrupted measurement (external power supply).
351
352 (% style="color:red" %)**Alarm:**
353
354 When the detection distance exceeds the limit, the alarm flag is set to 1.
355
356 (% style="color:red" %)**DO:**
357
358 When the distance exceeds the set threshold, pull the Do pin high.
359
360 (% style="color:red" %)**Limit flag:**
361
362 Mode for setting threshold: **0~~3**
363
364 **0:** does not use upper and lower limits
365
366 **1:** Use upper and lower limits
367
368 **2:** Less than the upper limit
369
370 **3: **Greater than the lower limit
371
372
373 (% style="color:blue" %)**Distance:**
374
375 Actual sampling distance values.
376
377 **Example:**
378
379 **AT+DOL=1,500,244,**(% style="color:red" %)0(%%)**,120  **
380
381 The distance is detected every 120ms.
382
383 When the actual detection value is within the range of [244mm,500mm], the data is uploaded in the normal TDC time.
384
385 When the actual detection value is outside the range of [244mm,500mm], the uplink data will be immediately alerted.
386
387 If payload is: 0708H: distance = 0708H = 1800 mm
388
389
390 (% style="color:blue" %)**Upper limit:**
391
392 The upper limit of the threshold cannot exceed 2000mm.
393
394
395 (% style="color:blue" %)**Lower limit:**
396
397 The lower limit of the threshold cannot be less than 3mm.
398
399
400 * **Set the person or object count mode: AT+DOL=1,500,244,**(% style="color:red" %)1(%%)**,120**
401
402 Continuous measurement, detect and count people or things passing by in distance limit mode.
403
404 **Uplink Payload totals 11 bytes.**
405
406 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:680px" %)
407 |(% 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**
408 |(% style="width:91px" %)Value|(% style="width:41px" %)BAT|(% style="width:210px" %)MOD+ DO+ Alarm+ DO flag+ Limit flag|(% style="width:176px" %)Distance limit alarm count|(% style="width:100px" %)Upper limit|(% style="width:119px" %)Lower limit
409
410 **MOD+DO+ Alarm+ Do flag+ Limit flag:**
411
412 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:680px" %)
413 |(% 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:90px" %)**bit5**|(% style="background-color:#4f81bd; color:white; width:90px" %)**bit4**|(% style="background-color:#4f81bd; color:white; width:120px" %)**bit3**|(% style="background-color:#4f81bd; color:white; width:100px" %)**[bit2:bit1:bit0]**
414 |(% style="width:50px" %)Value|(% style="width:60px" %)MOD|(% style="width:89px" %)(((
415 (((
416 DO
417 )))
418
419 (((
420 0:Within limit
421
422 1:Out of limit
423 )))
424 )))|(% style="width:73px" %)(((
425 Alarm
426
427 0: No Alarm;
428
429 1: Alarm
430 )))|(% style="width:150px" %)(((
431 DO flag
432
433 0:the over-limit alarm mode
434
435 1:the person or object count mode
436 )))|(% style="width:103px" %)Limit flag
437 (0~~3)
438
439 Example parse in TTNv3
440
441 [[image:image-20231209173457-5.png||height="277" width="1098"]]
442
443 (% style="color:blue" %)**MOD & Alarm & Do & Limit flag:**
444
445 (% style="color:red" %)**MOD:**
446
447 **Example: ** (0x60>>6) & 0x3f =1
448
449 **0x01:**  Regularly detect distance and report.
450 **0x02: ** Uninterrupted measurement (external power supply).
451
452 (% style="color:red" %)**Alarm:**
453
454 When the detection distance exceeds the limit, the alarm flag is set to 1.
455
456 (% style="color:red" %)**Do:**
457
458 When the distance exceeds the set threshold, pull the Do pin high.
459
460 (% style="color:red" %)**Limit flag:**
461
462 Mode for setting threshold: **0~~3**
463
464 **0:** does not use upper and lower limits
465
466 **1:** Use upper and lower limits
467
468 **2:** Less than the upper limit
469
470 **3: **Greater than the lower limit
471
472
473 (% style="color:blue" %)**Distance limit alarm count:**
474
475 People or objects are collected and counted within a limited distance.
476
477 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.
478
479 **Example:**
480
481 **AT+DOL=1,500,244,**(% style="color:red" %)1(%%)**,120   **
482
483 People or objects passing within the distance range of [244mm,500mm] are detected and counted every 120ms.
484
485 If payload is: 0x56H, interrupt count =0x56H =86
486
487
488 (% style="color:blue" %)**Upper limit:**
489
490 The upper limit of the threshold cannot exceed 2000mm.
491
492
493 (% style="color:blue" %)**Lower limit:**
494
495 The lower limit of the threshold cannot be less than 3mm.
496
497
498 == 2.4 Decode payload in The Things Network ==
499
500
501 While using TTN network, you can add the payload format to decode the payload.
502
503 [[image:image-20231206143515-1.png||height="534" width="759"]]
504
505
506 (((
507 The payload decoder function for TTN is here:
508 )))
509
510 (((
511 DS20L TTN Payload Decoder:  [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>https://github.com/dragino/dragino-end-node-decoder]]
512 )))
513
514
515 == 2.5 ​Show Data in DataCake IoT Server ==
516
517
518 (((
519 [[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:
520 )))
521
522
523 (((
524 (% style="color:blue" %)**Step 1**(%%)**: Be sure that your device is programmed and properly connected to the network at this time.**
525 )))
526
527 (((
528 (% 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:**
529 )))
530
531
532 [[image:image-20231207153532-6.png||height="562" width="861"]]
533
534
535 [[image:image-20231207155940-8.png]]
536
537 For more detailed instructions, refer to the following instructions: [[Welcome - Datacake Docs>>url:https://docs.datacake.de/]]
538
539 [[image:image-20231207160733-11.png||height="429" width="759"]]
540
541
542 (% style="color:blue" %)**Step 3**(%%)**: Create an account or log in Datacake.**
543
544 (% style="color:blue" %)**Step 4**(%%)**: Search the DS20L and add DevEUI.**
545
546 [[image:image-20231207160343-10.png||height="665" width="705"]]
547
548
549 After added, the sensor data arrive TTN V3, it will also arrive and show in Datacake.
550
551 [[image:image-20231129100454-2.png||height="501" width="928"]]
552
553
554 == 2.6 Frequency Plans ==
555
556
557 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.
558
559 [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/]]
560
561
562 = 3. Configure DS20L =
563
564 == 3.1 Configure Methods ==
565
566
567 DS20L supports below configure method:
568
569 * AT Command via Bluetooth Connection (**Recommended**): [[BLE Configure Instruction>>http://wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/]].
570
571 * 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]].
572
573 * LoRaWAN Downlink.  Instruction for different platforms: See [[IoT LoRaWAN Server>>http://wiki.dragino.com/xwiki/bin/view/Main/]] section.
574
575 == 3.2 General Commands ==
576
577
578 These commands are to configure:
579
580 * General system settings like: uplink interval.
581
582 * LoRaWAN protocol & radio related command.
583
584 They are same for all Dragino Devices which support DLWS-005 LoRaWAN Stack. These commands can be found on the wiki:
585
586 [[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/]]
587
588
589 == 3.3 Commands special design for DS20L ==
590
591
592 Below commands only valid for DS20L, as below:
593
594
595 === 3.3.1 Set Transmit Interval Time ===
596
597
598 (((
599 Feature: Change LoRaWAN End Node Transmit Interval.
600 )))
601
602 (((
603 (% style="color:blue" %)**AT Command: AT+TDC**
604 )))
605
606 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
607 |=(% 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**
608 |(% style="width:156px" %)AT+TDC=?|(% style="width:137px" %)Show current transmit Interval|(((
609 30000
610 OK
611 the interval is 30000ms = 30s
612 )))
613 |(% style="width:156px" %)AT+TDC=60000|(% style="width:137px" %)Set Transmit Interval|(((
614 OK
615 Set transmit interval to 60000ms = 60 seconds
616 )))
617
618 (((
619 (% style="color:blue" %)**Downlink Command: 0x01**
620 )))
621
622 (((
623 Format: Command Code (0x01) followed by 3 bytes time value.
624 )))
625
626 (((
627 If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01.
628 )))
629
630 * (((
631 Example 1: Downlink Payload: 0100001E  ~/~/ Set Transmit Interval (TDC) = 30 seconds
632 )))
633 * (((
634 Example 2: Downlink Payload: 0100003C  ~/~/ Set Transmit Interval (TDC) = 60 seconds
635
636
637
638 )))
639
640 === 3.3.2 Set Interrupt Mode ===
641
642
643 Feature, Set Interrupt mode for pin of GPIO_EXTI.
644
645 When AT+INTMOD=0 is set, GPIO_EXTI is used as a digital input port.
646
647 (% style="color:blue" %)**AT Command: AT+INTMOD**
648
649 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
650 |=(% 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**
651 |(% style="width:154px" %)AT+INTMOD=?|(% style="width:196px" %)Show current interrupt mode|(% style="width:157px" %)(((
652 0
653 OK
654 the mode is 0 =Disable Interrupt
655 )))
656 |(% style="width:154px" %)(((
657 AT+INTMOD=3
658
659 (default)
660 )))|(% style="width:196px" %)(((
661 Set Transmit Interval
662 0. (Disable Interrupt),
663 ~1. (Trigger by rising and falling edge)
664 2. (Trigger by falling edge)
665 3. (Trigger by rising edge)
666 )))|(% style="width:157px" %)OK
667
668 (% style="color:blue" %)**Downlink Command: 0x06**
669
670 Format: Command Code (0x06) followed by 3 bytes.
671
672 This means that the interrupt mode of the end node is set to 0x000003=3 (rising edge trigger), and the type code is 06.
673
674 * Example 1: Downlink Payload: 06000000  ~/~/  Turn off interrupt mode
675
676 * Example 2: Downlink Payload: 06000003  ~/~/  Set the interrupt mode to rising edge trigger
677
678 === 3.3.3 Set work mode ===
679
680
681 Feature: Switch working mode
682
683 (% style="color:blue" %)**AT Command: AT+MOD**
684
685 (% border="1" cellspacing="5" style="background-color:#f2f2f2; width:510px" %)
686 |=(% 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**
687 |(% style="width:162px" %)AT+MOD=?|(% style="width:191px" %)Get the current working mode.|(% style="width:106px" %)OK
688 |(% style="width:162px" %)AT+MOD=1|(% style="width:191px" %)Set the working mode to Regular measurements.|(% style="width:106px" %)(((
689 OK
690 Attention:Take effect after ATZ
691 )))
692
693 (% style="color:blue" %)**Downlink Command:**
694
695 * **Example: **0x0A01 ~/~/  Same as AT+MOD=1
696
697 * **Example:** 0x0A02  ~/~/  Same as AT+MOD=2
698
699 === 3.3.4 Set threshold and threshold mode ===
700
701
702 Feature, Set threshold and threshold mode
703
704 When (% style="color:#037691" %)**AT+DOL=0,0,0,0,400**(%%) is set, No threshold is used, the sampling time is 400ms.
705
706 (% style="color:blue" %)**AT Command: AT+DOL**
707
708 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
709 |(% 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**
710 |(% style="width:172px" %)AT+ DOL =?|(% style="width:279px" %)Get the current threshold mode and sampling time|(% style="width:118px" %)(((
711 0,0,0,0,400
712 OK
713 )))
714 |(% style="width:172px" %)AT+ DOL =1,1800,100,0,400|(% style="width:279px" %)Set only the upper and lower thresholds|(% style="width:118px" %)OK
715
716 (% border="1" cellspacing="5" style="background-color:#f2f2f2; width:510px" %)
717 |=(% 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
718 |(% rowspan="11" style="color:blue; width:120px" %)(((
719
720
721
722
723
724
725
726
727
728
729
730 **AT+DOL=1,1800,3,0,400**
731 )))|(% rowspan="4" style="width:240px" %)(((
732
733
734
735
736 The first bit sets the limit mode
737 )))|(% style="width:150px" %)0: Do not use upper and lower limits
738 |(% style="width:251px" %)1: Use upper and lower limits
739 |(% style="width:251px" %)2:Less than the upper limit
740 |(% style="width:251px" %)3: Greater than the lower limit
741 |(% style="width:226px" %)The second bit sets the upper limit value|(% style="width:251px" %)3~~2000MM
742 |(% style="width:226px" %)The third bit sets the lower limit value|(% style="width:251px" %)3~~2000MM
743 |(% 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
744 |(% style="width:251px" %)1 Person or object counting statistics
745 |(% style="width:226px" %)The fifth bit sets the sampling time|(% style="width:251px" %)(((
746 100~~10000ms
747
748
749 )))
750
751 (% style="color:blue" %)**Downlink Command: 0x07**
752
753 Format: Command Code (0x07) followed by 9 bytes.
754
755 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.
756
757 * Example 0: Downlink Payload: 07 00 0000 0000 00 0190  **~-~-->**  AT+MOD=0,0,0,0,400
758
759 * Example 1: Downlink Payload: 070107080064000190  **~-~-->**  AT+MOD=1,1800,100,0,400
760
761 * Example 2: Downlink Payload: 070200000064000190  **~-~-->**  AT+MOD=2,1800,100,0,400
762
763 * Example 3: Downlink Payload: 070300000064000190  **~-~-->**  AT+MOD=3,0,100,0,400
764
765 (% style="color:Red" %)**Note: The over-limit alarm is applied to MOD1 and MOD2.**
766
767 **For example:**
768
769 * **AT+MOD=1**
770
771 **AT+DOL=1,500,244,**(% style="color:blue" %)0(%%)**,300**
772
773 Send data according to the normal TDC time. If the mode limit is exceeded, the alarm flag is set to 1:
774
775 [[image:image-20231211113204-2.png||height="292" width="1093"]]
776
777 * **AT+MOD=2  **
778
779 **AT+DOL=1,500,244,**(% style="color:blue" %)0(%%)**,300**
780
781 If the mode limit is exceeded, the data is immediately uplink and the alarm flag is set to 1:
782
783 [[image:image-20231211114932-3.png||height="277" width="1248"]]
784
785
786
787
788
789 = 4. Battery & Power Consumption =
790
791
792 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.
793
794 [[**Battery Info & Power Consumption Analyze**>>http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] .
795
796
797 = 5. OTA Firmware update =
798
799
800 (% class="wikigeneratedid" %)
801 User can change firmware DS20L to:
802
803 * Change Frequency band/ region.
804
805 * Update with new features.
806
807 * Fix bugs.
808
809 Firmware and changelog can be downloaded from : **[[Firmware download link>>https://www.dropbox.com/sh/zqv1vt3komgp4tu/AAC33PnXIcWOVl_UXBEAeT_xa?dl=0]]**
810
811 Methods to Update Firmware:
812
813 * (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/]]**
814
815 * 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]]**.
816
817 = 6. FAQ =
818
819 == 6.1 What is the frequency plan for DS20L? ==
820
821
822 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"]]
823
824
825 == 6.2 DS20L programming line ==
826
827
828 缺图 后续补上
829
830 feature:
831
832 for AT commands
833
834 Update the firmware of DS20L
835
836 Support interrupt mode
837
838
839 == 6.3 LiDAR probe position ==
840
841
842 [[image:1701155390576-216.png||height="285" width="307"]]
843
844 The black oval hole in the picture is the LiDAR probe.
845
846
847 == 6.4 Interface definition ==
848
849 [[image:image-20231128151132-2.png||height="305" width="557"]]
850
851
852 = 7. Trouble Shooting =
853
854 == 7.1 AT Command input doesn't work ==
855
856
857 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.
858
859
860 == 7.2 Significant error between the output distant value of LiDAR and actual distance ==
861
862
863 (((
864 (% 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.)
865 )))
866
867 (((
868 (% style="color:red" %)**Troubleshooting**(%%): Please avoid use of this product under such circumstance in practice.
869 )))
870
871
872 (((
873 (% style="color:blue" %)**Cause ②**(%%)**: **The IR-pass filters are blocked.
874 )))
875
876 (((
877 (% style="color:red" %)**Troubleshooting**(%%): please use dry dust-free cloth to gently remove the foreign matter.
878 )))
879
880
881 = 8. Order Info =
882
883
884 Part Number: (% style="color:blue" %)**DS20L-XXX**
885
886 (% style="color:red" %)**XXX**(%%): **The default frequency band**
887
888 * (% style="color:red" %)**AS923**(%%): LoRaWAN AS923 band
889
890 * (% style="color:red" %)**AU915**(%%): LoRaWAN AU915 band
891
892 * (% style="color:red" %)**EU433**(%%): LoRaWAN EU433 band
893
894 * (% style="color:red" %)**EU868**(%%): LoRaWAN EU868 band
895
896 * (% style="color:red" %)**KR920**(%%): LoRaWAN KR920 band
897
898 * (% style="color:red" %)**US915**(%%): LoRaWAN US915 band
899
900 * (% style="color:red" %)**IN865**(%%): LoRaWAN IN865 band
901
902 * (% style="color:red" %)**CN470**(%%): LoRaWAN CN470 band
903
904 = 9. ​Packing Info =
905
906
907 (% style="color:#037691" %)**Package Includes**:
908
909 * DS20L LoRaWAN Smart Distance Detector x 1
910
911 (% style="color:#037691" %)**Dimension and weight**:
912
913 * Device Size: cm
914
915 * Device Weight: g
916
917 * Package Size / pcs : cm
918
919 * Weight / pcs : g
920
921 = 10. Support =
922
923
924 * 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.
925
926 * 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]].