<
From version < 52.3 >
edited by Xiaoling
on 2022/08/12 15:48
To version < 64.1 >
edited by Bei Jinggeng
on 2023/07/25 15:35
>
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.Xiaoling
1 +XWiki.Bei
Content
... ... @@ -9,42 +9,35 @@
9 9  
10 10  Dragino LoRaWAN End Node support two types of AT Commands and Downlink Commands:
11 11  
12 -* **Common Commands:** They should be available for each sensor, such as: change uplink interval, reset device.
13 -* **Sensor Related Commands:** Only for special sensor, such as control relay, poll RS485 device.
12 +* (% style="color:blue" %)**Common Commands:** (%%) They should be available for each sensor, such as: change uplink interval, reset device.
14 14  
14 +* (% style="color:blue" %)**Sensor Related Commands:** (%%) Only for special sensor, such as control relay, poll RS485 device.
15 +
15 15  (((
16 16  **This page shows the common commands since Dragino LoRaWAN stack DR-LWS-005. Make sure the end node support stack higher than DR-LWS-005 before checking this page.**
17 -
18 -
19 -
20 20  )))
21 21  
20 +
22 22  = 2. How to use AT Commands or Downlink command =
23 23  
24 24  
25 -* For AT Command , See Devices User Manual for Device. The user manual can be found in each product page of [[Dragino Official Website>>url:http://www.dragino.com/]]
26 -* For LoRaWAN Downlink: The gateway transfer downlink command in HEX format. This page shows the HEX format downlink code for each command. but some servers use base64 as downlink code. Below are reference for how to use downlink command:
24 +* **AT Command** : See Devices User Manual for how to connect to device via USB TTL adapter and use. The user manual can be found in each product page of [[Dragino Official Website>>url:http://www.dragino.com/]]
25 +
26 +* **LoRaWAN Downlink Command**: The gateway transfer downlink command in HEX format. This page shows the Downlink Command In HEX format. Please note some LoRaWAN servers use base64 as downlink code so user need to convert HEX to Base64 and use. Below are references for how to use downlink command:
27 27  ** Use HEX format to send a downlink: [[TTN v3>>Notes for TTN]]
28 -** Use Base64 format to send a downlink: [[Chirpstack>>Notes for ChirpStack]]
28 +** Use Base64 format to send a downlink: [[Chirpstack>>Notes for ChirpStack]], [[How to Convert>>http://wiki.dragino.com/xwiki/bin/view/Main/Notes%20for%20ChirpStack/#H4.1ConvertHEXtoBase64]]?
29 29  ** See use note for more serves [[Servers Note>>doc:Main.WebHome]](IoT LoRaWAN Server)
30 30  
31 +(% style="display:none" %) (%%)
31 31  
32 -
33 33  = 3. Support End Node and firmware version =
34 34  
35 35  
36 -(% border="1" style="background-color:#ffffcc; color:green; width:966px" %)
37 -|=(% colspan="3" style="width: 963px;" %)(((
38 38  Dragino STM32 base hardware Firmware / LoRaWAN stack list
39 -)))
37 +
38 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:966px" %)
39 +|(% style="background-color:#4f81bd; color:white; width:187px" %)**Model**|(% style="background-color:#4f81bd; color:white; width:330px" %)**Description**|(% style="background-color:#4f81bd; color:white; width:445px" %)**Firmware Version <~-~-> Stack Version**
40 40  |(% style="width:187px" %)(((
41 -**Model**
42 -)))|(% style="width:330px" %)(((
43 -**Description**
44 -)))|(% style="width:445px" %)(((
45 -**Firmware Version <~-~-> Stack Version**
46 -)))
47 -|(% style="width:187px" %)(((
48 48  [[LSN50-v1>>url:http://www.dragino.com/products/lora-lorawan-end-node/item/128-lsn50.html]], [[LSN50-V2>>url:http://www.dragino.com/products/lora-lorawan-end-node/item/155-lsn50-v2.html]],
49 49  )))|(% style="width:330px" %)(((
50 50  Open Source Generic LoRaWAN Sensor Node
... ... @@ -104,10 +104,10 @@
104 104  )))
105 105  )))
106 106  
100 +(% style="display:none" %) (%%)
107 107  
108 108  = 4. System Management Commands =
109 109  
110 -
111 111  == 4.1 Change Uplink Interval ==
112 112  
113 113  
... ... @@ -116,9 +116,8 @@
116 116  
117 117  (% style="color:blue" %)**AT Command: AT+TDC**
118 118  
119 -(% border="1" style="background-color:#ffffcc; color:green; width:727.222px" %)
120 -|=(% colspan="3" style="width: 724px;" %)AT+TDC
121 -|(% style="width:165px" %)**Command Example**|(% style="width:227px" %)**Function**|(% style="width:329px" %)**Response**
112 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:727.222px" %)
113 +|(% style="background-color:#4f81bd; color:white; width:165px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:227px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:329px" %)**Response**
122 122  |(% style="width:165px" %)AT+TDC=?|(% style="width:227px" %)Show current transmit Interval|(% style="width:329px" %)30000(((
123 123  OK
124 124  
... ... @@ -129,8 +129,6 @@
129 129  )))
130 130  
131 131  (((
132 -
133 -
134 134  (% style="color:blue" %)**Downlink Command: 0x01**
135 135  
136 136  Format: Command Code (0x01) followed by 3 bytes time value.
... ... @@ -137,12 +137,14 @@
137 137  )))
138 138  
139 139  (((
140 -If the downlink payload=0100003C, it means set the END Nodes Transmit Interval to 0x00003C=60(S), while type code is 01.
130 +If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01.
141 141  )))
142 142  
143 143  * **Example 1**: Downlink Payload:** 0100001E**  ~/~/ Set Transmit Interval (TDC) = 30 seconds
134 +
144 144  * **Example 2**: Downlink Payload:** 0100003C**  ~/~/ Set Transmit Interval (TDC) = 60 seconds
145 145  
137 +(% style="display:none" %) (%%)
146 146  
147 147  == 4.2 Reboot End Node ==
148 148  
... ... @@ -150,11 +150,10 @@
150 150  Feature: Reboot End Node to perform a new OTAA or ABP Join.
151 151  
152 152  
153 -(% style="color:blue" %)**AT Command: ATZ**
145 +(% style="color:blue" %)**AT Command: ATZ  ~/~/ **(%%)Trig a reset of the MCU
154 154  
155 -(% border="1" style="background-color:#ffffcc; color:green; width:546px" %)
156 -|=(% colspan="3" style="width: 543px;" %)ATZ: Trig a reset of the MCU
157 -|(% style="width:157px" %)**Command Example**|(% style="width:92px" %)**Function**|(% style="width:294px" %)**Response**
147 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:546px" %)
148 +|(% style="background-color:#4f81bd; color:white; width:157px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:92px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:294px" %)**Response**
158 158  |(% style="width:157px" %)ATZ|(% style="width:92px" %)Reset MCU|(% style="width:294px" %)(((
159 159  Device reset and show booting info
160 160  
... ... @@ -176,12 +176,10 @@
176 176  )))
177 177  
178 178  (((
179 -If the downlink payload=**04FF**, the end node will reboot.
180 -
181 -
182 -
170 +If the downlink payload=**04FF**, the end node will reboot.
183 183  )))
184 184  
173 +
185 185  == 4.3 Reset to factory Default ==
186 186  
187 187  
... ... @@ -188,11 +188,10 @@
188 188  Feature: Reset the parameters to Factory Default, factory default value depends on the firmware settings, the OTAA and ABP keys will reserve after this command.
189 189  
190 190  
191 -(% style="color:blue" %)**AT Command: AT+FDR**
180 +(% style="color:blue" %)**AT Command: AT+FDR  ~/~/  **(%%)Reset to factory default
192 192  
193 -(% border="1" style="background-color:#ffffcc; color:green; width:789px" %)
194 -|=(% colspan="3" style="width: 786px;" %)Reset to factory default
195 -|(% style="width:154px" %)**Command Example**|(% style="width:175px" %)**Function**|(% style="width:456px" %)**Response**
182 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:789px" %)
183 +|(% style="background-color:#4f81bd; color:white; width:154px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:175px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:456px" %)**Response**
196 196  |(% style="width:154px" %)AT+FDR|(% style="width:175px" %)Reset to factory default|(% style="width:456px" %)(((
197 197  Device reset to factory default parameters and show booting info
198 198  
... ... @@ -218,7 +218,6 @@
218 218  )))
219 219  
220 220  
221 -
222 222  == 4.4 Show Firmware Version ==
223 223  
224 224  
... ... @@ -225,11 +225,10 @@
225 225  Feature: Show firmware version. No downlink command yet.
226 226  
227 227  
228 -(% style="color:blue" %)**AT Command: AT+VER**
215 +(% style="color:blue" %)**AT Command: AT+VER  ~/~/   **(%%)Image Version and Frequency Band
229 229  
230 -(% border="1" style="background-color:#ffffcc; color:green; width:542px" %)
231 -|=(% colspan="3" style="width: 539px;" %)AT+VER: Image Version and Frequency Band
232 -|(% style="width:157px" %)**Command Example**|(% style="width:295px" %)**Function**|(% style="width:86px" %)**Response**
217 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:542px" %)
218 +|(% style="background-color:#4f81bd; color:white; width:157px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:295px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:86px" %)**Response**
233 233  |(% style="width:157px" %)AT+VER=?|(% style="width:295px" %)Show Image version and Frequency Band|(% style="width:86px" %)(((
234 234  1.3 EU868
235 235  
... ... @@ -249,8 +249,7 @@
249 249  (((
250 250  
251 251  
252 -
253 -**xx: Software Type:**
238 +(% style="color:#037691" %)**xx: Software Type:**
254 254  )))
255 255  
256 256  * 0x00 01: LGT92 Version
... ... @@ -260,7 +260,7 @@
260 260  (((
261 261  
262 262  
263 -**yy: Frequency Band:**
248 +(% style="color:#037691" %)**yy: Frequency Band:**
264 264  )))
265 265  
266 266  * 0x01: EU868
... ... @@ -277,13 +277,12 @@
277 277  (((
278 278  
279 279  
280 -**zz: Subband**
265 +(% style="color:#037691" %)**zz: Subband**
281 281  )))
282 282  
283 283  firmware version: v1.1.0 ~-~-> 110
284 284  
285 285  
286 -
287 287  == 4.5 Show System Configure ==
288 288  
289 289  
... ... @@ -290,29 +290,23 @@
290 290  Feature: Show All configure. No downlink command yet.
291 291  
292 292  
293 -(% style="color:blue" %)**AT Command: AT+CFG**
277 +(% style="color:blue" %)**AT Command: AT+CFG  ~/~/ **(%%)Print all configurations
294 294  
295 -(% border="1" style="background-color:#ffffcc; color:green; width:599.222px" %)
296 -|=(% colspan="3" style="width: 596px;" %)AT+CFG: Print all configurations
297 -|(% style="width:160px" %)**Command Example**|(% style="width:154px" %)**Function**|(% style="width:280px" %)**Response**
279 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:599.222px" %)
280 +|(% style="background-color:#4f81bd; color:white; width:160px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:154px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:280px" %)**Response**
298 298  |(% style="width:160px" %)AT+CFG|(% style="width:154px" %)Show all configures|(% style="width:280px" %)(((
299 299  AT+DEUI = XX XX XX XX XX XX XX XX
300 -
301 301  AT+DADDR=XXXXXXXX
302 -
303 303  ……….
304 -
305 305  AT+RX2WTO=X
306 -
307 307  AT+CHS=868100000
308 -
309 309  OK
310 310  )))
311 311  
290 +(% style="display:none" %) (%%)
312 312  
313 313  = 5. Keys, IDs and EUIs management =
314 314  
315 -
316 316  == 5.1 Application EUI ==
317 317  
318 318  
... ... @@ -321,14 +321,14 @@
321 321  
322 322  (% style="color:blue" %)**AT Command: AT+APPEUI**
323 323  
324 -(% border="1" style="background-color:#ffffcc; color:green; width:686.222px" %)
325 -|=(% colspan="3" style="width: 683px;" %)AT+APPEUI
326 -|(% style="width:305px" %)**Command Example**|(% style="width:186px" %)**Function**|(% style="width:191px" %)**Response**
327 -|(% style="width:305px" %)AT+APPEUI=?|(% style="width:186px" %)Get the Application EUI|(% style="width:191px" %)00 b3 d5 00 00 00 00 00(((
302 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:643px" %)
303 +|(% style="background-color:#4f81bd; color:white; width:272px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:182px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:184px" %)**Response**
304 +|(% style="width:272px" %)AT+APPEUI=?|(% style="width:182px" %)Get the Application EUI|(% style="width:184px" %)00 b3 d5 00 00 00 00 00(((
328 328  OK
329 329  )))
330 -|(% style="width:305px" %)AT+APPEUI=00 b3 d5 7e f0 00 4d 34|(% style="width:186px" %)Set the Application EUI|(% style="width:191px" %)OK
307 +|(% style="width:272px" %)AT+APPEUI=00 b3 d5 7e f0 00 4d 34|(% style="width:182px" %)Set the Application EUI|(% style="width:184px" %)OK
331 331  
309 +(% style="display:none" %) (%%)
332 332  
333 333  == 5.2 Application Key ==
334 334  
... ... @@ -338,14 +338,14 @@
338 338  
339 339  (% style="color:blue" %)**AT Command: AT+APPKEY**
340 340  
341 -(% border="1" style="background-color:#ffffcc; color:green; width:976.222px" %)
342 -|=(% colspan="3" style="width: 973px;" %)AT+APPKEY
343 -|(% style="width:441px" %)**Command Example**|(% style="width:180px" %)**Function**|(% style="width:350px" %)**Response**
319 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:976.222px" %)
320 +|(% style="background-color:#4f81bd; color:white; width:441px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:180px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:350px" %)**Response**
344 344  |(% style="width:441px" %)AT+APPKEY=?|(% style="width:180px" %)Get the Application Key|(% style="width:350px" %)00 35 55 55 22 23 55 53 43 24 23 42 34 35 35 35(((
345 345  OK
346 346  )))
347 347  |(% style="width:441px" %)AT+APPKEY=00 35 55 55 22 23 55 53 43 24 23 42 34 35 35 35|(% style="width:180px" %)Set the Application Key|(% style="width:350px" %)OK
348 348  
326 +(% style="display:none" %) (%%)
349 349  
350 350  == 5.3 Application Session Key ==
351 351  
... ... @@ -355,9 +355,8 @@
355 355  
356 356  (% style="color:blue" %)**AT Command: AT+APPSKEY**
357 357  
358 -(% border="1" style="background-color:#ffffcc; color:green; width:1040.22px" %)
359 -|=(% colspan="3" style="width: 1037px;" %)AT+APPSKEY
360 -|(% style="width:451px" %)**Command Example**|(% style="width:231px" %)**Function**|(% style="width:354px" %)**Response**
336 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:1040.22px" %)
337 +|(% style="background-color:#4f81bd; color:white; width:451px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:231px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:354px" %)**Response**
361 361  |(% style="width:451px" %)AT+APPSKEY=?|(% style="width:231px" %)Get the Application Session Key|(% style="width:354px" %)00 7d dc 73 33 d3 eb 9e 14 38 d5 a4 3e 62 5b e2(((
362 362  OK
363 363  )))
... ... @@ -365,6 +365,7 @@
365 365  OK
366 366  )))
367 367  
345 +(% style="display:none" %) (%%)
368 368  
369 369  == 5.4 Device Address ==
370 370  
... ... @@ -374,9 +374,8 @@
374 374  
375 375  (% style="color:blue" %)**AT Command: AT+DADDR**
376 376  
377 -(% border="1" style="background-color:#ffffcc; color:green; width:795.222px" %)
378 -|=(% colspan="3" style="width: 792px;" %)AT+DADDR
379 -|(% style="width:192px" %)**Command Example**|(% style="width:241px" %)**Function**|(% style="width:359px" %)**Response**
355 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:795.222px" %)
356 +|(% style="background-color:#4f81bd; color:white; width:192px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:241px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:359px" %)**Response**
380 380  |(% style="width:192px" %)AT+DADDR=?|(% style="width:241px" %)Get the Application Session Key.|(% style="width:359px" %)(While Error in format, return AT_PARAM_ERROR)(((
381 381  A8 40 41 FF
382 382  
... ... @@ -384,6 +384,7 @@
384 384  )))
385 385  |(% style="width:192px" %)AT+DADDR=A8 40 41 FF|(% style="width:241px" %)Set the Application Session Key.|(% style="width:359px" %)OK
386 386  
364 +(% style="display:none" %) (%%)
387 387  
388 388  == 5.5 Device EUI ==
389 389  
... ... @@ -393,9 +393,8 @@
393 393  
394 394  (% style="color:blue" %)**AT Command: AT+DEUI**
395 395  
396 -(% border="1" style="background-color:#ffffcc; color:green; width:1035.22px" %)
397 -|=(% colspan="3" style="width: 1032px;" %)AT+DEUI
398 -|(% style="width:250px" %)**Command Example**|(% style="width:147px" %)**Function**|(% style="width:634px" %)**Response**
374 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:1035.22px" %)
375 +|(% style="background-color:#4f81bd; color:white; width:250px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:147px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:634px" %)**Response**
399 399  |(% style="width:250px" %)AT+DEUI=?|(% style="width:147px" %)Get the Device EUI.|(% style="width:634px" %)00 44 34 22 33 45 55 55(((
400 400  OK
401 401  )))
... ... @@ -403,6 +403,7 @@
403 403  OK
404 404  )))
405 405  
383 +(% style="display:none" %) (%%)
406 406  
407 407  == 5.6 Network ID ==
408 408  
... ... @@ -412,14 +412,14 @@
412 412  
413 413  (% style="color:blue" %)**AT Command: AT+NWKID**
414 414  
415 -(% border="1" style="background-color:#ffffcc; color:green; width:448.222px" %)
416 -|=(% colspan="3" style="width: 445px;" %)AT+NWKID
417 -|(% style="width:191px" %)**Command Example**|(% style="width:153px" %)**Function**|(% style="width:101px" %)**Response**
393 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:448.222px" %)
394 +|(% style="background-color:#4f81bd; color:white; width:191px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:153px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:101px" %)**Response**
418 418  |(% style="width:191px" %)AT+NWKID=?|(% style="width:153px" %)Get the Network ID.|(% style="width:101px" %)a8 40 41 ff(((
419 419  OK
420 420  )))
421 421  |(% style="width:191px" %)AT+NWKID=A8 40 41 FF|(% style="width:153px" %)Set the Network ID.|(% style="width:101px" %)OK
422 422  
400 +(% style="display:none" %) (%%)
423 423  
424 424  == 5.7 Network Session Key ==
425 425  
... ... @@ -429,21 +429,19 @@
429 429  
430 430  (% style="color:blue" %)**AT Command: AT+NWKSKEY**
431 431  
432 -(% border="1" style="background-color:#ffffcc; color:green; width:1017.22px" %)
433 -|=(% colspan="3" style="width: 1014px;" %)AT+NWKSKEY
434 -|(% style="width:455px" %)**Command Example**|(% style="width:215px" %)**Function**|(% style="width:343px" %)**Response**
410 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:1017.22px" %)
411 +|(% style="background-color:#4f81bd; color:white; width:455px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:215px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:343px" %)**Response**
435 435  |(% style="width:455px" %)AT+NWKSKEY=?|(% style="width:215px" %)Get the Network Session Key.|(% style="width:343px" %)00 4f 19 25 52 ce 97 09 d7 fa 84 71 db 51 02 92(((
436 436  OK
437 437  )))
438 438  |(% style="width:455px" %)AT+NWKSKEY=A8 40 41 FF FF 12 34 56 00 01 02 04 05 06 06 07|(% style="width:215px" %)Set the Network Session Key.|(% style="width:343px" %)OK
439 439  
417 +(% style="display:none" %) (%%)
440 440  
441 441  = 6. Joining and sending date on LoRaWAN network =
442 442  
443 -
444 444  == 6.1 Confirm Mode ==
445 445  
446 -
447 447  === 6.1.1  AT+CFM command before DR-LWS007 software stack ===
448 448  
449 449  
... ... @@ -452,9 +452,8 @@
452 452  
453 453  (% style="color:blue" %)**AT Command: AT+CFM**
454 454  
455 -(% border="1" style="background-color:#ffffcc; color:green; width:710.222px" %)
456 -|=(% colspan="3" style="width: 707px;" %)AT+CFM
457 -|(% style="width:155px" %)**Command Example**|(% style="width:205px" %)**Function**|(% style="width:346px" %)**Response**
431 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:710.222px" %)
432 +|(% style="background-color:#4f81bd; color:white; width:155px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:205px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:346px" %)**Response**
458 458  |(% style="width:155px" %)AT+CFM=?|(% style="width:205px" %)Get the confirmation mode|(% style="width:346px" %)0(((
459 459  OK
460 460  )))
... ... @@ -468,23 +468,23 @@
468 468  If the downlink payload=0501, it means set end node to use confirm mode, while type code is 05.
469 469  
470 470  * **Example 1:** Downlink Payload: 0501  ~/~/ Set AT+CFM=1
446 +
471 471  * **Example 2:** Downlink Payload: 0500  ~/~/ Set AT+CFM=0
472 472  
449 +(% style="display:none" %) (%%)
473 473  
474 -
475 475  === 6.1.2  AT+CFM command since DR-LWS007 software stack ===
476 476  
477 477  
478 478  (% style="color:blue" %)**AT Command: AT+CFM**
479 479  
480 -(% border="1" style="background-color:#ffffcc; color:green; width:710.222px" %)
481 -|=(% colspan="3" style="width: 707px;" %)AT+CFM
482 -|(% style="width:160px" %)**Command Example**|(% style="width:198px" %)**Function**|(% style="width:349px" %)**Response**
456 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:462px" %)
457 +|(% style="background-color:#4f81bd; color:white; width:160px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:198px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:100px" %)**Response**
483 483  |(% style="width:160px" %)(((
484 484  AT+CFM=1,0,0
485 485  
486 486  value1
487 -)))|(% style="width:198px" %)confirmed uplink|(% style="width:349px" %)(((
462 +)))|(% style="width:198px" %)confirmed uplink|(% style="width:100px" %)(((
488 488  1
489 489  
490 490  OK
... ... @@ -493,7 +493,7 @@
493 493  AT+CFM=0,?,0
494 494  
495 495  value2
496 -)))|(% style="width:198px" %)set max retry , range: 0 ~~ 7|(% style="width:349px" %)(((
471 +)))|(% style="width:198px" %)set max retry , range: 0 ~~ 7|(% style="width:100px" %)(((
497 497  0~~7
498 498  
499 499  OK
... ... @@ -502,7 +502,7 @@
502 502  AT+CFM=0,0,1
503 503  
504 504  value3
505 -)))|(% style="width:198px" %)uplink fcnt increase by 1 for each retry|(% style="width:349px" %)(((
480 +)))|(% style="width:198px" %)uplink fcnt increase by 1 for each retry|(% style="width:100px" %)(((
506 506  1
507 507  
508 508  OK
... ... @@ -515,10 +515,11 @@
515 515  If the downlink payload=05010101, it means set end node to use confirm mode, while type code is 05.
516 516  
517 517  * **Example 1:** Downlink Payload: 05010101  ~/~/ Set AT+CFM=1,1,1
493 +
518 518  * **Example 2:** Downlink Payload: 05000700  ~/~/ Set AT+CFM=0,7,0
519 519  
496 +(% style="display:none" %) (%%)
520 520  
521 -
522 522  == 6.2 Confirm Status ==
523 523  
524 524  
... ... @@ -527,13 +527,13 @@
527 527  
528 528  (% style="color:blue" %)**AT Command: AT+CFS**
529 529  
530 -(% border="1" style="background-color:#ffffcc; color:green; width:534.222px" %)
531 -|=(% colspan="3" style="width: 531px;" %)AT+CFS
532 -|(% style="width:156px" %)**Command Example**|(% style="width:193px" %)**Function**|(% style="width:178px" %)**Response**
533 -|(% style="width:156px" %)AT+CFS=?|(% style="width:193px" %)Get confirmation status|(% style="width:178px" %)0(((
506 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:463px" %)
507 +|(% style="background-color:#4f81bd; color:white; width:156px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:193px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:107px" %)**Response**
508 +|(% style="width:156px" %)AT+CFS=?|(% style="width:193px" %)Get confirmation status|(% style="width:107px" %)0(((
534 534  OK
535 535  )))
536 536  
512 +(% style="display:none" %) (%%)
537 537  
538 538  == 6.3 Join LoRa® Network ==
539 539  
... ... @@ -543,15 +543,14 @@
543 543  
544 544  (% style="color:blue" %)**AT Command: AT+JOIN**
545 545  
546 -(% border="1" style="background-color:#ffffcc; color:green; width:647.222px" %)
547 -|=(% colspan="3" style="width: 644px;" %)AT+JOIN
548 -|(% style="width:163px" %)**Command Example**|(% style="width:147px" %)**Function**|(% style="width:334px" %)**Response**
522 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:647.222px" %)
523 +|(% style="background-color:#4f81bd; color:white; width:163px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:147px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:334px" %)**Response**
549 549  |(% style="width:163px" %)AT+JOIN ?|(% style="width:147px" %)Get imformation.|(% style="width:334px" %)AT+JOIN: Join network(((
550 550  OK
551 -
552 552  While Error in format, return AT_BUSY_ERROR
553 553  )))
554 554  
529 +(% style="display:none" %) (%%)
555 555  
556 556  == 6.4 LoRa® Network Join Mode ==
557 557  
... ... @@ -561,9 +561,8 @@
561 561  
562 562  (% style="color:blue" %)**AT Command: AT+NJM**
563 563  
564 -(% border="1" style="background-color:#ffffcc; color:green; width:753.222px" %)
565 -|=(% colspan="3" style="width: 750px;" %)AT+NJM
566 -|(% style="width:162px" %)**Command Example**|(% style="width:227px" %)**Function**|(% style="width:361px" %)**Response**
539 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:753.222px" %)
540 +|(% style="background-color:#4f81bd; color:white; width:162px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:227px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:361px" %)**Response**
567 567  |(% style="width:162px" %)AT+NJM=?|(% style="width:227px" %)Get the Network Join Mode|(% style="width:361px" %)1(((
568 568  OK
569 569  )))
... ... @@ -577,10 +577,11 @@
577 577  If the downlink payload=2000, it means set the Network Join Mode, while type code is 20.
578 578  
579 579  * **Example 1: **Downlink Payload: **2000                  ** ~/~/ Set AT+NJM=0
554 +
580 580  * **Example 2:** Downlink Payload: **2001**  ~/~/ Set AT+NJM=1
581 581  
557 +(% style="display:none" %) (%%)
582 582  
583 -
584 584  == 6.5 LoRa® Network Join Status ==
585 585  
586 586  
... ... @@ -589,13 +589,13 @@
589 589  
590 590  (% style="color:blue" %)**AT Command: AT+NJS**
591 591  
592 -(% border="1" style="background-color:#ffffcc; color:green; width:498.222px" %)
593 -|=(% colspan="3" style="width: 495px;" %)AT+NJS
594 -|(% style="width:169px" %)**Command Example**|(% style="width:164px" %)**Function**|(% style="width:161px" %)**Response**
595 -|(% style="width:169px" %)AT+NJS=?|(% style="width:164px" %)Get the join status.|(% style="width:161px" %)0(((
567 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:435px" %)
568 +|(% style="background-color:#4f81bd; color:white; width:169px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:164px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:97px" %)**Response**
569 +|(% style="width:169px" %)AT+NJS=?|(% style="width:164px" %)Get the join status.|(% style="width:97px" %)0(((
596 596  OK
597 597  )))
598 598  
573 +(% style="display:none" %) (%%)
599 599  
600 600  == 6.6 Print Last Received Data in Raw Format ==
601 601  
... ... @@ -605,13 +605,13 @@
605 605  
606 606  (% style="color:blue" %)**AT Command: AT+RECV**
607 607  
608 -(% border="1" style="background-color:#ffffcc; color:green; width:587.222px" %)
609 -|=(% colspan="3" style="width: 584px;" %)AT+RECV
610 -|(% style="width:161px" %)**Command Example**|(% style="width:272px" %)**Function**|(% style="width:150px" %)**Response**
611 -|(% style="width:161px" %)AT+RECV=?|(% style="width:272px" %)print last received data in raw format.|(% style="width:150px" %)0:(((
583 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:543px" %)
584 +|(% style="background-color:#4f81bd; color:white; width:161px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:272px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:104px" %)**Response**
585 +|(% style="width:161px" %)AT+RECV=?|(% style="width:272px" %)print last received data in raw format.|(% style="width:104px" %)0:(((
612 612  OK
613 613  )))
614 614  
589 +(% style="display:none" %) (%%)
615 615  
616 616  == 6.7 Print Last Received Data in Binary Format ==
617 617  
... ... @@ -621,15 +621,15 @@
621 621  
622 622  (% style="color:blue" %)**AT Command: AT+RECVB**
623 623  
624 -(% border="1" style="background-color:#ffffcc; color:green; width:793.222px" %)
625 -|=(% colspan="3" style="width: 790px;" %)AT+RECVB
626 -|(% style="width:173px" %)**Command Example**|(% style="width:497px" %)**Function**|(% style="width:120px" %)**Response**
599 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:793.222px" %)
600 +|(% style="background-color:#4f81bd; color:white; width:173px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:497px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:120px" %)**Response**
627 627  |(% style="width:173px" %)AT+RECVB=?|(% style="width:497px" %)print last received data in binary format (with hexadecimal values).|(% style="width:120px" %)2: 0010(((
628 628  OK
629 629  )))
630 630  
605 +(% style="display:none" %) (%%)
631 631  
632 -== 6.8 Send Text Data ==
607 +== 6.8 Send Text Data(Note: The format of this command of LA66 is subject to the manual) ==
633 633  
634 634  
635 635  Feature: Send Text Data<port:data>.
... ... @@ -637,19 +637,16 @@
637 637  
638 638  (% style="color:blue" %)**AT Command: AT+SEND**
639 639  
640 -(% border="1" style="background-color:#ffffcc; color:green; width:991.222px" %)
641 -|=(% colspan="3" style="width: 988px;" %)AT+SEND
642 -|(% style="width:201px" %)**Command Example**|(% style="width:340px" %)**Function**|(% style="width:446px" %)**Response**
615 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:991.222px" %)
616 +|(% style="background-color:#4f81bd; color:white; width:201px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:340px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:446px" %)**Response**
643 643  |(% style="width:201px" %)AT+SEND=12:hello world|(% style="width:340px" %)Send text data along with the application port.|(% style="width:446px" %)OK(((
644 644  While Error in format, return
645 -
646 646  AT_BUSY_ERROR/AT_BUSY_ERROR/AT_NO_NETWORK_JOINED
647 -
648 -
649 649  )))
650 650  
622 +(% style="display:none" %) (%%)
651 651  
652 -== 6.9 Send Hexadecimal Data ==
624 +== 6.9 Send Hexadecimal Data(Note: The format of this command of LA66 is subject to the manual) ==
653 653  
654 654  
655 655  Feature: Send hexadecimal data along with the application port.
... ... @@ -657,20 +657,17 @@
657 657  
658 658  (% style="color:blue" %)**AT Command: AT+SENDB**
659 659  
660 -(% border="1" style="background-color:#ffffcc; color:green; width:1120.22px" %)
661 -|=(% colspan="3" style="width: 1117px;" %)AT+SENDB
662 -|(% style="width:257px" %)**Command Example**|(% style="width:406px" %)**Function**|(% style="width:453px" %)**Response**
663 -|(% style="width:257px" %)AT+SENDB=12:abcdef0123456789|(% style="width:406px" %)Send hexadecimal data along with the application port.|(% style="width:453px" %)OK
664 -|(% style="width:257px" %)AT+SENDB=abcdef0123456789|(% style="width:406px" %)Send hexadecimal data along with the application port.|(% style="width:453px" %)While Error in format, return(((
665 -AT_PARAM_ERROR AT_BUSY_ERROR/AT_NO_NETWORK_JOINED
666 -
667 -
632 +(% border="1" cellspacing="4" style="width:974px" %)
633 +|(% style="background-color:#4f81bd; color:white; width:257px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:394px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:318px" %)**Response**
634 +|(% style="width:257px" %)AT+SENDB=12:abcdef0123456789|(% style="width:394px" %)Send hexadecimal data along with the application port.|(% style="width:318px" %)OK
635 +|(% style="width:257px" %)AT+SENDB=abcdef0123456789|(% style="width:394px" %)Send hexadecimal data along with the application port.|(% style="width:318px" %)While Error in format, return(((
636 +AT_PARAM_ERROR AT_BUSY_ERROR/AT_NO_NETWORK_JOINED
668 668  )))
669 669  
639 +(% style="display:none" %) (%%)
670 670  
671 671  = 7. LoRaWAN network management =
672 672  
673 -
674 674  == 7.1 Adaptive Data Rate ==
675 675  
676 676  
... ... @@ -679,14 +679,13 @@
679 679  
680 680  (% style="color:blue" %)**AT Command: AT+ADR**
681 681  
682 -(% border="1" style="background-color:#ffffcc; color:green; width:683.222px" %)
683 -|=(% colspan="3" style="width: 680px;" %)AT+ADR
684 -|(% style="width:162px" %)**Command Example**|(% style="width:266px" %)**Function**|(% style="width:250px" %)**Response**
685 -|(% style="width:162px" %)AT+ADR=?|(% style="width:266px" %)Get the Adaptive Data Rate setting.|(% style="width:250px" %)1(((
651 +(% border="1" cellspacing="4" style="width:643px" %)
652 +|(% style="background-color:#4f81bd; color:white; width:162px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:266px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:209px" %)**Response**
653 +|(% style="width:162px" %)AT+ADR=?|(% style="width:266px" %)Get the Adaptive Data Rate setting.|(% style="width:209px" %)1(((
686 686  OK
687 687  )))
688 -|(% style="width:162px" %)AT+ADR=0|(% style="width:266px" %)Set the Adaptive Data Rate setting.|(% style="width:250px" %)OK
689 -|(% style="width:162px" %)AT+ADR=2|(% style="width:266px" %)Set the Adaptive Data Rate setting.|(% style="width:250px" %)While Error in format, return(((
656 +|(% style="width:162px" %)AT+ADR=0|(% style="width:266px" %)Set the Adaptive Data Rate setting.|(% style="width:209px" %)OK
657 +|(% style="width:162px" %)AT+ADR=2|(% style="width:266px" %)Set the Adaptive Data Rate setting.|(% style="width:209px" %)While Error in format, return(((
690 690  AT_PARAM_ERROR
691 691  )))
692 692  
... ... @@ -695,8 +695,10 @@
695 695  If the downlink payload=2201, it means setting the adaptive data rate to 1, while type code is 22.
696 696  
697 697  * **Example 1**: Downlink Payload: **2201**  ~/~/ Set AT+ADR=1.
666 +
698 698  * **Example 2**: Downlink Payload: **2200FFFF**  ~/~/ Set AT+ADR=0.
699 699  
669 +(% style="display:none" %) (%%)
700 700  
701 701  == 7.2 LoRa® Class ==
702 702  
... ... @@ -704,30 +704,34 @@
704 704  Feature: Get or Set the Device Class(Currently only support class A, class C).
705 705  
706 706  
707 -(% style="color:blue" %)**AT Command:AT+CLASS**
677 +(% style="color:blue" %)**AT Command:  AT+CLASS**
708 708  
709 -(% border="1" style="background-color:#ffffcc; color:green; width:507.222px" %)
710 -|=(% colspan="3" style="width: 504px;" %)AT+CLASS
711 -|(% style="width:163px" %)**Command Example**|(% style="width:166px" %)**Function**|(% style="width:175px" %)**Response**
712 -|(% style="width:163px" %)AT+CLASS=?|(% style="width:166px" %)Get the Device Class.|(% style="width:175px" %)A(((
679 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:428px" %)
680 +|(% style="background-color:#4f81bd; color:white; width:163px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:166px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:94px" %)**Response**
681 +|(% style="width:163px" %)AT+CLASS=?|(% style="width:166px" %)Get the Device Class.|(% style="width:94px" %)A(((
713 713  OK
714 714  )))
715 -|(% style="width:163px" %)AT+CLASS=C|(% style="width:166px" %)Set the Device Class.|(% style="width:175px" %)OK(((
684 +|(% style="width:163px" %)AT+CLASS=C|(% style="width:166px" %)Set the Device Class.|(% style="width:94px" %)OK(((
716 716  
717 717  )))
718 718  
688 +(% style="display:none" %)
719 719  
690 +(% style="color:red" %)**Notice:**
691 +
692 +* Run AT+FDR before running AT+CLASS=C
693 +* After change to Class=C, Before OTAA Join Successfule, the end node will still shows to use CLASS=A for OTAA Joined. It will use CLASS=C after OTAA Join Succeccful.
694 +
720 720  == 7.3 Duty Cycle Setting ==
721 721  
722 722  
723 -Feature: Get or Set the ETSI Duty Cycle setting - 0=disable, 1=enable - Only for testing.
698 +Feature: Get or Set the ETSI Duty Cycle setting** : 0**=disable, **1**=enable - Only for testing.
724 724  
725 725  
726 -(% style="color:blue" %)**AT Command:AT+DCS**
701 +(% style="color:blue" %)**AT Command:  AT+DCS**
727 727  
728 -(% border="1" style="background-color:#ffffcc; color:green; width:515.222px" %)
729 -|=(% colspan="3" style="width: 512px;" %)AT+DCS
730 -|(% style="width:165px" %)**Command Example**|(% style="width:239px" %)**Function**|(% style="width:107px" %)**Response**
703 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:515.222px" %)
704 +|(% style="background-color:#4f81bd; color:white; width:165px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:239px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:107px" %)**Response**
731 731  |(% style="width:165px" %)AT+DCS=?|(% style="width:239px" %)Get the ETSI Duty Cycle setting.|(% style="width:107px" %)1(((
732 732  OK
733 733  )))
... ... @@ -735,22 +735,28 @@
735 735  
736 736  )))
737 737  
712 +(% style="display:none" %) (%%)
738 738  
739 739  == 7.4 Data Rate ==
740 740  
741 741  
742 -Feature: Get or Set the Data Rate. (0-7 corresponding to DR_X) . Note: while set Data Rate, please use set Adptive Data Rate, ADR=0 first. otherwise device will response to server's ADR command and change the DR to the setting from server
717 +Feature: Get or Set the Data Rate. (0-7 corresponding to DR_X) .
743 743  
719 +(% style="color:red" %)
720 +**Notice:**
744 744  
722 +* User need to set Adaptive Data Rate(ADR)=0 first. otherwise device will respond to server's ADR command and change the DR according to server auto-adjustment.
723 +
724 +* Data Rate specifies Spreading Factor. The mapping varies in different frequency bands. User can check this link for detail. [[rp2-1.0.3-lorawan-regional-parameters.pdf>>https://lora-alliance.org/resource_hub/rp2-1-0-3-lorawan-regional-parameters/]]
725 +
745 745  (% style="color:blue" %)**AT Command: AT+DR**
746 746  
747 -(% border="1" style="background-color:#ffffcc; color:green; width:466.222px" %)
748 -|=(% colspan="3" style="width: 463px;" %)AT+DR
749 -|(% style="width:156px" %)**Command Example**|(% style="width:167px" %)**Function**|(% style="width:140px" %)**Response**
750 -|(% style="width:156px" %)AT+DR=?|(% style="width:167px" %)Get the Data Rate.|(% style="width:140px" %)5(((
728 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:409px" %)
729 +|(% style="background-color:#4f81bd; color:white; width:156px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:147px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:100px" %)**Response**
730 +|(% style="width:156px" %)AT+DR=?|(% style="width:147px" %)Get the Data Rate.|(% style="width:100px" %)5(((
751 751  OK
752 752  )))
753 -|(% style="width:156px" %)AT+DR=2|(% style="width:167px" %)Set the Data Rate.|(% style="width:140px" %)OK(((
733 +|(% style="width:156px" %)AT+DR=2|(% style="width:147px" %)Set the Data Rate.|(% style="width:100px" %)OK(((
754 754  
755 755  )))
756 756  
... ... @@ -759,8 +759,10 @@
759 759  If the downlink payload=220001FF, it means setting the data rate to 1, while type code is 22 00 aa FF.
760 760  
761 761  * **Example 1**: Downlink Payload: **220001FF**  ~/~/ Set AT+DR=1.
742 +
762 762  * **Example 2**: Downlink Payload: **220000FF**  ~/~/ Set AT+DR=0.
763 763  
745 +(% style="display:none" %) (%%)
764 764  
765 765  == 7.5 Frame Counter Downlink ==
766 766  
... ... @@ -768,11 +768,10 @@
768 768  Feature: Get or Set the Frame Counter Downlink.
769 769  
770 770  
771 -(% style="color:blue" %)**AT Command:AT+FCD**
753 +(% style="color:blue" %)**AT Command:  AT+FCD**
772 772  
773 -(% border="1" style="background-color:#ffffcc; color:green; width:693.222px" %)
774 -|=(% colspan="3" style="width: 690px;" %)AT+FCD
775 -|(% style="width:162px" %)**Command Example**|(% style="width:258px" %)**Function**|(% style="width:269px" %)**Response**
755 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:693.222px" %)
756 +|(% style="background-color:#4f81bd; color:white; width:162px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:258px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:269px" %)**Response**
776 776  |(% style="width:162px" %)AT+FCD=?|(% style="width:258px" %)Get the Frame Counter Downlink.|(% style="width:269px" %)0(((
777 777  OK
778 778  )))
... ... @@ -780,6 +780,7 @@
780 780  OK
781 781  )))
782 782  
764 +(% style="display:none" %) (%%)
783 783  
784 784  == 7.6 Frame Counter Uplink ==
785 785  
... ... @@ -786,11 +786,10 @@
786 786  Feature: Get or Set the Frame Counter Uplink.
787 787  
788 788  
789 -(% style="color:blue" %)**AT Command:AT+FCU**
771 +(% style="color:blue" %)**AT Command:  AT+FCU**
790 790  
791 -(% border="1" style="background-color:#ffffcc; color:green; width:534.222px" %)
792 -|=(% colspan="3" style="width: 531px;" %)AT+FCU
793 -|(% style="width:177px" %)**Command Example**|(% style="width:239px" %)**Function**|(% style="width:113px" %)**Response**
773 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:534.222px" %)
774 +|(% style="background-color:#4f81bd; color:white; width:177px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:239px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:113px" %)**Response**
794 794  |(% style="width:177px" %)AT+FCU=?|(% style="width:239px" %)Get the Frame Counter Uplink.|(% style="width:113px" %)0(((
795 795  OK
796 796  )))
... ... @@ -798,6 +798,7 @@
798 798  
799 799  )))
800 800  
782 +(% style="display:none" %) (%%)
801 801  
802 802  == 7.7 Join Accept Delay1 ==
803 803  
... ... @@ -805,11 +805,10 @@
805 805  Feature: Get or Set the Join Accept Delay between the end of the Tx and the Join Rx Window 1 in ms.
806 806  
807 807  
808 -(% style="color:blue" %)**AT Command:AT+JN1DL**
790 +(% style="color:blue" %)**AT Command:  AT+JN1DL**
809 809  
810 -(% border="1" style="background-color:#ffffcc; color:green; width:537.222px" %)
811 -|=(% colspan="3" style="width: 534px;" %)AT+JN1DL
812 -|(% style="width:164px" %)**Command Example**|(% style="width:229px" %)**Function**|(% style="width:140px" %)**Response**
792 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:537.222px" %)
793 +|(% style="background-color:#4f81bd; color:white; width:164px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:229px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:140px" %)**Response**
813 813  |(% style="width:164px" %)AT+JN1DL=?|(% style="width:229px" %)Get the Join Accept Delay.|(% style="width:140px" %)5000(((
814 814  OK
815 815  )))
... ... @@ -817,17 +817,18 @@
817 817  
818 818  )))
819 819  
801 +(% style="display:none" %) (%%)
820 820  
821 821  == 7.8 Join Accept Delay2 ==
822 822  
805 +
823 823  Feature: Get or Set the Join Accept Delay between the end of the Tx and the Join Rx Window 2 in ms.
824 824  
825 825  
826 -(% style="color:blue" %)**AT Command:AT+JN2DL**
809 +(% style="color:blue" %)**AT Command:  AT+JN2DL**
827 827  
828 -(% border="1" style="background-color:#ffffcc; color:green; width:538.222px" %)
829 -|=(% colspan="3" style="width: 535px;" %)AT+JN2DL
830 -|(% style="width:160px" %)**Command Example**|(% style="width:228px" %)**Function**|(% style="width:146px" %)**Response**
811 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:538.222px" %)
812 +|(% style="background-color:#4f81bd; color:white; width:160px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:228px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:146px" %)**Response**
831 831  |(% style="width:160px" %)AT+JN2DL=?|(% style="width:228px" %)Get the Join Accept Delay.|(% style="width:146px" %)6000(((
832 832  OK
833 833  )))
... ... @@ -835,6 +835,7 @@
835 835  
836 836  )))
837 837  
820 +(% style="display:none" %) (%%)
838 838  
839 839  == 7.9 Public Network Mode ==
840 840  
... ... @@ -844,11 +844,10 @@
844 844  (% style="color:red" %)**Notice: If user build their own LoRaWAN server but still use syncword=0x34, this is still considered a public LoRaWAN network.**
845 845  
846 846  
847 -(% style="color:blue" %)**AT Command:AT+PNM**
830 +(% style="color:blue" %)**AT Command:  AT+PNM**
848 848  
849 -(% border="1" style="background-color:#ffffcc; color:green; width:667.222px" %)
850 -|=(% colspan="3" style="width: 664px;" %)AT+PNM
851 -|(% style="width:166px" %)**Command Example**|(% style="width:225px" %)**Function**|(% style="width:272px" %)**Response**
832 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:667.222px" %)
833 +|(% style="background-color:#4f81bd; color:white; width:166px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:225px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:272px" %)**Response**
852 852  |(% style="width:166px" %)AT+PNM=?|(% style="width:225px" %)Get the public network mode.|(% style="width:272px" %)1(((
853 853  OK
854 854  )))
... ... @@ -863,6 +863,7 @@
863 863  )))
864 864  |(% style="width:166px" %)AT+PNM=0|(% style="width:225px" %)Set to use private network autoset syncword=0x12|(% style="width:272px" %)
865 865  
848 +(% style="display:none" %) (%%)
866 866  
867 867  == 7.10 Receive Delay1 ==
868 868  
... ... @@ -870,11 +870,10 @@
870 870  Feature: Get or Set the delay between the end of the Tx and the Rx Window 1 in ms
871 871  
872 872  
873 -(% style="color:blue" %)**AT Command:AT+RX1DL**
856 +(% style="color:blue" %)**AT Command: AT+RX1DL**
874 874  
875 -(% border="1" style="background-color:#ffffcc; color:green; width:408.222px" %)
876 -|=(% colspan="3" style="width: 405px;" %)AT+RX1DL
877 -|(% style="width:155px" %)**Command Example**|(% style="width:128px" %)**Function**|(% style="width:122px" %)**Response**
858 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:408.222px" %)
859 +|(% style="background-color:#4f81bd; color:white; width:155px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:128px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:122px" %)**Response**
878 878  |(% style="width:155px" %)AT+RX1DL=?|(% style="width:128px" %)Get the delay.|(% style="width:122px" %)1000(((
879 879  OK
880 880  )))
... ... @@ -882,6 +882,7 @@
882 882  
883 883  )))
884 884  
867 +(% style="display:none" %) (%%)
885 885  
886 886  == 7.11 Receive Delay2 ==
887 887  
... ... @@ -889,11 +889,10 @@
889 889  Feature: Get or Set the delay between the end of the Tx and the Rx Window 2 in ms
890 890  
891 891  
892 -(% style="color:blue" %)**AT Command:AT+RX2DL**
875 +(% style="color:blue" %)**AT Command: AT+RX2DL**
893 893  
894 -(% border="1" style="background-color:#ffffcc; color:green; width:481.222px" %)
895 -|=(% colspan="3" style="width: 478px;" %)AT+RX2DL
896 -|(% style="width:175px" %)**Command Example**|(% style="width:152px" %)**Function**|(% style="width:150px" %)**Response**
877 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:481.222px" %)
878 +|(% style="background-color:#4f81bd; color:white; width:175px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:152px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:150px" %)**Response**
897 897  |(% style="width:175px" %)AT+RX2DL=?|(% style="width:152px" %)Get the delay.|(% style="width:150px" %)2000(((
898 898  OK
899 899  )))
... ... @@ -901,6 +901,7 @@
901 901  
902 902  )))
903 903  
886 +(% style="display:none" %) (%%)
904 904  
905 905  == 7.12 Rx2 Window Data Rate ==
906 906  
... ... @@ -908,11 +908,10 @@
908 908  Feature: Get or Set the Rx2 window data rate (0-7 corresponding to DR_X)
909 909  
910 910  
911 -(% style="color:blue" %)**AT Command:AT+RX2DR**
894 +(% style="color:blue" %)**AT Command:  AT+RX2DR**
912 912  
913 -(% border="1" style="background-color:#ffffcc; color:green; width:525.222px" %)
914 -|=(% colspan="3" style="width: 522px;" %)AT+RX2DR
915 -|(% style="width:160px" %)**Command Example**|(% style="width:232px" %)**Function**|(% style="width:130px" %)**Response**
896 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:525.222px" %)
897 +|(% style="background-color:#4f81bd; color:white; width:160px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:232px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:130px" %)**Response**
916 916  |(% style="width:160px" %)AT+RX2DR=?|(% style="width:232px" %)Get the Rx2 window data rate.|(% style="width:130px" %)2(((
917 917  OK
918 918  )))
... ... @@ -920,6 +920,7 @@
920 920  
921 921  )))
922 922  
905 +(% style="display:none" %) (%%)
923 923  
924 924  == 7.13 Rx2 Window Frequency ==
925 925  
... ... @@ -927,11 +927,10 @@
927 927  Feature: Get or Set the Rx2 window frequency
928 928  
929 929  
930 -(% style="color:blue" %)**AT Command:AT+RX2FQ**
913 +(% style="color:blue" %)**AT Command:  AT+RX2FQ**
931 931  
932 -(% border="1" style="background-color:#ffffcc; color:green; width:587.222px" %)
933 -|=(% colspan="3" style="width: 584px;" %)AT+RX2FQ
934 -|(% style="width:183px" %)**Command Example**|(% style="width:240px" %)**Function**|(% style="width:160px" %)**Response**
915 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:587.222px" %)
916 +|(% style="background-color:#4f81bd; color:white; width:183px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:240px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:160px" %)**Response**
935 935  |(% style="width:183px" %)AT+RX2FQ=?|(% style="width:240px" %)Get the Rx2 window frequency.|(% style="width:160px" %)434665000(((
936 936  OK
937 937  )))
... ... @@ -939,6 +939,7 @@
939 939  
940 940  )))
941 941  
924 +(% style="display:none" %) (%%)
942 942  
943 943  == 7.14 Transmit Power ==
944 944  
... ... @@ -945,14 +945,13 @@
945 945  
946 946  Feature: Get or Set the Transmit Power(0-5, MAX:0, MIN:5, according to LoRaWAN Spec, or 40=10dB, 41 = 11dB, …, 50 = 20dB which is out of LoRaWAN spec. )
947 947  
948 -Notice: Transmit Power might be changed by ADR from LoRaWAN server. So manually change TXP also remember to set AT+ADR=0 in sensor
931 +(% style="color:red" %)**Notice: Transmit Power might be changed by ADR from LoRaWAN server. So manually change TXP also remember to set AT+ADR=0 in sensor**
949 949  
950 950  
951 -(% style="color:blue" %)**AT Command:AT+TXP**
934 +(% style="color:blue" %)**AT Command:  AT+TXP**
952 952  
953 -(% border="1" style="background-color:#ffffcc; color:green; width:465.222px" %)
954 -|=(% colspan="3" style="width: 462px;" %)AT+TXP
955 -|(% style="width:161px" %)**Command Example**|(% style="width:189px" %)**Function**|(% style="width:112px" %)**Response**
936 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:465.222px" %)
937 +|(% style="background-color:#4f81bd; color:white; width:161px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:189px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:112px" %)**Response**
956 956  |(% style="width:161px" %)AT+TXP=?|(% style="width:189px" %)Get the Transmit Power.|(% style="width:112px" %)0(((
957 957  OK
958 958  )))
... ... @@ -965,9 +965,10 @@
965 965  If the downlink payload=22000100, it means setting the TXP to 0.
966 966  
967 967  * **Example 1**: Downlink Payload: **22000102**  ~/~/ Set AT+TXP=2.
968 -* **Example 2**: Downlink Payload: **220000FF**  ~/~/ Set AT+TXP=0.
969 969  
951 +* **Example 2**: Downlink Payload: **22000000**  ~/~/ Set AT+TXP=0.
970 970  
953 +(% style="display:none" %) (%%)
971 971  
972 972  == 7.15 RSSI of the Last Received Packet ==
973 973  
... ... @@ -977,13 +977,13 @@
977 977  
978 978  (% style="color:blue" %)**AT Command:AT+RSSI**
979 979  
980 -(% border="1" style="background-color:#ffffcc; color:green; width:557.222px" %)
981 -|=(% colspan="3" style="width: 554px;" %)AT+RSSI
982 -|(% style="width:164px" %)**Command Example**|(% style="width:289px" %)**Function**|(% style="width:100px" %)**Response**
963 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:557.222px" %)
964 +|(% style="background-color:#4f81bd; color:white; width:164px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:289px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:100px" %)**Response**
983 983  |(% style="width:164px" %)AT+RSSI=?|(% style="width:289px" %)Get the RSSI of the last received packet.|(% style="width:100px" %)0(((
984 984  OK
985 985  )))
986 986  
969 +(% style="display:none" %) (%%)
987 987  
988 988  == 7.16 SNR of the Last Received Packet ==
989 989  
... ... @@ -991,15 +991,15 @@
991 991  Feature: Get the SNR of the last received packet
992 992  
993 993  
994 -(% style="color:blue" %)**AT Command:AT+SNR**
977 +(% style="color:blue" %)**AT Command:  AT+SNR**
995 995  
996 -(% border="1" style="background-color:#ffffcc; color:green; width:571.222px" %)
997 -|=(% colspan="3" style="width: 568px;" %)AT+SNR
998 -|(% style="width:164px" %)**Command Example**|(% style="width:290px" %)**Function**|(% style="width:113px" %)**Response**
979 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:571.222px" %)
980 +|(% style="background-color:#4f81bd; color:white; width:164px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:290px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:113px" %)**Response**
999 999  |(% style="width:164px" %)AT+SNR=?|(% style="width:290px" %)Get the RSSI of the last received packet.|(% style="width:113px" %)0(((
1000 1000  OK
1001 1001  )))
1002 1002  
985 +(% style="display:none" %) (%%)
1003 1003  
1004 1004  == 7.17 Application Port ==
1005 1005  
... ... @@ -1009,13 +1009,12 @@
1009 1009  
1010 1010  (% style="color:blue" %)**AT Command: AT+PORT**
1011 1011  
1012 -(% border="1" style="background-color:#ffffcc; color:green; width:500.222px" %)
1013 -|=(% colspan="3" style="width: 497px;" %)AT+PORT
1014 -|(% style="width:157px" %)**Command Example**|(% style="width:204px" %)**Function**|(% style="width:135px" %)**Response**
1015 -|(% style="width:157px" %)AT+PORT=?|(% style="width:204px" %)Get the application port|(% style="width:135px" %)21(((
995 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:459px" %)
996 +|(% style="background-color:#4f81bd; color:white; width:157px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:193px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:104px" %)**Response**
997 +|(% style="width:157px" %)AT+PORT=?|(% style="width:193px" %)Get the application port|(% style="width:104px" %)21(((
1016 1016  OK
1017 1017  )))
1018 -|(% style="width:157px" %)AT+PORT=21|(% style="width:204px" %)Set the application port|(% style="width:135px" %)OK
1000 +|(% style="width:157px" %)AT+PORT=21|(% style="width:193px" %)Set the application port|(% style="width:104px" %)OK
1019 1019  
1020 1020  (% style="color:blue" %)**Downlink Command: 0x23**
1021 1021  
... ... @@ -1024,10 +1024,11 @@
1024 1024  If the downlink payload=2301, it means set the application port to 1, while type code is 23.
1025 1025  
1026 1026  * **Example 1**: Downlink Payload: **2301**  ~/~/ set the application port to 1
1009 +
1027 1027  * **Example 2**: Downlink Payload:** 2305**  ~/~/ set the application port to 5
1028 1028  
1012 +(% style="display:none" %) (%%)
1029 1029  
1030 -
1031 1031  == 7.18 Single Channel Mode ==
1032 1032  
1033 1033  
... ... @@ -1036,14 +1036,14 @@
1036 1036  
1037 1037  (% style="color:blue" %)**AT Command: AT+CHS**
1038 1038  
1039 -(% border="1" style="background-color:#ffffcc; color:green; width:603.222px" %)
1040 -|=(% colspan="3" style="width: 600px;" %)AT+CHS
1041 -|(% style="width:182px" %)**Command Example**|(% style="width:295px" %)**Function**|(% style="width:122px" %)**Response**
1042 -|(% style="width:182px" %)AT+CHS=?|(% style="width:295px" %)Get Frequency for Single Channel Mode|(% style="width:122px" %)0(((
1022 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:584px" %)
1023 +|(% style="background-color:#4f81bd; color:white; width:182px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:295px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:101px" %)**Response**
1024 +|(% style="width:182px" %)AT+CHS=?|(% style="width:295px" %)Get Frequency for Single Channel Mode|(% style="width:101px" %)0(((
1043 1043  OK
1044 1044  )))
1045 -|(% style="width:182px" %)AT+CHS=868100000|(% style="width:295px" %)Set Frequency for Single Channel Mode|(% style="width:122px" %)OK
1027 +|(% style="width:182px" %)AT+CHS=868100000|(% style="width:295px" %)Set Frequency for Single Channel Mode|(% style="width:101px" %)OK
1046 1046  
1029 +(% style="display:none" %) (%%)
1047 1047  
1048 1048  == 7.19 Eight Channel Mode ==
1049 1049  
... ... @@ -1053,9 +1053,8 @@
1053 1053  
1054 1054  (% style="color:blue" %)**AT Command: AT+CHE**
1055 1055  
1056 -(% border="1" style="background-color:#ffffcc; color:green; width:710.222px" %)
1057 -|=(% colspan="3" style="width: 707px;" %)AT+CHE
1058 -|(% style="width:160px" %)**Command Example**|(% style="width:198px" %)**Function**|(% style="width:349px" %)**Response**
1039 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:710.222px" %)
1040 +|(% style="background-color:#4f81bd; color:white; width:160px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:198px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:349px" %)**Response**
1059 1059  |(% style="width:160px" %)AT+CHE=?|(% style="width:198px" %)Get eight channels mode|(% style="width:349px" %)1(((
1060 1060  902.3 902.5 902.7 902.9 903.1 903.3 903.5 903.7
1061 1061  
... ... @@ -1063,7 +1063,7 @@
1063 1063  )))
1064 1064  |(% style="width:160px" %)AT+CHE=1|(% style="width:198px" %)Set eight channels mode|(% style="width:349px" %)OK
1065 1065  
1066 -(% style="color:blue" %)**Downlink Command: 0x24**
1048 +(% style="color:blue" %)**Downlink Command: 0x24 (LHT65,LHT65N Downlink Command:0x07)**
1067 1067  
1068 1068  Format: Command Code (0x24) followed by 1 bytes channel value.
1069 1069  
... ... @@ -1070,10 +1070,11 @@
1070 1070  If the downlink payload=2401, it means set channel mode to 1, while type code is 24.
1071 1071  
1072 1072  * **Example 1**: Downlink Payload: 2401  ~/~/ set channel mode to 1
1055 +
1073 1073  * **Example 2**: Downlink Payload: 2405  ~/~/ set channel mode to 5
1074 1074  
1058 +(% style="display:none" %) (%%)
1075 1075  
1076 -
1077 1077  == 7.20 Get or Set RXwindows1 timeout ==
1078 1078  
1079 1079  
... ... @@ -1082,31 +1082,26 @@
1082 1082  
1083 1083  (% style="color:blue" %)**AT Command: AT+RX1WTO**
1084 1084  
1085 -(% border="1" style="background-color:#ffffcc; color:green; width:460.222px" %)
1086 -|=(% colspan="3" style="width: 457px;" %)AT+ RX1WTO
1087 -|(% style="width:163px" %)**Command Example**|(% style="width:201px" %)**Function**|(% style="width:93px" %)**Response**
1068 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:460.222px" %)
1069 +|(% style="background-color:#4f81bd; color:white; width:163px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:201px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:93px" %)**Response**
1088 1088  |(% style="width:163px" %)AT+RX1WTO=?|(% style="width:201px" %)Get RXwindows1 timeout|(% style="width:93px" %)14(((
1089 1089  OK
1090 1090  )))
1091 1091  |(% style="width:163px" %)AT+RX1WTO=60|(% style="width:201px" %)Set RXwindows1 timeout|(% style="width:93px" %)OK
1092 1092  
1093 -(((
1094 -
1075 +(% style="display:none" %) (%%)
1095 1095  
1096 -**AT+RX1TWO** is theRxSingle timeout value of receive window 1. If it is not set, then the queriedvalue is the default value. If it is set, then the queried value is the setvalue. AT+RX2TWO is thesame as above. The definitionof RxSingle timeout is as described in the following paragraph.
1097 -
1098 -
1077 +(((
1078 +(% style="color:blue" %)**AT+RX1WTO**(%%) is theRxSingle timeout value of receive window 1. If it is not set, then the queriedvalue is the default value. If it is set, then the queried value is the setvalue. AT+RX2TWO is thesame as above. The definitionof RxSingle timeout is as described in the following paragraph.
1099 1099  )))
1100 1100  
1101 1101  [[image:image-20220526162535-1.png]]
1102 1102  
1103 -
1104 1104  (((
1105 1105  Increasing thisvalue is equal to extending the time that the receiving window is opened, butthe corresponding power consumption will also increase. Properly increasingthis value can increase the success rate of the downlink.
1106 -
1107 -
1108 1108  )))
1109 1109  
1087 +
1110 1110  == 7.21 Get or Set RXwindows2 timeout ==
1111 1111  
1112 1112  
... ... @@ -1115,14 +1115,14 @@
1115 1115  
1116 1116  (% style="color:blue" %)**AT Command: AT+RX2WTO**
1117 1117  
1118 -(% border="1" style="background-color:#ffffcc; color:green; width:497.222px" %)
1119 -|=(% colspan="3" style="width: 494px;" %)AT+ RX2WTO
1120 -|(% style="width:190px" %)**Command Example**|(% style="width:199px" %)**Function**|(% style="width:104px" %)**Response**
1121 -|(% style="width:190px" %)AT+RX2WTO=?|(% style="width:199px" %)Get RXwindows2 timeout|(% style="width:104px" %)7(((
1096 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:448px" %)
1097 +|(% style="background-color:#4f81bd; color:white; width:162px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:192px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:90px" %)**Response**
1098 +|(% style="width:162px" %)AT+RX2WTO=?|(% style="width:192px" %)Get RXwindows2 timeout|(% style="width:90px" %)7(((
1122 1122  OK
1123 1123  )))
1124 -|(% style="width:190px" %)AT+RX2WTO=20|(% style="width:199px" %)Set RXwindows2 timeout|(% style="width:104px" %)OK
1101 +|(% style="width:162px" %)AT+RX2WTO=20|(% style="width:192px" %)Set RXwindows2 timeout|(% style="width:90px" %)OK
1125 1125  
1103 +(% style="display:none" %) (%%)
1126 1126  
1127 1127  == 7.22 Setting up uplinkdwelltime (as923, au915) ==
1128 1128  
... ... @@ -1132,13 +1132,12 @@
1132 1132  
1133 1133  (% style="color:blue" %)**AT Command: AT+DWELLT**
1134 1134  
1135 -(% border="1" style="background-color:#ffffcc; color:green; width:497.222px" %)
1136 -|=(% colspan="3" style="width: 494px;" %)AT+DWELLT
1137 -|(% style="width:183px" %)**Command Example**|(% style="width:179px" %)**Function**|(% style="width:131px" %)**Response**
1138 -|(% style="width:183px" %)AT+DWELLT=?|(% style="width:179px" %)Get uplinkdwelltime|(% style="width:131px" %)1(((
1113 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:419px" %)
1114 +|(% style="background-color:#4f81bd; color:white; width:162px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:157px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:95px" %)**Response**
1115 +|(% style="width:162px" %)AT+DWELLT=?|(% style="width:157px" %)Get uplinkdwelltime|(% style="width:95px" %)1(((
1139 1139  OK
1140 1140  )))
1141 -|(% style="width:183px" %)AT+DWELLT=0|(% style="width:179px" %)Set uplinkdwelltime|(% style="width:131px" %)OK
1118 +|(% style="width:162px" %)AT+DWELLT=0|(% style="width:157px" %)Set uplinkdwelltime|(% style="width:95px" %)OK
1142 1142  
1143 1143  (% style="color:blue" %)**Downlink Command: 0x25**
1144 1144  
... ... @@ -1147,10 +1147,11 @@
1147 1147  If the downlink payload=2501, it means set uplinkdwelltime to 1, while type code is 25.
1148 1148  
1149 1149  * **Example 1**: Downlink Payload: **2501**  ~/~/ set uplinkdwelltime to 1
1127 +
1150 1150  * **Example 2**: Downlink Payload: **2500**  ~/~/ set uplinkdwelltime to 0
1151 1151  
1130 +(% style="display:none" %) (%%)
1152 1152  
1153 -
1154 1154  == 7.23 Set Packet Receiving Response Level ==
1155 1155  
1156 1156  
... ... @@ -1157,25 +1157,30 @@
1157 1157  Feature: Get or Set packet receiving response level. This feature is used to set compatible with different LoRaWAN servers. If RPL doesn;t match , user will see strange message in the server portal.
1158 1158  
1159 1159  
1160 -**RPL value:**
1138 +(% style="color:blue" %)**RPL value:**
1161 1161  
1162 1162  * **AT+RPL=0:** Device won't immediately reply any downlink commands from platform.
1141 +
1163 1163  * **AT+RPL=1:** Device will immediately reply message to Unconfirmed Data Down. Payload is 0x00.
1143 +
1164 1164  * **AT+RPL=2:** Device will immediately reply message to Confirmed Data Down. Payload is 0x00 and requied response header for this command.
1145 +
1165 1165  * **AT+RPL=3:** Device will immediately reply message to MAC Command. Payload is 0x00 and requied response header for this command.
1147 +
1166 1166  * **AT+RPL=4: **Device will immediately reply message to Confirmed Data Down & MAC Command. Payload is 0x00 and requied response header for these two commands.
1167 1167  
1168 -**Case Analyes:**
1150 +(% style="color:blue" %)**Case Analyes:**
1169 1169  
1170 1170  * For Class A devices, AT+RPL=0 is ok. that is defaut settings in software.
1153 +
1171 1171  * For Class C devices used in ChirpStack, need to set AT+RPL=4 because Chirpstack require immedietely reply message to MAC Command.
1155 +
1172 1172  * For Class C devices used in TTI, need to set AT+RPL=4 because TTI require immediately reply message to Confirmed Data Down & MAC Command.
1173 1173  
1174 1174  (% style="color:blue" %)**AT Command: AT+RPL**
1175 1175  
1176 -(% border="1" style="background-color:#ffffcc; color:green; width:536.222px" %)
1177 -|=(% colspan="3" style="width: 533px;" %)AT+RPL
1178 -|(% style="width:160px" %)**Command Example**|(% style="width:263px" %)**Function**|(% style="width:109px" %)**Response**
1160 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:536.222px" %)
1161 +|(% style="background-color:#4f81bd; color:white; width:160px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:263px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:109px" %)**Response**
1179 1179  |(% style="width:160px" %)AT+RPL=?|(% style="width:263px" %)Get packet receiving response level|(% style="width:109px" %)1(((
1180 1180  OK
1181 1181  )))
... ... @@ -1188,22 +1188,22 @@
1188 1188  If the downlink payload=2101, it means set packet receiving response level to 1, while type code is 21.
1189 1189  
1190 1190  * **Example 1**: Downlink Payload: **2101**  ~/~/ set packet receiving response level to 1
1174 +
1191 1191  * **Example 2**: Downlink Payload: **2102**  ~/~/ set packet receiving response level to 2
1192 1192  
1177 +(% style="display:none" %) (%%)
1193 1193  
1194 -
1195 1195  == 7.24 Controls NBTrans in unconfirmed uplink mode(LWS007 NBTrans:Set retransmission packets) ==
1196 1196  
1197 1197  
1198 1198  (% style="color:blue" %)**AT Command: AT+SETMAXNBTRANS **
1199 1199  
1200 -(% border="1" style="background-color:#ffffcc; color:green; width:589px" %)
1201 -|=(% colspan="3" style="width: 586px;" %)AT+**SETMAXNBTRANS**
1202 -|(% style="width:227px" %)**Command Example**|(% style="width:300px" %)**Function**|(% style="width:87px" %)**Response**
1203 -|(% style="width:227px" %)**AT+SETMAXNBTRANS=1,0**|(% style="width:300px" %)Value1: set the maximum NBTrans.|(% style="width:87px" %)1(((
1184 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:589px" %)
1185 +|(% style="background-color:#4f81bd; color:white; width:227px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:300px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:87px" %)**Response**
1186 +|(% style="width:227px" %)AT+SETMAXNBTRANS=1,0|(% style="width:300px" %)Value1: set the maximum NBTrans.|(% style="width:87px" %)1(((
1204 1204  OK
1205 1205  )))
1206 -|(% style="width:227px" %)**AT+SETMAXNBTRANS=?,1**|(% style="width:300px" %)(((
1189 +|(% style="width:227px" %)AT+SETMAXNBTRANS=?,1|(% style="width:300px" %)(((
1207 1207  value2: 0: uplink fcnt doesn't change for each NBTrans;
1208 1208  
1209 1209  1: uplink fcnt increase by 1 for each NBTrans.
... ... @@ -1220,23 +1220,29 @@
1220 1220  If the downlink payload=330100, it means set end node to use confirm mode, while type code is 33.
1221 1221  
1222 1222  * Example 1: Downlink Payload: 330100  ~/~/ Set AT+SETMAXNBTRANS=1,0
1206 +
1223 1223  * Example 2: Downlink Payload: 330201  ~/~/ Set AT+SETMAXNBTRANS=2,1
1224 1224  
1209 +(% style="display:none" %) (%%)
1225 1225  
1226 -
1227 1227  == 7.25 Device offline rejoining (LWS007) ==
1228 1228  
1229 1229  
1230 1230  (% style="color:blue" %)**AT Command: AT+DDETECT**
1231 1231  
1232 -(% border="1" style="background-color:#ffffcc; color:green; width:710.222px" %)
1233 -|=(% colspan="3" style="width: 707px;" %)AT+**DDETECT**
1234 -|(% style="width:160px" %)**Command Example**|(% style="width:198px" %)**Function**|(% style="width:349px" %)**Response**
1216 +AT+DDETECT=<Flag>,<ACK_Timout_1>,<ACK_Timout_2> (Default Value: AT+DDETECT=1,1440,2880)
1217 +
1218 +* ACK_Timout_1: Unit: min
1219 +
1220 +* ACK_Timout_2: Unit: min
1221 +
1222 +(% border="1" style="background-color:#f2f2f2; width:562px" %)
1223 +|(% style="background-color:#4f81bd; color:white; width:160px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:272px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:89px" %)**Response**
1235 1235  |(% style="width:160px" %)(((
1236 1236  AT+DDETECT=1,1440,2880
1237 1237  
1238 1238  value1
1239 -)))|(% style="width:198px" %)Enable online detect|(% style="width:349px" %)(((
1228 +)))|(% style="width:272px" %)Enable online detect|(% style="width:89px" %)(((
1240 1240  1
1241 1241  
1242 1242  OK
... ... @@ -1245,7 +1245,7 @@
1245 1245  AT+DDETECT=1,?,2880
1246 1246  
1247 1247  value2
1248 -)))|(% style="width:198px" %)Online detection packet sending time|(% style="width:349px" %)(((
1237 +)))|(% style="width:272px" %)Online detection packet sending time|(% style="width:89px" %)(((
1249 1249  
1250 1250  
1251 1251  OK
... ... @@ -1254,39 +1254,47 @@
1254 1254  AT+DDETECT=1,1440,?
1255 1255  
1256 1256  value3
1257 -)))|(% style="width:198px" %)Process rejoin|(% style="width:349px" %)(((
1246 +)))|(% style="width:272px" %)Process rejoin|(% style="width:89px" %)(((
1258 1258  
1259 1259  
1260 1260  OK
1261 1261  )))
1262 1262  
1263 -(% style="color:blue" %)**Downlink Command: 0x33**
1252 +(% style="color:blue" %)**Downlink Command: 0x32**
1264 1264  
1265 1265  Format: Command Code (0x32) followed by 2 bytes mode value.
1266 1266  
1267 -If the downlink payload=320105A00B40, it means set end node to use confirm mode, while type code is 33.
1256 +If the downlink payload=320105A00B40, it means set end node to use confirm mode, while type code is 32.
1268 1268  
1269 -* **Example 1:** Downlink Payload: 320105A00B40  ~/~/ Set AT+DDETECT=1,1440,2880
1258 +* **Example 1:** Downlink Payload: 320105A00B40  ~/~/ Set AT+DDETECT=1,1440,2880
1270 1270  
1260 +*
1261 +** 0x01** : Flag**
1271 1271  
1263 + **0x05A0 **: ACK_Timout_1 : 1440minutes (24 hours)
1272 1272  
1265 + **0x0B40 **: ACK_Timout_2 : 2880minutes (48 hours)
1266 +
1267 +* **Explain**: Enable Online Detect, if end node doesn't receive any downlink within ACK_Timout_1( 1440 minutes or 24 hours). End node will use confirmed uplink to send packets during ACK_Timout_1 (the 24th hour) to ACK_Timout_2 ( the 48th hour). If from the 24th to 48th hour, end node got an downlink from server, it will switch back to unconfirmed uplink. end node will restart ACK_Timout_1. If from the 24th to 48th hour, end node still not got any downlink, means device doesn't get ACK from server within last 48 hours. Device will process rejoin, rejoin request interval is AT+RJTDC period. For AU915/ US915, device will use the sub-band used for last join.
1268 +
1269 +(% style="display:none" %) (%%)
1270 +
1273 1273  == 7.26 Request the server to send an ACK ==
1274 1274  
1275 1275  
1276 1276  (% style="color:blue" %)**AT Command: AT+PNACKMD**
1277 1277  
1278 -(% border="1" style="background-color:#ffffcc; color:green; width:536.222px" %)
1279 -|=(% colspan="3" style="width: 533px;" %)**AT+PNACKMD**
1280 -|(% style="width:160px" %)**Command Example**|(% style="width:263px" %)**Function**|(% style="width:109px" %)**Response**
1281 -|(% style="width:160px" %)**AT+PNACKMD=1**|(% style="width:263px" %)If the node uploads the ACK as confirm, it will request the server to send an ACK. If the server ack is not received, the node will upload the packets that have not received the ACK the next time it receives the ACK|(% style="width:109px" %)1(((
1276 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:889px" %)
1277 +|(% style="background-color:#4f81bd; color:white; width:160px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:627px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:100px" %)**Response**
1278 +|(% style="width:160px" %)AT+PNACKMD=1|(% style="width:627px" %)If the node uploads the ACK as confirm, it will request the server to send an ACK. If the server ack is not received, the node will upload the packets that have not received the ACK the next time it receives the ACK|(% style="width:100px" %)1(((
1282 1282  OK
1283 1283  )))
1284 -|(% style="width:160px" %)**AT+PNACKMD=0**|(% style="width:263px" %)off request the server to send an ACK|(% style="width:109px" %)(((
1281 +|(% style="width:160px" %)AT+PNACKMD=0|(% style="width:627px" %)off request the server to send an ACK|(% style="width:100px" %)(((
1285 1285  0
1286 -
1287 1287  OK
1288 1288  )))
1289 1289  
1286 +(% style="display:none" %) (%%)
1290 1290  
1291 1291  == 7.27 Adjust network rejoining interval ==
1292 1292  
... ... @@ -1293,16 +1293,15 @@
1293 1293  
1294 1294  (% style="color:blue" %)**AT Command: AT+RJTDC**
1295 1295  
1296 -(% border="1" style="background-color:#ffffcc; color:green; width:727.222px" %)
1297 -|=(% colspan="3" style="width: 724px;" %)AT+RJTDC
1298 -|(% style="width:165px" %)**Command Example**|(% style="width:227px" %)**Function**|(% style="width:329px" %)**Response**
1299 -|(% style="width:165px" %)AT+RJTDC=?|(% style="width:227px" %)Show the ReJoin data transmission interval in min|(% style="width:329px" %)30000(((
1293 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:889px" %)
1294 +|(% style="background-color:#4f81bd; color:white; width:165px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:357px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:361px" %)**Response**
1295 +|(% style="width:165px" %)AT+RJTDC=?|(% style="width:357px" %)Show the ReJoin data transmission interval in min|(% style="width:361px" %)30(((
1300 1300  OK
1301 1301  
1302 -the interval is 30000ms = 30s
1298 +the interval is 30 min
1303 1303  )))
1304 -|(% style="width:165px" %)AT+RJTDC=60000|(% style="width:227px" %)Set the ReJoin data transmission interval in min|(% style="width:329px" %)OK(((
1305 -Set the ReJoin data transmission interval to 60000ms = 60 seconds
1300 +|(% style="width:165px" %)AT+RJTDC=60|(% style="width:357px" %)Set the ReJoin data transmission interval in min|(% style="width:361px" %)OK(((
1301 +Set the ReJoin data transmission interval to 60 min
1306 1306  )))
1307 1307  
1308 1308  (% style="color:blue" %)**Downlink Command: 0x26**
... ... @@ -1311,21 +1311,22 @@
1311 1311  
1312 1312  If the downlink payload=26000A, it means set end node to use confirm mode, while type code is 26.
1313 1313  
1314 -* **Example 1:** Downlink Payload: 26000A  ~/~/ Set AT+RJTDC=10
1315 -* **Example 2: **Downlink Payload: 260002  ~/~/ Set AT+RJTDC=2
1310 +* **Example 1:** Downlink Payload: 26000A  ~/~/  Set AT+RJTDC=10
1316 1316  
1312 +* **Example 2: **Downlink Payload: 260002  ~/~/  Set AT+RJTDC=2
1317 1317  
1314 +(% style="display:none" %) (%%)
1318 1318  
1319 1319  = 8. AT Commands Combination =
1320 1320  
1321 -
1322 1322  == 8.1 Set a fix RX2DR for downlink window ==
1323 1323  
1324 1324  
1325 -* **AT+ADR=0             ** **~-~->**  Disable ADR first
1326 -* **AT+RX2DR=xxxx**  **~-~->**  Set xxxx to your wanted DataRate
1321 +* (% style="color:blue" %)**AT+ADR=0             **(%%) **~/~/**  Disable ADR first
1327 1327  
1323 +* (% style="color:blue" %)**AT+RX2DR=xxxx**   (%%) **~/~/**  Set xxxx to your wanted DataRate
1328 1328  
1325 +(% style="display:none" %) (%%)
1329 1329  
1330 1330  == 8.2 Use Downlink Command to set a fix uplink DR ==
1331 1331  
... ... @@ -1335,7 +1335,9 @@
1335 1335  **Same as:**
1336 1336  
1337 1337  * AT+ADR=0  [[Reference>>||anchor="H7.1AdaptiveDataRate"]]
1335 +
1338 1338  * AT+DR=5  [[Reference>>||anchor="H7.4DataRate"]]
1337 +
1339 1339  * AT+TXP=0  [[Reference>>||anchor="H7.14TransmitPower"]]
1340 1340  
1341 1341  
Copyright ©2010-2024 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0