<
From version < 52.7 >
edited by Xiaoling
on 2022/08/12 16:47
To version < 63.36 >
edited by Xiaoling
on 2023/05/29 14:19
>
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -9,39 +9,36 @@
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.
13 +* (% style="color:blue" %)**Sensor Related Commands:** (%%) Only for special sensor, such as control relay, poll RS485 device.
14 14  
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  
19 +
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:
23 +* **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/]]
24 +* **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]]
26 +** 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  
29 +(% 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 -)))
40 -|(% style="width:187px" %)(((
35 +
36 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:966px" %)
37 +|(% style="background-color:#4f81bd; color:white; width:187px" %)(((
41 41  **Model**
42 -)))|(% style="width:330px" %)(((
39 +)))|(% style="background-color:#4f81bd; color:white; width:330px" %)(((
43 43  **Description**
44 -)))|(% style="width:445px" %)(((
41 +)))|(% style="background-color:#4f81bd; color:white; width:445px" %)(((
45 45  **Firmware Version <~-~-> Stack Version**
46 46  )))
47 47  |(% style="width:187px" %)(((
... ... @@ -104,12 +104,10 @@
104 104  )))
105 105  )))
106 106  
104 +(% style="display:none" %) (%%)
107 107  
108 -
109 -
110 110  = 4. System Management Commands =
111 111  
112 -
113 113  == 4.1 Change Uplink Interval ==
114 114  
115 115  
... ... @@ -118,9 +118,8 @@
118 118  
119 119  (% style="color:blue" %)**AT Command: AT+TDC**
120 120  
121 -(% border="1" style="background-color:#ffffcc; color:green; width:727.222px" %)
122 -|=(% colspan="3" style="width: 724px;" %)AT+TDC
123 -|(% style="width:165px" %)**Command Example**|(% style="width:227px" %)**Function**|(% style="width:329px" %)**Response**
116 +(% border="1" style="background-color:#f2f2f2; width:727.222px" %)
117 +|(% 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**
124 124  |(% style="width:165px" %)AT+TDC=?|(% style="width:227px" %)Show current transmit Interval|(% style="width:329px" %)30000(((
125 125  OK
126 126  
... ... @@ -139,16 +139,14 @@
139 139  )))
140 140  
141 141  (((
142 -If the downlink payload=0100003C, it means set the END Nodes Transmit Interval to 0x00003C=60(S), while type code is 01.
136 +If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01.
143 143  )))
144 144  
145 145  * **Example 1**: Downlink Payload:** 0100001E**  ~/~/ Set Transmit Interval (TDC) = 30 seconds
146 146  * **Example 2**: Downlink Payload:** 0100003C**  ~/~/ Set Transmit Interval (TDC) = 60 seconds
147 147  
142 +(% style="display:none" %) (%%)
148 148  
149 -
150 -
151 -
152 152  == 4.2 Reboot End Node ==
153 153  
154 154  
... ... @@ -157,9 +157,9 @@
157 157  
158 158  (% style="color:blue" %)**AT Command: ATZ**
159 159  
160 -(% border="1" style="background-color:#ffffcc; color:green; width:546px" %)
161 -|=(% colspan="3" style="width: 543px;" %)ATZ: Trig a reset of the MCU
162 -|(% style="width:157px" %)**Command Example**|(% style="width:92px" %)**Function**|(% style="width:294px" %)**Response**
152 +(% border="1" style="background-color:#f2f2f2; width:546px" %)
153 +|=(% colspan="3" style="width: 543px;background-color:#D9E2F3;color:#0070C0" %)ATZ: Trig a reset of the MCU
154 +|(% style="color:#0070c0; width:157px" %)**Command Example**|(% style="color:#0070c0; width:92px" %)**Function**|(% style="color:#0070c0; width:294px" %)**Response**
163 163  |(% style="width:157px" %)ATZ|(% style="width:92px" %)Reset MCU|(% style="width:294px" %)(((
164 164  Device reset and show booting info
165 165  
... ... @@ -181,12 +181,10 @@
181 181  )))
182 182  
183 183  (((
184 -If the downlink payload=**04FF**, the end node will reboot.
185 -
186 -
187 -
176 +If the downlink payload=**04FF**, the end node will reboot.
188 188  )))
189 189  
179 +
190 190  == 4.3 Reset to factory Default ==
191 191  
192 192  
... ... @@ -195,9 +195,9 @@
195 195  
196 196  (% style="color:blue" %)**AT Command: AT+FDR**
197 197  
198 -(% border="1" style="background-color:#ffffcc; color:green; width:789px" %)
199 -|=(% colspan="3" style="width: 786px;" %)Reset to factory default
200 -|(% style="width:154px" %)**Command Example**|(% style="width:175px" %)**Function**|(% style="width:456px" %)**Response**
188 +(% border="1" style="background-color:#f2f2f2; width:789px" %)
189 +|=(% colspan="3" style="width: 786px;background-color:#D9E2F3;color:#0070C0" %)Reset to factory default
190 +|(% style="color:#0070c0; width:154px" %)**Command Example**|(% style="color:#0070c0; width:175px" %)**Function**|(% style="color:#0070c0; width:456px" %)**Response**
201 201  |(% style="width:154px" %)AT+FDR|(% style="width:175px" %)Reset to factory default|(% style="width:456px" %)(((
202 202  Device reset to factory default parameters and show booting info
203 203  
... ... @@ -223,7 +223,6 @@
223 223  )))
224 224  
225 225  
226 -
227 227  == 4.4 Show Firmware Version ==
228 228  
229 229  
... ... @@ -232,9 +232,9 @@
232 232  
233 233  (% style="color:blue" %)**AT Command: AT+VER**
234 234  
235 -(% border="1" style="background-color:#ffffcc; color:green; width:542px" %)
236 -|=(% colspan="3" style="width: 539px;" %)AT+VER: Image Version and Frequency Band
237 -|(% style="width:157px" %)**Command Example**|(% style="width:295px" %)**Function**|(% style="width:86px" %)**Response**
224 +(% border="1" style="background-color:#f2f2f2; width:542px" %)
225 +|=(% colspan="3" style="width: 539px;background-color:#D9E2F3;color:#0070C0" %)AT+VER: Image Version and Frequency Band
226 +|(% style="color:#0070c0; width:157px" %)**Command Example**|(% style="color:#0070c0; width:295px" %)**Function**|(% style="color:#0070c0; width:86px" %)**Response**
238 238  |(% style="width:157px" %)AT+VER=?|(% style="width:295px" %)Show Image version and Frequency Band|(% style="width:86px" %)(((
239 239  1.3 EU868
240 240  
... ... @@ -254,7 +254,6 @@
254 254  (((
255 255  
256 256  
257 -
258 258  **xx: Software Type:**
259 259  )))
260 260  
... ... @@ -288,7 +288,6 @@
288 288  firmware version: v1.1.0 ~-~-> 110
289 289  
290 290  
291 -
292 292  == 4.5 Show System Configure ==
293 293  
294 294  
... ... @@ -297,29 +297,22 @@
297 297  
298 298  (% style="color:blue" %)**AT Command: AT+CFG**
299 299  
300 -(% border="1" style="background-color:#ffffcc; color:green; width:599.222px" %)
301 -|=(% colspan="3" style="width: 596px;" %)AT+CFG: Print all configurations
302 -|(% style="width:160px" %)**Command Example**|(% style="width:154px" %)**Function**|(% style="width:280px" %)**Response**
287 +(% border="1" style="background-color:#f2f2f2; width:599.222px" %)
288 +|=(% colspan="3" style="width: 596px;background-color:#D9E2F3;color:#0070C0" %)AT+CFG: Print all configurations
289 +|(% style="color:#0070c0; width:160px" %)**Command Example**|(% style="color:#0070c0; width:154px" %)**Function**|(% style="color:#0070c0; width:280px" %)**Response**
303 303  |(% style="width:160px" %)AT+CFG|(% style="width:154px" %)Show all configures|(% style="width:280px" %)(((
304 304  AT+DEUI = XX XX XX XX XX XX XX XX
305 -
306 306  AT+DADDR=XXXXXXXX
307 -
308 308  ……….
309 -
310 310  AT+RX2WTO=X
311 -
312 312  AT+CHS=868100000
313 -
314 314  OK
315 315  )))
316 316  
299 +(% style="display:none" %) (%%)
317 317  
318 -
319 -
320 320  = 5. Keys, IDs and EUIs management =
321 321  
322 -
323 323  == 5.1 Application EUI ==
324 324  
325 325  
... ... @@ -328,17 +328,16 @@
328 328  
329 329  (% style="color:blue" %)**AT Command: AT+APPEUI**
330 330  
331 -(% border="1" style="background-color:#ffffcc; color:green; width:686.222px" %)
332 -|=(% colspan="3" style="width: 683px;" %)AT+APPEUI
333 -|(% style="width:305px" %)**Command Example**|(% style="width:186px" %)**Function**|(% style="width:191px" %)**Response**
311 +(% border="1" style="background-color:#f2f2f2; width:686.222px" %)
312 +|=(% colspan="3" style="width: 683px;background-color:#D9E2F3;color:#0070C0" %)AT+APPEUI
313 +|(% style="color:#0070c0; width:305px" %)**Command Example**|(% style="color:#0070c0; width:186px" %)**Function**|(% style="color:#0070c0; width:191px" %)**Response**
334 334  |(% style="width:305px" %)AT+APPEUI=?|(% style="width:186px" %)Get the Application EUI|(% style="width:191px" %)00 b3 d5 00 00 00 00 00(((
335 335  OK
336 336  )))
337 337  |(% style="width:305px" %)AT+APPEUI=00 b3 d5 7e f0 00 4d 34|(% style="width:186px" %)Set the Application EUI|(% style="width:191px" %)OK
338 338  
319 +(% style="display:none" %) (%%)
339 339  
340 -
341 -
342 342  == 5.2 Application Key ==
343 343  
344 344  
... ... @@ -347,17 +347,16 @@
347 347  
348 348  (% style="color:blue" %)**AT Command: AT+APPKEY**
349 349  
350 -(% border="1" style="background-color:#ffffcc; color:green; width:976.222px" %)
351 -|=(% colspan="3" style="width: 973px;" %)AT+APPKEY
352 -|(% style="width:441px" %)**Command Example**|(% style="width:180px" %)**Function**|(% style="width:350px" %)**Response**
329 +(% border="1" style="background-color:#f2f2f2; width:976.222px" %)
330 +|=(% colspan="3" style="width: 973px;background-color:#D9E2F3;color:#0070C0" %)AT+APPKEY
331 +|(% style="color:#0070c0; width:441px" %)**Command Example**|(% style="color:#0070c0; width:180px" %)**Function**|(% style="color:#0070c0; width:350px" %)**Response**
353 353  |(% 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(((
354 354  OK
355 355  )))
356 356  |(% 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
357 357  
337 +(% style="display:none" %) (%%)
358 358  
359 -
360 -
361 361  == 5.3 Application Session Key ==
362 362  
363 363  
... ... @@ -366,9 +366,9 @@
366 366  
367 367  (% style="color:blue" %)**AT Command: AT+APPSKEY**
368 368  
369 -(% border="1" style="background-color:#ffffcc; color:green; width:1040.22px" %)
370 -|=(% colspan="3" style="width: 1037px;" %)AT+APPSKEY
371 -|(% style="width:451px" %)**Command Example**|(% style="width:231px" %)**Function**|(% style="width:354px" %)**Response**
347 +(% border="1" style="background-color:#f2f2f2; width:1040.22px" %)
348 +|=(% colspan="3" style="width: 1037px;background-color:#D9E2F3;color:#0070C0" %)AT+APPSKEY
349 +|(% style="color:#0070c0; width:451px" %)**Command Example**|(% style="color:#0070c0; width:231px" %)**Function**|(% style="color:#0070c0; width:354px" %)**Response**
372 372  |(% 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(((
373 373  OK
374 374  )))
... ... @@ -376,9 +376,8 @@
376 376  OK
377 377  )))
378 378  
357 +(% style="display:none" %) (%%)
379 379  
380 -
381 -
382 382  == 5.4 Device Address ==
383 383  
384 384  
... ... @@ -387,9 +387,9 @@
387 387  
388 388  (% style="color:blue" %)**AT Command: AT+DADDR**
389 389  
390 -(% border="1" style="background-color:#ffffcc; color:green; width:795.222px" %)
391 -|=(% colspan="3" style="width: 792px;" %)AT+DADDR
392 -|(% style="width:192px" %)**Command Example**|(% style="width:241px" %)**Function**|(% style="width:359px" %)**Response**
367 +(% border="1" style="background-color:#f2f2f2; width:795.222px" %)
368 +|=(% colspan="3" style="width: 792px;background-color:#D9E2F3;color:#0070C0" %)AT+DADDR
369 +|(% style="color:#0070c0; width:192px" %)**Command Example**|(% style="color:#0070c0; width:241px" %)**Function**|(% style="color:#0070c0; width:359px" %)**Response**
393 393  |(% style="width:192px" %)AT+DADDR=?|(% style="width:241px" %)Get the Application Session Key.|(% style="width:359px" %)(While Error in format, return AT_PARAM_ERROR)(((
394 394  A8 40 41 FF
395 395  
... ... @@ -397,9 +397,8 @@
397 397  )))
398 398  |(% style="width:192px" %)AT+DADDR=A8 40 41 FF|(% style="width:241px" %)Set the Application Session Key.|(% style="width:359px" %)OK
399 399  
377 +(% style="display:none" %) (%%)
400 400  
401 -
402 -
403 403  == 5.5 Device EUI ==
404 404  
405 405  
... ... @@ -408,9 +408,9 @@
408 408  
409 409  (% style="color:blue" %)**AT Command: AT+DEUI**
410 410  
411 -(% border="1" style="background-color:#ffffcc; color:green; width:1035.22px" %)
412 -|=(% colspan="3" style="width: 1032px;" %)AT+DEUI
413 -|(% style="width:250px" %)**Command Example**|(% style="width:147px" %)**Function**|(% style="width:634px" %)**Response**
387 +(% border="1" style="background-color:#f2f2f2; width:1035.22px" %)
388 +|=(% colspan="3" style="width: 1032px;background-color:#D9E2F3;color:#0070C0" %)AT+DEUI
389 +|(% style="color:#0070c0; width:250px" %)**Command Example**|(% style="color:#0070c0; width:147px" %)**Function**|(% style="color:#0070c0; width:634px" %)**Response**
414 414  |(% style="width:250px" %)AT+DEUI=?|(% style="width:147px" %)Get the Device EUI.|(% style="width:634px" %)00 44 34 22 33 45 55 55(((
415 415  OK
416 416  )))
... ... @@ -418,9 +418,8 @@
418 418  OK
419 419  )))
420 420  
397 +(% style="display:none" %) (%%)
421 421  
422 -
423 -
424 424  == 5.6 Network ID ==
425 425  
426 426  
... ... @@ -429,17 +429,16 @@
429 429  
430 430  (% style="color:blue" %)**AT Command: AT+NWKID**
431 431  
432 -(% border="1" style="background-color:#ffffcc; color:green; width:448.222px" %)
433 -|=(% colspan="3" style="width: 445px;" %)AT+NWKID
434 -|(% style="width:191px" %)**Command Example**|(% style="width:153px" %)**Function**|(% style="width:101px" %)**Response**
407 +(% border="1" style="background-color:#f2f2f2; width:448.222px" %)
408 +|=(% colspan="3" style="width: 445px;background-color:#D9E2F3;color:#0070C0" %)AT+NWKID
409 +|(% style="color:#0070c0; width:191px" %)**Command Example**|(% style="color:#0070c0; width:153px" %)**Function**|(% style="color:#0070c0; width:101px" %)**Response**
435 435  |(% style="width:191px" %)AT+NWKID=?|(% style="width:153px" %)Get the Network ID.|(% style="width:101px" %)a8 40 41 ff(((
436 436  OK
437 437  )))
438 438  |(% style="width:191px" %)AT+NWKID=A8 40 41 FF|(% style="width:153px" %)Set the Network ID.|(% style="width:101px" %)OK
439 439  
415 +(% style="display:none" %) (%%)
440 440  
441 -
442 -
443 443  == 5.7 Network Session Key ==
444 444  
445 445  
... ... @@ -448,23 +448,20 @@
448 448  
449 449  (% style="color:blue" %)**AT Command: AT+NWKSKEY**
450 450  
451 -(% border="1" style="background-color:#ffffcc; color:green; width:1017.22px" %)
452 -|=(% colspan="3" style="width: 1014px;" %)AT+NWKSKEY
453 -|(% style="width:455px" %)**Command Example**|(% style="width:215px" %)**Function**|(% style="width:343px" %)**Response**
425 +(% border="1" style="background-color:#f2f2f2; width:1017.22px" %)
426 +|=(% colspan="3" style="width: 1014px;background-color:#D9E2F3;;color:#0070C0" %)AT+NWKSKEY
427 +|(% style="color:#0070c0; width:455px" %)**Command Example**|(% style="color:#0070c0; width:215px" %)**Function**|(% style="color:#0070c0; width:343px" %)**Response**
454 454  |(% 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(((
455 455  OK
456 456  )))
457 457  |(% 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
458 458  
433 +(% style="display:none" %) (%%)
459 459  
460 -
461 -
462 462  = 6. Joining and sending date on LoRaWAN network =
463 463  
464 -
465 465  == 6.1 Confirm Mode ==
466 466  
467 -
468 468  === 6.1.1  AT+CFM command before DR-LWS007 software stack ===
469 469  
470 470  
... ... @@ -473,9 +473,9 @@
473 473  
474 474  (% style="color:blue" %)**AT Command: AT+CFM**
475 475  
476 -(% border="1" style="background-color:#ffffcc; color:green; width:710.222px" %)
477 -|=(% colspan="3" style="width: 707px;" %)AT+CFM
478 -|(% style="width:155px" %)**Command Example**|(% style="width:205px" %)**Function**|(% style="width:346px" %)**Response**
447 +(% border="1" style="background-color:#f2f2f2; width:710.222px" %)
448 +|=(% colspan="3" style="width: 707px;background-color:#D9E2F3;color:#0070C0" %)AT+CFM
449 +|(% style="color:#0070c0; width:155px" %)**Command Example**|(% style="color:#0070c0; width:205px" %)**Function**|(% style="color:#0070c0; width:346px" %)**Response**
479 479  |(% style="width:155px" %)AT+CFM=?|(% style="width:205px" %)Get the confirmation mode|(% style="width:346px" %)0(((
480 480  OK
481 481  )))
... ... @@ -491,17 +491,16 @@
491 491  * **Example 1:** Downlink Payload: 0501  ~/~/ Set AT+CFM=1
492 492  * **Example 2:** Downlink Payload: 0500  ~/~/ Set AT+CFM=0
493 493  
465 +(% style="display:none" %) (%%)
494 494  
495 -
496 -
497 497  === 6.1.2  AT+CFM command since DR-LWS007 software stack ===
498 498  
499 499  
500 500  (% style="color:blue" %)**AT Command: AT+CFM**
501 501  
502 -(% border="1" style="background-color:#ffffcc; color:green; width:710.222px" %)
503 -|=(% colspan="3" style="width: 707px;" %)AT+CFM
504 -|(% style="width:160px" %)**Command Example**|(% style="width:198px" %)**Function**|(% style="width:349px" %)**Response**
472 +(% border="1" style="background-color:#f2f2f2; width:710.222px" %)
473 +|=(% colspan="3" style="width: 707px;background-color:#D9E2F3;color:#0070C0" %)AT+CFM
474 +|(% style="color:#0070c0; width:160px" %)**Command Example**|(% style="color:#0070c0; width:198px" %)**Function**|(% style="color:#0070c0; width:349px" %)**Response**
505 505  |(% style="width:160px" %)(((
506 506  AT+CFM=1,0,0
507 507  
... ... @@ -539,9 +539,8 @@
539 539  * **Example 1:** Downlink Payload: 05010101  ~/~/ Set AT+CFM=1,1,1
540 540  * **Example 2:** Downlink Payload: 05000700  ~/~/ Set AT+CFM=0,7,0
541 541  
512 +(% style="display:none" %) (%%)
542 542  
543 -
544 -
545 545  == 6.2 Confirm Status ==
546 546  
547 547  
... ... @@ -550,16 +550,15 @@
550 550  
551 551  (% style="color:blue" %)**AT Command: AT+CFS**
552 552  
553 -(% border="1" style="background-color:#ffffcc; color:green; width:534.222px" %)
554 -|=(% colspan="3" style="width: 531px;" %)AT+CFS
555 -|(% style="width:156px" %)**Command Example**|(% style="width:193px" %)**Function**|(% style="width:178px" %)**Response**
556 -|(% style="width:156px" %)AT+CFS=?|(% style="width:193px" %)Get confirmation status|(% style="width:178px" %)0(((
522 +(% border="1" style="background-color:#f2f2f2; width:463px" %)
523 +|=(% colspan="3" style="width: 460px;background-color:#D9E2F3;color:#0070C0" %)AT+CFS
524 +|(% style="color:#0070c0; width:156px" %)**Command Example**|(% style="color:#0070c0; width:193px" %)**Function**|(% style="color:#0070c0; width:107px" %)**Response**
525 +|(% style="width:156px" %)AT+CFS=?|(% style="width:193px" %)Get confirmation status|(% style="width:107px" %)0(((
557 557  OK
558 558  )))
559 559  
529 +(% style="display:none" %) (%%)
560 560  
561 -
562 -
563 563  == 6.3 Join LoRa® Network ==
564 564  
565 565  
... ... @@ -568,18 +568,16 @@
568 568  
569 569  (% style="color:blue" %)**AT Command: AT+JOIN**
570 570  
571 -(% border="1" style="background-color:#ffffcc; color:green; width:647.222px" %)
572 -|=(% colspan="3" style="width: 644px;" %)AT+JOIN
573 -|(% style="width:163px" %)**Command Example**|(% style="width:147px" %)**Function**|(% style="width:334px" %)**Response**
539 +(% border="1" style="background-color:#f2f2f2; width:647.222px" %)
540 +|=(% colspan="3" style="width: 644px;background-color:#D9E2F3;color:#0070C0" %)AT+JOIN
541 +|(% style="color:#0070c0; width:163px" %)**Command Example**|(% style="color:#0070c0; width:147px" %)**Function**|(% style="color:#0070c0; width:334px" %)**Response**
574 574  |(% style="width:163px" %)AT+JOIN ?|(% style="width:147px" %)Get imformation.|(% style="width:334px" %)AT+JOIN: Join network(((
575 575  OK
576 -
577 577  While Error in format, return AT_BUSY_ERROR
578 578  )))
579 579  
547 +(% style="display:none" %) (%%)
580 580  
581 -
582 -
583 583  == 6.4 LoRa® Network Join Mode ==
584 584  
585 585  
... ... @@ -588,9 +588,9 @@
588 588  
589 589  (% style="color:blue" %)**AT Command: AT+NJM**
590 590  
591 -(% border="1" style="background-color:#ffffcc; color:green; width:753.222px" %)
592 -|=(% colspan="3" style="width: 750px;" %)AT+NJM
593 -|(% style="width:162px" %)**Command Example**|(% style="width:227px" %)**Function**|(% style="width:361px" %)**Response**
557 +(% border="1" style="background-color:#f2f2f2; width:753.222px" %)
558 +|=(% colspan="3" style="width: 750px;background-color:#D9E2F3;color:#0070C0" %)AT+NJM
559 +|(% style="color:#0070c0; width:162px" %)**Command Example**|(% style="color:#0070c0; width:227px" %)**Function**|(% style="color:#0070c0; width:361px" %)**Response**
594 594  |(% style="width:162px" %)AT+NJM=?|(% style="width:227px" %)Get the Network Join Mode|(% style="width:361px" %)1(((
595 595  OK
596 596  )))
... ... @@ -606,9 +606,8 @@
606 606  * **Example 1: **Downlink Payload: **2000                  ** ~/~/ Set AT+NJM=0
607 607  * **Example 2:** Downlink Payload: **2001**  ~/~/ Set AT+NJM=1
608 608  
575 +(% style="display:none" %) (%%)
609 609  
610 -
611 -
612 612  == 6.5 LoRa® Network Join Status ==
613 613  
614 614  
... ... @@ -617,16 +617,15 @@
617 617  
618 618  (% style="color:blue" %)**AT Command: AT+NJS**
619 619  
620 -(% border="1" style="background-color:#ffffcc; color:green; width:498.222px" %)
621 -|=(% colspan="3" style="width: 495px;" %)AT+NJS
622 -|(% style="width:169px" %)**Command Example**|(% style="width:164px" %)**Function**|(% style="width:161px" %)**Response**
585 +(% border="1" style="background-color:#f2f2f2; width:498.222px" %)
586 +|=(% colspan="3" style="width: 495px;background-color:#D9E2F3;color:#0070C0" %)AT+NJS
587 +|(% style="color:#0070c0; width:169px" %)**Command Example**|(% style="color:#0070c0; width:164px" %)**Function**|(% style="color:#0070c0; width:161px" %)**Response**
623 623  |(% style="width:169px" %)AT+NJS=?|(% style="width:164px" %)Get the join status.|(% style="width:161px" %)0(((
624 624  OK
625 625  )))
626 626  
592 +(% style="display:none" %) (%%)
627 627  
628 -
629 -
630 630  == 6.6 Print Last Received Data in Raw Format ==
631 631  
632 632  
... ... @@ -635,16 +635,15 @@
635 635  
636 636  (% style="color:blue" %)**AT Command: AT+RECV**
637 637  
638 -(% border="1" style="background-color:#ffffcc; color:green; width:587.222px" %)
639 -|=(% colspan="3" style="width: 584px;" %)AT+RECV
640 -|(% style="width:161px" %)**Command Example**|(% style="width:272px" %)**Function**|(% style="width:150px" %)**Response**
602 +(% border="1" style="background-color:#f2f2f2; width:587.222px" %)
603 +|=(% colspan="3" style="width: 584px;background-color:#D9E2F3;color:#0070C0" %)AT+RECV
604 +|(% style="color:#0070c0; width:161px" %)**Command Example**|(% style="color:#0070c0; width:272px" %)**Function**|(% style="color:#0070c0; width:150px" %)**Response**
641 641  |(% style="width:161px" %)AT+RECV=?|(% style="width:272px" %)print last received data in raw format.|(% style="width:150px" %)0:(((
642 642  OK
643 643  )))
644 644  
609 +(% style="display:none" %) (%%)
645 645  
646 -
647 -
648 648  == 6.7 Print Last Received Data in Binary Format ==
649 649  
650 650  
... ... @@ -653,16 +653,15 @@
653 653  
654 654  (% style="color:blue" %)**AT Command: AT+RECVB**
655 655  
656 -(% border="1" style="background-color:#ffffcc; color:green; width:793.222px" %)
657 -|=(% colspan="3" style="width: 790px;" %)AT+RECVB
658 -|(% style="width:173px" %)**Command Example**|(% style="width:497px" %)**Function**|(% style="width:120px" %)**Response**
619 +(% border="1" style="background-color:#f2f2f2; width:793.222px" %)
620 +|=(% colspan="3" style="width: 790px;background-color:#D9E2F3;color:#0070C0" %)AT+RECVB
621 +|(% style="color:#0070c0; width:173px" %)**Command Example**|(% style="color:#0070c0; width:497px" %)**Function**|(% style="color:#0070c0; width:120px" %)**Response**
659 659  |(% style="width:173px" %)AT+RECVB=?|(% style="width:497px" %)print last received data in binary format (with hexadecimal values).|(% style="width:120px" %)2: 0010(((
660 660  OK
661 661  )))
662 662  
626 +(% style="display:none" %) (%%)
663 663  
664 -
665 -
666 666  == 6.8 Send Text Data ==
667 667  
668 668  
... ... @@ -671,20 +671,16 @@
671 671  
672 672  (% style="color:blue" %)**AT Command: AT+SEND**
673 673  
674 -(% border="1" style="background-color:#ffffcc; color:green; width:991.222px" %)
675 -|=(% colspan="3" style="width: 988px;" %)AT+SEND
676 -|(% style="width:201px" %)**Command Example**|(% style="width:340px" %)**Function**|(% style="width:446px" %)**Response**
636 +(% border="1" style="background-color:#f2f2f2; width:991.222px" %)
637 +|=(% colspan="3" style="width: 988px;background-color:#D9E2F3;color:#0070C0" %)AT+SEND
638 +|(% style="color:#0070c0; width:201px" %)**Command Example**|(% style="color:#0070c0; width:340px" %)**Function**|(% style="color:#0070c0; width:446px" %)**Response**
677 677  |(% style="width:201px" %)AT+SEND=12:hello world|(% style="width:340px" %)Send text data along with the application port.|(% style="width:446px" %)OK(((
678 678  While Error in format, return
679 -
680 680  AT_BUSY_ERROR/AT_BUSY_ERROR/AT_NO_NETWORK_JOINED
681 -
682 -
683 683  )))
684 684  
644 +(% style="display:none" %) (%%)
685 685  
686 -
687 -
688 688  == 6.9 Send Hexadecimal Data ==
689 689  
690 690  
... ... @@ -693,22 +693,18 @@
693 693  
694 694  (% style="color:blue" %)**AT Command: AT+SENDB**
695 695  
696 -(% border="1" style="background-color:#ffffcc; color:green; width:1120.22px" %)
697 -|=(% colspan="3" style="width: 1117px;" %)AT+SENDB
698 -|(% style="width:257px" %)**Command Example**|(% style="width:406px" %)**Function**|(% style="width:453px" %)**Response**
699 -|(% style="width:257px" %)AT+SENDB=12:abcdef0123456789|(% style="width:406px" %)Send hexadecimal data along with the application port.|(% style="width:453px" %)OK
700 -|(% 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(((
701 -AT_PARAM_ERROR AT_BUSY_ERROR/AT_NO_NETWORK_JOINED
702 -
703 -
654 +(% border="1" style="background-color:f2f2f2; width:1101px" %)
655 +|=(% colspan="3" style="width: 1098px;background-color:#D9E2F3;color:#0070C0" %)AT+SENDB
656 +|(% style="color:#0070c0; width:257px" %)**Command Example**|(% style="color:#0070c0; width:394px" %)**Function**|(% style="color:#0070c0; width:446px" %)**Response**
657 +|(% style="width:257px" %)AT+SENDB=12:abcdef0123456789|(% style="width:394px" %)Send hexadecimal data along with the application port.|(% style="width:446px" %)OK
658 +|(% style="width:257px" %)AT+SENDB=abcdef0123456789|(% style="width:394px" %)Send hexadecimal data along with the application port.|(% style="width:446px" %)While Error in format, return(((
659 +AT_PARAM_ERROR AT_BUSY_ERROR/AT_NO_NETWORK_JOINED
704 704  )))
705 705  
662 +(% style="display:none" %) (%%)
706 706  
707 -
708 -
709 709  = 7. LoRaWAN network management =
710 710  
711 -
712 712  == 7.1 Adaptive Data Rate ==
713 713  
714 714  
... ... @@ -717,9 +717,9 @@
717 717  
718 718  (% style="color:blue" %)**AT Command: AT+ADR**
719 719  
720 -(% border="1" style="background-color:#ffffcc; color:green; width:683.222px" %)
721 -|=(% colspan="3" style="width: 680px;" %)AT+ADR
722 -|(% style="width:162px" %)**Command Example**|(% style="width:266px" %)**Function**|(% style="width:250px" %)**Response**
674 +(% border="1" style="background-color:f2f2f2; width:683.222px" %)
675 +|=(% colspan="3" style="width: 680px;background-color:#D9E2F3;color:#0070C0" %)AT+ADR
676 +|(% style="color:#0070c0; width:162px" %)**Command Example**|(% style="color:#0070c0; width:266px" %)**Function**|(% style="color:#0070c0; width:250px" %)**Response**
723 723  |(% style="width:162px" %)AT+ADR=?|(% style="width:266px" %)Get the Adaptive Data Rate setting.|(% style="width:250px" %)1(((
724 724  OK
725 725  )))
... ... @@ -735,10 +735,8 @@
735 735  * **Example 1**: Downlink Payload: **2201**  ~/~/ Set AT+ADR=1.
736 736  * **Example 2**: Downlink Payload: **2200FFFF**  ~/~/ Set AT+ADR=0.
737 737  
692 +(% style="display:none" %) (%%)
738 738  
739 -
740 -
741 -
742 742  == 7.2 LoRa® Class ==
743 743  
744 744  
... ... @@ -745,11 +745,11 @@
745 745  Feature: Get or Set the Device Class(Currently only support class A, class C).
746 746  
747 747  
748 -(% style="color:blue" %)**AT Command:AT+CLASS**
700 +(% style="color:blue" %)**AT Command:  AT+CLASS**
749 749  
750 -(% border="1" style="background-color:#ffffcc; color:green; width:507.222px" %)
751 -|=(% colspan="3" style="width: 504px;" %)AT+CLASS
752 -|(% style="width:163px" %)**Command Example**|(% style="width:166px" %)**Function**|(% style="width:175px" %)**Response**
702 +(% border="1" style="background-color:#f2f2f2; width:507.222px" %)
703 +|=(% colspan="3" style="width: 504px;background-color:#D9E2F3;color:#0070C0" %)AT+CLASS
704 +|(% style="color:#0070c0; width:163px" %)**Command Example**|(% style="color:#0070c0; width:166px" %)**Function**|(% style="color:#0070c0; width:175px" %)**Response**
753 753  |(% style="width:163px" %)AT+CLASS=?|(% style="width:166px" %)Get the Device Class.|(% style="width:175px" %)A(((
754 754  OK
755 755  )))
... ... @@ -757,20 +757,24 @@
757 757  
758 758  )))
759 759  
712 +(% style="display:none" %)
760 760  
714 +(% style="color:red" %)**Notice:**
761 761  
716 +* Run AT+FDR before running AT+CLASS=C
717 +* 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.
762 762  
763 763  == 7.3 Duty Cycle Setting ==
764 764  
765 765  
766 -Feature: Get or Set the ETSI Duty Cycle setting - 0=disable, 1=enable - Only for testing.
722 +Feature: Get or Set the ETSI Duty Cycle setting** - 0**=disable, **1**=enable - Only for testing.
767 767  
768 768  
769 -(% style="color:blue" %)**AT Command:AT+DCS**
725 +(% style="color:blue" %)**AT Command:  AT+DCS**
770 770  
771 -(% border="1" style="background-color:#ffffcc; color:green; width:515.222px" %)
772 -|=(% colspan="3" style="width: 512px;" %)AT+DCS
773 -|(% style="width:165px" %)**Command Example**|(% style="width:239px" %)**Function**|(% style="width:107px" %)**Response**
727 +(% border="1" style="background-color:#f2f2f2; width:515.222px" %)
728 +|=(% colspan="3" style="width: 512px;background-color:#D9E2F3;color:#0070C0" %)AT+DCS
729 +|(% style="color:#0070c0; width:165px" %)**Command Example**|(% style="color:#0070c0; width:239px" %)**Function**|(% style="color:#0070c0; width:107px" %)**Response**
774 774  |(% style="width:165px" %)AT+DCS=?|(% style="width:239px" %)Get the ETSI Duty Cycle setting.|(% style="width:107px" %)1(((
775 775  OK
776 776  )))
... ... @@ -778,17 +778,24 @@
778 778  
779 779  )))
780 780  
737 +(% style="display:none" %) (%%)
738 +
781 781  == 7.4 Data Rate ==
782 782  
783 783  
784 -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
742 +Feature: Get or Set the Data Rate. (0-7 corresponding to DR_X) .
785 785  
744 +(% style="color:red" %)
745 +**Notice:**
786 786  
747 +* 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.
748 +* 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/]]
749 +
787 787  (% style="color:blue" %)**AT Command: AT+DR**
788 788  
789 -(% border="1" style="background-color:#ffffcc; color:green; width:466.222px" %)
790 -|=(% colspan="3" style="width: 463px;" %)AT+DR
791 -|(% style="width:156px" %)**Command Example**|(% style="width:167px" %)**Function**|(% style="width:140px" %)**Response**
752 +(% border="1" style="background-color:#f2f2f2; width:466.222px" %)
753 +|=(% colspan="3" style="width: 463px;background-color:#D9E2F3;color:#0070C0" %)AT+DR
754 +|(% style="color:#0070c0; width:156px" %)**Command Example**|(% style="color:#0070c0; width:167px" %)**Function**|(% style="color:#0070c0; width:140px" %)**Response**
792 792  |(% style="width:156px" %)AT+DR=?|(% style="width:167px" %)Get the Data Rate.|(% style="width:140px" %)5(((
793 793  OK
794 794  )))
... ... @@ -803,6 +803,8 @@
803 803  * **Example 1**: Downlink Payload: **220001FF**  ~/~/ Set AT+DR=1.
804 804  * **Example 2**: Downlink Payload: **220000FF**  ~/~/ Set AT+DR=0.
805 805  
769 +(% style="display:none" %) (%%)
770 +
806 806  == 7.5 Frame Counter Downlink ==
807 807  
808 808  
... ... @@ -809,11 +809,11 @@
809 809  Feature: Get or Set the Frame Counter Downlink.
810 810  
811 811  
812 -(% style="color:blue" %)**AT Command:AT+FCD**
777 +(% style="color:blue" %)**AT Command:  AT+FCD**
813 813  
814 -(% border="1" style="background-color:#ffffcc; color:green; width:693.222px" %)
815 -|=(% colspan="3" style="width: 690px;" %)AT+FCD
816 -|(% style="width:162px" %)**Command Example**|(% style="width:258px" %)**Function**|(% style="width:269px" %)**Response**
779 +(% border="1" style="background-color:#f2f2f2; width:693.222px" %)
780 +|=(% colspan="3" style="width: 690px;background-color:#D9E2F3;color:#0070C0" %)AT+FCD
781 +|(% style="color:#0070c0; width:162px" %)**Command Example**|(% style="color:#0070c0; width:258px" %)**Function**|(% style="color:#0070c0; width:269px" %)**Response**
817 817  |(% style="width:162px" %)AT+FCD=?|(% style="width:258px" %)Get the Frame Counter Downlink.|(% style="width:269px" %)0(((
818 818  OK
819 819  )))
... ... @@ -821,16 +821,18 @@
821 821  OK
822 822  )))
823 823  
789 +(% style="display:none" %) (%%)
790 +
824 824  == 7.6 Frame Counter Uplink ==
825 825  
826 826  Feature: Get or Set the Frame Counter Uplink.
827 827  
828 828  
829 -(% style="color:blue" %)**AT Command:AT+FCU**
796 +(% style="color:blue" %)**AT Command:  AT+FCU**
830 830  
831 -(% border="1" style="background-color:#ffffcc; color:green; width:534.222px" %)
832 -|=(% colspan="3" style="width: 531px;" %)AT+FCU
833 -|(% style="width:177px" %)**Command Example**|(% style="width:239px" %)**Function**|(% style="width:113px" %)**Response**
798 +(% border="1" style="background-color:#f2f2f2; width:534.222px" %)
799 +|=(% colspan="3" style="width: 531px;background-color:#D9E2F3;color:#0070C0" %)AT+FCU
800 +|(% style="color:#0070c0; width:177px" %)**Command Example**|(% style="color:#0070c0; width:239px" %)**Function**|(% style="color:#0070c0; width:113px" %)**Response**
834 834  |(% style="width:177px" %)AT+FCU=?|(% style="width:239px" %)Get the Frame Counter Uplink.|(% style="width:113px" %)0(((
835 835  OK
836 836  )))
... ... @@ -838,6 +838,8 @@
838 838  
839 839  )))
840 840  
808 +(% style="display:none" %) (%%)
809 +
841 841  == 7.7 Join Accept Delay1 ==
842 842  
843 843  
... ... @@ -844,11 +844,11 @@
844 844  Feature: Get or Set the Join Accept Delay between the end of the Tx and the Join Rx Window 1 in ms.
845 845  
846 846  
847 -(% style="color:blue" %)**AT Command:AT+JN1DL**
816 +(% style="color:blue" %)**AT Command:  AT+JN1DL**
848 848  
849 -(% border="1" style="background-color:#ffffcc; color:green; width:537.222px" %)
850 -|=(% colspan="3" style="width: 534px;" %)AT+JN1DL
851 -|(% style="width:164px" %)**Command Example**|(% style="width:229px" %)**Function**|(% style="width:140px" %)**Response**
818 +(% border="1" style="background-color:#f2f2f2; width:537.222px" %)
819 +|=(% colspan="3" style="width: 534px;background-color:#D9E2F3;color:#0070C0" %)AT+JN1DL
820 +|(% style="color:#0070c0; width:164px" %)**Command Example**|(% style="color:#0070c0; width:229px" %)**Function**|(% style="color:#0070c0; width:140px" %)**Response**
852 852  |(% style="width:164px" %)AT+JN1DL=?|(% style="width:229px" %)Get the Join Accept Delay.|(% style="width:140px" %)5000(((
853 853  OK
854 854  )))
... ... @@ -856,16 +856,19 @@
856 856  
857 857  )))
858 858  
828 +(% style="display:none" %) (%%)
829 +
859 859  == 7.8 Join Accept Delay2 ==
860 860  
832 +
861 861  Feature: Get or Set the Join Accept Delay between the end of the Tx and the Join Rx Window 2 in ms.
862 862  
863 863  
864 -(% style="color:blue" %)**AT Command:AT+JN2DL**
836 +(% style="color:blue" %)**AT Command:  AT+JN2DL**
865 865  
866 -(% border="1" style="background-color:#ffffcc; color:green; width:538.222px" %)
867 -|=(% colspan="3" style="width: 535px;" %)AT+JN2DL
868 -|(% style="width:160px" %)**Command Example**|(% style="width:228px" %)**Function**|(% style="width:146px" %)**Response**
838 +(% border="1" style="background-color:#f2f2f2; width:538.222px" %)
839 +|=(% colspan="3" style="width: 535px;background-color:#D9E2F3;color:#0070C0" %)AT+JN2DL
840 +|(% style="color:#0070c0; width:160px" %)**Command Example**|(% style="color:#0070c0; width:228px" %)**Function**|(% style="color:#0070c0; width:146px" %)**Response**
869 869  |(% style="width:160px" %)AT+JN2DL=?|(% style="width:228px" %)Get the Join Accept Delay.|(% style="width:146px" %)6000(((
870 870  OK
871 871  )))
... ... @@ -873,6 +873,8 @@
873 873  
874 874  )))
875 875  
848 +(% style="display:none" %) (%%)
849 +
876 876  == 7.9 Public Network Mode ==
877 877  
878 878  
... ... @@ -881,11 +881,11 @@
881 881  (% style="color:red" %)**Notice: If user build their own LoRaWAN server but still use syncword=0x34, this is still considered a public LoRaWAN network.**
882 882  
883 883  
884 -(% style="color:blue" %)**AT Command:AT+PNM**
858 +(% style="color:blue" %)**AT Command:  AT+PNM**
885 885  
886 -(% border="1" style="background-color:#ffffcc; color:green; width:667.222px" %)
887 -|=(% colspan="3" style="width: 664px;" %)AT+PNM
888 -|(% style="width:166px" %)**Command Example**|(% style="width:225px" %)**Function**|(% style="width:272px" %)**Response**
860 +(% border="1" style="background-color:#f2f2f2; width:667.222px" %)
861 +|=(% colspan="3" style="width: 664px;background-color:#D9E2F3;color:#0070C0" %)AT+PNM
862 +|(% style="color:#0070c0; width:166px" %)**Command Example**|(% style="color:#0070c0; width:225px" %)**Function**|(% style="color:#0070c0; width:272px" %)**Response**
889 889  |(% style="width:166px" %)AT+PNM=?|(% style="width:225px" %)Get the public network mode.|(% style="width:272px" %)1(((
890 890  OK
891 891  )))
... ... @@ -900,6 +900,8 @@
900 900  )))
901 901  |(% style="width:166px" %)AT+PNM=0|(% style="width:225px" %)Set to use private network autoset syncword=0x12|(% style="width:272px" %)
902 902  
877 +(% style="display:none" %) (%%)
878 +
903 903  == 7.10 Receive Delay1 ==
904 904  
905 905  
... ... @@ -906,11 +906,11 @@
906 906  Feature: Get or Set the delay between the end of the Tx and the Rx Window 1 in ms
907 907  
908 908  
909 -(% style="color:blue" %)**AT Command:AT+RX1DL**
885 +(% style="color:blue" %)**AT Command: AT+RX1DL**
910 910  
911 -(% border="1" style="background-color:#ffffcc; color:green; width:408.222px" %)
912 -|=(% colspan="3" style="width: 405px;" %)AT+RX1DL
913 -|(% style="width:155px" %)**Command Example**|(% style="width:128px" %)**Function**|(% style="width:122px" %)**Response**
887 +(% border="1" style="background-color:#f2f2f2; width:408.222px" %)
888 +|=(% colspan="3" style="width: 405px;background-color:#D9E2F3;color:#0070C0" %)AT+RX1DL
889 +|(% style="color:#0070c0; width:155px" %)**Command Example**|(% style="color:#0070c0; width:128px" %)**Function**|(% style="color:#0070c0; width:122px" %)**Response**
914 914  |(% style="width:155px" %)AT+RX1DL=?|(% style="width:128px" %)Get the delay.|(% style="width:122px" %)1000(((
915 915  OK
916 916  )))
... ... @@ -918,6 +918,8 @@
918 918  
919 919  )))
920 920  
897 +(% style="display:none" %) (%%)
898 +
921 921  == 7.11 Receive Delay2 ==
922 922  
923 923  
... ... @@ -924,11 +924,11 @@
924 924  Feature: Get or Set the delay between the end of the Tx and the Rx Window 2 in ms
925 925  
926 926  
927 -(% style="color:blue" %)**AT Command:AT+RX2DL**
905 +(% style="color:blue" %)**AT Command: AT+RX2DL**
928 928  
929 -(% border="1" style="background-color:#ffffcc; color:green; width:481.222px" %)
930 -|=(% colspan="3" style="width: 478px;" %)AT+RX2DL
931 -|(% style="width:175px" %)**Command Example**|(% style="width:152px" %)**Function**|(% style="width:150px" %)**Response**
907 +(% border="1" style="background-color:#f2f2f2; width:481.222px" %)
908 +|=(% colspan="3" style="width: 478px;background-color:#D9E2F3;color:#0070C0" %)AT+RX2DL
909 +|(% style="color:#0070c0; width:175px" %)**Command Example**|(% style="color:#0070c0; width:152px" %)**Function**|(% style="color:#0070c0; width:150px" %)**Response**
932 932  |(% style="width:175px" %)AT+RX2DL=?|(% style="width:152px" %)Get the delay.|(% style="width:150px" %)2000(((
933 933  OK
934 934  )))
... ... @@ -936,6 +936,8 @@
936 936  
937 937  )))
938 938  
917 +(% style="display:none" %) (%%)
918 +
939 939  == 7.12 Rx2 Window Data Rate ==
940 940  
941 941  
... ... @@ -942,11 +942,11 @@
942 942  Feature: Get or Set the Rx2 window data rate (0-7 corresponding to DR_X)
943 943  
944 944  
945 -(% style="color:blue" %)**AT Command:AT+RX2DR**
925 +(% style="color:blue" %)**AT Command:  AT+RX2DR**
946 946  
947 -(% border="1" style="background-color:#ffffcc; color:green; width:525.222px" %)
948 -|=(% colspan="3" style="width: 522px;" %)AT+RX2DR
949 -|(% style="width:160px" %)**Command Example**|(% style="width:232px" %)**Function**|(% style="width:130px" %)**Response**
927 +(% border="1" style="background-color:#f2f2f2; width:525.222px" %)
928 +|=(% colspan="3" style="width: 522px;background-color:#D9E2F3;color:#0070C0" %)AT+RX2DR
929 +|(% style="color:#0070c0; width:160px" %)**Command Example**|(% style="color:#0070c0; width:232px" %)**Function**|(% style="color:#0070c0; width:130px" %)**Response**
950 950  |(% style="width:160px" %)AT+RX2DR=?|(% style="width:232px" %)Get the Rx2 window data rate.|(% style="width:130px" %)2(((
951 951  OK
952 952  )))
... ... @@ -954,6 +954,8 @@
954 954  
955 955  )))
956 956  
937 +(% style="display:none" %) (%%)
938 +
957 957  == 7.13 Rx2 Window Frequency ==
958 958  
959 959  
... ... @@ -960,11 +960,11 @@
960 960  Feature: Get or Set the Rx2 window frequency
961 961  
962 962  
963 -(% style="color:blue" %)**AT Command:AT+RX2FQ**
945 +(% style="color:blue" %)**AT Command:  AT+RX2FQ**
964 964  
965 -(% border="1" style="background-color:#ffffcc; color:green; width:587.222px" %)
966 -|=(% colspan="3" style="width: 584px;" %)AT+RX2FQ
967 -|(% style="width:183px" %)**Command Example**|(% style="width:240px" %)**Function**|(% style="width:160px" %)**Response**
947 +(% border="1" style="background-color:#f2f2f2; width:587.222px" %)
948 +|=(% colspan="3" style="width: 584px;background-color:#D9E2F3;color:#0070C0" %)AT+RX2FQ
949 +|(% style="color:#0070c0; width:183px" %)**Command Example**|(% style="color:#0070c0; width:240px" %)**Function**|(% style="color:#0070c0; width:160px" %)**Response**
968 968  |(% style="width:183px" %)AT+RX2FQ=?|(% style="width:240px" %)Get the Rx2 window frequency.|(% style="width:160px" %)434665000(((
969 969  OK
970 970  )))
... ... @@ -972,19 +972,21 @@
972 972  
973 973  )))
974 974  
957 +(% style="display:none" %) (%%)
958 +
975 975  == 7.14 Transmit Power ==
976 976  
977 977  
978 978  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. )
979 979  
980 -Notice: Transmit Power might be changed by ADR from LoRaWAN server. So manually change TXP also remember to set AT+ADR=0 in sensor
964 +(% 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**
981 981  
982 982  
983 -(% style="color:blue" %)**AT Command:AT+TXP**
967 +(% style="color:blue" %)**AT Command:  AT+TXP**
984 984  
985 -(% border="1" style="background-color:#ffffcc; color:green; width:465.222px" %)
986 -|=(% colspan="3" style="width: 462px;" %)AT+TXP
987 -|(% style="width:161px" %)**Command Example**|(% style="width:189px" %)**Function**|(% style="width:112px" %)**Response**
969 +(% border="1" style="background-color:#f2f2f2; width:465.222px" %)
970 +|=(% colspan="3" style="width: 462px;background-color:#D9E2F3;color:#0070C0" %)AT+TXP
971 +|(% style="color:#0070c0; width:161px" %)**Command Example**|(% style="color:#0070c0; width:189px" %)**Function**|(% style="color:#0070c0; width:112px" %)**Response**
988 988  |(% style="width:161px" %)AT+TXP=?|(% style="width:189px" %)Get the Transmit Power.|(% style="width:112px" %)0(((
989 989  OK
990 990  )))
... ... @@ -997,8 +997,9 @@
997 997  If the downlink payload=22000100, it means setting the TXP to 0.
998 998  
999 999  * **Example 1**: Downlink Payload: **22000102**  ~/~/ Set AT+TXP=2.
1000 -* **Example 2**: Downlink Payload: **220000FF**  ~/~/ Set AT+TXP=0.
984 +* **Example 2**: Downlink Payload: **22000000**  ~/~/ Set AT+TXP=0.
1001 1001  
986 +(% style="display:none" %) (%%)
1002 1002  
1003 1003  == 7.15 RSSI of the Last Received Packet ==
1004 1004  
... ... @@ -1008,13 +1008,15 @@
1008 1008  
1009 1009  (% style="color:blue" %)**AT Command:AT+RSSI**
1010 1010  
1011 -(% border="1" style="background-color:#ffffcc; color:green; width:557.222px" %)
1012 -|=(% colspan="3" style="width: 554px;" %)AT+RSSI
1013 -|(% style="width:164px" %)**Command Example**|(% style="width:289px" %)**Function**|(% style="width:100px" %)**Response**
996 +(% border="1" style="background-color:#f2f2f2; width:557.222px" %)
997 +|=(% colspan="3" style="width: 554px;background-color:#D9E2F3;color:#0070C0" %)AT+RSSI
998 +|(% style="color:#0070c0; width:164px" %)**Command Example**|(% style="color:#0070c0; width:289px" %)**Function**|(% style="color:#0070c0; width:100px" %)**Response**
1014 1014  |(% style="width:164px" %)AT+RSSI=?|(% style="width:289px" %)Get the RSSI of the last received packet.|(% style="width:100px" %)0(((
1015 1015  OK
1016 1016  )))
1017 1017  
1003 +(% style="display:none" %) (%%)
1004 +
1018 1018  == 7.16 SNR of the Last Received Packet ==
1019 1019  
1020 1020  
... ... @@ -1021,15 +1021,17 @@
1021 1021  Feature: Get the SNR of the last received packet
1022 1022  
1023 1023  
1024 -(% style="color:blue" %)**AT Command:AT+SNR**
1011 +(% style="color:blue" %)**AT Command:  AT+SNR**
1025 1025  
1026 -(% border="1" style="background-color:#ffffcc; color:green; width:571.222px" %)
1027 -|=(% colspan="3" style="width: 568px;" %)AT+SNR
1028 -|(% style="width:164px" %)**Command Example**|(% style="width:290px" %)**Function**|(% style="width:113px" %)**Response**
1013 +(% border="1" style="background-color:#f2f2f2; width:571.222px" %)
1014 +|=(% colspan="3" style="width: 568px;background-color:#D9E2F3;color:#0070C0" %)AT+SNR
1015 +|(% style="color:#0070c0; width:164px" %)**Command Example**|(% style="color:#0070c0; width:290px" %)**Function**|(% style="color:#0070c0; width:113px" %)**Response**
1029 1029  |(% style="width:164px" %)AT+SNR=?|(% style="width:290px" %)Get the RSSI of the last received packet.|(% style="width:113px" %)0(((
1030 1030  OK
1031 1031  )))
1032 1032  
1020 +(% style="display:none" %) (%%)
1021 +
1033 1033  == 7.17 Application Port ==
1034 1034  
1035 1035  
... ... @@ -1038,9 +1038,9 @@
1038 1038  
1039 1039  (% style="color:blue" %)**AT Command: AT+PORT**
1040 1040  
1041 -(% border="1" style="background-color:#ffffcc; color:green; width:500.222px" %)
1042 -|=(% colspan="3" style="width: 497px;" %)AT+PORT
1043 -|(% style="width:157px" %)**Command Example**|(% style="width:204px" %)**Function**|(% style="width:135px" %)**Response**
1030 +(% border="1" style="background-color:#f2f2f2; width:500.222px" %)
1031 +|=(% colspan="3" style="width: 497px;background-color:#D9E2F3;color:#0070C0" %)AT+PORT
1032 +|(% style="color:#0070c0; width:157px" %)**Command Example**|(% style="color:#0070c0; width:204px" %)**Function**|(% style="color:#0070c0; width:135px" %)**Response**
1044 1044  |(% style="width:157px" %)AT+PORT=?|(% style="width:204px" %)Get the application port|(% style="width:135px" %)21(((
1045 1045  OK
1046 1046  )))
... ... @@ -1055,6 +1055,7 @@
1055 1055  * **Example 1**: Downlink Payload: **2301**  ~/~/ set the application port to 1
1056 1056  * **Example 2**: Downlink Payload:** 2305**  ~/~/ set the application port to 5
1057 1057  
1047 +(% style="display:none" %) (%%)
1058 1058  
1059 1059  == 7.18 Single Channel Mode ==
1060 1060  
... ... @@ -1064,14 +1064,16 @@
1064 1064  
1065 1065  (% style="color:blue" %)**AT Command: AT+CHS**
1066 1066  
1067 -(% border="1" style="background-color:#ffffcc; color:green; width:603.222px" %)
1068 -|=(% colspan="3" style="width: 600px;" %)AT+CHS
1069 -|(% style="width:182px" %)**Command Example**|(% style="width:295px" %)**Function**|(% style="width:122px" %)**Response**
1057 +(% border="1" style="background-color:#f2f2f2; width:603.222px" %)
1058 +|=(% colspan="3" style="width: 600px;background-color:#D9E2F3;color:#0070C0" %)AT+CHS
1059 +|(% style="color:#0070c0; width:182px" %)**Command Example**|(% style="color:#0070c0; width:295px" %)**Function**|(% style="color:#0070c0; width:122px" %)**Response**
1070 1070  |(% style="width:182px" %)AT+CHS=?|(% style="width:295px" %)Get Frequency for Single Channel Mode|(% style="width:122px" %)0(((
1071 1071  OK
1072 1072  )))
1073 1073  |(% style="width:182px" %)AT+CHS=868100000|(% style="width:295px" %)Set Frequency for Single Channel Mode|(% style="width:122px" %)OK
1074 1074  
1065 +(% style="display:none" %) (%%)
1066 +
1075 1075  == 7.19 Eight Channel Mode ==
1076 1076  
1077 1077  
... ... @@ -1080,9 +1080,9 @@
1080 1080  
1081 1081  (% style="color:blue" %)**AT Command: AT+CHE**
1082 1082  
1083 -(% border="1" style="background-color:#ffffcc; color:green; width:710.222px" %)
1084 -|=(% colspan="3" style="width: 707px;" %)AT+CHE
1085 -|(% style="width:160px" %)**Command Example**|(% style="width:198px" %)**Function**|(% style="width:349px" %)**Response**
1075 +(% border="1" style="background-color:#f2f2f2; width:710.222px" %)
1076 +|=(% colspan="3" style="width: 707px;background-color:#D9E2F3;color:#0070C0" %)AT+CHE
1077 +|(% style="color:#0070c0; width:160px" %)**Command Example**|(% style="color:#0070c0; width:198px" %)**Function**|(% style="color:#0070c0; width:349px" %)**Response**
1086 1086  |(% style="width:160px" %)AT+CHE=?|(% style="width:198px" %)Get eight channels mode|(% style="width:349px" %)1(((
1087 1087  902.3 902.5 902.7 902.9 903.1 903.3 903.5 903.7
1088 1088  
... ... @@ -1090,7 +1090,7 @@
1090 1090  )))
1091 1091  |(% style="width:160px" %)AT+CHE=1|(% style="width:198px" %)Set eight channels mode|(% style="width:349px" %)OK
1092 1092  
1093 -(% style="color:blue" %)**Downlink Command: 0x24**
1085 +(% style="color:blue" %)**Downlink Command: 0x24 (LHT65,LHT65N Downlink Command:0x07)**
1094 1094  
1095 1095  Format: Command Code (0x24) followed by 1 bytes channel value.
1096 1096  
... ... @@ -1099,6 +1099,7 @@
1099 1099  * **Example 1**: Downlink Payload: 2401  ~/~/ set channel mode to 1
1100 1100  * **Example 2**: Downlink Payload: 2405  ~/~/ set channel mode to 5
1101 1101  
1094 +(% style="display:none" %) (%%)
1102 1102  
1103 1103  == 7.20 Get or Set RXwindows1 timeout ==
1104 1104  
... ... @@ -1108,31 +1108,27 @@
1108 1108  
1109 1109  (% style="color:blue" %)**AT Command: AT+RX1WTO**
1110 1110  
1111 -(% border="1" style="background-color:#ffffcc; color:green; width:460.222px" %)
1112 -|=(% colspan="3" style="width: 457px;" %)AT+ RX1WTO
1113 -|(% style="width:163px" %)**Command Example**|(% style="width:201px" %)**Function**|(% style="width:93px" %)**Response**
1104 +(% border="1" style="background-color:#f2f2f2; width:460.222px" %)
1105 +|=(% colspan="3" style="width: 457px;background-color:#D9E2F3;color:#0070C0" %)AT+ RX1WTO
1106 +|(% style="color:#0070c0; width:163px" %)**Command Example**|(% style="color:#0070c0; width:201px" %)**Function**|(% style="color:#0070c0; width:93px" %)**Response**
1114 1114  |(% style="width:163px" %)AT+RX1WTO=?|(% style="width:201px" %)Get RXwindows1 timeout|(% style="width:93px" %)14(((
1115 1115  OK
1116 1116  )))
1117 1117  |(% style="width:163px" %)AT+RX1WTO=60|(% style="width:201px" %)Set RXwindows1 timeout|(% style="width:93px" %)OK
1118 1118  
1119 -(((
1120 -
1112 +(% style="display:none" %) (%%)
1121 1121  
1122 -**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.
1123 -
1124 -
1114 +(((
1115 +(% 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.
1125 1125  )))
1126 1126  
1127 1127  [[image:image-20220526162535-1.png]]
1128 1128  
1129 -
1130 1130  (((
1131 1131  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.
1132 -
1133 -
1134 1134  )))
1135 1135  
1124 +
1136 1136  == 7.21 Get or Set RXwindows2 timeout ==
1137 1137  
1138 1138  
... ... @@ -1141,14 +1141,16 @@
1141 1141  
1142 1142  (% style="color:blue" %)**AT Command: AT+RX2WTO**
1143 1143  
1144 -(% border="1" style="background-color:#ffffcc; color:green; width:497.222px" %)
1145 -|=(% colspan="3" style="width: 494px;" %)AT+ RX2WTO
1146 -|(% style="width:190px" %)**Command Example**|(% style="width:199px" %)**Function**|(% style="width:104px" %)**Response**
1133 +(% border="1" style="background-color:#f2f2f2; width:497.222px" %)
1134 +|=(% colspan="3" style="width: 494px;background-color:#D9E2F3;color:#0070C0" %)AT+ RX2WTO
1135 +|(% style="color:#0070c0; width:190px" %)**Command Example**|(% style="color:#0070c0; width:199px" %)**Function**|(% style="color:#0070c0; width:104px" %)**Response**
1147 1147  |(% style="width:190px" %)AT+RX2WTO=?|(% style="width:199px" %)Get RXwindows2 timeout|(% style="width:104px" %)7(((
1148 1148  OK
1149 1149  )))
1150 1150  |(% style="width:190px" %)AT+RX2WTO=20|(% style="width:199px" %)Set RXwindows2 timeout|(% style="width:104px" %)OK
1151 1151  
1141 +(% style="display:none" %) (%%)
1142 +
1152 1152  == 7.22 Setting up uplinkdwelltime (as923, au915) ==
1153 1153  
1154 1154  
... ... @@ -1157,9 +1157,9 @@
1157 1157  
1158 1158  (% style="color:blue" %)**AT Command: AT+DWELLT**
1159 1159  
1160 -(% border="1" style="background-color:#ffffcc; color:green; width:497.222px" %)
1161 -|=(% colspan="3" style="width: 494px;" %)AT+DWELLT
1162 -|(% style="width:183px" %)**Command Example**|(% style="width:179px" %)**Function**|(% style="width:131px" %)**Response**
1151 +(% border="1" style="background-color:#f2f2f2; width:497.222px" %)
1152 +|=(% colspan="3" style="width: 494px;background-color:#D9E2F3;color:#0070C0" %)AT+DWELLT
1153 +|(% style="color:#0070c0; width:183px" %)**Command Example**|(% style="color:#0070c0; width:179px" %)**Function**|(% style="color:#0070c0; width:131px" %)**Response**
1163 1163  |(% style="width:183px" %)AT+DWELLT=?|(% style="width:179px" %)Get uplinkdwelltime|(% style="width:131px" %)1(((
1164 1164  OK
1165 1165  )))
... ... @@ -1174,6 +1174,7 @@
1174 1174  * **Example 1**: Downlink Payload: **2501**  ~/~/ set uplinkdwelltime to 1
1175 1175  * **Example 2**: Downlink Payload: **2500**  ~/~/ set uplinkdwelltime to 0
1176 1176  
1168 +(% style="display:none" %) (%%)
1177 1177  
1178 1178  == 7.23 Set Packet Receiving Response Level ==
1179 1179  
... ... @@ -1181,7 +1181,7 @@
1181 1181  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.
1182 1182  
1183 1183  
1184 -**RPL value:**
1176 +(% style="color:blue" %)**RPL value:**
1185 1185  
1186 1186  * **AT+RPL=0:** Device won't immediately reply any downlink commands from platform.
1187 1187  * **AT+RPL=1:** Device will immediately reply message to Unconfirmed Data Down. Payload is 0x00.
... ... @@ -1189,7 +1189,7 @@
1189 1189  * **AT+RPL=3:** Device will immediately reply message to MAC Command. Payload is 0x00 and requied response header for this command.
1190 1190  * **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.
1191 1191  
1192 -**Case Analyes:**
1184 +(% style="color:blue" %)**Case Analyes:**
1193 1193  
1194 1194  * For Class A devices, AT+RPL=0 is ok. that is defaut settings in software.
1195 1195  * For Class C devices used in ChirpStack, need to set AT+RPL=4 because Chirpstack require immedietely reply message to MAC Command.
... ... @@ -1197,9 +1197,9 @@
1197 1197  
1198 1198  (% style="color:blue" %)**AT Command: AT+RPL**
1199 1199  
1200 -(% border="1" style="background-color:#ffffcc; color:green; width:536.222px" %)
1201 -|=(% colspan="3" style="width: 533px;" %)AT+RPL
1202 -|(% style="width:160px" %)**Command Example**|(% style="width:263px" %)**Function**|(% style="width:109px" %)**Response**
1192 +(% border="1" style="background-color:#f2f2f2; width:536.222px" %)
1193 +|=(% colspan="3" style="width: 533px;background-color:#D9E2F3;color:#0070C0" %)AT+RPL
1194 +|(% style="color:#0070c0; width:160px" %)**Command Example**|(% style="color:#0070c0; width:263px" %)**Function**|(% style="color:#0070c0; width:109px" %)**Response**
1203 1203  |(% style="width:160px" %)AT+RPL=?|(% style="width:263px" %)Get packet receiving response level|(% style="width:109px" %)1(((
1204 1204  OK
1205 1205  )))
... ... @@ -1214,6 +1214,7 @@
1214 1214  * **Example 1**: Downlink Payload: **2101**  ~/~/ set packet receiving response level to 1
1215 1215  * **Example 2**: Downlink Payload: **2102**  ~/~/ set packet receiving response level to 2
1216 1216  
1209 +(% style="display:none" %) (%%)
1217 1217  
1218 1218  == 7.24 Controls NBTrans in unconfirmed uplink mode(LWS007 NBTrans:Set retransmission packets) ==
1219 1219  
... ... @@ -1220,9 +1220,9 @@
1220 1220  
1221 1221  (% style="color:blue" %)**AT Command: AT+SETMAXNBTRANS **
1222 1222  
1223 -(% border="1" style="background-color:#ffffcc; color:green; width:589px" %)
1224 -|=(% colspan="3" style="width: 586px;" %)AT+**SETMAXNBTRANS**
1225 -|(% style="width:227px" %)**Command Example**|(% style="width:300px" %)**Function**|(% style="width:87px" %)**Response**
1216 +(% border="1" style="background-color:#f2f2f2; width:589px" %)
1217 +|=(% colspan="3" style="width: 586px;background-color:#D9E2F3;color:#0070C0" %)AT+**SETMAXNBTRANS**
1218 +|(% style="color:#0070c0; width:227px" %)**Command Example**|(% style="color:#0070c0; width:300px" %)**Function**|(% style="color:#0070c0; width:87px" %)**Response**
1226 1226  |(% style="width:227px" %)**AT+SETMAXNBTRANS=1,0**|(% style="width:300px" %)Value1: set the maximum NBTrans.|(% style="width:87px" %)1(((
1227 1227  OK
1228 1228  )))
... ... @@ -1245,6 +1245,7 @@
1245 1245  * Example 1: Downlink Payload: 330100  ~/~/ Set AT+SETMAXNBTRANS=1,0
1246 1246  * Example 2: Downlink Payload: 330201  ~/~/ Set AT+SETMAXNBTRANS=2,1
1247 1247  
1241 +(% style="display:none" %) (%%)
1248 1248  
1249 1249  == 7.25 Device offline rejoining (LWS007) ==
1250 1250  
... ... @@ -1251,9 +1251,14 @@
1251 1251  
1252 1252  (% style="color:blue" %)**AT Command: AT+DDETECT**
1253 1253  
1254 -(% border="1" style="background-color:#ffffcc; color:green; width:710.222px" %)
1255 -|=(% colspan="3" style="width: 707px;" %)AT+**DDETECT**
1256 -|(% style="width:160px" %)**Command Example**|(% style="width:198px" %)**Function**|(% style="width:349px" %)**Response**
1248 +AT+DDETECT=<Flag>,<ACK_Timout_1>,<ACK_Timout_2> (Default Value: AT+DDETECT=1,1440,2880)
1249 +
1250 +* ACK_Timout_1: Unit: min
1251 +* ACK_Timout_2: Unit: min
1252 +
1253 +(% border="1" style="background-color:#f2f2f2; width:710.222px" %)
1254 +|=(% colspan="3" style="width: 707px;background-color:#D9E2F3;color:#0070C0" %)AT+**DDETECT**
1255 +|(% style="color:#0070c0; width:160px" %)**Command Example**|(% style="color:#0070c0; width:198px" %)**Function**|(% style="color:#0070c0; width:349px" %)**Response**
1257 1257  |(% style="width:160px" %)(((
1258 1258  AT+DDETECT=1,1440,2880
1259 1259  
... ... @@ -1282,14 +1282,19 @@
1282 1282  OK
1283 1283  )))
1284 1284  
1285 -(% style="color:blue" %)**Downlink Command: 0x33**
1284 +(% style="color:blue" %)**Downlink Command: 0x32**
1286 1286  
1287 1287  Format: Command Code (0x32) followed by 2 bytes mode value.
1288 1288  
1289 -If the downlink payload=320105A00B40, it means set end node to use confirm mode, while type code is 33.
1288 +If the downlink payload=320105A00B40, it means set end node to use confirm mode, while type code is 32.
1290 1290  
1291 -* **Example 1:** Downlink Payload: 320105A00B40  ~/~/ Set AT+DDETECT=1,1440,2880
1290 +* **Example 1:** Downlink Payload: 320105A00B40  ~/~/ Set AT+DDETECT=1,1440,2880
1291 +** 0x01 : Flag
1292 +** 0x05A0: ACK_Timout_1 : 1440minutes (24 hours)
1293 +** 0x0B40: ACK_Timout_2 : 2880minutes (48 hours)
1294 +** **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.
1292 1292  
1296 +(% style="display:none" %) (%%)
1293 1293  
1294 1294  == 7.26 Request the server to send an ACK ==
1295 1295  
... ... @@ -1296,33 +1296,34 @@
1296 1296  
1297 1297  (% style="color:blue" %)**AT Command: AT+PNACKMD**
1298 1298  
1299 -(% border="1" style="background-color:#ffffcc; color:green; width:536.222px" %)
1300 -|=(% colspan="3" style="width: 533px;" %)**AT+PNACKMD**
1301 -|(% style="width:160px" %)**Command Example**|(% style="width:263px" %)**Function**|(% style="width:109px" %)**Response**
1303 +(% border="1" style="background-color:#f2f2f2; width:536.222px" %)
1304 +|=(% colspan="3" style="width: 533px;background-color:#D9E2F3;color:#0070C0" %)**AT+PNACKMD**
1305 +|(% style="color:#0070c0; width:160px" %)**Command Example**|(% style="color:#0070c0; width:263px" %)**Function**|(% style="color:#0070c0; width:109px" %)**Response**
1302 1302  |(% 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(((
1303 1303  OK
1304 1304  )))
1305 1305  |(% style="width:160px" %)**AT+PNACKMD=0**|(% style="width:263px" %)off request the server to send an ACK|(% style="width:109px" %)(((
1306 1306  0
1307 -
1308 1308  OK
1309 1309  )))
1310 1310  
1314 +(% style="display:none" %) (%%)
1315 +
1311 1311  == 7.27 Adjust network rejoining interval ==
1312 1312  
1313 1313  
1314 1314  (% style="color:blue" %)**AT Command: AT+RJTDC**
1315 1315  
1316 -(% border="1" style="background-color:#ffffcc; color:green; width:727.222px" %)
1317 -|=(% colspan="3" style="width: 724px;" %)AT+RJTDC
1318 -|(% style="width:165px" %)**Command Example**|(% style="width:227px" %)**Function**|(% style="width:329px" %)**Response**
1319 -|(% style="width:165px" %)AT+RJTDC=?|(% style="width:227px" %)Show the ReJoin data transmission interval in min|(% style="width:329px" %)30000(((
1321 +(% border="1" style="background-color:#f2f2f2; width:727.222px" %)
1322 +|=(% colspan="3" style="width: 724px;background-color:#D9E2F3;color:#0070C0" %)AT+RJTDC
1323 +|(% style="color:#0070c0; width:165px" %)**Command Example**|(% style="color:#0070c0; width:227px" %)**Function**|(% style="color:#0070c0; width:329px" %)**Response**
1324 +|(% style="width:165px" %)AT+RJTDC=?|(% style="width:227px" %)Show the ReJoin data transmission interval in min|(% style="width:329px" %)30(((
1320 1320  OK
1321 1321  
1322 -the interval is 30000ms = 30s
1327 +the interval is 30 min
1323 1323  )))
1324 -|(% style="width:165px" %)AT+RJTDC=60000|(% style="width:227px" %)Set the ReJoin data transmission interval in min|(% style="width:329px" %)OK(((
1325 -Set the ReJoin data transmission interval to 60000ms = 60 seconds
1329 +|(% style="width:165px" %)AT+RJTDC=60|(% style="width:227px" %)Set the ReJoin data transmission interval in min|(% style="width:329px" %)OK(((
1330 +Set the ReJoin data transmission interval to 60 min
1326 1326  )))
1327 1327  
1328 1328  (% style="color:blue" %)**Downlink Command: 0x26**
... ... @@ -1334,17 +1334,19 @@
1334 1334  * **Example 1:** Downlink Payload: 26000A  ~/~/ Set AT+RJTDC=10
1335 1335  * **Example 2: **Downlink Payload: 260002  ~/~/ Set AT+RJTDC=2
1336 1336  
1342 +(% style="display:none" %) (%%)
1337 1337  
1338 1338  = 8. AT Commands Combination =
1339 1339  
1340 -
1341 1341  == 8.1 Set a fix RX2DR for downlink window ==
1342 1342  
1343 1343  
1344 -* **AT+ADR=0             ** **~-~->**  Disable ADR first
1345 -* **AT+RX2DR=xxxx**  **~-~->**  Set xxxx to your wanted DataRate
1349 +* (% style="color:blue" %)**AT+ADR=0             **(%%) **~-~->**  Disable ADR first
1346 1346  
1351 +* (% style="color:blue" %)**AT+RX2DR=xxxx**   (%%) **~-~->**  Set xxxx to your wanted DataRate
1347 1347  
1353 +(% style="display:none" %) (%%)
1354 +
1348 1348  == 8.2 Use Downlink Command to set a fix uplink DR ==
1349 1349  
1350 1350  
... ... @@ -1353,7 +1353,9 @@
1353 1353  **Same as:**
1354 1354  
1355 1355  * AT+ADR=0  [[Reference>>||anchor="H7.1AdaptiveDataRate"]]
1363 +
1356 1356  * AT+DR=5  [[Reference>>||anchor="H7.4DataRate"]]
1365 +
1357 1357  * AT+TXP=0  [[Reference>>||anchor="H7.14TransmitPower"]]
1358 1358  
1359 1359  
Copyright ©2010-2024 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0