Wiki source code of LMDS120 - LoRaWAN Microwave Radar Distance Sensor User Manual
Last modified by Mengting Qiu on 2025/02/27 18:41
Show last authors
author | version | line-number | content |
---|---|---|---|
1 | |||
2 | |||
3 | (% style="text-align:center" %) | ||
4 | [[image:image-20230203113613-1.png]] | ||
5 | |||
6 | |||
7 | |||
8 | |||
9 | **Table of Contents:** | ||
10 | |||
11 | {{toc/}} | ||
12 | |||
13 | |||
14 | |||
15 | |||
16 | |||
17 | |||
18 | |||
19 | |||
20 | = 1. Introduction = | ||
21 | |||
22 | == 1.1 What is LMDS120 Microwave Radar Distance Sensor == | ||
23 | |||
24 | |||
25 | ((( | ||
26 | The Dragino LMDS120 is a (% style="color:blue" %)**LoRaWAN Microwave Radar distance sensor**(%%). It uses use Microwave Radar to detect the distance between sensor and different objects. Different from ultrosonic or Lidar measurement. Microwave Radar is (% style="color:blue" %)**more reliable for condensation / dusty environment**(%%). It can sense correct distance even there is water or think dust on top of the sensor. | ||
27 | ))) | ||
28 | |||
29 | ((( | ||
30 | The LMDS120 can be applied to scenarios such as horizontal distance measurement, parking management system, object proximity and presence detection, intelligent trash can management system, robot obstacle avoidance, automatic control, sewer, etc. | ||
31 | ))) | ||
32 | |||
33 | ((( | ||
34 | The LoRa wireless technology used in LMDS120 allows device to send data and reach extremely long ranges at low data-rates. It provides ultra-long range spread spectrum communication and high interference immunity whilst minimizing current consumption. | ||
35 | ))) | ||
36 | |||
37 | ((( | ||
38 | LMDS120 is powered by (% style="color:blue" %)**8500mAh Li-SOCI2 battery**(%%), it is designed for long term use up to 5 years. | ||
39 | ))) | ||
40 | |||
41 | ((( | ||
42 | Each LMDS120 is pre-load with a set of unique keys for LoRaWAN registrations, register these keys to local LoRaWAN server and it will auto connect after power on. | ||
43 | ))) | ||
44 | |||
45 | [[image:image-20230203114147-2.png||height="355" width="767"]] | ||
46 | |||
47 | |||
48 | == 1.2 Features == | ||
49 | |||
50 | |||
51 | * LoRaWAN 1.0.3 Class A | ||
52 | * Ultra-low power consumption | ||
53 | * 60Ghz Microwave Radar for distance detection | ||
54 | * Monitor Battery Level | ||
55 | * Bands: CN470/EU433/KR920/US915/EU868/AS923/AU915/IN865 | ||
56 | * AT Commands to change parameters | ||
57 | * Uplink on periodically | ||
58 | * Downlink to change configure | ||
59 | * 8500mAh Battery for long term use | ||
60 | * Wall Mountable | ||
61 | * Outdoor Use | ||
62 | |||
63 | == 1.3 Radar probe specification == | ||
64 | |||
65 | |||
66 | * Measuring Method: FMCW | ||
67 | * Frequency: 60 GHz | ||
68 | * Measure Range : 15 ~~ 1200cm | ||
69 | * Accuracy: ±(2cm+SX0.3%). S: Measure Value | ||
70 | * Resolution: 1cm | ||
71 | * Measurement Angle : 25 degrees horizontal and 23 degrees vertical | ||
72 | |||
73 | == 1.4 Storage & Operation Temperature == | ||
74 | |||
75 | |||
76 | -15°C to +65°C | ||
77 | |||
78 | |||
79 | == 1.5 Applications == | ||
80 | |||
81 | |||
82 | * Horizontal distance measurement | ||
83 | * Liquid level measurement | ||
84 | * Parking management system | ||
85 | * Object proximity and presence detection | ||
86 | * Intelligent trash can management system | ||
87 | * Robot obstacle avoidance | ||
88 | * Automatic control | ||
89 | * Sewer | ||
90 | * Bottom water level monitoring | ||
91 | |||
92 | == 1.6 Pin mapping and power on == | ||
93 | |||
94 | |||
95 | [[image:1655257026882-201.png]] | ||
96 | |||
97 | (% style="display:none" %) (%%) | ||
98 | |||
99 | = 2. Operation Mode = | ||
100 | |||
101 | == 2.1 How it works == | ||
102 | |||
103 | |||
104 | ((( | ||
105 | Each LMDS120 is shipped with a worldwide unique set of OTAA keys. To use LMDS120 in a LoRaWAN network, user needs to input the OTAA keys in the LoRaWAN network server. So LMDS120 can join the LoRaWAN network and start to transmit sensor data. | ||
106 | ))) | ||
107 | |||
108 | |||
109 | == 2.2 Example to use for LoRaWAN network == | ||
110 | |||
111 | |||
112 | ((( | ||
113 | 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 [[DLOS8 >>https://www.dragino.com/products/lora-lorawan-gateway/item/160-dlos8.html]] as a LoRaWAN gateway in this example. | ||
114 | ))) | ||
115 | |||
116 | ((( | ||
117 | [[image:image-20230203115545-3.png||height="356" width="769"]] | ||
118 | |||
119 | * In this user case, the LMDS120 is installed on top of river to detect the water level and send the level info to the LoRaWAN server. The LMDS120 will uplink different types of messages to the LoRaWAN server. See [[Uplink payload>>path:#Uplink_Payload]] for detail. | ||
120 | ))) | ||
121 | |||
122 | ((( | ||
123 | Assume the LoRaWAN Gateway DLOS8 is already set to connect to the [[TTN V3 network >>url:https://eu1.cloud.thethings.network]]. We need to add the LMDS120 device in TTN V3: | ||
124 | ))) | ||
125 | |||
126 | ((( | ||
127 | ((( | ||
128 | |||
129 | ))) | ||
130 | |||
131 | ((( | ||
132 | (% style="color:blue" %)**Step 1**(%%): Create a device in TTN with the OTAA keys from LMDS120. | ||
133 | ))) | ||
134 | ))) | ||
135 | |||
136 | ((( | ||
137 | ((( | ||
138 | Each LMDS120 is shipped with a sticker with the default device keys, user can find this sticker in the box. it looks like below. | ||
139 | |||
140 | [[image:image-20230426085652-1.png||height="258" width="556"]] | ||
141 | |||
142 | |||
143 | ))) | ||
144 | ))) | ||
145 | |||
146 | Users can enter these keys in the LoRaWAN Server portal. Below is the TTN V3 screenshot: | ||
147 | |||
148 | __**Add APP EUI**__ in the application. | ||
149 | |||
150 | |||
151 | [[image:image-20220610161353-4.png]] | ||
152 | |||
153 | |||
154 | [[image:image-20220610161353-5.png]] | ||
155 | |||
156 | |||
157 | [[image:image-20220610161353-6.png]] | ||
158 | |||
159 | |||
160 | [[image:image-20220610161353-7.png]] | ||
161 | |||
162 | |||
163 | |||
164 | You can also choose to create the device manually. | ||
165 | |||
166 | [[image:image-20220610161538-8.png]] | ||
167 | |||
168 | |||
169 | |||
170 | **Add APP KEY and DEV EUI** | ||
171 | |||
172 | [[image:1655278497961-944.png]] | ||
173 | |||
174 | |||
175 | (% style="color:blue" %)**Step 2**(%%): Power on LMDS120 | ||
176 | |||
177 | |||
178 | Put a Jumper on JP2 to power on the device. ( The Switch must be in FLASH position). | ||
179 | |||
180 | [[image:1655278589727-228.png]] | ||
181 | |||
182 | ((( | ||
183 | Put the jumper to power on LMDS120 and it will auto-join to the TTN V3 network. After join success, it will start to upload sensor data to TTN V3 and the user can see it in the panel. | ||
184 | ))) | ||
185 | |||
186 | |||
187 | == 2.3 Uplink Payload == | ||
188 | |||
189 | |||
190 | Uplink payloads have two types: | ||
191 | |||
192 | * Distance Value: Use FPORT=2 | ||
193 | * Other control commands: Use other FPORT fields. | ||
194 | |||
195 | The application server should parse the correct value based on FPORT settings. | ||
196 | |||
197 | |||
198 | === 2.3.1 Device Status, FPORT~=5 === | ||
199 | |||
200 | |||
201 | ((( | ||
202 | Include device configure status. Once LMDS120 Joined the network, it will uplink this message to the server. | ||
203 | ))) | ||
204 | |||
205 | Users can also use the downlink command (0x26 01) to ask LMDS120 to resend Device Status. | ||
206 | |||
207 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:490px" %) | ||
208 | |=(% colspan="6" style="background-color:#4F81BD;color:white" %)Device Status (FPORT=5) | ||
209 | |(% style="width:60px" %)**Size(bytes)**|(% style="width:80px" %)**1**|(% style="width:140px" %)**2**|(% style="width:140px" %)**1**|(% style="width:70px" %)**1** | ||
210 | |(% style="width:94px" %)Value|(% style="width:68px" %)Sensor Model|(% style="width:80px" %)Firmware Version|(% style="width:86px" %)Frequency Band|(% style="width:61px" %)Sub-band | ||
211 | |||
212 | [[image:image-20230203133803-4.png]] | ||
213 | |||
214 | |||
215 | * (% style="color:#037691" %)**Sensor Model:**(%%) For LMDS120, this value is 0x18 | ||
216 | |||
217 | * (% style="color:#037691" %)**Firmware Version:**(%%) 0x0100, Means: v1.0.0 version | ||
218 | |||
219 | * (% style="color:#037691" %)**Frequency Band:** | ||
220 | |||
221 | 0x01: EU868 | ||
222 | |||
223 | 0x02: US915 | ||
224 | |||
225 | 0x03: IN865 | ||
226 | |||
227 | 0x04: AU915 | ||
228 | |||
229 | 0x05: KZ865 | ||
230 | |||
231 | 0x06: RU864 | ||
232 | |||
233 | 0x07: AS923 | ||
234 | |||
235 | 0x08: AS923-1 | ||
236 | |||
237 | 0x09: AS923-2 | ||
238 | |||
239 | 0x0a: AS923-3 | ||
240 | |||
241 | 0x0b: AS923-4 | ||
242 | |||
243 | |||
244 | * (% style="color:#037691" %)**Sub-Band**(%%)**:** | ||
245 | ** AU915 and US915:value 0x00 ~~ 0x08 | ||
246 | ** CN470: value 0x0B ~~ 0x0C | ||
247 | ** Other Bands: Always 0x00 | ||
248 | |||
249 | === 2.3.2 Distance, Uplink FPORT~=2 === | ||
250 | |||
251 | |||
252 | LMDS120 will send this uplink **after** Device Status once join the LoRaWAN network successfully. And LMDS120 will: | ||
253 | |||
254 | 1. periodically send this uplink every 20 minute (TDC time), this interval [[can be changed>>||anchor="H3.1A0SetTransmitIntervalTime280x0129"]]. | ||
255 | 1. send this uplink while there is [[interrupt event>>||anchor="H3.2A0SetInterruptMode280x0629"]]. | ||
256 | |||
257 | Uplink Payload totals 8 bytes. | ||
258 | |||
259 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:400px" %) | ||
260 | |=(% colspan="6" style="width: 400px;background-color:#4F81BD;color:white" %)**Distance Value, FPORT=2** | ||
261 | |(% style="width:60px" %)**Size(bytes)**|(% style="width:40px" %)**2**|(% style="width:60px" %)**2**|(% style="width:60px" %)**1**|(% style="width:100px" %)**2**|(% style="width:80px" %)**1** | ||
262 | |(% style="width:72px" %)Value|(% style="width:43px" %)BAT|(% style="width:76px" %)Distance|(% style="width:76px" %)interrupt|(% style="width:75px" %)DS18B20 temperature|(% style="width:75px" %)Sensor flag | ||
263 | |||
264 | [[image:image-20230203142732-5.png]] | ||
265 | |||
266 | |||
267 | ((( | ||
268 | (% style="color:blue" %)**Distance:** | ||
269 | ))) | ||
270 | |||
271 | ((( | ||
272 | Distance between sensor probe to the first object. (unit: mm) | ||
273 | ))) | ||
274 | |||
275 | ((( | ||
276 | For example, if the data you get from the register is** __0x0D 0xC6__**, the distance between the sensor and the measured object is(% style="color:#037691" %)** 0DC6(H) = 3526 (D) = 3526 mm.** | ||
277 | ))) | ||
278 | |||
279 | |||
280 | ((( | ||
281 | (% style="color:red" %)**Notice: The distance has a special value :** | ||
282 | ))) | ||
283 | |||
284 | ((( | ||
285 | (% style="color:blue" %)**0x3FFF**(%%): Reading Invalid (exceed the valid range of the probe) or Probe not detected. | ||
286 | ))) | ||
287 | |||
288 | |||
289 | === 2.3.3 Decoder in TTN V3 === | ||
290 | |||
291 | |||
292 | [[image:1655261164557-670.png]] | ||
293 | |||
294 | |||
295 | ((( | ||
296 | Please check the decoder from this link: [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>https://github.com/dragino/dragino-end-node-decoder]] | ||
297 | ))) | ||
298 | |||
299 | |||
300 | == 2.4 Show data on Datacake == | ||
301 | |||
302 | |||
303 | ((( | ||
304 | Datacake IoT platform provides a human-friendly interface to show the sensor data, once we have sensor data in TTN V3, we can use Datacake to connect to TTN V3 and see the data in Datacake. Below are the steps: | ||
305 | |||
306 | |||
307 | ))) | ||
308 | |||
309 | ((( | ||
310 | (% style="color:blue" %)**Step 1**(%%)**: **Link TTNv3 to [[DATACAKE>>url:https://datacake.co/]] | ||
311 | ))) | ||
312 | |||
313 | ((( | ||
314 | (% style="color:blue" %)**Step 2**(%%)**: **Configure LMDS120 in Datacake | ||
315 | ))) | ||
316 | |||
317 | |||
318 | [[image:image-20230203150230-6.png]] | ||
319 | |||
320 | |||
321 | [[image:image-20220615163646-7.png]] | ||
322 | |||
323 | |||
324 | [[image:image-20230203150402-8.png]] | ||
325 | |||
326 | |||
327 | [[image:image-20230203150513-9.png]] | ||
328 | |||
329 | (% style="display:none" %) (%%) | ||
330 | |||
331 | [[image:image-20230203150531-10.png]](% style="display:none" %) | ||
332 | |||
333 | |||
334 | (% style="display:none" %) | ||
335 | |||
336 | (% style="display:none" %) (%%) [[image:image-20230203150555-11.png]] | ||
337 | |||
338 | |||
339 | (% style="display:none" %) | ||
340 | |||
341 | = 3. Configure LMDS120 via AT Command or LoRaWAN Downlink = | ||
342 | |||
343 | |||
344 | ((( | ||
345 | ((( | ||
346 | Use can configure LMDS120 via AT Command or LoRaWAN Downlink. | ||
347 | ))) | ||
348 | ))) | ||
349 | |||
350 | * ((( | ||
351 | ((( | ||
352 | AT Command Connection: See [[FAQ>>||anchor="H5.A0FAQ"]]. | ||
353 | ))) | ||
354 | ))) | ||
355 | * ((( | ||
356 | ((( | ||
357 | LoRaWAN Downlink instruction for different platforms: [[IoT LoRaWAN Server>>doc:Main.WebHome]] | ||
358 | ))) | ||
359 | ))) | ||
360 | |||
361 | ((( | ||
362 | ((( | ||
363 | |||
364 | ))) | ||
365 | |||
366 | ((( | ||
367 | There are two kinds of commands to configure LMDS120, they are: | ||
368 | ))) | ||
369 | ))) | ||
370 | |||
371 | * ((( | ||
372 | ((( | ||
373 | (% style="color:#4f81bd" %)** General Commands**. | ||
374 | ))) | ||
375 | ))) | ||
376 | |||
377 | ((( | ||
378 | ((( | ||
379 | These commands are to configure: | ||
380 | ))) | ||
381 | ))) | ||
382 | |||
383 | * ((( | ||
384 | ((( | ||
385 | General system settings like: uplink interval. | ||
386 | ))) | ||
387 | ))) | ||
388 | * ((( | ||
389 | ((( | ||
390 | LoRaWAN protocol & radio related command. | ||
391 | ))) | ||
392 | ))) | ||
393 | |||
394 | ((( | ||
395 | ((( | ||
396 | They are same for all Dragino Device which support DLWS-005 LoRaWAN Stack**(Note~*~*)**. These commands can be found on the wiki: [[End Device AT Commands and Downlink Command>>doc:Main.End Device AT Commands and Downlink Command.WebHome]] | ||
397 | ))) | ||
398 | ))) | ||
399 | |||
400 | ((( | ||
401 | ((( | ||
402 | |||
403 | ))) | ||
404 | ))) | ||
405 | |||
406 | * ((( | ||
407 | ((( | ||
408 | (% style="color:#4f81bd" %)** Commands special design for LMDS120** | ||
409 | ))) | ||
410 | ))) | ||
411 | |||
412 | ((( | ||
413 | ((( | ||
414 | These commands only valid for LMDS120, as below: | ||
415 | ))) | ||
416 | ))) | ||
417 | |||
418 | |||
419 | == 3.1 Set Transmit Interval Time(0x01) == | ||
420 | |||
421 | |||
422 | Feature: Change LoRaWAN End Node Transmit Interval. | ||
423 | |||
424 | (% style="color:#037691" %)**AT Command: AT+TDC** | ||
425 | |||
426 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %) | ||
427 | |=(% 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** | ||
428 | |(% style="width:156px" %)AT+TDC=?|(% style="width:137px" %)Show current transmit Interval|((( | ||
429 | 30000 | ||
430 | OK | ||
431 | the interval is 30000ms = 30s | ||
432 | ))) | ||
433 | |(% style="width:156px" %)AT+TDC=60000|(% style="width:137px" %)Set Transmit Interval|((( | ||
434 | OK | ||
435 | Set transmit interval to 60000ms = 60 seconds | ||
436 | ))) | ||
437 | |||
438 | ((( | ||
439 | (% style="color:#037691" %)**Downlink Command: 0x01** | ||
440 | ))) | ||
441 | |||
442 | Format: Command Code (0x01) followed by 3 bytes time value. | ||
443 | |||
444 | If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01. | ||
445 | |||
446 | **Example 1:** Downlink Payload: 0100001E ~/~/ Set Transmit Interval (TDC) = 30 seconds | ||
447 | |||
448 | **Example 2: **Downlink Payload: 0100003C ~/~/ Set Transmit Interval (TDC) = 60 seconds | ||
449 | |||
450 | |||
451 | == 3.2 Set Interrupt Mode(0x06) == | ||
452 | |||
453 | |||
454 | ((( | ||
455 | Feature, Set Interrupt mode for GPIO_EXIT. | ||
456 | ))) | ||
457 | |||
458 | ((( | ||
459 | (% style="color:#037691" %)**Downlink Command: AT+INTMOD** | ||
460 | ))) | ||
461 | |||
462 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %) | ||
463 | |=(% style="width: 154px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 196px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 160px;background-color:#4F81BD;color:white" %)**Response** | ||
464 | |(% style="width:154px" %)AT+INTMOD=?|(% style="width:196px" %)Show current interrupt mode|(% style="width:157px" %)((( | ||
465 | 0 | ||
466 | OK | ||
467 | the mode is 0 = No interruption | ||
468 | ))) | ||
469 | |(% style="width:154px" %)AT+INTMOD=2|(% style="width:196px" %)((( | ||
470 | Set Transmit Interval | ||
471 | ~1. (Disable Interrupt), | ||
472 | 2. (Trigger by rising and falling edge) | ||
473 | 3. (Trigger by falling edge) | ||
474 | 4. (Trigger by rising edge) | ||
475 | )))|(% style="width:157px" %)OK | ||
476 | |||
477 | (% style="color:#037691" %)**Downlink Command: 0x06** | ||
478 | |||
479 | Format: Command Code (0x06) followed by 3 bytes. | ||
480 | |||
481 | This means that the interrupt mode of the end node is set to 0x000003=3 (rising edge trigger), and the type code is 06. | ||
482 | |||
483 | **Example 1: **Downlink Payload: 06000000 ~/~/ Turn off interrupt mode | ||
484 | |||
485 | **Example 2:** Downlink Payload: 06000003 ~/~/ Set the interrupt mode to rising edge trigger | ||
486 | |||
487 | == 3.3 Get or set the maximum detection distance(since v1.1) == | ||
488 | |||
489 | |||
490 | Feature,The farthest detection distance can be set to 5m, 10m. | ||
491 | |||
492 | (% style="color:blue" %)**AT Command: AT+SMDD** | ||
493 | |||
494 | (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) | ||
495 | |=(% 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** | ||
496 | |(% style="width:154px" %)AT+SMDD=?|(% style="width:196px" %)Displays the current distance parameter|(% style="width:157px" %)((( | ||
497 | 5 | ||
498 | OK | ||
499 | ))) | ||
500 | |(% style="width:154px" %)AT+SMDD=10|(% style="width:196px" %)((( | ||
501 | Set detection distance: | ||
502 | 5:detection distance is 5m | ||
503 | |||
504 | 10:detection distance is 10m | ||
505 | )))|(% style="width:157px" %)((( | ||
506 | 01 08 01 (% style="color:blue" %)**00**(%%) 81 8a | ||
507 | |||
508 | OK | ||
509 | |||
510 | 00~-~-->successes | ||
511 | |||
512 | 01~-~-->fail | ||
513 | ))) | ||
514 | |||
515 | (% style="color:blue" %)**Downlink Command: 0xB3** | ||
516 | |||
517 | Format: Command Code (0xB3) followed by 1 bytes. | ||
518 | |||
519 | If the downlink payload=B30A, it means that the distance mode of the end node is set to 0x0A=10 (distance of 10m) and the type code is B3. | ||
520 | |||
521 | * Example 1: Downlink Payload: B3 05 ~/~/ Set the measuring distance to 5m | ||
522 | |||
523 | * Example 2: Downlink Payload: B3 0A ~/~/ Set the measuring distance to 10m | ||
524 | |||
525 | == 3.4 Get or set the accuracy level(since v1.1) == | ||
526 | |||
527 | |||
528 | Feature,Accuracy can be set to: 10mm , 5mm, 2mm. | ||
529 | |||
530 | (% style="color:blue" %)**AT Command: AT+SAL** | ||
531 | |||
532 | (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) | ||
533 | |=(% 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** | ||
534 | |(% style="width:154px" %)AT+SAL=?|(% style="width:196px" %)Displays the current accuracy parameters|(% style="width:157px" %)((( | ||
535 | 2 | ||
536 | OK | ||
537 | ))) | ||
538 | |(% style="width:154px" %)AT+SAL=1|(% style="width:196px" %)((( | ||
539 | Set accuracy level: | ||
540 | |||
541 | 0: 10mm | ||
542 | |||
543 | 1:5mm | ||
544 | |||
545 | 2:2mm | ||
546 | )))|(% style="width:157px" %)((( | ||
547 | 01 0d 01 (% style="color:blue" %)**00**(%%) 91 8b | ||
548 | |||
549 | OK | ||
550 | |||
551 | 00~-~-->successes | ||
552 | |||
553 | 01~-~-->fail | ||
554 | ))) | ||
555 | |||
556 | (% style="color:blue" %)**Downlink Command: 0xB4** | ||
557 | |||
558 | Format: Command Code (0xB4) followed by 1 bytes. | ||
559 | |||
560 | If the downlink payload=B400, it means that the precision of the terminal node is set to 0x00=10 (10mm precision) and the type code is B4. | ||
561 | |||
562 | * Example 1: Downlink Payload: B4 00 ~/~/ Accuracy of 10mm | ||
563 | * Example 2: Downlink Payload: B4 01 ~/~/ Accuracy of 5mm | ||
564 | * Example 3: Downlink Payload: B4 02 ~/~/ Accuracy of 2mm | ||
565 | |||
566 | (% style="color:red" %)**Note: When the node's accuracy is set to 2mm, the node automatically modifies the maximum detection distance to 2.5m.** | ||
567 | |||
568 | |||
569 | == 3.5 Get or set the speed level(since v1.1) == | ||
570 | |||
571 | |||
572 | Feature,Sampling speed can be set to: fast, normal, slow. | ||
573 | |||
574 | (% style="color:blue" %)**AT Command: AT+SSL** | ||
575 | |||
576 | (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) | ||
577 | |=(% 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** | ||
578 | |(% style="width:154px" %)AT+SSL=?|(% style="width:196px" %)Displays the current sampling rate|(% style="width:157px" %)((( | ||
579 | 1 | ||
580 | OK | ||
581 | ))) | ||
582 | |(% style="width:154px" %)AT+SSL=1|(% style="width:196px" %)((( | ||
583 | Set speed level: | ||
584 | |||
585 | 0: slower | ||
586 | |||
587 | 1:ordinary | ||
588 | |||
589 | 2:fastest | ||
590 | )))|(% style="width:157px" %)((( | ||
591 | |||
592 | |||
593 | OK | ||
594 | ))) | ||
595 | |||
596 | (% style="color:blue" %)**Downlink Command: 0xB4** | ||
597 | |||
598 | Format: Command Code (0xB5) followed by 1 bytes. | ||
599 | |||
600 | If the downlink payload=B501, it means that the sampling speed of the terminal node is set to 0x01=1 (Sampling Speed: Normal) and the type code is B5. | ||
601 | |||
602 | * Example 1: Downlink Payload: B5 00 ~/~/ Sampling speed: slow | ||
603 | * Example 2: Downlink Payload: B5 01 ~/~/ Sampling speed: normal | ||
604 | * Example 3: Downlink Payload: B5 02 ~/~/ Sampling speed: fast | ||
605 | |||
606 | == 3.6 Get or Set Command delay of sensors 1(since v1.1) == | ||
607 | |||
608 | |||
609 | Feature,the response delay of the sensor can be set. | ||
610 | |||
611 | (% style="color:blue" %)**AT Command: AT+CD1EL** | ||
612 | |||
613 | (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) | ||
614 | |=(% 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** | ||
615 | |(% style="width:154px" %)AT+CD1EL=?|(% style="width:196px" %)Get the current delay time ( ms)|(% style="width:157px" %)((( | ||
616 | 500 | ||
617 | OK | ||
618 | ))) | ||
619 | |(% style="width:154px" %)AT+CD1EL=500|(% style="width:196px" %)((( | ||
620 | Set command delay | ||
621 | )))|(% style="width:157px" %)((( | ||
622 | OK | ||
623 | ))) | ||
624 | |||
625 | (% style="color:blue" %)**Downlink Command: 0xB6** | ||
626 | |||
627 | Format: Command Code (0xB6) followed by 2 bytes. | ||
628 | |||
629 | If the downlink payload=B601F4, it means that the sampling speed of the terminal node is set to 0x01 F4 (Response delay: 500) and the type code is B6. | ||
630 | |||
631 | * Example : Downlink Payload: B6 01 F4 ~/~/ Set the current delay time to: 500ms | ||
632 | |||
633 | (% style="color:red" %)**Note:** | ||
634 | |||
635 | (% style="color:red" %)**This delay command is the key to whether or not the maximum collection distance of the node can be modified successfully: the following are the recommended settings for the two distances:** | ||
636 | |||
637 | (% style="color:red" %)*** Maximum sampling distance: 5m, can be set to: 500ms delay** | ||
638 | |||
639 | (% style="color:red" %)*** Maximum sampling distance: 10m, can be set to: 1000ms delay** | ||
640 | |||
641 | (% style="color:red" %)**When the setting is unsuccessful with AT command, the serial port will return invalid data: ff od bl bd 00 00, ff means the modification is invalid.** | ||
642 | |||
643 | |||
644 | == 3.7 Get or Set Command delay of sensors 2(since v1.1) == | ||
645 | |||
646 | |||
647 | Feature,the response delay of the sensor can be set. | ||
648 | |||
649 | (% style="color:blue" %)**AT Command: AT+CD2EL** | ||
650 | |||
651 | (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) | ||
652 | |=(% 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** | ||
653 | |(% style="width:154px" %)AT+CD2EL=?|(% style="width:196px" %)Get the current delay time ( ms)|(% style="width:157px" %)((( | ||
654 | 1000 | ||
655 | OK | ||
656 | ))) | ||
657 | |(% style="width:154px" %)AT+CD2EL=1000|(% style="width:196px" %)((( | ||
658 | Set command delay | ||
659 | )))|(% style="width:157px" %)((( | ||
660 | OK | ||
661 | ))) | ||
662 | |||
663 | (% style="color:blue" %)**Downlink Command: 0xB7** | ||
664 | |||
665 | Format: Command Code (0xB7) followed by 2 bytes. | ||
666 | |||
667 | If the downlink payload=B703E8, it means that the sampling speed of the terminal node is set to 0x03 E8 (Response delay: 1000) and the type code is B7. | ||
668 | |||
669 | * Example : Downlink Payload: B7 03 E8 ~/~/ Set the current delay time to: 1000ms | ||
670 | |||
671 | (% style="color:red" %)**Note:** | ||
672 | |||
673 | (% style="color:red" %)**This delay command is the key to successfully modifying the node's maximum acquisition distance: the following are the recommended settings for the two distances:** | ||
674 | |||
675 | (% style="color:red" %)*** Maximum Sampling Distance: 5 meters with 2000ms delay.** | ||
676 | |||
677 | (% style="color:red" %)*** Maximum Sampling Distance: 10 meters, can be set to 3000ms delay.** | ||
678 | |||
679 | (% style="color:red" %)**If the AT command is not successful, the serial port will return invalid data: ff od bl bd 00 00, ff means the modification is invalid.** | ||
680 | |||
681 | |||
682 | == 3.8 Query sensor parameters(since v1.1) == | ||
683 | |||
684 | |||
685 | Features, query the maximum detection distance, accuracy, sampling speed parameters of the sensor | ||
686 | |||
687 | (% style="color:blue" %)**AT Command: AT+DQUE** | ||
688 | |||
689 | (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) | ||
690 | |=(% 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** | ||
691 | |(% style="width:154px" %)AT+DQUE|(% style="width:196px" %)Get the maximum detection distance, accuracy, and sampling speed parameters.|(% style="width:157px" %)((( | ||
692 | 01 88 04 01 01 00 00 b4 b4 | ||
693 | |||
694 | OK | ||
695 | ))) | ||
696 | |||
697 | (% style="color:blue" %)**Downlink Command: 0xB8** | ||
698 | |||
699 | Format: Command Code (0xB8) followed by 1 bytes. | ||
700 | |||
701 | If the downlink payload=B801, it means that the sampling speed of the terminal node is set to 0x01, and the type code is B8. | ||
702 | |||
703 | * Example : Downlink Payload: B8 01 ~/~/ Get the maximum detection distance, accuracy, and sampling speed parameters. | ||
704 | |||
705 | Returns data parsing: | ||
706 | |||
707 | * 01 ~-~--> Frame header | ||
708 | * 88 ~-~--> Function code | ||
709 | * 04 ~-~--> Total bytes of returned data | ||
710 | * 01 ~-~--> Maximum detection distance is: 10m. (Return 00, then maximum detection distance is: 5 | ||
711 | * 01 ~-~--> Detection speed is: normal. (00: fastest; 01: normal; 02: slower) | ||
712 | * 00 ~-~--> Accuracy is: 10mm. (00: 10mm; 1: 5mm, 2: 2mm) | ||
713 | * 00 ~-~--> Condensation function is: weaker. (00: weaker; 01: normal; 02: stronger) | ||
714 | * B4 B4 ~-~--> Checksum | ||
715 | |||
716 | = 4. Battery & Power Consumption = | ||
717 | |||
718 | |||
719 | LMDS120 uses ER26500 + SPC1520 battery pack. See below link for detail information about the battery info and how to replace. | ||
720 | |||
721 | [[**Battery Info & Power Consumption Analyze**>>url:http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] . | ||
722 | |||
723 | |||
724 | = 5. FAQ = | ||
725 | |||
726 | == 5.1 How to use AT Command to configure LMDS120 == | ||
727 | |||
728 | |||
729 | LMDS120 UART connection photo | ||
730 | |||
731 | [[image:image-20230203155404-15.png||height="433" width="690"]] | ||
732 | |||
733 | |||
734 | LMDS120 supports AT Command set. User can use a USB to TTL adapter plus the 3.5mm Program Cable to connect to LMDS120 to use AT command, as below. | ||
735 | |||
736 | [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/test/WebHome/1654135840598-282.png?rev=1.1||alt="1654135840598-282.png" height="571" width="767"]] | ||
737 | |||
738 | |||
739 | In the PC, you need to set the serial baud rate to (% style="color:green" %)**9600**(%%) to access the serial console for LMDS120. LMDS120 will output system info once power on as below: | ||
740 | |||
741 | [[image:image-20220615180555-4.png||height="620" width="887"]] | ||
742 | |||
743 | |||
744 | == 5.2 How to upgrade the firmware? == | ||
745 | |||
746 | |||
747 | ((( | ||
748 | A new firmware might be available for: | ||
749 | ))) | ||
750 | |||
751 | * ((( | ||
752 | Support new features | ||
753 | ))) | ||
754 | * ((( | ||
755 | For bug fix | ||
756 | ))) | ||
757 | * ((( | ||
758 | Change LoRaWAN bands. | ||
759 | ))) | ||
760 | |||
761 | ((( | ||
762 | Instruction for how to upgrade: [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/Firmware%20Upgrade%20Instruction%20for%20STM32%20base%20products/#H2.HardwareUpgradeMethodSupportList>>http://wiki.dragino.com/xwiki/bin/view/Main/Firmware%20Upgrade%20Instruction%20for%20STM32%20base%20products/#H2.HardwareUpgradeMethodSupportList]] | ||
763 | ))) | ||
764 | |||
765 | ((( | ||
766 | Firmware location: [[https:~~/~~/www.dropbox.com/sh/vxhj7k0utq5dk4a/AAC-DW1UeeWSnSPeG-lHWg4da?dl=0>>https://www.dropbox.com/sh/vxhj7k0utq5dk4a/AAC-DW1UeeWSnSPeG-lHWg4da?dl=0]] | ||
767 | ))) | ||
768 | |||
769 | |||
770 | == 5.3 How to change the LoRa Frequency Bands/Region == | ||
771 | |||
772 | |||
773 | You can follow the instructions for [[how to upgrade image>>||anchor="H5.2A0Howtoupgradethefirmware3F"]]. | ||
774 | When downloading the images, choose the required image file for download. | ||
775 | |||
776 | |||
777 | == 5.4 Why does the LMDS120 get invalid data? == | ||
778 | |||
779 | |||
780 | By default, The latest firmware value of POWERIC is 0, versions after 3322 require POWERIC to be set to 1 to work properly | ||
781 | |||
782 | |||
783 | * **//1. Check if the hardware version is 3322//** | ||
784 | |||
785 | If the sensor hardware version is 3322 or earlier, the user can change the POWERIC value to 0, If the sensor hardware is later than 3322, the user can change the value of POWERIC to 1. | ||
786 | |||
787 | **a. Using AT command** | ||
788 | |||
789 | (% class="box infomessage" %) | ||
790 | ((( | ||
791 | AT+POWERIC=0. | ||
792 | |||
793 | AT+POWERIC=1. | ||
794 | ))) | ||
795 | |||
796 | |||
797 | **b. Using Downlink** | ||
798 | |||
799 | (% class="box infomessage" %) | ||
800 | ((( | ||
801 | FF 00(AT+POWERIC=0). | ||
802 | |||
803 | FF 01(AT+POWERIC=1). | ||
804 | ))) | ||
805 | |||
806 | |||
807 | [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LDDS75%20-%20LoRaWAN%20Distance%20Detection%20Sensor%20User%20Manual/WebHome/image-20240531090837-1.png?rev=1.1||alt="image-20240531090837-1.png"]] | ||
808 | |||
809 | |||
810 | Please check your hardware production date | ||
811 | |||
812 | The first two digits are the week of the year, and the last two digits are the year. | ||
813 | |||
814 | The number 3322 is the first batch we changed the power IC. | ||
815 | |||
816 | |||
817 | = 6. Trouble Shooting = | ||
818 | |||
819 | == 6.1 AT Command input doesn't work == | ||
820 | |||
821 | |||
822 | 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:green" %)**ENTER**(%%) while sending out the command. Some serial tool doesn't send (% style="color:green" %)**ENTER**(%%) while press the send key, user need to add ENTER in their string. | ||
823 | |||
824 | |||
825 | = 7. Order Info = | ||
826 | |||
827 | |||
828 | Part Number **:** (% style="color:blue" %)**LMDS120-XX** | ||
829 | |||
830 | (% style="color:blue" %)**XX**(%%)**: **The default frequency band | ||
831 | |||
832 | * (% style="color:red" %)**AS923 **(%%)**:** LoRaWAN AS923 band | ||
833 | * (% style="color:red" %)**AU915 **(%%)**:** LoRaWAN AU915 band | ||
834 | * (% style="color:red" %)**EU433 **(%%)**:** LoRaWAN EU433 band | ||
835 | * (% style="color:red" %)**EU868 **(%%)**:** LoRaWAN EU868 band | ||
836 | * (% style="color:red" %)**KR920 **(%%)**:** LoRaWAN KR920 band | ||
837 | * (% style="color:red" %)**US915 **(%%)**:** LoRaWAN US915 band | ||
838 | * (% style="color:red" %)**IN865 **(%%)**:** LoRaWAN IN865 band | ||
839 | * (% style="color:red" %)**CN470 **(%%)**:** LoRaWAN CN470 band | ||
840 | |||
841 | = 8. Packing Info = | ||
842 | |||
843 | |||
844 | ((( | ||
845 | **Package Includes**: | ||
846 | ))) | ||
847 | |||
848 | ((( | ||
849 | * LMDS120 LoRaWAN Microwave Radar Distance Sensor x 1 | ||
850 | ))) | ||
851 | |||
852 | |||
853 | |||
854 | = 9. Support = | ||
855 | |||
856 | |||
857 | * 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. | ||
858 | |||
859 | * 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.com>>url:http://../../../../../../D:%5C%E5%B8%82%E5%9C%BA%E8%B5%84%E6%96%99%5C%E8%AF%B4%E6%98%8E%E4%B9%A6%5CLoRa%5CLT%E7%B3%BB%E5%88%97%5Csupport@dragino.com]]. |