Version 116.2 by Xiaoling on 2023/11/13 10:37

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