Version 122.1 by Xiaoling on 2023/11/28 15:05

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:**
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
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 == 1.4 Power Consumption ==
64
65
66 (% style="color:#037691" %)**Battery Power Mode:**
67
68 * Idle: 0.003 mA @ 3.3v
69 * Max : 360 mA
70
71 (% style="color:#037691" %)**Continuously mode**:
72
73 * Idle: 21 mA @ 3.3v
74 * Max : 360 mA
75
76 = 2. Configure DS20L to connect to LoRaWAN network =
77
78 == 2.1 How it works ==
79
80
81 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.
82
83 (% style="display:none" %) (%%)
84
85 == 2.2 ​Quick guide to connect to LoRaWAN server (OTAA) ==
86
87
88 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.
89
90 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" %)
91
92 [[image:image-20231110102635-5.png||height="402" width="807"]](% style="display:none" %)
93
94 (% style="color:blue" %)**Step 1:**(%%) Create a device in TTN with the OTAA keys from DS20L.
95
96 Each DS20L is shipped with a sticker with the default device EUI as below:
97
98 [[image:image-20230426084152-1.png||alt="图片-20230426084152-1.png" height="233" width="502"]]
99
100
101 You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:
102
103
104 (% style="color:blue" %)**Register the device**
105
106 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50v2-S31-S31B%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20User%20Manual/WebHome/1654935135620-998.png?rev=1.1||alt="1654935135620-998.png"]]
107
108
109 (% style="color:blue" %)**Add APP EUI and DEV EUI**
110
111 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50v2-S31-S31B%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20User%20Manual/WebHome/image-20220611161308-4.png?width=753&height=551&rev=1.1||alt="图片-20220611161308-4.png"]]
112
113
114 (% style="color:blue" %)**Add APP EUI in the application**
115
116
117 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50v2-S31-S31B%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20User%20Manual/WebHome/image-20220611161308-5.png?width=742&height=601&rev=1.1||alt="图片-20220611161308-5.png"]]
118
119
120 (% style="color:blue" %)**Add APP KEY**
121
122 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50v2-S31-S31B%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20User%20Manual/WebHome/image-20220611161308-6.png?width=744&height=485&rev=1.1||alt="图片-20220611161308-6.png"]]
123
124
125 (% style="color:blue" %)**Step 2:**(%%) Activate on DS20L
126
127 [[image:image-20231128133704-1.png||height="189" width="441"]]
128
129 Press the button for 5 seconds to activate the DS20L.
130
131 (% 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.
132
133 After join success, it will start to upload messages to TTN and you can see the messages in the panel.
134
135
136 == 2.3 ​Uplink Payload ==
137
138 === 2.3.1 Device Status, FPORT~=5 ===
139
140
141 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.
142
143 The Payload format is as below.
144
145 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
146 |=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
147 **Size(bytes)**
148 )))|=(% 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**
149 |(% 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
150
151 Example parse in TTNv3
152
153 [[image:1701149922873-259.png]]
154
155 (% style="color:blue" %)**Sensor Model**(%%): For DS20L, this value is 0x21
156
157 (% style="color:blue" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version
158
159 (% style="color:blue" %)**Frequency Band**:
160
161 0x01: EU868
162
163 0x02: US915
164
165 0x03: IN865
166
167 0x04: AU915
168
169 0x05: KZ865
170
171 0x06: RU864
172
173 0x07: AS923
174
175 0x08: AS923-1
176
177 0x09: AS923-2
178
179 0x0a: AS923-3
180
181 0x0b: CN470
182
183 0x0c: EU433
184
185 0x0d: KR920
186
187 0x0e: MA869
188
189 (% style="color:blue" %)**Sub-Band**:
190
191 AU915 and US915:value 0x00 ~~ 0x08
192
193 CN470: value 0x0B ~~ 0x0C
194
195 Other Bands: Always 0x00
196
197 (% style="color:blue" %)**Battery Info**:
198
199 Check the battery voltage.
200
201 Ex1: 0x0B45 = 2885mV
202
203 Ex2: 0x0B49 = 2889mV
204
205
206 === 2.3.2 Uplink Payload, FPORT~=2 ===
207
208
209 (((
210 DS20L will send this uplink **after** Device Status once join the LoRaWAN network successfully. And DS20L will:
211
212 periodically send this uplink every 20 minutes, this interval [[can be changed>>||anchor="H3.3.1SetTransmitIntervalTime"]].
213
214 Uplink Payload totals 11 bytes.
215 )))
216
217 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
218 |=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
219 **Size(bytes)**
220 )))|=(% style="width: 30px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 80px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 50px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 70px;background-color:#4F81BD;color:white" %)**2**|=(% style="background-color:#4F81BD;color:white; width: 80px;" %)**1**|=(% style="background-color: #4F81BD;color:white; width: 70px;" %)**1**|=(% style="background-color: #4F81BD;color:white; width: 70px;" %)**1**
221 |(% style="width:62.5px" %)Value|(% style="width:62.5px" %)[[BAT>>||anchor="HBatteryInfo"]]|(% style="width:62.5px" %)(((
222 [[Temperature DS18B20>>||anchor="HDS18B20Temperaturesensor"]]
223 )))|[[Distance>>||anchor="HDistance"]]|[[Distance signal strength>>||anchor="HDistancesignalstrength"]]|(% style="width:122px" %)(((
224 [[Interrupt flag & Interrupt_level>>||anchor="HInterruptPin26A0InterruptLevel"]]
225 )))|(% style="width:54px" %)[[LiDAR temp>>||anchor="HLiDARtemp"]]|(% style="width:96px" %)(((
226 [[Message Type>>||anchor="HMessageType"]]
227 )))
228
229 ==== (% style="color:red" %)**MOD~=1** ====
230
231 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.
232
233 Uplink Payload totals 10 bytes.
234
235 (% border="1" cellspacing="4" style="width:510px;background-color:#f2f2f2" %)
236 |(% style="width:60px;background-color:#4F81BD;color:white" %)**Size(bytes)**|(% style="width:30px;background-color:#4F81BD;color:white" %)**2**|(% style="width:130px;background-color:#4F81BD;color:white" %)**1**|(% style="width:70px;background-color:#4F81BD;color:white" %)**2**|(% style="width:100px;background-color:#4F81BD;color:white" %)**1**|(% style="width:120px;background-color:#4F81BD;color:white" %)**4**
237 |(% style="width:91px" %)Value|(% style="width:41px" %)[[BAT>>||anchor="HBatteryInfo"]]|(% style="width:176px" %)MOD+ Alarm+Interrupt|(% style="width:74px" %)Distance|(% style="width:100px" %)Sensor State|(% style="width:119px" %)Interrupt Count
238
239
240 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png]]
241
242 (% style="color:blue" %)**Battery Info**
243
244 Check the battery voltage for DS20L
245
246 Ex1: 0x0E10 = 3600mV
247
248 (% style="color:blue" %)**MOD & Alarm & Interrupt:**
249
250 (% style="color:red" %)**MOD:**
251
252 **Example: ** (0x60>>6) & 0x3f =1
253
254 **0x01:**  Regularly detect distance and report.
255 **0x02: ** Uninterrupted measurement (external power supply).
256
257 (% style="color:red" %)**Alarm:**
258
259 When the detection distance exceeds the limit, the alarm flag is set to 1.
260
261 (% style="color:red" %)**Interrupt:**
262
263 Whether it is an external interrupt.
264
265 (% style="color:blue" %)**Distance info**
266
267 **Example**:
268
269 If payload is: 0708H: distance = 0708H = 1800 mm
270
271 (% style="color:blue" %)**Sensor State**
272
273 Ex1: 0x00: Normal collection distance
274
275 Ex2 0x0x: Distance collection is wrong
276
277 (% style="color:blue" %)**Interript Count**
278
279 If payload is:000007D0H: count = 07D0H =2000
280
281
282
283
284 ==== (% style="color:red" %)**MOD=2** ====
285
286 Uninterrupted measurement. When the distance exceeds the limit, the output IO is set high and reports are reported every five minutes. The time can be set and powered by an external power supply.Uplink Payload totals 11bytes.
287
288 (% border="1" cellspacing="4" style="width:510px;background-color:#f2f2f2" %)
289 |(% style="width:70px;background-color:#4F81BD;color:white" %)**Size(bytes)**|(% style="width:40px;background-color:#4F81BD;color:white" %)**2**|(% style="width:130px;background-color:#4F81BD;color:white" %)**1**|(% style="width:130px;background-color:#4F81BD;color:white" %)**4**|(% style="width:70px;background-color:#4F81BD;color:white" %)**2**|(% style="width:70px;background-color:#4F81BD;color:white" %)**2**
290 |(% style="width:91px" %)Value|(% style="width:41px" %)[[BAT>>||anchor="HBatteryInfo"]]|(% style="width:176px" %)MOD+Alarm+Do+Limit flag|(% style="width:74px" %)Distance Limit Alarm count|(% style="width:100px" %)Upper limit|(% style="width:119px" %)Lower limit
291
292
293 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png]]
294
295 (% style="color:blue" %)**MOD & Alarm & Do & Limit flag:**
296
297 (% style="color:red" %)**MOD:**
298
299 **Example: ** (0x60>>6) & 0x3f =1
300
301 **0x01:**  Regularly detect distance and report.
302 **0x02: ** Uninterrupted measurement (external power supply).
303
304 (% style="color:red" %)**Alarm:**
305
306 When the detection distance exceeds the limit, the alarm flag is set to 1.
307
308 (% style="color:red" %)**Do:**
309
310 When the distance exceeds the set threshold, pull the Do pin high.
311
312 (% style="color:red" %)**Limit flag:**
313
314 Mode for setting threshold: 0~~5
315
316 0: does not use upper and lower limits
317
318 1: Use upper and lower limits
319
320 2: is less than the lower limit value
321
322 3: is greater than the lower limit value
323
324 4: is less than the upper limit
325
326 5: is greater than the upper limit
327
328
329 (% style="color:blue" %)**Upper limit:**
330
331 The upper limit of the threshold cannot exceed 2000mm.
332
333 (% style="color:blue" %)**Lower limit:**
334
335 The lower limit of the threshold cannot be less than 3mm.
336
337
338 === 2.3.3 Historical measuring distance, FPORT~=3 ===
339
340
341 DS20L stores sensor values and users can retrieve these history values via the [[downlink command>>||anchor="H2.5.4Pollsensorvalue"]].
342
343 The historical payload includes one or multiplies entries and every entry has the same payload as Real-Time measuring distance.
344
345 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
346 |=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
347 **Size(bytes)**
348 )))|=(% style="width: 80px;background-color:#4F81BD;color:white" %)1|=(% style="width: 80px;background-color:#4F81BD;color:white" %)**1**|=(% style="width: 50px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 70px;background-color:#4F81BD;color:white" %)**2**|=(% style="background-color:#4F81BD; color: white; width: 85px;" %)**1**|=(% style="background-color: #4F81BD; color: white; width: 85px;" %)4
349 |(% style="width:62.5px" %)Value|(% style="width:62.5px" %)Interrupt flag & Interrupt_level|(% style="width:62.5px" %)(((
350 Reserve(0xFF)
351 )))|Distance|Distance signal strength|(% style="width:88px" %)(((
352 LiDAR temp
353 )))|(% style="width:85px" %)Unix TimeStamp
354
355 **Interrupt flag & Interrupt level:**
356
357 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:480px" %)
358 |=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
359 **Size(bit)**
360 )))|=(% style="width: 90px;background-color:#4F81BD;color:white" %)**bit7**|=(% style="width: 90px;background-color:#4F81BD;color:white" %)**bit6**|=(% style="width: 60px;background-color:#4F81BD;color:white" %)**[bit5:bit2]**|=(% style="width: 90px; background-color: #4F81BD; color: white;" %)**bit1**|=(% style="background-color: #4F81BD; color: white; width: 90px;" %)**bit0**
361 |(% style="width:62.5px" %)Value|(% style="width:62.5px" %)No ACK message|(% style="width:62.5px" %)Poll Message Flag|Reserve|(% style="width:91px" %)Interrupt level|(% style="width:88px" %)(((
362 Interrupt flag
363 )))
364
365 * (((
366 Each data entry is 11 bytes and has the same structure as [[Uplink Payload>>||anchor="H2.3.2UplinkPayload2CFPORT3D2"]], to save airtime and battery, DS20L will send max bytes according to the current DR and Frequency bands.
367 )))
368
369 For example, in the US915 band, the max payload for different DR is:
370
371 **a) DR0:** max is 11 bytes so one entry of data
372
373 **b) DR1:** max is 53 bytes so devices will upload 4 entries of data (total 44 bytes)
374
375 **c) DR2:** total payload includes 11 entries of data
376
377 **d) DR3:** total payload includes 22 entries of data.
378
379 If DS20L doesn't have any data in the polling time. It will uplink 11 bytes of 0
380
381
382 **Downlink:**
383
384 0x31 64 CC 68 0C 64 CC 69 74 05
385
386 [[image:image-20230805144936-2.png||height="113" width="746"]]
387
388 **Uplink:**
389
390 43 FF 0E 10 00 B0 1E 64 CC 68 0C 40 FF 0D DE 00 A8 1E 64 CC 68 29 40 FF 09 92 00 D3 1E 64 CC 68 65 40 FF 02 3A 02 BC 1E 64 CC 68 A1 41 FF 0E 1A 00 A4 1E 64 CC 68 C0 40 FF 0D 2A 00 B8 1E 64 CC 68 E8 40 FF 00 C8 11 6A 1E 64 CC 69 24 40 FF 0E 24 00 AD 1E 64 CC 69 6D
391
392
393 **Parsed Value:**
394
395 [DISTANCE , DISTANCE_SIGNAL_STRENGTH,LIDAR_TEMP,EXTI_STATUS , EXTI_FLAG , TIME]
396
397
398 [360,176,30,High,True,2023-08-04 02:53:00],
399
400 [355,168,30,Low,False,2023-08-04 02:53:29],
401
402 [245,211,30,Low,False,2023-08-04 02:54:29],
403
404 [57,700,30,Low,False,2023-08-04 02:55:29],
405
406 [361,164,30,Low,True,2023-08-04 02:56:00],
407
408 [337,184,30,Low,False,2023-08-04 02:56:40],
409
410 [20,4458,30,Low,False,2023-08-04 02:57:40],
411
412 [362,173,30,Low,False,2023-08-04 02:58:53],
413
414
415 **History read from serial port:**
416
417 [[image:image-20230805145056-3.png]]
418
419
420 === 2.3.4 Decode payload in The Things Network ===
421
422
423 While using TTN network, you can add the payload format to decode the payload.
424
425 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LLDS12-LoRaWAN%20LiDAR%20ToF%20Distance%20Sensor%20User%20Manual/WebHome/1654592762713-715.png?rev=1.1||alt="1654592762713-715.png"]]
426
427
428 (((
429 The payload decoder function for TTN is here:
430 )))
431
432 (((
433 DS20L TTN Payload Decoder:  [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>https://github.com/dragino/dragino-end-node-decoder]]
434 )))
435
436
437 == 2.4 ​Show Data in DataCake IoT Server ==
438
439
440 (((
441 [[DATACAKE>>url:https://datacake.co/]] provides a human friendly interface to show the sensor data, once we have data in TTN, we can use [[DATACAKE>>url:https://datacake.co/]] to connect to TTN and see the data in DATACAKE. Below are the steps:
442 )))
443
444
445 (((
446 (% style="color:blue" %)**Step 1**(%%)**: Be sure that your device is programmed and properly connected to the network at this time.**
447 )))
448
449 (((
450 (% 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:**
451 )))
452
453
454 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LDDS75%20-%20LoRaWAN%20Distance%20Detection%20Sensor%20User%20Manual/WebHome/1654592790040-760.png?rev=1.1||alt="1654592790040-760.png"]]
455
456
457 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LDDS75%20-%20LoRaWAN%20Distance%20Detection%20Sensor%20User%20Manual/WebHome/1654592800389-571.png?rev=1.1||alt="1654592800389-571.png"]]
458
459
460 (% style="color:blue" %)**Step 3**(%%)**: Create an account or log in Datacake.**
461
462 (% style="color:blue" %)**Step 4**(%%)**: Search the DS20L and add DevEUI.**
463
464 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LDDS75%20-%20LoRaWAN%20Distance%20Detection%20Sensor%20User%20Manual/WebHome/1654851029373-510.png?rev=1.1||alt="1654851029373-510.png"]]
465
466
467 After added, the sensor data arrive TTN V3, it will also arrive and show in Datacake.
468
469 [[image:1701152946067-561.png]]
470
471
472 == 2.5 Frequency Plans ==
473
474
475 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.
476
477 [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/]]
478
479
480 = 3. Configure DS20L =
481
482 == 3.1 Configure Methods ==
483
484
485 DS20L supports below configure method:
486
487 * AT Command via Bluetooth Connection (**Recommended**): [[BLE Configure Instruction>>http://wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/]].
488
489 * 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]].
490
491 * LoRaWAN Downlink.  Instruction for different platforms: See [[IoT LoRaWAN Server>>http://wiki.dragino.com/xwiki/bin/view/Main/]] section.
492
493 == 3.2 General Commands ==
494
495
496 These commands are to configure:
497
498 * General system settings like: uplink interval.
499
500 * LoRaWAN protocol & radio related command.
501
502 They are same for all Dragino Devices which support DLWS-005 LoRaWAN Stack. These commands can be found on the wiki:
503
504 [[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/]]
505
506
507 == 3.3 Commands special design for DS20L ==
508
509
510 These commands only valid for DS20L, as below:
511
512
513 === 3.3.1 Set Transmit Interval Time ===
514
515
516 (((
517 Feature: Change LoRaWAN End Node Transmit Interval.
518 )))
519
520 (((
521 (% style="color:blue" %)**AT Command: AT+TDC**
522 )))
523
524 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
525 |=(% 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**
526 |(% style="width:156px" %)AT+TDC=?|(% style="width:137px" %)Show current transmit Interval|(((
527 30000
528 OK
529 the interval is 30000ms = 30s
530 )))
531 |(% style="width:156px" %)AT+TDC=60000|(% style="width:137px" %)Set Transmit Interval|(((
532 OK
533 Set transmit interval to 60000ms = 60 seconds
534 )))
535
536 (((
537 (% style="color:blue" %)**Downlink Command: 0x01**
538 )))
539
540 (((
541 Format: Command Code (0x01) followed by 3 bytes time value.
542 )))
543
544 (((
545 If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01.
546 )))
547
548 * (((
549 Example 1: Downlink Payload: 0100001E  ~/~/ Set Transmit Interval (TDC) = 30 seconds
550 )))
551 * (((
552 Example 2: Downlink Payload: 0100003C  ~/~/ Set Transmit Interval (TDC) = 60 seconds
553 )))
554
555 === 3.3.2 Set Interrupt Mode ===
556
557
558 Feature, Set Interrupt mode for pin of GPIO_EXTI.
559
560 When AT+INTMOD=0 is set, GPIO_EXTI is used as a digital input port.
561
562 (% style="color:blue" %)**AT Command: AT+INTMOD**
563
564 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
565 |=(% 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**
566 |(% style="width:154px" %)AT+INTMOD=?|(% style="width:196px" %)Show current interrupt mode|(% style="width:157px" %)(((
567 0
568 OK
569 the mode is 0 =Disable Interrupt
570 )))
571 |(% style="width:154px" %)(((
572 AT+INTMOD=3
573
574 (default)
575 )))|(% style="width:196px" %)(((
576 Set Transmit Interval
577 0. (Disable Interrupt),
578 ~1. (Trigger by rising and falling edge)
579 2. (Trigger by falling edge)
580 3. (Trigger by rising edge)
581 )))|(% style="width:157px" %)OK
582
583 (% style="color:blue" %)**Downlink Command: 0x06**
584
585 Format: Command Code (0x06) followed by 3 bytes.
586
587 This means that the interrupt mode of the end node is set to 0x000003=3 (rising edge trigger), and the type code is 06.
588
589 * Example 1: Downlink Payload: 06000000  ~/~/  Turn off interrupt mode
590
591 * Example 2: Downlink Payload: 06000003  ~/~/  Set the interrupt mode to rising edge trigger
592
593
594 == 3.3.3 Set work mode ==
595
596
597 Feature: Switch working mode
598
599 (% style="color:blue" %)**AT Command: AT+MOD**
600
601 (% border="1" cellspacing="5" style="background-color:#f2f2f2; width:510px" %)
602 |=(% 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**
603 |(% style="width:162px" %)AT+MOD=?|(% style="width:191px" %)Get the current working mode.|(% style="width:106px" %)OK
604 |(% style="width:162px" %)AT+MOD=1|(% style="width:191px" %)Set the working mode to Regular measurements.|(% style="width:106px" %)(((
605 OK
606 Attention:Take effect after ATZ
607 )))
608
609 (% style="color:blue" %)**Downlink Command:**
610
611 * **Example: **0x0A00  ~/~/  Same as AT+MOD=0
612
613 * **Example:** 0x0A01  ~/~/  Same as AT+MOD=1
614
615 === 3.3.4 Set threshold and threshold mode ===
616
617
618 Feature, Set threshold and threshold mode
619
620 When (% style="color:#037691" %)**AT+DOL=0,0,0,0,400**(%%) is set, No threshold is used, the sampling time is 400ms.
621
622 (% style="color:blue" %)**AT Command: AT+DOL**
623
624 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
625 |(% 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**
626 |(% style="width:172px" %)AT+ DOL =?|(% style="width:279px" %)Get the current threshold mode and sampling time|(% style="width:118px" %)(((
627 0,0,0,0,400
628 OK
629 )))
630 |(% style="width:172px" %)AT+ DOL =1,1800,100,0,400|(% style="width:279px" %)Set only the upper and lower thresholds|(% style="width:118px" %)OK
631
632
633
634 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
635 |(% rowspan="11" style="color:blue; width:120px" %)**AT+DOL=5,1800,0,0,400**|(% rowspan="6" style="width:240px" %)The first bit sets the limit mode|(% style="width:150px" %)0: Do not use upper and lower limits
636 |(% style="width:251px" %)1: Use upper and lower limits
637 |(% style="width:251px" %)2: Less than the lower limit
638 |(% style="width:251px" %)3: Greater than the lower limit
639 |(% style="width:251px" %)4: Less than the upper limit
640 |(% style="width:251px" %)5: Greater than the upper limit
641 |(% style="width:226px" %)The second bit sets the upper limit value|(% style="width:251px" %)3~~2000MM
642 |(% style="width:226px" %)The third bit sets the lower limit value|(% style="width:251px" %)3~~2000MM
643 |(% 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
644 |(% style="width:251px" %)1 Person or object counting statistics
645 |(% style="width:226px" %)The fifth bit sets the sampling time|(% style="width:251px" %)(((
646 0~~10000ms
647
648
649 )))
650
651 (% style="color:blue" %)**Downlink Command: 0x07**
652
653 Format: Command Code (0x07) followed by 9bytes.
654
655 * Example 0: Downlink Payload: 070000000000000190  **~-~-->**  AT+MOD=0,0,0,0,400
656
657 * Example 1: Downlink Payload: 070107080064000190  **~-~-->**  AT+MOD=1,1800,100,0,400
658
659
660
661 = 4. Battery & Power Consumption =
662
663
664 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.
665
666 [[**Battery Info & Power Consumption Analyze**>>http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] .
667
668
669 = 5. OTA Firmware update =
670
671
672 (% class="wikigeneratedid" %)
673 User can change firmware DS20L to:
674
675 * Change Frequency band/ region.
676
677 * Update with new features.
678
679 * Fix bugs.
680
681 Firmware and changelog can be downloaded from : **[[Firmware download link>>https://www.dropbox.com/sh/zqv1vt3komgp4tu/AAC33PnXIcWOVl_UXBEAeT_xa?dl=0]]**
682
683 Methods to Update Firmware:
684
685 * (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/]]**
686
687 * 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]]**.
688
689 = 6. FAQ =
690
691 == 6.1 What is the frequency plan for DS20L? ==
692
693
694 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"]]
695
696
697 = 7. Trouble Shooting =
698
699 == 7.1 AT Command input doesn't work ==
700
701
702 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.
703
704
705 == 7.2 Significant error between the output distant value of LiDAR and actual distance ==
706
707
708 (((
709 (% 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.)
710 )))
711
712 (((
713 (% style="color:red" %)**Troubleshooting**(%%): Please avoid use of this product under such circumstance in practice.
714 )))
715
716
717 (((
718 (% style="color:blue" %)**Cause ②**(%%)**: **The IR-pass filters are blocked.
719 )))
720
721 (((
722 (% style="color:red" %)**Troubleshooting**(%%): please use dry dust-free cloth to gently remove the foreign matter.
723 )))
724
725
726 = 8. Order Info =
727
728
729 Part Number: (% style="color:blue" %)**DS20L-XXX**
730
731 (% style="color:red" %)**XXX**(%%): **The default frequency band**
732
733 * (% style="color:red" %)**AS923**(%%): LoRaWAN AS923 band
734
735 * (% style="color:red" %)**AU915**(%%): LoRaWAN AU915 band
736
737 * (% style="color:red" %)**EU433**(%%): LoRaWAN EU433 band
738
739 * (% style="color:red" %)**EU868**(%%): LoRaWAN EU868 band
740
741 * (% style="color:red" %)**KR920**(%%): LoRaWAN KR920 band
742
743 * (% style="color:red" %)**US915**(%%): LoRaWAN US915 band
744
745 * (% style="color:red" %)**IN865**(%%): LoRaWAN IN865 band
746
747 * (% style="color:red" %)**CN470**(%%): LoRaWAN CN470 band
748
749 = 9. ​Packing Info =
750
751
752 (% style="color:#037691" %)**Package Includes**:
753
754 * DS20L LoRaWAN Smart Distance Detector x 1
755
756 (% style="color:#037691" %)**Dimension and weight**:
757
758 * Device Size: cm
759
760 * Device Weight: g
761
762 * Package Size / pcs : cm
763
764 * Weight / pcs : g
765
766 = 10. Support =
767
768
769 * 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.
770
771 * 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]].