Version 113.7 by Xiaoling on 2023/11/10 10:22

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
Xiaoling 113.3 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.
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
Xiaoling 113.3 34 DS20L supports (% style="color:blue" %)**Datalog feature**(%%). It will record the data when there is no network coverage and users can retrieve the sensor value later to ensure no miss for every sensor reading.
Edwin Chen 1.1 35
Xiaoling 113.2 36 [[image:image-20231110091506-4.png||height="391" width="768"]]
Edwin Chen 1.1 37
Xiaoling 64.2 38
Edwin Chen 1.1 39 == 1.2 ​Features ==
40
Xiaoling 39.6 41
Xiaoling 113.4 42 * LoRaWAN Class A protocol
43 * LiDAR distance detector, range 3 ~~ 200cm
44 * Periodically detect or continuously detect mode
Xiaoling 70.5 45 * AT Commands to change parameters
Xiaoling 113.4 46 * Remotely configure parameters via LoRaWAN Downlink
47 * Alarm & Counting mode
48 * Datalog Feature
49 * Firmware upgradable via program port or LoRa protocol
50 * Built-in 2400mAh battery or power by external power source
Edwin Chen 1.1 51
52 == 1.3 Specification ==
53
54
Xiaoling 113.5 55 (% style="color:#037691" %)**LiDAR Sensor:**
Xiaoling 70.6 56
Xiaoling 113.5 57 * Operation Temperature: -40 ~~ 80 °C
58 * Operation Humidity: 0~~99.9%RH (no Dew)
59 * Storage Temperature: -10 ~~ 45°C
Xiaoling 113.4 60 * Measure Range: 3cm~~200cm @ 90% reflectivity
61 * Accuracy: ±2cm @ (3cm~~100cm); ±5% @ (100~~200cm)
62 * ToF FoV: ±9°, Total 18°
63 * Light source: VCSEL
Xiaoling 82.3 64
Xiaoling 70.28 65
Xiaoling 79.18 66 (% style="display:none" %)
67
Xiaoling 77.4 68
Xiaoling 113.5 69 = 2. Configure DS20L to connect to LoRaWAN network =
Xiaoling 77.4 70
Edwin Chen 1.1 71 == 2.1 How it works ==
72
73
Xiaoling 113.6 74 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 75
Xiaoling 64.2 76 (% style="display:none" %) (%%)
Edwin Chen 1.1 77
78 == 2.2 ​Quick guide to connect to LoRaWAN server (OTAA) ==
79
80
81 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.
82
Xiaoling 62.5 83 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.
Edwin Chen 1.1 84
Xiaoling 113.2 85 [[image:image-20231110091447-3.png||height="383" width="752"]](% style="display:none" %)
Edwin Chen 1.1 86
Xiaoling 64.2 87
Xiaoling 113.6 88 (% style="color:blue" %)**Step 1:**(%%) Create a device in TTN with the OTAA keys from DS20L.
Edwin Chen 1.1 89
Xiaoling 113.6 90 Each DS20L is shipped with a sticker with the default device EUI as below:
Edwin Chen 1.1 91
Ellie Zhang 30.1 92 [[image:image-20230426084152-1.png||alt="图片-20230426084152-1.png" height="233" width="502"]]
Edwin Chen 1.1 93
94
95 You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:
96
97
98 (% style="color:blue" %)**Register the device**
99
Xiaoling 14.13 100 [[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 101
102
103 (% style="color:blue" %)**Add APP EUI and DEV EUI**
104
Ellie Zhang 30.1 105 [[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 106
107
108 (% style="color:blue" %)**Add APP EUI in the application**
109
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-5.png?width=742&height=601&rev=1.1||alt="图片-20220611161308-5.png"]]
Edwin Chen 1.1 112
113
114 (% style="color:blue" %)**Add APP KEY**
115
Ellie Zhang 30.1 116 [[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 117
118
Xiaoling 113.6 119 (% style="color:blue" %)**Step 2:**(%%) Activate on DS20L
Edwin Chen 1.1 120
121
Xiaoling 113.6 122 Press the button for 5 seconds to activate the DS20L.
Edwin Chen 6.1 123
Edwin Chen 1.1 124 (% 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.
125
126 After join success, it will start to upload messages to TTN and you can see the messages in the panel.
127
128
Xiaoling 82.8 129 == 2.3 ​Uplink Payload ==
Edwin Chen 1.1 130
Saxer Lin 85.1 131 === 2.3.1 Device Status, FPORT~=5 ===
132
Xiaoling 90.2 133
Xiaoling 113.6 134 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 135
136 The Payload format is as below.
137
Xiaoling 90.2 138 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
Xiaoling 90.11 139 |=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
Saxer Lin 85.1 140 **Size(bytes)**
Xiaoling 90.11 141 )))|=(% 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 142 |(% 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
143
144 Example parse in TTNv3
145
Saxer Lin 93.1 146 [[image:image-20230805103904-1.png||height="131" width="711"]]
147
Xiaoling 113.6 148 (% style="color:blue" %)**Sensor Model**(%%): For DS20L, this value is 0x24
Saxer Lin 85.1 149
Xiaoling 90.17 150 (% style="color:blue" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version
Saxer Lin 85.1 151
Xiaoling 90.17 152 (% style="color:blue" %)**Frequency Band**:
Saxer Lin 85.1 153
154 0x01: EU868
155
156 0x02: US915
157
158 0x03: IN865
159
160 0x04: AU915
161
162 0x05: KZ865
163
164 0x06: RU864
165
166 0x07: AS923
167
168 0x08: AS923-1
169
170 0x09: AS923-2
171
172 0x0a: AS923-3
173
174 0x0b: CN470
175
176 0x0c: EU433
177
178 0x0d: KR920
179
180 0x0e: MA869
181
Xiaoling 90.17 182 (% style="color:blue" %)**Sub-Band**:
Saxer Lin 85.1 183
184 AU915 and US915:value 0x00 ~~ 0x08
185
186 CN470: value 0x0B ~~ 0x0C
187
188 Other Bands: Always 0x00
189
Xiaoling 90.17 190 (% style="color:blue" %)**Battery Info**:
Saxer Lin 85.1 191
192 Check the battery voltage.
193
194 Ex1: 0x0B45 = 2885mV
195
196 Ex2: 0x0B49 = 2889mV
197
198
Saxer Lin 89.1 199 === 2.3.2 Uplink Payload, FPORT~=2 ===
Saxer Lin 85.1 200
Xiaoling 90.2 201
Xiaoling 62.5 202 (((
Xiaoling 113.6 203 DS20L will send this uplink **after** Device Status once join the LoRaWAN network successfully. And DS20L will:
Edwin Chen 1.1 204
Xiaoling 109.2 205 periodically send this uplink every 20 minutes, this interval [[can be changed>>||anchor="H3.3.1SetTransmitIntervalTime"]].
Saxer Lin 93.1 206
207 Uplink Payload totals 11 bytes.
Xiaoling 62.5 208 )))
Edwin Chen 1.1 209
Xiaoling 90.7 210 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
211 |=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
Xiaoling 70.10 212 **Size(bytes)**
Xiaoling 90.9 213 )))|=(% 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 214 |(% style="width:62.5px" %)Value|(% style="width:62.5px" %)[[BAT>>||anchor="HBatteryInfo"]]|(% style="width:62.5px" %)(((
215 [[Temperature DS18B20>>||anchor="HDS18B20Temperaturesensor"]]
216 )))|[[Distance>>||anchor="HDistance"]]|[[Distance signal strength>>||anchor="HDistancesignalstrength"]]|(% style="width:122px" %)(((
Xiaoling 90.14 217 [[Interrupt flag & Interrupt_level>>||anchor="HInterruptPin26A0InterruptLevel"]]
Xiaoling 90.6 218 )))|(% style="width:54px" %)[[LiDAR temp>>||anchor="HLiDARtemp"]]|(% style="width:96px" %)(((
219 [[Message Type>>||anchor="HMessageType"]]
Xiaoling 82.4 220 )))
Edwin Chen 1.1 221
Saxer Lin 93.1 222 [[image:image-20230805104104-2.png||height="136" width="754"]]
Edwin Chen 1.1 223
224
Xiaoling 90.16 225 ==== (% style="color:blue" %)**Battery Info**(%%) ====
Edwin Chen 1.1 226
227
Xiaoling 113.6 228 Check the battery voltage for DS20L.
Edwin Chen 1.1 229
Xiaoling 70.10 230 Ex1: 0x0B45 = 2885mV
Edwin Chen 1.1 231
Xiaoling 70.10 232 Ex2: 0x0B49 = 2889mV
Saxer Lin 46.1 233
Edwin Chen 1.1 234
Xiaoling 90.16 235 ==== (% style="color:blue" %)**DS18B20 Temperature sensor**(%%) ====
Xiaoling 67.7 236
237
Xiaoling 82.4 238 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 239
Xiaoling 14.22 240
Xiaoling 82.4 241 **Example**:
Edwin Chen 1.1 242
Xiaoling 82.4 243 If payload is: 0105H:  (0105 & FC00 == 0), temp = 0105H /10 = 26.1 degree
Xiaoling 79.11 244
Xiaoling 82.4 245 If payload is: FF3FH :  (FF3F & FC00 == 1) , temp = (FF3FH - 65536)/10 = -19.3 degrees.
Xiaoling 67.7 246
247
Xiaoling 90.16 248 ==== (% style="color:blue" %)**Distance**(%%) ====
Edwin Chen 10.1 249
Edwin Chen 1.1 250
Xiaoling 82.4 251 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.
252
253
254 **Example**:
255
256 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.
257
258
Xiaoling 90.16 259 ==== (% style="color:blue" %)**Distance signal strength**(%%) ====
Xiaoling 82.4 260
261
262 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.
263
264
265 **Example**:
266
267 If payload is: 01D7(H)=471(D), distance signal strength=471, 471>100,471≠65535, the measured value of Dist is considered credible.
268
269 Customers can judge whether they need to adjust the environment based on the signal strength.
270
271
Saxer Lin 104.1 272 **1) When the sensor detects valid data:**
273
274 [[image:image-20230805155335-1.png||height="145" width="724"]]
275
276
277 **2) When the sensor detects invalid data:**
278
279 [[image:image-20230805155428-2.png||height="139" width="726"]]
280
281
282 **3) When the sensor is not connected:**
283
284 [[image:image-20230805155515-3.png||height="143" width="725"]]
285
286
Xiaoling 90.16 287 ==== (% style="color:blue" %)**Interrupt Pin & Interrupt Level**(%%) ====
Xiaoling 82.4 288
289
Xiaoling 82.13 290 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 291
Saxer Lin 107.1 292 Note: The Internet Pin is a separate pin in the screw terminal. See [[pin mapping>>||anchor="H1.8PinDefinitions"]] of GPIO_EXTI .
Xiaoling 82.4 293
Xiaoling 70.10 294 **Example:**
Edwin Chen 1.1 295
Saxer Lin 106.1 296 If byte[0]&0x01=0x00 : Normal uplink packet.
Edwin Chen 1.1 297
Saxer Lin 106.1 298 If byte[0]&0x01=0x01 : Interrupt Uplink Packet.
Edwin Chen 1.1 299
300
Xiaoling 90.16 301 ==== (% style="color:blue" %)**LiDAR temp**(%%) ====
Xiaoling 62.5 302
Edwin Chen 1.1 303
Xiaoling 82.4 304 Characterize the internal temperature value of the sensor.
Edwin Chen 1.1 305
Xiaoling 82.4 306 **Example: **
307 If payload is: 1C(H) <<24>>24=28(D),LiDAR temp=28℃.
308 If payload is: F2(H) <<24>>24=-14(D),LiDAR temp=-14℃.
Edwin Chen 1.1 309
Xiaoling 39.5 310
Xiaoling 90.16 311 ==== (% style="color:blue" %)**Message Type**(%%) ====
Edwin Chen 1.1 312
313
Saxer Lin 55.1 314 (((
Xiaoling 82.4 315 For a normal uplink payload, the message type is always 0x01.
Saxer Lin 55.1 316 )))
317
318 (((
Xiaoling 82.4 319 Valid Message Type:
Saxer Lin 55.1 320 )))
Saxer Lin 46.1 321
Xiaoling 82.4 322 (% border="1" cellspacing="5" style="background-color:#f2f2f2; width:499px" %)
Xiaoling 82.7 323 |=(% 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 324 |(% style="width:160px" %)0x01|(% style="width:163px" %)Normal Uplink|(% style="width:173px" %)Normal Uplink Payload
325 |(% style="width:160px" %)0x02|(% style="width:163px" %)Reply configures info|(% style="width:173px" %)Configure Info Payload
Saxer Lin 46.1 326
Saxer Lin 99.1 327 [[image:image-20230805150315-4.png||height="233" width="723"]]
Xiaoling 90.19 328
Saxer Lin 97.1 329
Saxer Lin 99.1 330 === 2.3.3 Historical measuring distance, FPORT~=3 ===
Saxer Lin 97.1 331
Saxer Lin 99.1 332
Xiaoling 113.6 333 DS20L stores sensor values and users can retrieve these history values via the [[downlink command>>||anchor="H2.5.4Pollsensorvalue"]].
Xiaoling 109.3 334
Saxer Lin 107.1 335 The historical payload includes one or multiplies entries and every entry has the same payload as Real-Time measuring distance.
Saxer Lin 97.1 336
Xiaoling 109.10 337 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
Saxer Lin 99.1 338 |=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
339 **Size(bytes)**
Xiaoling 109.5 340 )))|=(% 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 341 |(% style="width:62.5px" %)Value|(% style="width:62.5px" %)Interrupt flag & Interrupt_level|(% style="width:62.5px" %)(((
342 Reserve(0xFF)
343 )))|Distance|Distance signal strength|(% style="width:88px" %)(((
344 LiDAR temp
345 )))|(% style="width:85px" %)Unix TimeStamp
Saxer Lin 97.1 346
Saxer Lin 99.1 347 **Interrupt flag & Interrupt level:**
348
Xiaoling 109.10 349 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:480px" %)
Saxer Lin 99.1 350 |=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
351 **Size(bit)**
Xiaoling 109.7 352 )))|=(% 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 353 |(% 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" %)(((
354 Interrupt flag
355 )))
356
Saxer Lin 97.1 357 * (((
Xiaoling 113.6 358 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 359 )))
360
361 For example, in the US915 band, the max payload for different DR is:
362
363 **a) DR0:** max is 11 bytes so one entry of data
364
365 **b) DR1:** max is 53 bytes so devices will upload 4 entries of data (total 44 bytes)
366
367 **c) DR2:** total payload includes 11 entries of data
368
369 **d) DR3:** total payload includes 22 entries of data.
370
Xiaoling 113.6 371 If DS20L doesn't have any data in the polling time. It will uplink 11 bytes of 0
Saxer Lin 97.1 372
373
374 **Downlink:**
375
376 0x31 64 CC 68 0C 64 CC 69 74 05
377
378 [[image:image-20230805144936-2.png||height="113" width="746"]]
379
380 **Uplink:**
381
382 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
383
384
385 **Parsed Value:**
386
387 [DISTANCE , DISTANCE_SIGNAL_STRENGTH,LIDAR_TEMP,EXTI_STATUS , EXTI_FLAG , TIME]
388
389
390 [360,176,30,High,True,2023-08-04 02:53:00],
391
392 [355,168,30,Low,False,2023-08-04 02:53:29],
393
394 [245,211,30,Low,False,2023-08-04 02:54:29],
395
396 [57,700,30,Low,False,2023-08-04 02:55:29],
397
398 [361,164,30,Low,True,2023-08-04 02:56:00],
399
400 [337,184,30,Low,False,2023-08-04 02:56:40],
401
402 [20,4458,30,Low,False,2023-08-04 02:57:40],
403
404 [362,173,30,Low,False,2023-08-04 02:58:53],
405
406
Saxer Lin 107.1 407 **History read from serial port:**
Saxer Lin 97.1 408
409 [[image:image-20230805145056-3.png]]
410
411
Saxer Lin 100.1 412 === 2.3.4 Decode payload in The Things Network ===
Xiaoling 82.8 413
414
Xiaoling 70.10 415 While using TTN network, you can add the payload format to decode the payload.
Edwin Chen 1.1 416
Xiaoling 82.10 417 [[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 418
419
Xiaoling 62.5 420 (((
Xiaoling 82.4 421 The payload decoder function for TTN is here:
Xiaoling 62.5 422 )))
Edwin Chen 1.1 423
Xiaoling 82.4 424 (((
Xiaoling 113.6 425 DS20L TTN Payload Decoder:  [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>https://github.com/dragino/dragino-end-node-decoder]]
Xiaoling 82.4 426 )))
Edwin Chen 1.1 427
Xiaoling 82.4 428
Saxer Lin 93.1 429 == 2.4 ​Show Data in DataCake IoT Server ==
Edwin Chen 1.1 430
431
Xiaoling 62.5 432 (((
Xiaoling 70.10 433 [[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 434 )))
Edwin Chen 1.1 435
436
Xiaoling 62.5 437 (((
Xiaoling 70.10 438 (% style="color:blue" %)**Step 1**(%%)**: Be sure that your device is programmed and properly connected to the network at this time.**
Xiaoling 62.5 439 )))
Edwin Chen 1.1 440
Xiaoling 62.5 441 (((
Xiaoling 70.10 442 (% 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 443 )))
Xiaoling 14.26 444
Saxer Lin 55.1 445
Xiaoling 70.10 446 [[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 447
448
Xiaoling 70.10 449 [[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 450
451
Xiaoling 70.10 452 (% style="color:blue" %)**Step 3**(%%)**: Create an account or log in Datacake.**
Edwin Chen 1.1 453
Xiaoling 113.6 454 (% style="color:blue" %)**Step 4**(%%)**: Search the DS20L and add DevEUI.**
Edwin Chen 1.1 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/1654851029373-510.png?rev=1.1||alt="1654851029373-510.png"]]
Xiaoling 62.5 457
Edwin Chen 1.1 458
Xiaoling 70.10 459 After added, the sensor data arrive TTN V3, it will also arrive and show in Datacake.
Edwin Chen 1.1 460
Xiaoling 70.10 461 [[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 462
463
Saxer Lin 93.1 464 == 2.5 Datalog Feature ==
Edwin Chen 1.1 465
466
Xiaoling 113.6 467 Datalog Feature is to ensure IoT Server can get all sampling data from Sensor even if the LoRaWAN network is down. For each sampling, DS20L will store the reading for future retrieving purposes.
Xiaoling 62.5 468
469
Saxer Lin 93.1 470 === 2.5.1 Ways to get datalog via LoRaWAN ===
Xiaoling 62.5 471
472
Xiaoling 113.6 473 Set PNACKMD=1, DS20L will wait for ACK for every uplink, when there is no LoRaWAN network, DS20L will mark these records with non-ack messages and store the sensor data, and it will send all messages (10s interval) after the network recovery.
Xiaoling 62.5 474
475 * (((
Xiaoling 113.6 476 a) DS20L will do an ACK check for data records sending to make sure every data arrive server.
Xiaoling 62.5 477 )))
478 * (((
Xiaoling 113.6 479 b) DS20L will send data in **CONFIRMED Mode** when PNACKMD=1, but DS20L won't re-transmit the packet if it doesn't get ACK, it will just mark it as a NONE-ACK message. In a future uplink if DS20L gets a ACK, DS20L will consider there is a network connection and resend all NONE-ACK messages.
Xiaoling 62.5 480 )))
481
482
483
Saxer Lin 93.1 484 === 2.5.2 Unix TimeStamp ===
Xiaoling 62.5 485
486
Xiaoling 113.6 487 DS20L uses Unix TimeStamp format based on
Xiaoling 62.5 488
489 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20220523001219-11.png?width=627&height=97&rev=1.1||alt="图片-20220523001219-11.png" height="97" width="627"]]
490
491 User can get this time from link:  [[https:~~/~~/www.epochconverter.com/>>url:https://www.epochconverter.com/]] :
492
493 Below is the converter example
494
495 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20220523001219-12.png?width=720&height=298&rev=1.1||alt="图片-20220523001219-12.png" height="298" width="720"]]
496
497
498 So, we can use AT+TIMESTAMP=1611889405 or downlink 3060137afd00 to set the current time 2021 – Jan ~-~- 29 Friday 03:03:25
499
500
Saxer Lin 93.1 501 === 2.5.3 Set Device Time ===
Xiaoling 62.5 502
503
504 User need to set (% style="color:blue" %)**SYNCMOD=1**(%%) to enable sync time via MAC command.
505
Xiaoling 113.6 506 Once DS20L Joined LoRaWAN network, it will send the MAC command (DeviceTimeReq) and the server will reply with (DeviceTimeAns) to send the current time to DS20L. If DS20L fails to get the time from the server, DS20L will use the internal time and wait for next time request (AT+SYNCTDC to set the time request period, default is 10 days).
Xiaoling 62.5 507
508 (% style="color:red" %)**Note: LoRaWAN Server need to support LoRaWAN v1.0.3(MAC v1.0.3) or higher to support this MAC command feature, Chirpstack,TTN V3 v3 and loriot support but TTN V3 v2 doesn't support. If server doesn't support this command, it will through away uplink packet with this command, so user will lose the packet with time request for TTN V3 v2 if SYNCMOD=1.**
509
510
Saxer Lin 93.1 511 === 2.5.4 Poll sensor value ===
Xiaoling 62.5 512
513
514 Users can poll sensor values based on timestamps. Below is the downlink command.
515
516 (% border="1" cellspacing="5" style="background-color:#f2f2f2; width:425.818px" %)
Xiaoling 90.16 517 |(% colspan="4" style="background-color:#4f81bd; color:white; width:423px" %)**Downlink Command to poll Open/Close status (0x31)**
Xiaoling 62.5 518 |(% style="width:58px" %)**1byte**|(% style="width:127px" %)**4bytes**|(% style="width:124px" %)**4bytes**|(% style="width:114px" %)**1byte**
519 |(% style="width:58px" %)31|(% style="width:127px" %)Timestamp start|(% style="width:124px" %)Timestamp end|(% style="width:114px" %)Uplink Interval
520
521 (((
522 Timestamp start and Timestamp end-use Unix TimeStamp format as mentioned above. Devices will reply with all data logs during this period, using the uplink interval.
523 )))
524
525 (((
Xiaoling 64.8 526 For example, downlink command [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/CPL01%20LoRaWAN%20Outdoor%20PulseContact%20%20Sensor%20Manual/WebHome/image-20220518162852-1.png?rev=1.1||alt="image-20220518162852-1.png"]]
Xiaoling 62.5 527 )))
528
529 (((
530 Is to check 2021/11/12 12:00:00 to 2021/11/12 15:00:00's data
531 )))
532
533 (((
Xiaoling 113.7 534 Uplink Internal =5s,means DS20L will send one packet every 5s. range 5~~255s.
Xiaoling 62.5 535 )))
536
537
Saxer Lin 93.1 538 == 2.6 Frequency Plans ==
Edwin Chen 1.1 539
540
Xiaoling 113.7 541 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 542
543 [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/]]
544
545
Xiaoling 113.7 546 3. Configure DS20L
Xiaoling 82.4 547
kai 16.4 548 == 3.1 Configure Methods ==
Edwin Chen 1.1 549
550
Xiaoling 113.7 551 DS20L supports below configure method:
Edwin Chen 1.1 552
553 * AT Command via Bluetooth Connection (**Recommended**): [[BLE Configure Instruction>>http://wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/]].
Xiaoling 67.20 554
Edwin Chen 11.1 555 * 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 556
Edwin Chen 1.1 557 * LoRaWAN Downlink.  Instruction for different platforms: See [[IoT LoRaWAN Server>>http://wiki.dragino.com/xwiki/bin/view/Main/]] section.
558
559 == 3.2 General Commands ==
560
561
562 These commands are to configure:
563
564 * General system settings like: uplink interval.
Xiaoling 67.20 565
Edwin Chen 1.1 566 * LoRaWAN protocol & radio related command.
567
568 They are same for all Dragino Devices which support DLWS-005 LoRaWAN Stack. These commands can be found on the wiki:
569
570 [[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/]]
571
572
Xiaoling 113.7 573 == 3.3 Commands special design for DS20L ==
Edwin Chen 1.1 574
575
Xiaoling 113.7 576 These commands only valid for DS20L, as below:
Edwin Chen 1.1 577
578
579 === 3.3.1 Set Transmit Interval Time ===
580
581
Xiaoling 62.5 582 (((
Edwin Chen 1.1 583 Feature: Change LoRaWAN End Node Transmit Interval.
Xiaoling 62.5 584 )))
585
586 (((
Edwin Chen 1.1 587 (% style="color:blue" %)**AT Command: AT+TDC**
Xiaoling 62.5 588 )))
Edwin Chen 1.1 589
Xiaoling 14.34 590 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
Xiaoling 82.16 591 |=(% 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 592 |(% style="width:156px" %)AT+TDC=?|(% style="width:137px" %)Show current transmit Interval|(((
593 30000
594 OK
595 the interval is 30000ms = 30s
596 )))
597 |(% style="width:156px" %)AT+TDC=60000|(% style="width:137px" %)Set Transmit Interval|(((
598 OK
599 Set transmit interval to 60000ms = 60 seconds
600 )))
601
Xiaoling 62.5 602 (((
Edwin Chen 1.1 603 (% style="color:blue" %)**Downlink Command: 0x01**
Xiaoling 62.5 604 )))
Edwin Chen 1.1 605
Xiaoling 62.5 606 (((
Edwin Chen 1.1 607 Format: Command Code (0x01) followed by 3 bytes time value.
Xiaoling 62.5 608 )))
Edwin Chen 1.1 609
Xiaoling 62.5 610 (((
Edwin Chen 1.1 611 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 612 )))
Edwin Chen 1.1 613
Xiaoling 62.5 614 * (((
615 Example 1: Downlink Payload: 0100001E  ~/~/ Set Transmit Interval (TDC) = 30 seconds
616 )))
617 * (((
Xiaoling 73.8 618 Example 2: Downlink Payload: 0100003C  ~/~/ Set Transmit Interval (TDC) = 60 seconds 
Xiaoling 82.22 619
620
621
Xiaoling 82.5 622 )))
Xiaoling 79.19 623
Xiaoling 70.11 624 === 3.3.2 Set Interrupt Mode ===
Xiaoling 62.5 625
626
Saxer Lin 109.1 627 Feature, Set Interrupt mode for pin of GPIO_EXTI.
Edwin Chen 1.1 628
Saxer Lin 107.1 629 When AT+INTMOD=0 is set, GPIO_EXTI is used as a digital input port.
Saxer Lin 46.1 630
Edwin Chen 1.1 631 (% style="color:blue" %)**AT Command: AT+INTMOD**
632
Xiaoling 14.34 633 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
Xiaoling 82.16 634 |=(% 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 635 |(% style="width:154px" %)AT+INTMOD=?|(% style="width:196px" %)Show current interrupt mode|(% style="width:157px" %)(((
636 0
637 OK
638 the mode is 0 =Disable Interrupt
639 )))
Saxer Lin 107.1 640 |(% style="width:154px" %)(((
641 AT+INTMOD=2
642
643 (default)
644 )))|(% style="width:196px" %)(((
Edwin Chen 1.1 645 Set Transmit Interval
646 0. (Disable Interrupt),
647 ~1. (Trigger by rising and falling edge)
648 2. (Trigger by falling edge)
649 3. (Trigger by rising edge)
650 )))|(% style="width:157px" %)OK
651
652 (% style="color:blue" %)**Downlink Command: 0x06**
653
654 Format: Command Code (0x06) followed by 3 bytes.
655
656 This means that the interrupt mode of the end node is set to 0x000003=3 (rising edge trigger), and the type code is 06.
657
658 * Example 1: Downlink Payload: 06000000  ~/~/  Turn off interrupt mode
Xiaoling 62.6 659
Edwin Chen 1.1 660 * Example 2: Downlink Payload: 06000003  ~/~/  Set the interrupt mode to rising edge trigger
661
Saxer Lin 90.1 662
kai 16.4 663 = 4. Battery & Power Consumption =
Xiaoling 14.45 664
Edwin Chen 1.1 665
Xiaoling 113.7 666 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 667
668 [[**Battery Info & Power Consumption Analyze**>>http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] .
669
670
kai 16.4 671 = 5. OTA Firmware update =
Edwin Chen 1.1 672
673
Edwin Chen 13.1 674 (% class="wikigeneratedid" %)
Xiaoling 113.7 675 User can change firmware DS20L to:
Edwin Chen 1.1 676
Edwin Chen 13.1 677 * Change Frequency band/ region.
Xiaoling 62.7 678
Edwin Chen 13.1 679 * Update with new features.
Xiaoling 62.7 680
Edwin Chen 13.1 681 * Fix bugs.
Edwin Chen 1.1 682
Xiaoling 113.6 683 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 684
kai 31.1 685 Methods to Update Firmware:
Edwin Chen 1.1 686
Xiaoling 79.15 687 * (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 688
Xiaoling 70.18 689 * 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 690
kai 31.1 691 = 6. FAQ =
Edwin Chen 1.1 692
Xiaoling 80.4 693 == 6.1 What is the frequency plan for LDS12-LB? ==
Edwin Chen 1.1 694
Xiaoling 62.7 695
Xiaoling 80.4 696 LDS12-LB 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 697
Edwin Chen 1.1 698
Xiaoling 80.4 699 = 7. Trouble Shooting =
Edwin Chen 1.1 700
Xiaoling 80.4 701 == 7.1 AT Command input doesn't work ==
Edwin Chen 1.1 702
Xiaoling 70.14 703
Xiaoling 80.4 704 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 705
706
Xiaoling 80.4 707 == 7.2 Significant error between the output distant value of LiDAR and actual distance ==
Xiaoling 70.14 708
709
Xiaoling 80.4 710 (((
Xiaoling 82.21 711 (% 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 712 )))
Xiaoling 70.14 713
Xiaoling 80.4 714 (((
Xiaoling 82.21 715 (% style="color:red" %)**Troubleshooting**(%%): Please avoid use of this product under such circumstance in practice.
Xiaoling 80.4 716 )))
Xiaoling 70.14 717
718
Xiaoling 80.4 719 (((
720 (% style="color:blue" %)**Cause ②**(%%)**: **The IR-pass filters are blocked.
721 )))
Xiaoling 70.14 722
Xiaoling 79.7 723 (((
Xiaoling 82.21 724 (% style="color:red" %)**Troubleshooting**(%%): please use dry dust-free cloth to gently remove the foreign matter.
Xiaoling 79.7 725 )))
Xiaoling 70.14 726
727
728 = 8. Order Info =
729
730
Xiaoling 113.5 731 Part Number: (% style="color:blue" %)**DS20L-XXX**
Xiaoling 70.14 732
Xiaoling 70.12 733 (% style="color:red" %)**XXX**(%%): **The default frequency band**
Edwin Chen 1.1 734
Ellie Zhang 38.1 735 * (% style="color:red" %)**AS923**(%%): LoRaWAN AS923 band
Edwin Chen 1.1 736
Ellie Zhang 38.1 737 * (% style="color:red" %)**AU915**(%%): LoRaWAN AU915 band
Edwin Chen 1.1 738
Ellie Zhang 38.1 739 * (% style="color:red" %)**EU433**(%%): LoRaWAN EU433 band
Edwin Chen 1.1 740
Ellie Zhang 38.1 741 * (% style="color:red" %)**EU868**(%%): LoRaWAN EU868 band
Edwin Chen 1.1 742
Ellie Zhang 38.1 743 * (% style="color:red" %)**KR920**(%%): LoRaWAN KR920 band
Edwin Chen 1.1 744
Ellie Zhang 38.1 745 * (% style="color:red" %)**US915**(%%): LoRaWAN US915 band
Edwin Chen 1.1 746
Ellie Zhang 38.1 747 * (% style="color:red" %)**IN865**(%%): LoRaWAN IN865 band
Edwin Chen 1.1 748
Ellie Zhang 38.1 749 * (% style="color:red" %)**CN470**(%%): LoRaWAN CN470 band
Edwin Chen 1.1 750
Xiaoling 70.14 751 = 9. ​Packing Info =
Xiaoling 67.11 752
753
Ellie Zhang 39.1 754 (% style="color:#037691" %)**Package Includes**:
Edwin Chen 1.1 755
Xiaoling 113.5 756 * DS20L LoRaWAN Smart Distance Detector x 1
Edwin Chen 1.1 757
Ellie Zhang 39.1 758 (% style="color:#037691" %)**Dimension and weight**:
Edwin Chen 1.1 759
kai 31.1 760 * Device Size: cm
Edwin Chen 1.1 761
kai 31.1 762 * Device Weight: g
Edwin Chen 1.1 763
kai 31.1 764 * Package Size / pcs : cm
Edwin Chen 1.1 765
kai 31.1 766 * Weight / pcs : g
Edwin Chen 1.1 767
Xiaoling 70.14 768 = 10. Support =
769
770
kai 31.1 771 * 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 772
773 * 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]].