Version 120.1 by Xiaoling on 2023/11/28 14:29

Hide last authors
Ellie Zhang 26.1 1 (% style="text-align:center" %)
Xiaoling 111.2 2 [[image:image-20231110085342-2.png||height="481" width="481"]]
Edwin Chen 1.1 3
4
Xiaoling 67.2 5
Xiaoling 75.2 6
7
8
9
Xiaoling 111.2 10
kai 31.2 11 **Table of Contents:**
Ellie Zhang 30.1 12
Edwin Chen 1.1 13 {{toc/}}
14
15
16
17
18
19
kai 31.1 20 = 1. Introduction =
Edwin Chen 1.1 21
Xiaoling 113.3 22 == 1.1 What is LoRaWAN Smart Distance Detector ==
Edwin Chen 1.1 23
Xiaoling 39.6 24
Edwin Chen 115.1 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.
Edwin Chen 1.1 26
Xiaoling 113.3 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.
Edwin Chen 1.1 29
Xiaoling 113.3 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.**
Edwin Chen 1.1 31
Xiaoling 113.3 32 DS20L is fully compatible with (% style="color:blue" %)**LoRaWAN v1.0.3 Class A protocol**(%%), it can work with a standard LoRaWAN gateway.
Xiaoling 62.4 33
Edwin Chen 1.1 34
Xiaoling 114.2 35 [[image:image-20231110102635-5.png||height="402" width="807"]]
Edwin Chen 1.1 36
Xiaoling 64.2 37
Edwin Chen 1.1 38 == 1.2 ​Features ==
39
Xiaoling 39.6 40
Xiaoling 113.4 41 * LoRaWAN Class A protocol
42 * LiDAR distance detector, range 3 ~~ 200cm
43 * Periodically detect or continuously detect mode
Xiaoling 70.5 44 * AT Commands to change parameters
Xiaoling 113.4 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
Edwin Chen 1.1 49
50 == 1.3 Specification ==
51
52
Xiaoling 113.5 53 (% style="color:#037691" %)**LiDAR Sensor:**
Xiaoling 70.6 54
Xiaoling 113.5 55 * Operation Temperature: -40 ~~ 80 °C
56 * Operation Humidity: 0~~99.9%RH (no Dew)
57 * Storage Temperature: -10 ~~ 45°C
Xiaoling 113.4 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
Xiaoling 82.3 62
Edwin Chen 115.1 63 == 1.4 Power Consumption ==
Xiaoling 114.2 64
Edwin Chen 115.1 65
Xiaoling 116.2 66 (% style="color:#037691" %)**Battery Power Mode:**
Edwin Chen 115.1 67
kai 116.1 68 * Idle: 0.003 mA @ 3.3v
69 * Max : 360 mA
Edwin Chen 115.1 70
Xiaoling 116.2 71 (% style="color:#037691" %)**Continuously mode**:
Edwin Chen 115.1 72
kai 116.1 73 * Idle: 21 mA @ 3.3v
74 * Max : 360 mA
Edwin Chen 115.1 75
Xiaoling 113.5 76 = 2. Configure DS20L to connect to LoRaWAN network =
Xiaoling 77.4 77
Edwin Chen 1.1 78 == 2.1 How it works ==
79
80
Xiaoling 113.6 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.
Edwin Chen 1.1 82
Xiaoling 64.2 83 (% style="display:none" %) (%%)
Edwin Chen 1.1 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
Xiaoling 114.2 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" %)
Edwin Chen 1.1 91
Xiaoling 114.2 92 [[image:image-20231110102635-5.png||height="402" width="807"]](% style="display:none" %)
Edwin Chen 1.1 93
Xiaoling 113.6 94 (% style="color:blue" %)**Step 1:**(%%) Create a device in TTN with the OTAA keys from DS20L.
Edwin Chen 1.1 95
Xiaoling 113.6 96 Each DS20L is shipped with a sticker with the default device EUI as below:
Edwin Chen 1.1 97
Ellie Zhang 30.1 98 [[image:image-20230426084152-1.png||alt="图片-20230426084152-1.png" height="233" width="502"]]
Edwin Chen 1.1 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
Xiaoling 14.13 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"]]
Edwin Chen 1.1 107
108
109 (% style="color:blue" %)**Add APP EUI and DEV EUI**
110
Ellie Zhang 30.1 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"]]
Edwin Chen 1.1 112
113
114 (% style="color:blue" %)**Add APP EUI in the application**
115
116
Ellie Zhang 30.1 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"]]
Edwin Chen 1.1 118
119
120 (% style="color:blue" %)**Add APP KEY**
121
Ellie Zhang 30.1 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"]]
Edwin Chen 1.1 123
124
Xiaoling 113.6 125 (% style="color:blue" %)**Step 2:**(%%) Activate on DS20L
Edwin Chen 1.1 126
Xiaoling 118.2 127 [[image:image-20231128133704-1.png||height="189" width="441"]]
Edwin Chen 1.1 128
Xiaoling 113.6 129 Press the button for 5 seconds to activate the DS20L.
Edwin Chen 6.1 130
Edwin Chen 1.1 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
Xiaoling 82.8 136 == 2.3 ​Uplink Payload ==
Edwin Chen 1.1 137
Saxer Lin 85.1 138 === 2.3.1 Device Status, FPORT~=5 ===
139
Xiaoling 90.2 140
Xiaoling 113.6 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.
Saxer Lin 85.1 142
143 The Payload format is as below.
144
Xiaoling 90.2 145 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
Xiaoling 90.11 146 |=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
Saxer Lin 85.1 147 **Size(bytes)**
Xiaoling 90.11 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**
Saxer Lin 85.1 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
Xiaoling 118.2 153 [[image:1701149922873-259.png]]
Saxer Lin 93.1 154
Xiaoling 118.2 155 (% style="color:blue" %)**Sensor Model**(%%): For DS20L, this value is 0x21
Saxer Lin 85.1 156
Xiaoling 90.17 157 (% style="color:blue" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version
Saxer Lin 85.1 158
Xiaoling 90.17 159 (% style="color:blue" %)**Frequency Band**:
Saxer Lin 85.1 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
Xiaoling 90.17 189 (% style="color:blue" %)**Sub-Band**:
Saxer Lin 85.1 190
191 AU915 and US915:value 0x00 ~~ 0x08
192
193 CN470: value 0x0B ~~ 0x0C
194
195 Other Bands: Always 0x00
196
Xiaoling 90.17 197 (% style="color:blue" %)**Battery Info**:
Saxer Lin 85.1 198
199 Check the battery voltage.
200
201 Ex1: 0x0B45 = 2885mV
202
203 Ex2: 0x0B49 = 2889mV
204
205
Saxer Lin 89.1 206 === 2.3.2 Uplink Payload, FPORT~=2 ===
Saxer Lin 85.1 207
Xiaoling 90.2 208
Xiaoling 62.5 209 (((
Xiaoling 113.6 210 DS20L will send this uplink **after** Device Status once join the LoRaWAN network successfully. And DS20L will:
Edwin Chen 1.1 211
Xiaoling 109.2 212 periodically send this uplink every 20 minutes, this interval [[can be changed>>||anchor="H3.3.1SetTransmitIntervalTime"]].
Saxer Lin 93.1 213
214 Uplink Payload totals 11 bytes.
Xiaoling 62.5 215 )))
Edwin Chen 1.1 216
Xiaoling 90.7 217 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
218 |=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
Xiaoling 70.10 219 **Size(bytes)**
Xiaoling 90.9 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**
Xiaoling 90.6 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" %)(((
Xiaoling 90.14 224 [[Interrupt flag & Interrupt_level>>||anchor="HInterruptPin26A0InterruptLevel"]]
Xiaoling 90.6 225 )))|(% style="width:54px" %)[[LiDAR temp>>||anchor="HLiDARtemp"]]|(% style="width:96px" %)(((
226 [[Message Type>>||anchor="HMessageType"]]
Xiaoling 82.4 227 )))
Edwin Chen 1.1 228
Saxer Lin 93.1 229 [[image:image-20230805104104-2.png||height="136" width="754"]]
Edwin Chen 1.1 230
231
Xiaoling 90.16 232 ==== (% style="color:blue" %)**Battery Info**(%%) ====
Edwin Chen 1.1 233
234
Xiaoling 113.6 235 Check the battery voltage for DS20L.
Edwin Chen 1.1 236
Xiaoling 70.10 237 Ex1: 0x0B45 = 2885mV
Edwin Chen 1.1 238
Xiaoling 70.10 239 Ex2: 0x0B49 = 2889mV
Saxer Lin 46.1 240
Edwin Chen 1.1 241
Xiaoling 90.16 242 ==== (% style="color:blue" %)**DS18B20 Temperature sensor**(%%) ====
Xiaoling 67.7 243
244
Xiaoling 82.4 245 This is optional, user can connect external DS18B20 sensor to the +3.3v, 1-wire and GND pin . and this field will report temperature.
Edwin Chen 1.1 246
Xiaoling 14.22 247
Xiaoling 82.4 248 **Example**:
Edwin Chen 1.1 249
Xiaoling 82.4 250 If payload is: 0105H:  (0105 & FC00 == 0), temp = 0105H /10 = 26.1 degree
Xiaoling 79.11 251
Xiaoling 82.4 252 If payload is: FF3FH :  (FF3F & FC00 == 1) , temp = (FF3FH - 65536)/10 = -19.3 degrees.
Xiaoling 67.7 253
254
Xiaoling 90.16 255 ==== (% style="color:blue" %)**Distance**(%%) ====
Edwin Chen 10.1 256
Edwin Chen 1.1 257
Xiaoling 82.4 258 Represents the distance value of the measurement output, the default unit is cm, and the value range parsed as a decimal number is 0-1200. In actual use, when the signal strength value Strength.
259
260
261 **Example**:
262
263 If the data you get from the register is 0x0B 0xEA, the distance between the sensor and the measured object is 0BEA(H) = 3050 (D)/10 = 305cm.
264
265
Xiaoling 90.16 266 ==== (% style="color:blue" %)**Distance signal strength**(%%) ====
Xiaoling 82.4 267
268
269 Refers to the signal strength, the default output value will be between 0-65535. When the distance measurement gear is fixed, the farther the distance measurement is, the lower the signal strength; the lower the target reflectivity, the lower the signal strength. When Strength is greater than 100 and not equal to 65535, the measured value of Dist is considered credible.
270
271
272 **Example**:
273
274 If payload is: 01D7(H)=471(D), distance signal strength=471, 471>100,471≠65535, the measured value of Dist is considered credible.
275
276 Customers can judge whether they need to adjust the environment based on the signal strength.
277
278
Saxer Lin 104.1 279 **1) When the sensor detects valid data:**
280
281 [[image:image-20230805155335-1.png||height="145" width="724"]]
282
283
284 **2) When the sensor detects invalid data:**
285
286 [[image:image-20230805155428-2.png||height="139" width="726"]]
287
288
289 **3) When the sensor is not connected:**
290
291 [[image:image-20230805155515-3.png||height="143" width="725"]]
292
293
Xiaoling 90.16 294 ==== (% style="color:blue" %)**Interrupt Pin & Interrupt Level**(%%) ====
Xiaoling 82.4 295
296
Xiaoling 82.13 297 This data field shows if this packet is generated by interrupt or not. [[Click here>>||anchor="H3.3.2SetInterruptMode"]] for the hardware and software set up.
Xiaoling 82.4 298
Xiaoling 114.2 299 Note: The Internet Pin is a separate pin in the screw terminal. See pin mapping of GPIO_EXTI .
Xiaoling 82.4 300
Xiaoling 70.10 301 **Example:**
Edwin Chen 1.1 302
Saxer Lin 106.1 303 If byte[0]&0x01=0x00 : Normal uplink packet.
Edwin Chen 1.1 304
Saxer Lin 106.1 305 If byte[0]&0x01=0x01 : Interrupt Uplink Packet.
Edwin Chen 1.1 306
307
Xiaoling 90.16 308 ==== (% style="color:blue" %)**LiDAR temp**(%%) ====
Xiaoling 62.5 309
Edwin Chen 1.1 310
Xiaoling 82.4 311 Characterize the internal temperature value of the sensor.
Edwin Chen 1.1 312
Xiaoling 82.4 313 **Example: **
314 If payload is: 1C(H) <<24>>24=28(D),LiDAR temp=28℃.
315 If payload is: F2(H) <<24>>24=-14(D),LiDAR temp=-14℃.
Edwin Chen 1.1 316
Xiaoling 39.5 317
Xiaoling 90.16 318 ==== (% style="color:blue" %)**Message Type**(%%) ====
Edwin Chen 1.1 319
320
Saxer Lin 55.1 321 (((
Xiaoling 82.4 322 For a normal uplink payload, the message type is always 0x01.
Saxer Lin 55.1 323 )))
324
325 (((
Xiaoling 82.4 326 Valid Message Type:
Saxer Lin 55.1 327 )))
Saxer Lin 46.1 328
Xiaoling 82.4 329 (% border="1" cellspacing="5" style="background-color:#f2f2f2; width:499px" %)
Xiaoling 82.7 330 |=(% style="width: 161px;background-color:#4F81BD;color:white" %)**Message Type Code**|=(% style="width: 164px;background-color:#4F81BD;color:white" %)**Description**|=(% style="width: 174px;background-color:#4F81BD;color:white" %)**Payload**
Saxer Lin 108.1 331 |(% style="width:160px" %)0x01|(% style="width:163px" %)Normal Uplink|(% style="width:173px" %)Normal Uplink Payload
332 |(% style="width:160px" %)0x02|(% style="width:163px" %)Reply configures info|(% style="width:173px" %)Configure Info Payload
Saxer Lin 46.1 333
Saxer Lin 99.1 334 [[image:image-20230805150315-4.png||height="233" width="723"]]
Xiaoling 90.19 335
Saxer Lin 97.1 336
Saxer Lin 99.1 337 === 2.3.3 Historical measuring distance, FPORT~=3 ===
Saxer Lin 97.1 338
Saxer Lin 99.1 339
Xiaoling 113.6 340 DS20L stores sensor values and users can retrieve these history values via the [[downlink command>>||anchor="H2.5.4Pollsensorvalue"]].
Xiaoling 109.3 341
Saxer Lin 107.1 342 The historical payload includes one or multiplies entries and every entry has the same payload as Real-Time measuring distance.
Saxer Lin 97.1 343
Xiaoling 109.10 344 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
Saxer Lin 99.1 345 |=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
346 **Size(bytes)**
Xiaoling 109.5 347 )))|=(% 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
Saxer Lin 99.1 348 |(% style="width:62.5px" %)Value|(% style="width:62.5px" %)Interrupt flag & Interrupt_level|(% style="width:62.5px" %)(((
349 Reserve(0xFF)
350 )))|Distance|Distance signal strength|(% style="width:88px" %)(((
351 LiDAR temp
352 )))|(% style="width:85px" %)Unix TimeStamp
Saxer Lin 97.1 353
Saxer Lin 99.1 354 **Interrupt flag & Interrupt level:**
355
Xiaoling 109.10 356 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:480px" %)
Saxer Lin 99.1 357 |=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
358 **Size(bit)**
Xiaoling 109.7 359 )))|=(% 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**
Saxer Lin 99.1 360 |(% 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" %)(((
361 Interrupt flag
362 )))
363
Saxer Lin 97.1 364 * (((
Xiaoling 113.6 365 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.
Saxer Lin 97.1 366 )))
367
368 For example, in the US915 band, the max payload for different DR is:
369
370 **a) DR0:** max is 11 bytes so one entry of data
371
372 **b) DR1:** max is 53 bytes so devices will upload 4 entries of data (total 44 bytes)
373
374 **c) DR2:** total payload includes 11 entries of data
375
376 **d) DR3:** total payload includes 22 entries of data.
377
Xiaoling 113.6 378 If DS20L doesn't have any data in the polling time. It will uplink 11 bytes of 0
Saxer Lin 97.1 379
380
381 **Downlink:**
382
383 0x31 64 CC 68 0C 64 CC 69 74 05
384
385 [[image:image-20230805144936-2.png||height="113" width="746"]]
386
387 **Uplink:**
388
389 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
390
391
392 **Parsed Value:**
393
394 [DISTANCE , DISTANCE_SIGNAL_STRENGTH,LIDAR_TEMP,EXTI_STATUS , EXTI_FLAG , TIME]
395
396
397 [360,176,30,High,True,2023-08-04 02:53:00],
398
399 [355,168,30,Low,False,2023-08-04 02:53:29],
400
401 [245,211,30,Low,False,2023-08-04 02:54:29],
402
403 [57,700,30,Low,False,2023-08-04 02:55:29],
404
405 [361,164,30,Low,True,2023-08-04 02:56:00],
406
407 [337,184,30,Low,False,2023-08-04 02:56:40],
408
409 [20,4458,30,Low,False,2023-08-04 02:57:40],
410
411 [362,173,30,Low,False,2023-08-04 02:58:53],
412
413
Saxer Lin 107.1 414 **History read from serial port:**
Saxer Lin 97.1 415
416 [[image:image-20230805145056-3.png]]
417
418
Saxer Lin 100.1 419 === 2.3.4 Decode payload in The Things Network ===
Xiaoling 82.8 420
421
Xiaoling 70.10 422 While using TTN network, you can add the payload format to decode the payload.
Edwin Chen 1.1 423
Xiaoling 82.10 424 [[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"]]
Edwin Chen 1.1 425
426
Xiaoling 62.5 427 (((
Xiaoling 82.4 428 The payload decoder function for TTN is here:
Xiaoling 62.5 429 )))
Edwin Chen 1.1 430
Xiaoling 82.4 431 (((
Xiaoling 113.6 432 DS20L TTN Payload Decoder:  [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>https://github.com/dragino/dragino-end-node-decoder]]
Xiaoling 82.4 433 )))
Edwin Chen 1.1 434
Xiaoling 82.4 435
Saxer Lin 93.1 436 == 2.4 ​Show Data in DataCake IoT Server ==
Edwin Chen 1.1 437
438
Xiaoling 62.5 439 (((
Xiaoling 70.10 440 [[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:
Xiaoling 62.5 441 )))
Edwin Chen 1.1 442
443
Xiaoling 62.5 444 (((
Xiaoling 70.10 445 (% style="color:blue" %)**Step 1**(%%)**: Be sure that your device is programmed and properly connected to the network at this time.**
Xiaoling 62.5 446 )))
Edwin Chen 1.1 447
Xiaoling 62.5 448 (((
Xiaoling 70.10 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:**
Xiaoling 62.5 450 )))
Xiaoling 14.26 451
Saxer Lin 55.1 452
Xiaoling 70.10 453 [[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"]]
Edwin Chen 1.1 454
455
Xiaoling 70.10 456 [[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"]]
Edwin Chen 1.1 457
458
Xiaoling 70.10 459 (% style="color:blue" %)**Step 3**(%%)**: Create an account or log in Datacake.**
Edwin Chen 1.1 460
Xiaoling 113.6 461 (% style="color:blue" %)**Step 4**(%%)**: Search the DS20L and add DevEUI.**
Edwin Chen 1.1 462
Xiaoling 70.10 463 [[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"]]
Xiaoling 62.5 464
Edwin Chen 1.1 465
Xiaoling 70.10 466 After added, the sensor data arrive TTN V3, it will also arrive and show in Datacake.
Edwin Chen 1.1 467
Xiaoling 70.10 468 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LDDS75%20-%20LoRaWAN%20Distance%20Detection%20Sensor%20User%20Manual/WebHome/image-20220610165129-11.png?width=1088&height=595&rev=1.1||alt="image-20220610165129-11.png"]]
Edwin Chen 1.1 469
470
Xiaoling 118.2 471 == 2.5 Frequency Plans ==
Edwin Chen 1.1 472
473
Xiaoling 113.7 474 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.
Edwin Chen 1.1 475
476 [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/]]
477
478
Xiaoling 118.2 479 = 3. Configure DS20L =
Xiaoling 82.4 480
kai 16.4 481 == 3.1 Configure Methods ==
Edwin Chen 1.1 482
483
Xiaoling 113.7 484 DS20L supports below configure method:
Edwin Chen 1.1 485
486 * AT Command via Bluetooth Connection (**Recommended**): [[BLE Configure Instruction>>http://wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/]].
Xiaoling 67.20 487
Edwin Chen 11.1 488 * 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]].
Xiaoling 67.20 489
Edwin Chen 1.1 490 * LoRaWAN Downlink.  Instruction for different platforms: See [[IoT LoRaWAN Server>>http://wiki.dragino.com/xwiki/bin/view/Main/]] section.
491
492 == 3.2 General Commands ==
493
494
495 These commands are to configure:
496
497 * General system settings like: uplink interval.
Xiaoling 67.20 498
Edwin Chen 1.1 499 * LoRaWAN protocol & radio related command.
500
501 They are same for all Dragino Devices which support DLWS-005 LoRaWAN Stack. These commands can be found on the wiki:
502
503 [[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/]]
504
505
Xiaoling 113.7 506 == 3.3 Commands special design for DS20L ==
Edwin Chen 1.1 507
508
Xiaoling 113.7 509 These commands only valid for DS20L, as below:
Edwin Chen 1.1 510
511
512 === 3.3.1 Set Transmit Interval Time ===
513
514
Xiaoling 62.5 515 (((
Edwin Chen 1.1 516 Feature: Change LoRaWAN End Node Transmit Interval.
Xiaoling 62.5 517 )))
518
519 (((
Edwin Chen 1.1 520 (% style="color:blue" %)**AT Command: AT+TDC**
Xiaoling 62.5 521 )))
Edwin Chen 1.1 522
Xiaoling 14.34 523 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
Xiaoling 82.16 524 |=(% 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**
Edwin Chen 1.1 525 |(% style="width:156px" %)AT+TDC=?|(% style="width:137px" %)Show current transmit Interval|(((
526 30000
527 OK
528 the interval is 30000ms = 30s
529 )))
530 |(% style="width:156px" %)AT+TDC=60000|(% style="width:137px" %)Set Transmit Interval|(((
531 OK
532 Set transmit interval to 60000ms = 60 seconds
533 )))
534
Xiaoling 62.5 535 (((
Edwin Chen 1.1 536 (% style="color:blue" %)**Downlink Command: 0x01**
Xiaoling 62.5 537 )))
Edwin Chen 1.1 538
Xiaoling 62.5 539 (((
Edwin Chen 1.1 540 Format: Command Code (0x01) followed by 3 bytes time value.
Xiaoling 62.5 541 )))
Edwin Chen 1.1 542
Xiaoling 62.5 543 (((
Edwin Chen 1.1 544 If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01.
Xiaoling 62.5 545 )))
Edwin Chen 1.1 546
Xiaoling 62.5 547 * (((
548 Example 1: Downlink Payload: 0100001E  ~/~/ Set Transmit Interval (TDC) = 30 seconds
549 )))
550 * (((
Xiaoling 118.2 551 Example 2: Downlink Payload: 0100003C  ~/~/ Set Transmit Interval (TDC) = 60 seconds
552 )))
Xiaoling 82.22 553
Xiaoling 70.11 554 === 3.3.2 Set Interrupt Mode ===
Xiaoling 62.5 555
556
Saxer Lin 109.1 557 Feature, Set Interrupt mode for pin of GPIO_EXTI.
Edwin Chen 1.1 558
Saxer Lin 107.1 559 When AT+INTMOD=0 is set, GPIO_EXTI is used as a digital input port.
Saxer Lin 46.1 560
Edwin Chen 1.1 561 (% style="color:blue" %)**AT Command: AT+INTMOD**
562
Xiaoling 14.34 563 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
Xiaoling 82.16 564 |=(% 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**
Edwin Chen 1.1 565 |(% style="width:154px" %)AT+INTMOD=?|(% style="width:196px" %)Show current interrupt mode|(% style="width:157px" %)(((
566 0
567 OK
568 the mode is 0 =Disable Interrupt
569 )))
Saxer Lin 107.1 570 |(% style="width:154px" %)(((
Xiaoling 118.2 571 AT+INTMOD=3
Saxer Lin 107.1 572
573 (default)
574 )))|(% style="width:196px" %)(((
Edwin Chen 1.1 575 Set Transmit Interval
576 0. (Disable Interrupt),
577 ~1. (Trigger by rising and falling edge)
578 2. (Trigger by falling edge)
579 3. (Trigger by rising edge)
580 )))|(% style="width:157px" %)OK
581
582 (% style="color:blue" %)**Downlink Command: 0x06**
583
584 Format: Command Code (0x06) followed by 3 bytes.
585
586 This means that the interrupt mode of the end node is set to 0x000003=3 (rising edge trigger), and the type code is 06.
587
588 * Example 1: Downlink Payload: 06000000  ~/~/  Turn off interrupt mode
Xiaoling 62.6 589
Edwin Chen 1.1 590 * Example 2: Downlink Payload: 06000003  ~/~/  Set the interrupt mode to rising edge trigger
591
Xiaoling 118.2 592
593 == 3.3.3 Set work mode ==
594
595
596 Feature: Switch working mode
597
598 (% style="color:blue" %)**AT Command: AT+MOD**
599
Xiaoling 118.12 600 (% border="1" cellspacing="5" style="background-color:#f2f2f2; width:510px" %)
601 |=(% 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**
Xiaoling 118.2 602 |(% style="width:162px" %)AT+MOD=?|(% style="width:191px" %)Get the current working mode.|(% style="width:106px" %)OK
603 |(% style="width:162px" %)AT+MOD=1|(% style="width:191px" %)Set the working mode to Regular measurements.|(% style="width:106px" %)(((
604 OK
605 Attention:Take effect after ATZ
606 )))
607
608 (% style="color:blue" %)**Downlink Command:**
609
610 * **Example: **0x0A00  ~/~/  Same as AT+MOD=0
611
612 * **Example:** 0x0A01  ~/~/  Same as AT+MOD=1
613
614 === 3.3.4 Set threshold and threshold mode ===
615
616
617 Feature, Set threshold and threshold mode
618
Xiaoling 118.9 619 When (% style="color:#037691" %)**AT+DOL=0,0,0,0,400**(%%) is set, No threshold is used, the sampling time is 400ms.
Xiaoling 118.2 620
Xiaoling 118.3 621 (% style="color:blue" %)**AT Command: AT+DOL**
Xiaoling 118.2 622
Xiaoling 118.17 623 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
624 |(% 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**
Xiaoling 118.2 625 |(% style="width:172px" %)AT+ DOL =?|(% style="width:279px" %)Get the current threshold mode and sampling time|(% style="width:118px" %)(((
626 0,0,0,0,400
627 OK
628 )))
629 |(% style="width:172px" %)AT+ DOL =1,1800,100,0,400|(% style="width:279px" %)Set only the upper and lower thresholds|(% style="width:118px" %)OK
630
631
Xiaoling 118.17 632
633 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
634 |(% 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
635 |(% style="width:251px" %)1: Use upper and lower limits
636 |(% style="width:251px" %)2: Less than the lower limit
637 |(% style="width:251px" %)3: Greater than the lower limit
638 |(% style="width:251px" %)4: Less than the upper limit
Xiaoling 118.2 639 |(% style="width:251px" %)5: Greater than the upper limit
640 |(% style="width:226px" %)The second bit sets the upper limit value|(% style="width:251px" %)3~~2000MM
641 |(% style="width:226px" %)The third bit sets the lower limit value|(% style="width:251px" %)3~~2000MM
642 |(% 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
643 |(% style="width:251px" %)1 Person or object counting statistics
644 |(% style="width:226px" %)The fifth bit sets the sampling time|(% style="width:251px" %)(((
645 0~~10000ms
646
647
648 )))
649
Xiaoling 118.3 650 (% style="color:blue" %)**Downlink Command: 0x07**
Xiaoling 118.2 651
652 Format: Command Code (0x07) followed by 9bytes.
653
654 * Example 0: Downlink Payload: 070000000000000190  **~-~-->**  AT+MOD=0,0,0,0,400
Xiaoling 118.3 655
Xiaoling 118.2 656 * Example 1: Downlink Payload: 070107080064000190  **~-~-->**  AT+MOD=1,1800,100,0,400
657
Xiaoling 118.3 658
659
kai 16.4 660 = 4. Battery & Power Consumption =
Xiaoling 14.45 661
Edwin Chen 1.1 662
Xiaoling 113.7 663 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.
Edwin Chen 1.1 664
665 [[**Battery Info & Power Consumption Analyze**>>http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] .
666
667
kai 16.4 668 = 5. OTA Firmware update =
Edwin Chen 1.1 669
670
Edwin Chen 13.1 671 (% class="wikigeneratedid" %)
Xiaoling 113.7 672 User can change firmware DS20L to:
Edwin Chen 1.1 673
Edwin Chen 13.1 674 * Change Frequency band/ region.
Xiaoling 62.7 675
Edwin Chen 13.1 676 * Update with new features.
Xiaoling 62.7 677
Edwin Chen 13.1 678 * Fix bugs.
Edwin Chen 1.1 679
Xiaoling 113.6 680 Firmware and changelog can be downloaded from : **[[Firmware download link>>https://www.dropbox.com/sh/zqv1vt3komgp4tu/AAC33PnXIcWOVl_UXBEAeT_xa?dl=0]]**
Edwin Chen 1.1 681
kai 31.1 682 Methods to Update Firmware:
Edwin Chen 1.1 683
Xiaoling 79.15 684 * (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/]]**
Xiaoling 62.7 685
Xiaoling 70.18 686 * 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]]**.
Edwin Chen 1.1 687
kai 31.1 688 = 6. FAQ =
Edwin Chen 1.1 689
Xiaoling 113.8 690 == 6.1 What is the frequency plan for DS20L? ==
Edwin Chen 1.1 691
Xiaoling 62.7 692
Xiaoling 113.8 693 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"]]
Xiaoling 62.7 694
Edwin Chen 1.1 695
Xiaoling 80.4 696 = 7. Trouble Shooting =
Edwin Chen 1.1 697
Xiaoling 80.4 698 == 7.1 AT Command input doesn't work ==
Edwin Chen 1.1 699
Xiaoling 70.14 700
Xiaoling 80.4 701 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.
Xiaoling 70.14 702
703
Xiaoling 80.4 704 == 7.2 Significant error between the output distant value of LiDAR and actual distance ==
Xiaoling 70.14 705
706
Xiaoling 80.4 707 (((
Xiaoling 82.21 708 (% 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.)
Xiaoling 80.4 709 )))
Xiaoling 70.14 710
Xiaoling 80.4 711 (((
Xiaoling 82.21 712 (% style="color:red" %)**Troubleshooting**(%%): Please avoid use of this product under such circumstance in practice.
Xiaoling 80.4 713 )))
Xiaoling 70.14 714
715
Xiaoling 80.4 716 (((
717 (% style="color:blue" %)**Cause ②**(%%)**: **The IR-pass filters are blocked.
718 )))
Xiaoling 70.14 719
Xiaoling 79.7 720 (((
Xiaoling 82.21 721 (% style="color:red" %)**Troubleshooting**(%%): please use dry dust-free cloth to gently remove the foreign matter.
Xiaoling 79.7 722 )))
Xiaoling 70.14 723
724
725 = 8. Order Info =
726
727
Xiaoling 113.5 728 Part Number: (% style="color:blue" %)**DS20L-XXX**
Xiaoling 70.14 729
Xiaoling 70.12 730 (% style="color:red" %)**XXX**(%%): **The default frequency band**
Edwin Chen 1.1 731
Ellie Zhang 38.1 732 * (% style="color:red" %)**AS923**(%%): LoRaWAN AS923 band
Edwin Chen 1.1 733
Ellie Zhang 38.1 734 * (% style="color:red" %)**AU915**(%%): LoRaWAN AU915 band
Edwin Chen 1.1 735
Ellie Zhang 38.1 736 * (% style="color:red" %)**EU433**(%%): LoRaWAN EU433 band
Edwin Chen 1.1 737
Ellie Zhang 38.1 738 * (% style="color:red" %)**EU868**(%%): LoRaWAN EU868 band
Edwin Chen 1.1 739
Ellie Zhang 38.1 740 * (% style="color:red" %)**KR920**(%%): LoRaWAN KR920 band
Edwin Chen 1.1 741
Ellie Zhang 38.1 742 * (% style="color:red" %)**US915**(%%): LoRaWAN US915 band
Edwin Chen 1.1 743
Ellie Zhang 38.1 744 * (% style="color:red" %)**IN865**(%%): LoRaWAN IN865 band
Edwin Chen 1.1 745
Ellie Zhang 38.1 746 * (% style="color:red" %)**CN470**(%%): LoRaWAN CN470 band
Edwin Chen 1.1 747
Xiaoling 70.14 748 = 9. ​Packing Info =
Xiaoling 67.11 749
750
Ellie Zhang 39.1 751 (% style="color:#037691" %)**Package Includes**:
Edwin Chen 1.1 752
Xiaoling 113.5 753 * DS20L LoRaWAN Smart Distance Detector x 1
Edwin Chen 1.1 754
Ellie Zhang 39.1 755 (% style="color:#037691" %)**Dimension and weight**:
Edwin Chen 1.1 756
kai 31.1 757 * Device Size: cm
Edwin Chen 1.1 758
kai 31.1 759 * Device Weight: g
Edwin Chen 1.1 760
kai 31.1 761 * Package Size / pcs : cm
Edwin Chen 1.1 762
kai 31.1 763 * Weight / pcs : g
Edwin Chen 1.1 764
Xiaoling 70.14 765 = 10. Support =
766
767
kai 31.1 768 * 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.
Xiaoling 39.6 769
770 * 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]].