Wiki source code of LMDS200 -- LoRaWAN Microwave Radar Distance Sensor User Manual
Last modified by Xiaoling on 2025/04/27 16:45
Show last authors
author | version | line-number | content |
---|---|---|---|
1 | (% style="text-align:center" %) | ||
2 | [[image:image-20220615144725-2.jpeg]] | ||
3 | |||
4 | |||
5 | |||
6 | |||
7 | |||
8 | |||
9 | **Table of Contents:** | ||
10 | |||
11 | {{toc/}} | ||
12 | |||
13 | |||
14 | |||
15 | |||
16 | |||
17 | |||
18 | |||
19 | = 1. Introduction = | ||
20 | |||
21 | == 1.1 What is LMDS200 Microwave Radar DistanceSensor == | ||
22 | |||
23 | |||
24 | ((( | ||
25 | The Dragino LMDS200 is a (% style="color:#4472c4" %)**LoRaWAN Microwave Radar distance sensor**(%%). It uses (% style="color:#4472c4" %)**24Ghz Microwave**(%%) to detect the distance between sensor and different objects. Compare vs ultrasonic or Lidar measurement method, Microwave Radar is (% style="color:#4472c4" %)**more reliable for condensation / dusty environment**(%%). It can sense correct distance even there is water or thick dust on top of the sensor. | ||
26 | ))) | ||
27 | |||
28 | ((( | ||
29 | The LMDS200 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. | ||
30 | ))) | ||
31 | |||
32 | ((( | ||
33 | LMDS200 can (% style="color:#4472c4" %)**measure two distances**(%%): the closest object and next object behind the closest one. | ||
34 | ))) | ||
35 | |||
36 | ((( | ||
37 | LMDS200 supports (% style="color:#4472c4" %)**Alarm Feature**(%%), user can set the LMDS200 to uplink data in a short interval when the distance is out of configured range. | ||
38 | ))) | ||
39 | |||
40 | ((( | ||
41 | The LoRa wireless technology used in LMDS200 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. | ||
42 | ))) | ||
43 | |||
44 | ((( | ||
45 | LMDS200 is powered by 8500mAh Li-SOCI2 battery, it is designed for long term use up to 5 years. | ||
46 | ))) | ||
47 | |||
48 | ((( | ||
49 | Each LMDS200 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. | ||
50 | ))) | ||
51 | |||
52 | ((( | ||
53 | *Battery life depends on how often to send data, please see [[battery analyzer>>||anchor="H4.Battery26PowerConsumption"]]. | ||
54 | ))) | ||
55 | |||
56 | |||
57 | |||
58 | [[image:1655277036890-950.png]] | ||
59 | |||
60 | |||
61 | == 1.2 Features == | ||
62 | |||
63 | |||
64 | * LoRaWAN 1.0.3 Class A | ||
65 | * Ultra-low power consumption | ||
66 | * Microwave Radar for distance detection | ||
67 | * Short uplink interval for Distance Alarm | ||
68 | * Monitor Battery Level | ||
69 | * Bands: CN470/EU433/KR920/US915/EU868/AS923/AU915/IN865 | ||
70 | * AT Commands to change parameters | ||
71 | * Uplink on periodically | ||
72 | * Downlink to change configure | ||
73 | * 8500mAh Battery for long term use | ||
74 | * Wall Mountable | ||
75 | * Outdoor Use | ||
76 | |||
77 | == 1.3 Radar probe specification == | ||
78 | |||
79 | |||
80 | * Measuring Method: FMCW | ||
81 | * Frequency: 24.000 ~~ 24.500 GHz | ||
82 | * Measurement output power: 6dBm | ||
83 | * Measure range: 0.5 ~~ 20m | ||
84 | * Accuracy: ±0.1m | ||
85 | * Resolution: 0.01m | ||
86 | * Horizontal Angel: 78° | ||
87 | * Vertical Angel: 23° | ||
88 | |||
89 | == 1.4 Storage & Operation Temperature == | ||
90 | |||
91 | |||
92 | -20°C to +85°C | ||
93 | |||
94 | |||
95 | == 1.5 Applications == | ||
96 | |||
97 | |||
98 | * Horizontal distance measurement | ||
99 | * Liquid level measurement | ||
100 | * Parking management system | ||
101 | * Object proximity and presence detection | ||
102 | * Intelligent trash can management system | ||
103 | * Robot obstacle avoidance | ||
104 | * Automatic control | ||
105 | * Sewer | ||
106 | * Bottom water level monitoring | ||
107 | |||
108 | == 1.6 Installation == | ||
109 | |||
110 | |||
111 | Sensor measure direction and angle is as below. When install the sensor, please make sure the sensor direct to object. | ||
112 | |||
113 | |||
114 | [[image:image-20220615152454-3.png]] | ||
115 | |||
116 | |||
117 | [[image:image-20220615152454-4.png||height="398" width="731"]] | ||
118 | |||
119 | (% style="display:none" %) (%%) | ||
120 | |||
121 | == 1.7 Pin mapping and power on == | ||
122 | |||
123 | |||
124 | [[image:1655257026882-201.png]] | ||
125 | |||
126 | (% style="display:none" %) (%%) | ||
127 | |||
128 | = 2. Operation Mode = | ||
129 | |||
130 | == 2.1 How it works == | ||
131 | |||
132 | |||
133 | ((( | ||
134 | Each LMDS200 is shipped with a worldwide unique set of OTAA keys. To use LMDS200 in a LoRaWAN network, user needs to input the OTAA keys in the LoRaWAN network server. So LMDS200 can join the LoRaWAN network and start to transmit sensor data. | ||
135 | ))) | ||
136 | |||
137 | |||
138 | == 2.2 Example to use for LoRaWAN network == | ||
139 | |||
140 | |||
141 | ((( | ||
142 | 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. | ||
143 | ))) | ||
144 | |||
145 | ((( | ||
146 | [[image:1655278047781-517.png]] | ||
147 | |||
148 | * In this user case, the LMDS200 is installed on top of river to detect the water level and send the level info to the LoRaWAN server. The LMDS200 will uplink different types of messages to the LoRaWAN server. See [[Uplink payload>>path:#Uplink_Payload]] for detail. | ||
149 | ))) | ||
150 | |||
151 | ((( | ||
152 | 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 LMDS200 device in TTN V3: | ||
153 | ))) | ||
154 | |||
155 | ((( | ||
156 | ((( | ||
157 | |||
158 | ))) | ||
159 | |||
160 | ((( | ||
161 | (% style="color:blue" %)**Step 1**(%%): Create a device in TTN with the OTAA keys from LMDS200. | ||
162 | ))) | ||
163 | ))) | ||
164 | |||
165 | ((( | ||
166 | ((( | ||
167 | Each LMDS200 is shipped with a sticker with the default device keys, user can find this sticker in the box. it looks like below. | ||
168 | |||
169 | [[image:image-20230426085714-1.png||height="253" width="545"]] | ||
170 | |||
171 | |||
172 | ))) | ||
173 | ))) | ||
174 | |||
175 | You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot: | ||
176 | |||
177 | **Create the application.** | ||
178 | |||
179 | [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/SAC01L_LoRaWAN_Temperature%26Humidity_Sensor_User_Manual/WebHome/image-20250423093843-1.png?width=756&height=264&rev=1.1||alt="image-20250423093843-1.png"]] | ||
180 | |||
181 | [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LTC2-LB--LoRaWAN_Temperature_Transmitter_User_Manual/WebHome/image-20240907111305-2.png?width=1000&height=572&rev=1.1||alt="image-20240907111305-2.png"]] | ||
182 | |||
183 | |||
184 | **Add devices to the created Application.** | ||
185 | |||
186 | [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LTC2-LB--LoRaWAN_Temperature_Transmitter_User_Manual/WebHome/image-20240907111659-3.png?width=977&height=185&rev=1.1||alt="image-20240907111659-3.png"]] | ||
187 | |||
188 | [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LTC2-LB--LoRaWAN_Temperature_Transmitter_User_Manual/WebHome/image-20240907111820-5.png?width=975&height=377&rev=1.1||alt="image-20240907111820-5.png"]] | ||
189 | |||
190 | |||
191 | **Enter end device specifics manually.** | ||
192 | |||
193 | [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LTC2-LB--LoRaWAN_Temperature_Transmitter_User_Manual/WebHome/image-20240907112136-6.png?width=697&height=687&rev=1.1||alt="image-20240907112136-6.png"]] | ||
194 | |||
195 | |||
196 | **Add DevEUI and AppKey. Customize a platform ID for the device.** | ||
197 | |||
198 | [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LTC2-LB--LoRaWAN_Temperature_Transmitter_User_Manual/WebHome/image-20240907112427-7.png?rev=1.1||alt="image-20240907112427-7.png"]] | ||
199 | |||
200 | |||
201 | (% style="color:blue" %)**Step 2**(%%): Add decoder. | ||
202 | |||
203 | In TTN, user can add a custom payload so it shows friendly reading. | ||
204 | |||
205 | Click this link to get the decoder: [[https:~~/~~/github.com/dragino/dragino-end-node-decoder/tree/main/>>url:https://github.com/dragino/dragino-end-node-decoder/tree/main/]] | ||
206 | |||
207 | Below is TTN screen shot: | ||
208 | |||
209 | [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LDS25-LBLDS25-LS--LoRaWAN_LiDAR_Distance_Auto-Clean_Sensor_User_Manual/WebHome/image-20241009140556-1.png?width=1184&height=488&rev=1.1||alt="image-20241009140556-1.png" height="488" width="1184"]] | ||
210 | |||
211 | [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LDS25-LBLDS25-LS--LoRaWAN_LiDAR_Distance_Auto-Clean_Sensor_User_Manual/WebHome/image-20241009140603-2.png?width=1168&height=562&rev=1.1||alt="image-20241009140603-2.png" height="562" width="1168"]] | ||
212 | |||
213 | |||
214 | (% style="color:blue" %)**Step 3**(%%): Power on LMDS200 | ||
215 | |||
216 | Put a Jumper on JP2 to power on the device. ( The Switch must be in FLASH position). | ||
217 | |||
218 | [[image:1655278589727-228.png]] | ||
219 | |||
220 | ((( | ||
221 | Put the jumper to power on LMDS200 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. | ||
222 | ))) | ||
223 | |||
224 | |||
225 | == 2.3 Uplink Payload == | ||
226 | |||
227 | |||
228 | Uplink payloads have two types: | ||
229 | |||
230 | * Distance Value: Use FPORT=2 | ||
231 | * Other control commands: Use other FPORT fields. | ||
232 | |||
233 | The application server should parse the correct value based on FPORT settings. | ||
234 | |||
235 | ((( | ||
236 | ((( | ||
237 | ((( | ||
238 | |||
239 | ))) | ||
240 | ))) | ||
241 | ))) | ||
242 | |||
243 | === 2.3.1 Device Status, FPORT~=5 === | ||
244 | |||
245 | |||
246 | ((( | ||
247 | Include device configure status. Once LMDS200 Joined the network, it will uplink this message to the server. | ||
248 | ))) | ||
249 | |||
250 | ((( | ||
251 | Users can also use the downlink command (0x26 01) to ask LMDS200 to resend Device Status. | ||
252 | ))) | ||
253 | |||
254 | (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:490px" %) | ||
255 | |=(% colspan="7" style="background-color:#4F81BD;color:white" %)Device Status (FPORT=5) | ||
256 | |(% style="width:60px" %)**Size(bytes)**|(% style="width:80px" %)**1**|(% style="width:140px" %)**2**|(% style="width:140px" %)**1**|(% style="width:70px" %)**1**|(% style="width:70px" %)**2** | ||
257 | |(% style="width:94px" %)Value|(% style="width:68px" %)Sensor Model|(% style="width:80px" %)Firmware Version|(% style="width:86px" %)Frequency Band|(% style="width:61px" %)Sub-band|(% style="width:61px" %)BAT | ||
258 | |||
259 | [[image:image-20220615154022-1.png]](% style="display:none" %) | ||
260 | |||
261 | |||
262 | * (% style="color:#037691" %)**Sensor Model**(%%)**:** For LMDS200, this value is 0x0C | ||
263 | |||
264 | * (% style="color:#037691" %)**Firmware Version**(%%)**:** 0x0100, Means: v1.0.0 version | ||
265 | |||
266 | * (% style="color:#037691" %)**Frequency Band**(%%)**:** | ||
267 | |||
268 | 0x01: EU868 | ||
269 | |||
270 | 0x02: US915 | ||
271 | |||
272 | 0x03: IN865 | ||
273 | |||
274 | 0x04: AU915 | ||
275 | |||
276 | 0x05: KZ865 | ||
277 | |||
278 | 0x06: RU864 | ||
279 | |||
280 | 0x07: AS923 | ||
281 | |||
282 | 0x08: AS923-1 | ||
283 | |||
284 | 0x09: AS923-2 | ||
285 | |||
286 | 0x0a: AS923-3 | ||
287 | |||
288 | 0x0b: CN470 | ||
289 | |||
290 | 0x0c: EU433 | ||
291 | |||
292 | 0x0d: KR920 | ||
293 | |||
294 | 0x0e: MA869 | ||
295 | |||
296 | |||
297 | * (% style="color:#037691" %)**Sub-Band**(%%)**:** | ||
298 | ** AU915 and US915:value 0x00 ~~ 0x08 | ||
299 | ** CN470: value 0x0B ~~ 0x0C | ||
300 | ** Other Bands: Always 0x00 | ||
301 | |||
302 | * (% style="color:#037691" %)**Battery Info:** | ||
303 | |||
304 | Check the battery voltage. | ||
305 | |||
306 | Ex1: 0x0B45 = 2885mV | ||
307 | |||
308 | Ex2: 0x0B49 = 2889mV | ||
309 | |||
310 | |||
311 | === 2.3.2 Sensor Configuration, FPORT~=4 === | ||
312 | |||
313 | |||
314 | ((( | ||
315 | LMDS200 will only send this command after getting the downlink command (0x26 02) from the server. | ||
316 | |||
317 | (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:413px" %) | ||
318 | |=(% colspan="5" style="width: 413px;background-color:#4F81BD;color:white" %)**Sensor Configuration FPORT=4** | ||
319 | |**Size(bytes)**|(% style="width:84px" %)**3**|(% style="width:73px" %)**1**|(% style="width:74px" %)**4**|(% style="width:76px" %)**1** | ||
320 | |Value|(% style="width:84px" %)((( | ||
321 | [[TDC (unit:sec)>>||anchor="H3.1A0SetTransmitIntervalTime280x0129"]] | ||
322 | )))|(% style="width:73px" %)((( | ||
323 | [[ATDC (unit:min)>>||anchor="H3.2SetAlarmTransmitIntervalTime280x0D29"]] | ||
324 | )))|(% style="width:74px" %)[[Alarm Settings>>||anchor="H3.3SetAlarmDistance280xA229"]]|(% style="width:76px" %)[[Interrupt Settings>>||anchor="H3.5A0SetInterruptMode280x0629"]] | ||
325 | ))) | ||
326 | |||
327 | [[image:1655279779620-413.png]] | ||
328 | |||
329 | |||
330 | === 2.3.3 Distance, Uplink FPORT~=2 === | ||
331 | |||
332 | |||
333 | LMDS200 will send this uplink **after** Device Status once join the LoRaWAN network successfully. And LMDS200 will: | ||
334 | |||
335 | 1. periodically send this uplink every 1 hour (TDC time), this interval [[can be changed>>||anchor="H3.1A0SetTransmitIntervalTime280x0129"]]. | ||
336 | 1. periodically send this uplink every 1 minute in Alarm Mode. | ||
337 | 1. send this uplink while there is [[interrupt event>>||anchor="H3.5A0SetInterruptMode280x0629"]]. | ||
338 | |||
339 | Uplink Payload totals 11 bytes. | ||
340 | |||
341 | (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:370px" %) | ||
342 | |=(% colspan="5" style="width: 370px;background-color:#4F81BD;color:white" %)**Distance Value, FPORT=2** | ||
343 | |(% style="width:72px" %)**Size(bytes)**|(% style="width:43px" %)**2**|(% style="width:76px" %)**2**|(% style="width:76px" %)**2**|(% style="width:75px" %)**1** | ||
344 | |(% style="width:72px" %)Value|(% style="width:43px" %)[[BAT>>||anchor="H2.3.1A0DeviceStatus2CFPORT3D5"]]|(% style="width:76px" %)Object1 Distance|(% style="width:76px" %)Object2 Distance|(% style="width:75px" %)Status & [[Alarm>>||anchor="H3.3SetAlarmDistance280xA229"]] | ||
345 | |||
346 | (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:467px" %) | ||
347 | |=(% colspan="4" style="width: 467px; background-color:#4F81BD;color:white;" %)**Status & Alarm field** | ||
348 | |(% style="width:60px" %)**Size(bit)**|(% style="width:76px" %)**6**|(% style="width:138px" %)**1**|(% style="width:173px" %)**1** | ||
349 | |(% style="width:73px" %)Value|(% style="width:76px" %)DALARM Counter|(% style="width:138px" %)((( | ||
350 | Distance Alarm | ||
351 | 0: Normal Value 1: Distance Alarm | ||
352 | )))|(% style="width:173px" %)((( | ||
353 | Interrupt Alarm | ||
354 | 0: No Alarm 1: external Interrupt Alarm | ||
355 | ))) | ||
356 | |||
357 | [[image:image-20220615160828-3.png]] | ||
358 | |||
359 | |||
360 | ((( | ||
361 | (% style="color:blue" %)** Object1 Distance:** | ||
362 | ))) | ||
363 | |||
364 | ((( | ||
365 | Distance between sensor probe to the first object. (unit: cm) | ||
366 | ))) | ||
367 | |||
368 | ((( | ||
369 | For example, if the data you get from the register is __0x00 0x73__, the distance between the sensor and the measured object is(% style="color:blue" %)** 0073(H) = 115 (D) = 115 cm.** | ||
370 | ))) | ||
371 | |||
372 | ((( | ||
373 | (% style="color:red" %)**Notice: There are two special values for object 1 distance:** | ||
374 | ))) | ||
375 | |||
376 | * ((( | ||
377 | **0x0001**: Probe not detected | ||
378 | ))) | ||
379 | * ((( | ||
380 | **0x0002**: Reading Invalid (exceed the valid range of the probe) | ||
381 | ))) | ||
382 | |||
383 | ((( | ||
384 | |||
385 | |||
386 | (% style="color:blue" %)**Object2 Distance:** | ||
387 | ))) | ||
388 | |||
389 | ((( | ||
390 | Distance between sensor probe to the second object. (unit: cm) | ||
391 | ))) | ||
392 | |||
393 | ((( | ||
394 | DALARM Counter : Alarm Counter. | ||
395 | ))) | ||
396 | |||
397 | |||
398 | [[image:image-20220615160828-4.png]] | ||
399 | |||
400 | |||
401 | === 2.3.4 Decoder in TTN V3 === | ||
402 | |||
403 | |||
404 | [[image:1655261164557-670.png]] | ||
405 | |||
406 | ((( | ||
407 | Please check the decoder from this link: [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>https://github.com/dragino/dragino-end-node-decoder]] | ||
408 | |||
409 | |||
410 | ))) | ||
411 | |||
412 | == 2.4 Show data on Datacake == | ||
413 | |||
414 | |||
415 | ((( | ||
416 | 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: | ||
417 | ))) | ||
418 | |||
419 | ((( | ||
420 | (% style="color:blue" %)**Step 1**(%%)**: **Link TTNv3 to [[DATACAKE>>url:https://datacake.co/]] | ||
421 | ))) | ||
422 | |||
423 | ((( | ||
424 | (% style="color:blue" %)**Step 2**(%%)**: **Configure LMDS200 in Datacake | ||
425 | ))) | ||
426 | |||
427 | |||
428 | [[image:image-20220615163646-6.png]] | ||
429 | |||
430 | |||
431 | [[image:image-20220615163646-7.png]] | ||
432 | |||
433 | |||
434 | [[image:image-20220615163646-8.png]] | ||
435 | |||
436 | |||
437 | [[image:image-20220615163646-9.png||height="392" width="1211"]] | ||
438 | |||
439 | |||
440 | [[image:image-20220615163646-10.png]] | ||
441 | |||
442 | (% style="display:none" %) (%%) | ||
443 | |||
444 | [[image:image-20220615163646-11.png||height="434" width="1206"]](% style="display:none" %) | ||
445 | |||
446 | |||
447 | [[image:image-20220615163646-12.png||height="357" width="1202"]](% style="display:none" %) | ||
448 | |||
449 | (% style="display:none" %) (%%) | ||
450 | |||
451 | [[image:image-20220615163646-13.png]](% style="display:none" %) | ||
452 | |||
453 | |||
454 | [[image:image-20220615163646-14.png]] | ||
455 | |||
456 | |||
457 | [[image:image-20220615163646-15.png]](% style="display:none" %) | ||
458 | |||
459 | |||
460 | = 3. Configure LMDS200 via AT Command or LoRaWAN Downlink = | ||
461 | |||
462 | |||
463 | ((( | ||
464 | Use can configure LMDS200 via AT Command or LoRaWAN Downlink. | ||
465 | ))) | ||
466 | |||
467 | ((( | ||
468 | * AT Command Connection: See [[FAQ>>||anchor="H5.A0FAQ"]]. | ||
469 | * LoRaWAN Downlink instruction for different platforms: [[IoT LoRaWAN Server>>doc:Main.WebHome]] | ||
470 | ))) | ||
471 | |||
472 | ((( | ||
473 | |||
474 | |||
475 | There are two kinds of commands to configure LMDS200, they are: | ||
476 | ))) | ||
477 | |||
478 | * ((( | ||
479 | (% style="color:#4f81bd" %)**General Commands**. | ||
480 | ))) | ||
481 | |||
482 | ((( | ||
483 | These commands are to configure: | ||
484 | ))) | ||
485 | |||
486 | * ((( | ||
487 | General system settings like: uplink interval. | ||
488 | ))) | ||
489 | |||
490 | * ((( | ||
491 | LoRaWAN protocol & radio related command. | ||
492 | ))) | ||
493 | |||
494 | ((( | ||
495 | 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]] | ||
496 | ))) | ||
497 | |||
498 | * ((( | ||
499 | (% style="color:#4f81bd" %)**Commands special design for LMDS200** | ||
500 | ))) | ||
501 | |||
502 | ((( | ||
503 | These commands only valid for LMDS200, as below: | ||
504 | ))) | ||
505 | |||
506 | |||
507 | == 3.1 Set Transmit Interval Time(0x01) == | ||
508 | |||
509 | |||
510 | Feature: Change LoRaWAN End Node Transmit Interval. | ||
511 | |||
512 | (% style="color:#037691" %)**AT Command: AT+TDC** | ||
513 | |||
514 | (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) | ||
515 | |=(% 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** | ||
516 | |(% style="width:156px" %)AT+TDC=?|(% style="width:137px" %)Show current transmit Interval|((( | ||
517 | 30000 | ||
518 | OK | ||
519 | the interval is 30000ms = 30s | ||
520 | ))) | ||
521 | |(% style="width:156px" %)AT+TDC=60000|(% style="width:137px" %)Set Transmit Interval|((( | ||
522 | OK | ||
523 | Set transmit interval to 60000ms = 60 seconds | ||
524 | ))) | ||
525 | |||
526 | (% style="color:#037691" %)**Downlink Command: 0x01** | ||
527 | |||
528 | ((( | ||
529 | Format: Command Code (0x01) followed by 3 bytes time value. | ||
530 | |||
531 | ((( | ||
532 | If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01. | ||
533 | ))) | ||
534 | |||
535 | * Example 1: Downlink Payload: 0100001E ~/~/ Set Transmit Interval (TDC) = 30 seconds | ||
536 | * Example 2: Downlink Payload: 0100003C ~/~/ Set Transmit Interval (TDC) = 60 seconds | ||
537 | ))) | ||
538 | |||
539 | |||
540 | |||
541 | == 3.2 Set Alarm Transmit Interval Time(0x0D) == | ||
542 | |||
543 | |||
544 | Feature: Change LoRaWAN End Node Alarm Transmit Interval. Default Value: 1 minute | ||
545 | |||
546 | (% style="color:#037691" %)**AT Command: AT+ATDC** | ||
547 | |||
548 | (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) | ||
549 | |=(% 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** | ||
550 | |(% style="width:156px" %)AT+ATDC=?|(% style="width:139px" %)Show current alarm transmit Interval|(% style="width:213px" %)((( | ||
551 | 1 | ||
552 | OK | ||
553 | the interval is 1 minute | ||
554 | ))) | ||
555 | |(% style="width:156px" %)AT+ATDC=1|(% style="width:139px" %)Set Alarm Transmit Interval|(% style="width:213px" %)((( | ||
556 | OK | ||
557 | Set alarm transmit interval to 1 minute | ||
558 | ))) | ||
559 | |||
560 | (% style="color:#037691" %)**Downlink Command: 0x0D** | ||
561 | |||
562 | Format: Command Code (0x0D) followed by 1 byte for time value. | ||
563 | |||
564 | If the downlink payload=0D02, it means set the END Node's Alarm Transmit Interval to 2 minutes, while type code is 0D. | ||
565 | |||
566 | |||
567 | == 3.3 Set Alarm Distance (0xA2) == | ||
568 | |||
569 | |||
570 | LMDS200 supports Alarm Feature, when LMDS200 detect the distance exceed the alarm settings, LMDS200 will Enter Alarm Mode and use the [[ATDC interval>>||anchor="H3.2SetAlarmTransmitIntervalTime280x0D29"]] (default is 1 minute) to uplink Distance value. Alarm mode will last for 60 uplinks (default 1 hour) and can be close by downlink command 0xA300. | ||
571 | |||
572 | (% style="color:red" %)**Note: Alarm mode only valid for the Distance 1(the Closest Object)** | ||
573 | |||
574 | |||
575 | User can set Alarm Distance to enable/disable Alarm Mode. | ||
576 | |||
577 | (% style="color:#037691" %)**AT+ALARMC=AABBCCDD** | ||
578 | |||
579 | * AABB: Hex value for Alarm low threshold, CCDD: Hex value for Alarm high threshold | ||
580 | * When 0xAABB=0, and 0xCCDD≠0, Alarm trigger when higher than max | ||
581 | * When 0xAABB≠0, and 0xCCDD =0xFFFF, Alarm trigger when lower than min | ||
582 | * When 0xAABB≠0 and 0xCCDD≠0, Alarm trigger when higher than max or lower than min | ||
583 | |||
584 | **Example:** | ||
585 | |||
586 | AT+ALARMC=006400C8 ~/~/ Alarm when < 100 or higher than 200. | ||
587 | |||
588 | |||
589 | (% style="color:#037691" %)**Downlink Payload:** | ||
590 | |||
591 | 0x(A2 00 01 00 00) ~/~/ Same as AT+ALARMC=00010000 | ||
592 | |||
593 | |||
594 | == 3.4 Enter/Exit Alarm Mode (0xA3) == | ||
595 | |||
596 | |||
597 | Feature: Enter/Exit Alarm mode: | ||
598 | |||
599 | (% style="color:#037691" %)**AT Command: AT+ALARM=0(Exit Alarm Mode or AT+ALARM=1 (Enter Alarm Mode)** | ||
600 | |||
601 | |||
602 | (% style="color:#037691" %)**Downlink Command:** | ||
603 | |||
604 | 0xA3 00 ~/~/ Exit Alarm Mode. | ||
605 | |||
606 | 0xA3 01 ~/~/ Enter Alarm Mode. Enter Alarm mode will use ATDC interval in the next 59 uplinks. | ||
607 | |||
608 | |||
609 | == 3.5 Set Interrupt Mode(0x06) == | ||
610 | |||
611 | |||
612 | ((( | ||
613 | Feature, Set Interrupt mode for GPIO_EXIT. | ||
614 | ))) | ||
615 | |||
616 | ((( | ||
617 | (% style="color:#037691" %)**AT Command: AT+INTMOD** | ||
618 | ))) | ||
619 | |||
620 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %) | ||
621 | |=(% style="width: 154px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 223px; background-color: rgb(79, 129, 189); color: white;" %)**Function**|=(% style="width: 131px; background-color: rgb(79, 129, 189); color: white;" %)**Response** | ||
622 | |(% style="width:154px" %)AT+INTMOD=?|(% style="width:223px" %)Show current interrupt mode|(% style="width:131px" %)((( | ||
623 | 0 | ||
624 | OK | ||
625 | the mode is 0 = No interruption | ||
626 | ))) | ||
627 | |(% style="width:154px" %)AT+INTMOD=2|(% style="width:223px" %)((( | ||
628 | Set the interrupt triggering mode | ||
629 | 0. (Disable Interrupt), | ||
630 | ~1. (Trigger by rising and falling edge) | ||
631 | 2. (Trigger by falling edge) | ||
632 | 3. (Trigger by rising edge) | ||
633 | )))|(% style="width:131px" %)OK | ||
634 | |||
635 | (% style="color:#037691" %)**Downlink Command: 0x06** | ||
636 | |||
637 | ((( | ||
638 | Format: Command Code (0x06) followed by 3 bytes. | ||
639 | ))) | ||
640 | |||
641 | ((( | ||
642 | This means that the interrupt mode of the end node is set to 0x000003=3 (rising edge trigger), and the type code is 06. | ||
643 | ))) | ||
644 | |||
645 | * ((( | ||
646 | ((( | ||
647 | Example 1: Downlink Payload: 06000000 ~/~/ Turn off interrupt mode | ||
648 | ))) | ||
649 | ))) | ||
650 | * ((( | ||
651 | ((( | ||
652 | Example 2: Downlink Payload: 06000003 ~/~/ Set the interrupt mode to rising edge trigger | ||
653 | ))) | ||
654 | ))) | ||
655 | |||
656 | = 4. Battery & Power Consumption = | ||
657 | |||
658 | |||
659 | LMDS200 uses ER26500 + SPC1520 battery pack. See below link for detail information about the battery info and how to replace. | ||
660 | |||
661 | [[**Battery Info & Power Consumption Analyze**>>url:http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] . | ||
662 | |||
663 | |||
664 | = 5. FAQ = | ||
665 | |||
666 | == 5.1 How to use AT Command to configure LMDS200 == | ||
667 | |||
668 | |||
669 | LMDS200 UART connection photo | ||
670 | |||
671 | |||
672 | [[image:image-20220615180555-3.png||height="541" width="863"]] | ||
673 | |||
674 | |||
675 | LMDS200 supports AT Command set. User can use a USB to TTL adapter plus the 3.5mm Program Cable to connect to LMDS200 to use AT command, as below. | ||
676 | |||
677 | [[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"]] | ||
678 | |||
679 | |||
680 | In the PC, you need to set the serial baud rate to (% style="color:green" %)**9600**(%%) to access the serial console for LMDS200. LMDS200 will output system info once power on as below: | ||
681 | |||
682 | [[image:image-20220615180555-4.png]] | ||
683 | |||
684 | |||
685 | == 5.2 How to upgrade the firmware? == | ||
686 | |||
687 | |||
688 | ((( | ||
689 | A new firmware might be available for: | ||
690 | ))) | ||
691 | |||
692 | * ((( | ||
693 | Support new features | ||
694 | ))) | ||
695 | * ((( | ||
696 | For bug fix | ||
697 | ))) | ||
698 | * ((( | ||
699 | Change LoRaWAN bands. | ||
700 | ))) | ||
701 | |||
702 | ((( | ||
703 | 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]] | ||
704 | ))) | ||
705 | |||
706 | ((( | ||
707 | Firmware location: [[https:~~/~~/www.dragino.com/downloads/index.php?dir=LoRa_End_Node/LMDS200/Firmware/>>https://www.dropbox.com/sh/g99v0fxcltn9r1y/AABDo75A3JuPzDrPJnsXo0Y0a/LMDS200?dl=0]] | ||
708 | ))) | ||
709 | |||
710 | |||
711 | == 5.3 How to change the LoRa Frequency Bands/Region == | ||
712 | |||
713 | |||
714 | You can follow the instructions for [[how to upgrade image>>||anchor="H5.2A0Howtoupgradethefirmware3F"]]. | ||
715 | When downloading the images, choose the required image file for download. | ||
716 | |||
717 | |||
718 | = 6. Trouble Shooting = | ||
719 | |||
720 | == 6.1 AT Command input doesn't work == | ||
721 | |||
722 | |||
723 | 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. | ||
724 | |||
725 | |||
726 | = 7. Order Info = | ||
727 | |||
728 | |||
729 | Part Number **:** (% style="color:blue" %)**LMDS200-XX** | ||
730 | |||
731 | (% style="color:blue" %)**XX**(%%)**: **The default frequency band | ||
732 | |||
733 | * (% style="color:red" %)**AS923 **(%%)**:** LoRaWAN AS923 band | ||
734 | * (% style="color:red" %)**AU915 **(%%)**:** LoRaWAN AU915 band | ||
735 | * (% style="color:red" %)**EU433 **(%%)**:** LoRaWAN EU433 band | ||
736 | * (% style="color:red" %)**EU868 **(%%)**:** LoRaWAN EU868 band | ||
737 | * (% style="color:red" %)**KR920 **(%%)**:** LoRaWAN KR920 band | ||
738 | * (% style="color:red" %)**US915 **(%%)**:** LoRaWAN US915 band | ||
739 | * (% style="color:red" %)**IN865 **(%%)**:** LoRaWAN IN865 band | ||
740 | * (% style="color:red" %)**CN470 **(%%)**:** LoRaWAN CN470 band | ||
741 | |||
742 | = 8. Packing Info = | ||
743 | |||
744 | |||
745 | ((( | ||
746 | **Package Includes**: | ||
747 | ))) | ||
748 | |||
749 | ((( | ||
750 | LMDS200 LoRaWAN Microwave Radar Distance Sensor x 1 | ||
751 | ))) | ||
752 | |||
753 | |||
754 | = 9. Support = | ||
755 | |||
756 | |||
757 | * 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. | ||
758 | |||
759 | * 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]]. | ||
760 | |||
761 |