Changes for page End Device AT Commands and Downlink Command
Last modified by kai on 2024/09/06 10:00
Change comment:
There is no comment for this version
Summary
-
Page properties (2 modified, 0 added, 0 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. Edwin1 +XWiki.Xiaoling - Content
-
... ... @@ -10,39 +10,34 @@ 10 10 Dragino LoRaWAN End Node support two types of AT Commands and Downlink Commands: 11 11 12 12 * (% style="color:blue" %)**Common Commands:** (%%) They should be available for each sensor, such as: change uplink interval, reset device. 13 + 13 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 20 + 22 22 = 2. How to use AT Commands or Downlink command = 23 23 24 24 25 25 * **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 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 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" %) (%%) 32 + 31 31 = 3. Support End Node and firmware version = 32 32 33 33 34 -(% border="1" style="background-color:#ffffcc; color:green; width:966px" %) 35 -|=(% colspan="3" style="width: 963px;" %)((( 36 36 Dragino STM32 base hardware Firmware / LoRaWAN stack list 37 -))) 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** 38 38 |(% style="width:187px" %)((( 39 -**Model** 40 -)))|(% style="width:330px" %)((( 41 -**Description** 42 -)))|(% style="width:445px" %)((( 43 -**Firmware Version <~-~-> Stack Version** 44 -))) 45 -|(% style="width:187px" %)((( 46 46 [[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]], 47 47 )))|(% style="width:330px" %)((( 48 48 Open Source Generic LoRaWAN Sensor Node ... ... @@ -102,6 +102,8 @@ 102 102 ))) 103 103 ))) 104 104 100 +(% style="display:none" %) (%%) 101 + 105 105 = 4. System Management Commands = 106 106 107 107 == 4.1 Change Uplink Interval == ... ... @@ -112,9 +112,8 @@ 112 112 113 113 (% style="color:blue" %)**AT Command: AT+TDC** 114 114 115 -(% border="1" style="background-color:#ffffcc; color:green; width:727.222px" %) 116 -|=(% colspan="3" style="width: 724px;" %)AT+TDC 117 -|(% style="width:165px" %)**Command Example**|(% style="width:227px" %)**Function**|(% style="width:329px" %)**Response** 112 +(% border="1" 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** 118 118 |(% style="width:165px" %)AT+TDC=?|(% style="width:227px" %)Show current transmit Interval|(% style="width:329px" %)30000((( 119 119 OK 120 120 ... ... @@ -125,8 +125,6 @@ 125 125 ))) 126 126 127 127 ((( 128 - 129 - 130 130 (% style="color:blue" %)**Downlink Command: 0x01** 131 131 132 132 Format: Command Code (0x01) followed by 3 bytes time value. ... ... @@ -137,8 +137,11 @@ 137 137 ))) 138 138 139 139 * **Example 1**: Downlink Payload:** 0100001E** ~/~/ Set Transmit Interval (TDC) = 30 seconds 134 + 140 140 * **Example 2**: Downlink Payload:** 0100003C** ~/~/ Set Transmit Interval (TDC) = 60 seconds 141 141 137 +(% style="display:none" %) (%%) 138 + 142 142 == 4.2 Reboot End Node == 143 143 144 144 ... ... @@ -145,11 +145,10 @@ 145 145 Feature: Reboot End Node to perform a new OTAA or ABP Join. 146 146 147 147 148 -(% style="color:blue" %)**AT Command: ATZ** 145 +(% style="color:blue" %)**AT Command: ATZ ~/~/ **(%%)Trig a reset of the MCU 149 149 150 -(% border="1" style="background-color:#ffffcc; color:green; width:546px" %) 151 -|=(% colspan="3" style="width: 543px;" %)ATZ: Trig a reset of the MCU 152 -|(% style="width:157px" %)**Command Example**|(% style="width:92px" %)**Function**|(% style="width:294px" %)**Response** 147 +(% border="1" 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** 153 153 |(% style="width:157px" %)ATZ|(% style="width:92px" %)Reset MCU|(% style="width:294px" %)((( 154 154 Device reset and show booting info 155 155 ... ... @@ -171,12 +171,10 @@ 171 171 ))) 172 172 173 173 ((( 174 -If the downlink payload=**04FF**, the end node will reboot. 175 - 176 - 177 - 170 +If the downlink payload=**04FF**, the end node will reboot. 178 178 ))) 179 179 173 + 180 180 == 4.3 Reset to factory Default == 181 181 182 182 ... ... @@ -183,11 +183,10 @@ 183 183 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. 184 184 185 185 186 -(% style="color:blue" %)**AT Command: AT+FDR** 180 +(% style="color:blue" %)**AT Command: AT+FDR ~/~/ **(%%)Reset to factory default 187 187 188 -(% border="1" style="background-color:#ffffcc; color:green; width:789px" %) 189 -|=(% colspan="3" style="width: 786px;" %)Reset to factory default 190 -|(% style="width:154px" %)**Command Example**|(% style="width:175px" %)**Function**|(% style="width:456px" %)**Response** 182 +(% border="1" 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** 191 191 |(% style="width:154px" %)AT+FDR|(% style="width:175px" %)Reset to factory default|(% style="width:456px" %)((( 192 192 Device reset to factory default parameters and show booting info 193 193 ... ... @@ -213,7 +213,6 @@ 213 213 ))) 214 214 215 215 216 - 217 217 == 4.4 Show Firmware Version == 218 218 219 219 ... ... @@ -220,11 +220,10 @@ 220 220 Feature: Show firmware version. No downlink command yet. 221 221 222 222 223 -(% style="color:blue" %)**AT Command: AT+VER** 215 +(% style="color:blue" %)**AT Command: AT+VER ~/~/ **(%%)Image Version and Frequency Band 224 224 225 -(% border="1" style="background-color:#ffffcc; color:green; width:542px" %) 226 -|=(% colspan="3" style="width: 539px;" %)AT+VER: Image Version and Frequency Band 227 -|(% style="width:157px" %)**Command Example**|(% style="width:295px" %)**Function**|(% style="width:86px" %)**Response** 217 +(% border="1" 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** 228 228 |(% style="width:157px" %)AT+VER=?|(% style="width:295px" %)Show Image version and Frequency Band|(% style="width:86px" %)((( 229 229 1.3 EU868 230 230 ... ... @@ -244,8 +244,7 @@ 244 244 ((( 245 245 246 246 247 - 248 -**xx: Software Type:** 238 +(% style="color:#037691" %)**xx: Software Type:** 249 249 ))) 250 250 251 251 * 0x00 01: LGT92 Version ... ... @@ -255,7 +255,7 @@ 255 255 ((( 256 256 257 257 258 -**yy: Frequency Band:** 248 +(% style="color:#037691" %)**yy: Frequency Band:** 259 259 ))) 260 260 261 261 * 0x01: EU868 ... ... @@ -272,13 +272,12 @@ 272 272 ((( 273 273 274 274 275 -**zz: Subband** 265 +(% style="color:#037691" %)**zz: Subband** 276 276 ))) 277 277 278 278 firmware version: v1.1.0 ~-~-> 110 279 279 280 280 281 - 282 282 == 4.5 Show System Configure == 283 283 284 284 ... ... @@ -285,25 +285,21 @@ 285 285 Feature: Show All configure. No downlink command yet. 286 286 287 287 288 -(% style="color:blue" %)**AT Command: AT+CFG** 277 +(% style="color:blue" %)**AT Command: AT+CFG ~/~/ **(%%)Print all configurations 289 289 290 -(% border="1" style="background-color:#ffffcc; color:green; width:599.222px" %) 291 -|=(% colspan="3" style="width: 596px;" %)AT+CFG: Print all configurations 292 -|(% style="width:160px" %)**Command Example**|(% style="width:154px" %)**Function**|(% style="width:280px" %)**Response** 279 +(% border="1" 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** 293 293 |(% style="width:160px" %)AT+CFG|(% style="width:154px" %)Show all configures|(% style="width:280px" %)((( 294 294 AT+DEUI = XX XX XX XX XX XX XX XX 295 - 296 296 AT+DADDR=XXXXXXXX 297 - 298 298 ………. 299 - 300 300 AT+RX2WTO=X 301 - 302 302 AT+CHS=868100000 303 - 304 304 OK 305 305 ))) 306 306 290 +(% style="display:none" %) (%%) 291 + 307 307 = 5. Keys, IDs and EUIs management = 308 308 309 309 == 5.1 Application EUI == ... ... @@ -314,14 +314,15 @@ 314 314 315 315 (% style="color:blue" %)**AT Command: AT+APPEUI** 316 316 317 -(% border="1" style="background-color:#ffffcc; color:green; width:686.222px" %) 318 -|=(% colspan="3" style="width: 683px;" %)AT+APPEUI 319 -|(% style="width:305px" %)**Command Example**|(% style="width:186px" %)**Function**|(% style="width:191px" %)**Response** 302 +(% border="1" style="background-color:#f2f2f2; width:686.222px" %) 303 +|(% style="background-color:#4f81bd; color:white; width:305px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:186px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:191px" %)**Response** 320 320 |(% style="width:305px" %)AT+APPEUI=?|(% style="width:186px" %)Get the Application EUI|(% style="width:191px" %)00 b3 d5 00 00 00 00 00((( 321 321 OK 322 322 ))) 323 323 |(% style="width:305px" %)AT+APPEUI=00 b3 d5 7e f0 00 4d 34|(% style="width:186px" %)Set the Application EUI|(% style="width:191px" %)OK 324 324 309 +(% style="display:none" %) (%%) 310 + 325 325 == 5.2 Application Key == 326 326 327 327 ... ... @@ -330,14 +330,15 @@ 330 330 331 331 (% style="color:blue" %)**AT Command: AT+APPKEY** 332 332 333 -(% border="1" style="background-color:#ffffcc; color:green; width:976.222px" %) 334 -|=(% colspan="3" style="width: 973px;" %)AT+APPKEY 335 -|(% style="width:441px" %)**Command Example**|(% style="width:180px" %)**Function**|(% style="width:350px" %)**Response** 319 +(% border="1" 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** 336 336 |(% 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((( 337 337 OK 338 338 ))) 339 339 |(% 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 340 340 326 +(% style="display:none" %) (%%) 327 + 341 341 == 5.3 Application Session Key == 342 342 343 343 ... ... @@ -346,9 +346,8 @@ 346 346 347 347 (% style="color:blue" %)**AT Command: AT+APPSKEY** 348 348 349 -(% border="1" style="background-color:#ffffcc; color:green; width:1040.22px" %) 350 -|=(% colspan="3" style="width: 1037px;" %)AT+APPSKEY 351 -|(% style="width:451px" %)**Command Example**|(% style="width:231px" %)**Function**|(% style="width:354px" %)**Response** 336 +(% border="1" 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** 352 352 |(% 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((( 353 353 OK 354 354 ))) ... ... @@ -356,6 +356,8 @@ 356 356 OK 357 357 ))) 358 358 345 +(% style="display:none" %) (%%) 346 + 359 359 == 5.4 Device Address == 360 360 361 361 ... ... @@ -364,9 +364,8 @@ 364 364 365 365 (% style="color:blue" %)**AT Command: AT+DADDR** 366 366 367 -(% border="1" style="background-color:#ffffcc; color:green; width:795.222px" %) 368 -|=(% colspan="3" style="width: 792px;" %)AT+DADDR 369 -|(% style="width:192px" %)**Command Example**|(% style="width:241px" %)**Function**|(% style="width:359px" %)**Response** 355 +(% border="1" 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** 370 370 |(% style="width:192px" %)AT+DADDR=?|(% style="width:241px" %)Get the Application Session Key.|(% style="width:359px" %)(While Error in format, return AT_PARAM_ERROR)((( 371 371 A8 40 41 FF 372 372 ... ... @@ -374,6 +374,8 @@ 374 374 ))) 375 375 |(% style="width:192px" %)AT+DADDR=A8 40 41 FF|(% style="width:241px" %)Set the Application Session Key.|(% style="width:359px" %)OK 376 376 364 +(% style="display:none" %) (%%) 365 + 377 377 == 5.5 Device EUI == 378 378 379 379 ... ... @@ -382,9 +382,8 @@ 382 382 383 383 (% style="color:blue" %)**AT Command: AT+DEUI** 384 384 385 -(% border="1" style="background-color:#ffffcc; color:green; width:1035.22px" %) 386 -|=(% colspan="3" style="width: 1032px;" %)AT+DEUI 387 -|(% style="width:250px" %)**Command Example**|(% style="width:147px" %)**Function**|(% style="width:634px" %)**Response** 374 +(% border="1" 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** 388 388 |(% style="width:250px" %)AT+DEUI=?|(% style="width:147px" %)Get the Device EUI.|(% style="width:634px" %)00 44 34 22 33 45 55 55((( 389 389 OK 390 390 ))) ... ... @@ -392,6 +392,8 @@ 392 392 OK 393 393 ))) 394 394 383 +(% style="display:none" %) (%%) 384 + 395 395 == 5.6 Network ID == 396 396 397 397 ... ... @@ -400,14 +400,15 @@ 400 400 401 401 (% style="color:blue" %)**AT Command: AT+NWKID** 402 402 403 -(% border="1" style="background-color:#ffffcc; color:green; width:448.222px" %) 404 -|=(% colspan="3" style="width: 445px;" %)AT+NWKID 405 -|(% style="width:191px" %)**Command Example**|(% style="width:153px" %)**Function**|(% style="width:101px" %)**Response** 393 +(% border="1" 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** 406 406 |(% style="width:191px" %)AT+NWKID=?|(% style="width:153px" %)Get the Network ID.|(% style="width:101px" %)a8 40 41 ff((( 407 407 OK 408 408 ))) 409 409 |(% style="width:191px" %)AT+NWKID=A8 40 41 FF|(% style="width:153px" %)Set the Network ID.|(% style="width:101px" %)OK 410 410 400 +(% style="display:none" %) (%%) 401 + 411 411 == 5.7 Network Session Key == 412 412 413 413 ... ... @@ -416,14 +416,15 @@ 416 416 417 417 (% style="color:blue" %)**AT Command: AT+NWKSKEY** 418 418 419 -(% border="1" style="background-color:#ffffcc; color:green; width:1017.22px" %) 420 -|=(% colspan="3" style="width: 1014px;" %)AT+NWKSKEY 421 -|(% style="width:455px" %)**Command Example**|(% style="width:215px" %)**Function**|(% style="width:343px" %)**Response** 410 +(% border="1" 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** 422 422 |(% 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((( 423 423 OK 424 424 ))) 425 425 |(% 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 426 426 417 +(% style="display:none" %) (%%) 418 + 427 427 = 6. Joining and sending date on LoRaWAN network = 428 428 429 429 == 6.1 Confirm Mode == ... ... @@ -436,9 +436,8 @@ 436 436 437 437 (% style="color:blue" %)**AT Command: AT+CFM** 438 438 439 -(% border="1" style="background-color:#ffffcc; color:green; width:710.222px" %) 440 -|=(% colspan="3" style="width: 707px;" %)AT+CFM 441 -|(% style="width:155px" %)**Command Example**|(% style="width:205px" %)**Function**|(% style="width:346px" %)**Response** 431 +(% border="1" 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** 442 442 |(% style="width:155px" %)AT+CFM=?|(% style="width:205px" %)Get the confirmation mode|(% style="width:346px" %)0((( 443 443 OK 444 444 ))) ... ... @@ -452,16 +452,18 @@ 452 452 If the downlink payload=0501, it means set end node to use confirm mode, while type code is 05. 453 453 454 454 * **Example 1:** Downlink Payload: 0501 ~/~/ Set AT+CFM=1 446 + 455 455 * **Example 2:** Downlink Payload: 0500 ~/~/ Set AT+CFM=0 456 456 449 +(% style="display:none" %) (%%) 450 + 457 457 === 6.1.2 AT+CFM command since DR-LWS007 software stack === 458 458 459 459 460 460 (% style="color:blue" %)**AT Command: AT+CFM** 461 461 462 -(% border="1" style="background-color:#ffffcc; color:green; width:710.222px" %) 463 -|=(% colspan="3" style="width: 707px;" %)AT+CFM 464 -|(% style="width:160px" %)**Command Example**|(% style="width:198px" %)**Function**|(% style="width:349px" %)**Response** 456 +(% border="1" style="background-color:#f2f2f2; width:710.222px" %) 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:349px" %)**Response** 465 465 |(% style="width:160px" %)((( 466 466 AT+CFM=1,0,0 467 467 ... ... @@ -497,8 +497,11 @@ 497 497 If the downlink payload=05010101, it means set end node to use confirm mode, while type code is 05. 498 498 499 499 * **Example 1:** Downlink Payload: 05010101 ~/~/ Set AT+CFM=1,1,1 493 + 500 500 * **Example 2:** Downlink Payload: 05000700 ~/~/ Set AT+CFM=0,7,0 501 501 496 +(% style="display:none" %) (%%) 497 + 502 502 == 6.2 Confirm Status == 503 503 504 504 ... ... @@ -507,13 +507,14 @@ 507 507 508 508 (% style="color:blue" %)**AT Command: AT+CFS** 509 509 510 -(% border="1" style="background-color:#ffffcc; color:green; width:534.222px" %) 511 -|=(% colspan="3" style="width: 531px;" %)AT+CFS 512 -|(% style="width:156px" %)**Command Example**|(% style="width:193px" %)**Function**|(% style="width:178px" %)**Response** 513 -|(% style="width:156px" %)AT+CFS=?|(% style="width:193px" %)Get confirmation status|(% style="width:178px" %)0((( 506 +(% border="1" 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((( 514 514 OK 515 515 ))) 516 516 512 +(% style="display:none" %) (%%) 513 + 517 517 == 6.3 Join LoRa® Network == 518 518 519 519 ... ... @@ -522,15 +522,15 @@ 522 522 523 523 (% style="color:blue" %)**AT Command: AT+JOIN** 524 524 525 -(% border="1" style="background-color:#ffffcc; color:green; width:647.222px" %) 526 -|=(% colspan="3" style="width: 644px;" %)AT+JOIN 527 -|(% style="width:163px" %)**Command Example**|(% style="width:147px" %)**Function**|(% style="width:334px" %)**Response** 522 +(% border="1" 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** 528 528 |(% style="width:163px" %)AT+JOIN ?|(% style="width:147px" %)Get imformation.|(% style="width:334px" %)AT+JOIN: Join network((( 529 529 OK 530 - 531 531 While Error in format, return AT_BUSY_ERROR 532 532 ))) 533 533 529 +(% style="display:none" %) (%%) 530 + 534 534 == 6.4 LoRa® Network Join Mode == 535 535 536 536 ... ... @@ -539,9 +539,8 @@ 539 539 540 540 (% style="color:blue" %)**AT Command: AT+NJM** 541 541 542 -(% border="1" style="background-color:#ffffcc; color:green; width:753.222px" %) 543 -|=(% colspan="3" style="width: 750px;" %)AT+NJM 544 -|(% style="width:162px" %)**Command Example**|(% style="width:227px" %)**Function**|(% style="width:361px" %)**Response** 539 +(% border="1" 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** 545 545 |(% style="width:162px" %)AT+NJM=?|(% style="width:227px" %)Get the Network Join Mode|(% style="width:361px" %)1((( 546 546 OK 547 547 ))) ... ... @@ -555,8 +555,11 @@ 555 555 If the downlink payload=2000, it means set the Network Join Mode, while type code is 20. 556 556 557 557 * **Example 1: **Downlink Payload: **2000 ** ~/~/ Set AT+NJM=0 554 + 558 558 * **Example 2:** Downlink Payload: **2001** ~/~/ Set AT+NJM=1 559 559 557 +(% style="display:none" %) (%%) 558 + 560 560 == 6.5 LoRa® Network Join Status == 561 561 562 562 ... ... @@ -565,13 +565,14 @@ 565 565 566 566 (% style="color:blue" %)**AT Command: AT+NJS** 567 567 568 -(% border="1" style="background-color:#ffffcc; color:green; width:498.222px" %) 569 -|=(% colspan="3" style="width: 495px;" %)AT+NJS 570 -|(% style="width:169px" %)**Command Example**|(% style="width:164px" %)**Function**|(% style="width:161px" %)**Response** 567 +(% border="1" style="background-color:#f2f2f2; width:498.222px" %) 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:161px" %)**Response** 571 571 |(% style="width:169px" %)AT+NJS=?|(% style="width:164px" %)Get the join status.|(% style="width:161px" %)0((( 572 572 OK 573 573 ))) 574 574 573 +(% style="display:none" %) (%%) 574 + 575 575 == 6.6 Print Last Received Data in Raw Format == 576 576 577 577 ... ... @@ -580,13 +580,14 @@ 580 580 581 581 (% style="color:blue" %)**AT Command: AT+RECV** 582 582 583 -(% border="1" style="background-color:#ffffcc; color:green; width:587.222px" %) 584 -|=(% colspan="3" style="width: 584px;" %)AT+RECV 585 -|(% style="width:161px" %)**Command Example**|(% style="width:272px" %)**Function**|(% style="width:150px" %)**Response** 583 +(% border="1" style="background-color:#f2f2f2; width:587.222px" %) 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:150px" %)**Response** 586 586 |(% style="width:161px" %)AT+RECV=?|(% style="width:272px" %)print last received data in raw format.|(% style="width:150px" %)0:((( 587 587 OK 588 588 ))) 589 589 589 +(% style="display:none" %) (%%) 590 + 590 590 == 6.7 Print Last Received Data in Binary Format == 591 591 592 592 ... ... @@ -595,13 +595,14 @@ 595 595 596 596 (% style="color:blue" %)**AT Command: AT+RECVB** 597 597 598 -(% border="1" style="background-color:#ffffcc; color:green; width:793.222px" %) 599 -|=(% colspan="3" style="width: 790px;" %)AT+RECVB 600 -|(% style="width:173px" %)**Command Example**|(% style="width:497px" %)**Function**|(% style="width:120px" %)**Response** 599 +(% border="1" 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** 601 601 |(% style="width:173px" %)AT+RECVB=?|(% style="width:497px" %)print last received data in binary format (with hexadecimal values).|(% style="width:120px" %)2: 0010((( 602 602 OK 603 603 ))) 604 604 605 +(% style="display:none" %) (%%) 606 + 605 605 == 6.8 Send Text Data == 606 606 607 607 ... ... @@ -610,17 +610,15 @@ 610 610 611 611 (% style="color:blue" %)**AT Command: AT+SEND** 612 612 613 -(% border="1" style="background-color:#ffffcc; color:green; width:991.222px" %) 614 -|=(% colspan="3" style="width: 988px;" %)AT+SEND 615 -|(% style="width:201px" %)**Command Example**|(% style="width:340px" %)**Function**|(% style="width:446px" %)**Response** 615 +(% border="1" 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** 616 616 |(% style="width:201px" %)AT+SEND=12:hello world|(% style="width:340px" %)Send text data along with the application port.|(% style="width:446px" %)OK((( 617 617 While Error in format, return 618 - 619 619 AT_BUSY_ERROR/AT_BUSY_ERROR/AT_NO_NETWORK_JOINED 620 - 621 - 622 622 ))) 623 623 622 +(% style="display:none" %) (%%) 623 + 624 624 == 6.9 Send Hexadecimal Data == 625 625 626 626 ... ... @@ -629,16 +629,15 @@ 629 629 630 630 (% style="color:blue" %)**AT Command: AT+SENDB** 631 631 632 -(% border="1" style="background-color:#ffffcc; color:green; width:1101px" %) 633 -|=(% colspan="3" style="width: 1098px;" %)AT+SENDB 634 -|(% style="width:257px" %)**Command Example**|(% style="width:394px" %)**Function**|(% style="width:446px" %)**Response** 635 -|(% style="width:257px" %)AT+SENDB=12:abcdef0123456789|(% style="width:394px" %)Send hexadecimal data along with the application port.|(% style="width:446px" %)OK 636 -|(% 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((( 637 -AT_PARAM_ERROR AT_BUSY_ERROR/AT_NO_NETWORK_JOINED 638 - 639 - 632 +(% border="1" 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 640 640 ))) 641 641 639 +(% style="display:none" %) (%%) 640 + 642 642 = 7. LoRaWAN network management = 643 643 644 644 == 7.1 Adaptive Data Rate == ... ... @@ -649,14 +649,13 @@ 649 649 650 650 (% style="color:blue" %)**AT Command: AT+ADR** 651 651 652 -(% border="1" style="background-color:#ffffcc; color:green; width:683.222px" %) 653 -|=(% colspan="3" style="width: 680px;" %)AT+ADR 654 -|(% style="width:162px" %)**Command Example**|(% style="width:266px" %)**Function**|(% style="width:250px" %)**Response** 655 -|(% style="width:162px" %)AT+ADR=?|(% style="width:266px" %)Get the Adaptive Data Rate setting.|(% style="width:250px" %)1((( 651 +(% border="1" 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((( 656 656 OK 657 657 ))) 658 -|(% style="width:162px" %)AT+ADR=0|(% style="width:266px" %)Set the Adaptive Data Rate setting.|(% style="width:2 50px" %)OK659 -|(% style="width:162px" %)AT+ADR=2|(% style="width:266px" %)Set the Adaptive Data Rate setting.|(% style="width:2 50px" %)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((( 660 660 AT_PARAM_ERROR 661 661 ))) 662 662 ... ... @@ -665,8 +665,11 @@ 665 665 If the downlink payload=2201, it means setting the adaptive data rate to 1, while type code is 22. 666 666 667 667 * **Example 1**: Downlink Payload: **2201** ~/~/ Set AT+ADR=1. 666 + 668 668 * **Example 2**: Downlink Payload: **2200FFFF** ~/~/ Set AT+ADR=0. 669 669 669 +(% style="display:none" %) (%%) 670 + 670 670 == 7.2 LoRa® Class == 671 671 672 672 ... ... @@ -675,9 +675,8 @@ 675 675 676 676 (% style="color:blue" %)**AT Command: AT+CLASS** 677 677 678 -(% border="1" style="background-color:#ffffcc; color:green; width:507.222px" %) 679 -|=(% colspan="3" style="width: 504px;" %)AT+CLASS 680 -|(% style="width:163px" %)**Command Example**|(% style="width:166px" %)**Function**|(% style="width:175px" %)**Response** 679 +(% border="1" style="background-color:#f2f2f2; width:507.222px" %) 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:175px" %)**Response** 681 681 |(% style="width:163px" %)AT+CLASS=?|(% style="width:166px" %)Get the Device Class.|(% style="width:175px" %)A((( 682 682 OK 683 683 ))) ... ... @@ -685,17 +685,23 @@ 685 685 686 686 ))) 687 687 688 +(% style="display:none" %) 689 + 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 + 688 688 == 7.3 Duty Cycle Setting == 689 689 690 690 691 -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. 692 692 693 693 694 694 (% style="color:blue" %)**AT Command: AT+DCS** 695 695 696 -(% border="1" style="background-color:#ffffcc; color:green; width:515.222px" %) 697 -|=(% colspan="3" style="width: 512px;" %)AT+DCS 698 -|(% style="width:165px" %)**Command Example**|(% style="width:239px" %)**Function**|(% style="width:107px" %)**Response** 703 +(% border="1" 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** 699 699 |(% style="width:165px" %)AT+DCS=?|(% style="width:239px" %)Get the ETSI Duty Cycle setting.|(% style="width:107px" %)1((( 700 700 OK 701 701 ))) ... ... @@ -703,6 +703,8 @@ 703 703 704 704 ))) 705 705 712 +(% style="display:none" %) (%%) 713 + 706 706 == 7.4 Data Rate == 707 707 708 708 ... ... @@ -712,13 +712,13 @@ 712 712 **Notice:** 713 713 714 714 * 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 + 715 715 * 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/]] 716 716 717 717 (% style="color:blue" %)**AT Command: AT+DR** 718 718 719 -(% border="1" style="background-color:#ffffcc; color:green; width:466.222px" %) 720 -|=(% colspan="3" style="width: 463px;" %)AT+DR 721 -|(% style="width:156px" %)**Command Example**|(% style="width:167px" %)**Function**|(% style="width:140px" %)**Response** 728 +(% border="1" style="background-color:#f2f2f2; width:466.222px" %) 729 +|(% style="background-color:#4f81bd; color:white; width:156px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:167px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:140px" %)**Response** 722 722 |(% style="width:156px" %)AT+DR=?|(% style="width:167px" %)Get the Data Rate.|(% style="width:140px" %)5((( 723 723 OK 724 724 ))) ... ... @@ -731,8 +731,11 @@ 731 731 If the downlink payload=220001FF, it means setting the data rate to 1, while type code is 22 00 aa FF. 732 732 733 733 * **Example 1**: Downlink Payload: **220001FF** ~/~/ Set AT+DR=1. 742 + 734 734 * **Example 2**: Downlink Payload: **220000FF** ~/~/ Set AT+DR=0. 735 735 745 +(% style="display:none" %) (%%) 746 + 736 736 == 7.5 Frame Counter Downlink == 737 737 738 738 ... ... @@ -741,9 +741,8 @@ 741 741 742 742 (% style="color:blue" %)**AT Command: AT+FCD** 743 743 744 -(% border="1" style="background-color:#ffffcc; color:green; width:693.222px" %) 745 -|=(% colspan="3" style="width: 690px;" %)AT+FCD 746 -|(% style="width:162px" %)**Command Example**|(% style="width:258px" %)**Function**|(% style="width:269px" %)**Response** 755 +(% border="1" 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** 747 747 |(% style="width:162px" %)AT+FCD=?|(% style="width:258px" %)Get the Frame Counter Downlink.|(% style="width:269px" %)0((( 748 748 OK 749 749 ))) ... ... @@ -751,6 +751,8 @@ 751 751 OK 752 752 ))) 753 753 764 +(% style="display:none" %) (%%) 765 + 754 754 == 7.6 Frame Counter Uplink == 755 755 756 756 Feature: Get or Set the Frame Counter Uplink. ... ... @@ -758,9 +758,8 @@ 758 758 759 759 (% style="color:blue" %)**AT Command: AT+FCU** 760 760 761 -(% border="1" style="background-color:#ffffcc; color:green; width:534.222px" %) 762 -|=(% colspan="3" style="width: 531px;" %)AT+FCU 763 -|(% style="width:177px" %)**Command Example**|(% style="width:239px" %)**Function**|(% style="width:113px" %)**Response** 773 +(% border="1" 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** 764 764 |(% style="width:177px" %)AT+FCU=?|(% style="width:239px" %)Get the Frame Counter Uplink.|(% style="width:113px" %)0((( 765 765 OK 766 766 ))) ... ... @@ -768,6 +768,8 @@ 768 768 769 769 ))) 770 770 782 +(% style="display:none" %) (%%) 783 + 771 771 == 7.7 Join Accept Delay1 == 772 772 773 773 ... ... @@ -776,9 +776,8 @@ 776 776 777 777 (% style="color:blue" %)**AT Command: AT+JN1DL** 778 778 779 -(% border="1" style="background-color:#ffffcc; color:green; width:537.222px" %) 780 -|=(% colspan="3" style="width: 534px;" %)AT+JN1DL 781 -|(% style="width:164px" %)**Command Example**|(% style="width:229px" %)**Function**|(% style="width:140px" %)**Response** 792 +(% border="1" 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** 782 782 |(% style="width:164px" %)AT+JN1DL=?|(% style="width:229px" %)Get the Join Accept Delay.|(% style="width:140px" %)5000((( 783 783 OK 784 784 ))) ... ... @@ -786,6 +786,8 @@ 786 786 787 787 ))) 788 788 801 +(% style="display:none" %) (%%) 802 + 789 789 == 7.8 Join Accept Delay2 == 790 790 791 791 ... ... @@ -794,9 +794,8 @@ 794 794 795 795 (% style="color:blue" %)**AT Command: AT+JN2DL** 796 796 797 -(% border="1" style="background-color:#ffffcc; color:green; width:538.222px" %) 798 -|=(% colspan="3" style="width: 535px;" %)AT+JN2DL 799 -|(% style="width:160px" %)**Command Example**|(% style="width:228px" %)**Function**|(% style="width:146px" %)**Response** 811 +(% border="1" 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** 800 800 |(% style="width:160px" %)AT+JN2DL=?|(% style="width:228px" %)Get the Join Accept Delay.|(% style="width:146px" %)6000((( 801 801 OK 802 802 ))) ... ... @@ -804,6 +804,8 @@ 804 804 805 805 ))) 806 806 820 +(% style="display:none" %) (%%) 821 + 807 807 == 7.9 Public Network Mode == 808 808 809 809 ... ... @@ -814,9 +814,8 @@ 814 814 815 815 (% style="color:blue" %)**AT Command: AT+PNM** 816 816 817 -(% border="1" style="background-color:#ffffcc; color:green; width:667.222px" %) 818 -|=(% colspan="3" style="width: 664px;" %)AT+PNM 819 -|(% style="width:166px" %)**Command Example**|(% style="width:225px" %)**Function**|(% style="width:272px" %)**Response** 832 +(% border="1" 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** 820 820 |(% style="width:166px" %)AT+PNM=?|(% style="width:225px" %)Get the public network mode.|(% style="width:272px" %)1((( 821 821 OK 822 822 ))) ... ... @@ -831,6 +831,8 @@ 831 831 ))) 832 832 |(% style="width:166px" %)AT+PNM=0|(% style="width:225px" %)Set to use private network autoset syncword=0x12|(% style="width:272px" %) 833 833 848 +(% style="display:none" %) (%%) 849 + 834 834 == 7.10 Receive Delay1 == 835 835 836 836 ... ... @@ -839,9 +839,8 @@ 839 839 840 840 (% style="color:blue" %)**AT Command: AT+RX1DL** 841 841 842 -(% border="1" style="background-color:#ffffcc; color:green; width:408.222px" %) 843 -|=(% colspan="3" style="width: 405px;" %)AT+RX1DL 844 -|(% style="width:155px" %)**Command Example**|(% style="width:128px" %)**Function**|(% style="width:122px" %)**Response** 858 +(% border="1" 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** 845 845 |(% style="width:155px" %)AT+RX1DL=?|(% style="width:128px" %)Get the delay.|(% style="width:122px" %)1000((( 846 846 OK 847 847 ))) ... ... @@ -849,6 +849,8 @@ 849 849 850 850 ))) 851 851 867 +(% style="display:none" %) (%%) 868 + 852 852 == 7.11 Receive Delay2 == 853 853 854 854 ... ... @@ -857,9 +857,8 @@ 857 857 858 858 (% style="color:blue" %)**AT Command: AT+RX2DL** 859 859 860 -(% border="1" style="background-color:#ffffcc; color:green; width:481.222px" %) 861 -|=(% colspan="3" style="width: 478px;" %)AT+RX2DL 862 -|(% style="width:175px" %)**Command Example**|(% style="width:152px" %)**Function**|(% style="width:150px" %)**Response** 877 +(% border="1" 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** 863 863 |(% style="width:175px" %)AT+RX2DL=?|(% style="width:152px" %)Get the delay.|(% style="width:150px" %)2000((( 864 864 OK 865 865 ))) ... ... @@ -867,6 +867,8 @@ 867 867 868 868 ))) 869 869 886 +(% style="display:none" %) (%%) 887 + 870 870 == 7.12 Rx2 Window Data Rate == 871 871 872 872 ... ... @@ -875,9 +875,8 @@ 875 875 876 876 (% style="color:blue" %)**AT Command: AT+RX2DR** 877 877 878 -(% border="1" style="background-color:#ffffcc; color:green; width:525.222px" %) 879 -|=(% colspan="3" style="width: 522px;" %)AT+RX2DR 880 -|(% style="width:160px" %)**Command Example**|(% style="width:232px" %)**Function**|(% style="width:130px" %)**Response** 896 +(% border="1" 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** 881 881 |(% style="width:160px" %)AT+RX2DR=?|(% style="width:232px" %)Get the Rx2 window data rate.|(% style="width:130px" %)2((( 882 882 OK 883 883 ))) ... ... @@ -885,6 +885,8 @@ 885 885 886 886 ))) 887 887 905 +(% style="display:none" %) (%%) 906 + 888 888 == 7.13 Rx2 Window Frequency == 889 889 890 890 ... ... @@ -893,9 +893,8 @@ 893 893 894 894 (% style="color:blue" %)**AT Command: AT+RX2FQ** 895 895 896 -(% border="1" style="background-color:#ffffcc; color:green; width:587.222px" %) 897 -|=(% colspan="3" style="width: 584px;" %)AT+RX2FQ 898 -|(% style="width:183px" %)**Command Example**|(% style="width:240px" %)**Function**|(% style="width:160px" %)**Response** 915 +(% border="1" 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** 899 899 |(% style="width:183px" %)AT+RX2FQ=?|(% style="width:240px" %)Get the Rx2 window frequency.|(% style="width:160px" %)434665000((( 900 900 OK 901 901 ))) ... ... @@ -903,6 +903,8 @@ 903 903 904 904 ))) 905 905 924 +(% style="display:none" %) (%%) 925 + 906 906 == 7.14 Transmit Power == 907 907 908 908 ... ... @@ -913,9 +913,8 @@ 913 913 914 914 (% style="color:blue" %)**AT Command: AT+TXP** 915 915 916 -(% border="1" style="background-color:#ffffcc; color:green; width:465.222px" %) 917 -|=(% colspan="3" style="width: 462px;" %)AT+TXP 918 -|(% style="width:161px" %)**Command Example**|(% style="width:189px" %)**Function**|(% style="width:112px" %)**Response** 936 +(% border="1" 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** 919 919 |(% style="width:161px" %)AT+TXP=?|(% style="width:189px" %)Get the Transmit Power.|(% style="width:112px" %)0((( 920 920 OK 921 921 ))) ... ... @@ -928,8 +928,11 @@ 928 928 If the downlink payload=22000100, it means setting the TXP to 0. 929 929 930 930 * **Example 1**: Downlink Payload: **22000102** ~/~/ Set AT+TXP=2. 931 -* **Example 2**: Downlink Payload: **220000FF** ~/~/ Set AT+TXP=0. 932 932 951 +* **Example 2**: Downlink Payload: **22000000** ~/~/ Set AT+TXP=0. 952 + 953 +(% style="display:none" %) (%%) 954 + 933 933 == 7.15 RSSI of the Last Received Packet == 934 934 935 935 ... ... @@ -938,13 +938,14 @@ 938 938 939 939 (% style="color:blue" %)**AT Command:AT+RSSI** 940 940 941 -(% border="1" style="background-color:#ffffcc; color:green; width:557.222px" %) 942 -|=(% colspan="3" style="width: 554px;" %)AT+RSSI 943 -|(% style="width:164px" %)**Command Example**|(% style="width:289px" %)**Function**|(% style="width:100px" %)**Response** 963 +(% border="1" 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** 944 944 |(% style="width:164px" %)AT+RSSI=?|(% style="width:289px" %)Get the RSSI of the last received packet.|(% style="width:100px" %)0((( 945 945 OK 946 946 ))) 947 947 969 +(% style="display:none" %) (%%) 970 + 948 948 == 7.16 SNR of the Last Received Packet == 949 949 950 950 ... ... @@ -953,13 +953,14 @@ 953 953 954 954 (% style="color:blue" %)**AT Command: AT+SNR** 955 955 956 -(% border="1" style="background-color:#ffffcc; color:green; width:571.222px" %) 957 -|=(% colspan="3" style="width: 568px;" %)AT+SNR 958 -|(% style="width:164px" %)**Command Example**|(% style="width:290px" %)**Function**|(% style="width:113px" %)**Response** 979 +(% border="1" 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** 959 959 |(% style="width:164px" %)AT+SNR=?|(% style="width:290px" %)Get the RSSI of the last received packet.|(% style="width:113px" %)0((( 960 960 OK 961 961 ))) 962 962 985 +(% style="display:none" %) (%%) 986 + 963 963 == 7.17 Application Port == 964 964 965 965 ... ... @@ -968,9 +968,8 @@ 968 968 969 969 (% style="color:blue" %)**AT Command: AT+PORT** 970 970 971 -(% border="1" style="background-color:#ffffcc; color:green; width:500.222px" %) 972 -|=(% colspan="3" style="width: 497px;" %)AT+PORT 973 -|(% style="width:157px" %)**Command Example**|(% style="width:204px" %)**Function**|(% style="width:135px" %)**Response** 995 +(% border="1" style="background-color:#f2f2f2; width:500.222px" %) 996 +|(% style="background-color:#4f81bd; color:white; width:157px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:204px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:135px" %)**Response** 974 974 |(% style="width:157px" %)AT+PORT=?|(% style="width:204px" %)Get the application port|(% style="width:135px" %)21((( 975 975 OK 976 976 ))) ... ... @@ -983,8 +983,11 @@ 983 983 If the downlink payload=2301, it means set the application port to 1, while type code is 23. 984 984 985 985 * **Example 1**: Downlink Payload: **2301** ~/~/ set the application port to 1 1009 + 986 986 * **Example 2**: Downlink Payload:** 2305** ~/~/ set the application port to 5 987 987 1012 +(% style="display:none" %) (%%) 1013 + 988 988 == 7.18 Single Channel Mode == 989 989 990 990 ... ... @@ -993,14 +993,15 @@ 993 993 994 994 (% style="color:blue" %)**AT Command: AT+CHS** 995 995 996 -(% border="1" style="background-color:#ffffcc; color:green; width:603.222px" %) 997 -|=(% colspan="3" style="width: 600px;" %)AT+CHS 998 -|(% style="width:182px" %)**Command Example**|(% style="width:295px" %)**Function**|(% style="width:122px" %)**Response** 1022 +(% border="1" style="background-color:#f2f2f2; width:603.222px" %) 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:122px" %)**Response** 999 999 |(% style="width:182px" %)AT+CHS=?|(% style="width:295px" %)Get Frequency for Single Channel Mode|(% style="width:122px" %)0((( 1000 1000 OK 1001 1001 ))) 1002 1002 |(% style="width:182px" %)AT+CHS=868100000|(% style="width:295px" %)Set Frequency for Single Channel Mode|(% style="width:122px" %)OK 1003 1003 1029 +(% style="display:none" %) (%%) 1030 + 1004 1004 == 7.19 Eight Channel Mode == 1005 1005 1006 1006 ... ... @@ -1009,9 +1009,8 @@ 1009 1009 1010 1010 (% style="color:blue" %)**AT Command: AT+CHE** 1011 1011 1012 -(% border="1" style="background-color:#ffffcc; color:green; width:710.222px" %) 1013 -|=(% colspan="3" style="width: 707px;" %)AT+CHE 1014 -|(% style="width:160px" %)**Command Example**|(% style="width:198px" %)**Function**|(% style="width:349px" %)**Response** 1039 +(% border="1" 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** 1015 1015 |(% style="width:160px" %)AT+CHE=?|(% style="width:198px" %)Get eight channels mode|(% style="width:349px" %)1((( 1016 1016 902.3 902.5 902.7 902.9 903.1 903.3 903.5 903.7 1017 1017 ... ... @@ -1019,7 +1019,7 @@ 1019 1019 ))) 1020 1020 |(% style="width:160px" %)AT+CHE=1|(% style="width:198px" %)Set eight channels mode|(% style="width:349px" %)OK 1021 1021 1022 -(% style="color:blue" %)**Downlink Command: 0x24** 1048 +(% style="color:blue" %)**Downlink Command: 0x24 (LHT65,LHT65N Downlink Command:0x07)** 1023 1023 1024 1024 Format: Command Code (0x24) followed by 1 bytes channel value. 1025 1025 ... ... @@ -1026,8 +1026,11 @@ 1026 1026 If the downlink payload=2401, it means set channel mode to 1, while type code is 24. 1027 1027 1028 1028 * **Example 1**: Downlink Payload: 2401 ~/~/ set channel mode to 1 1055 + 1029 1029 * **Example 2**: Downlink Payload: 2405 ~/~/ set channel mode to 5 1030 1030 1058 +(% style="display:none" %) (%%) 1059 + 1031 1031 == 7.20 Get or Set RXwindows1 timeout == 1032 1032 1033 1033 ... ... @@ -1036,33 +1036,26 @@ 1036 1036 1037 1037 (% style="color:blue" %)**AT Command: AT+RX1WTO** 1038 1038 1039 -(% border="1" style="background-color:#ffffcc; color:green; width:460.222px" %) 1040 -|=(% colspan="3" style="width: 457px;" %)AT+ RX1WTO 1041 -|(% style="width:163px" %)**Command Example**|(% style="width:201px" %)**Function**|(% style="width:93px" %)**Response** 1068 +(% border="1" 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** 1042 1042 |(% style="width:163px" %)AT+RX1WTO=?|(% style="width:201px" %)Get RXwindows1 timeout|(% style="width:93px" %)14((( 1043 1043 OK 1044 1044 ))) 1045 1045 |(% style="width:163px" %)AT+RX1WTO=60|(% style="width:201px" %)Set RXwindows1 timeout|(% style="width:93px" %)OK 1046 1046 1047 -((( 1048 - 1075 +(% style="display:none" %) (%%) 1049 1049 1050 - 1077 +((( 1051 1051 (% 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. 1052 - 1053 - 1054 1054 ))) 1055 1055 1056 1056 [[image:image-20220526162535-1.png]] 1057 1057 1058 - 1059 1059 ((( 1060 1060 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. 1061 - 1062 - 1063 - 1064 1064 ))) 1065 1065 1087 + 1066 1066 == 7.21 Get or Set RXwindows2 timeout == 1067 1067 1068 1068 ... ... @@ -1071,14 +1071,15 @@ 1071 1071 1072 1072 (% style="color:blue" %)**AT Command: AT+RX2WTO** 1073 1073 1074 -(% border="1" style="background-color:#ffffcc; color:green; width:497.222px" %) 1075 -|=(% colspan="3" style="width: 494px;" %)AT+ RX2WTO 1076 -|(% style="width:190px" %)**Command Example**|(% style="width:199px" %)**Function**|(% style="width:104px" %)**Response** 1096 +(% border="1" style="background-color:#f2f2f2; width:497.222px" %) 1097 +|(% style="background-color:#4f81bd; color:white; width:190px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:199px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:104px" %)**Response** 1077 1077 |(% style="width:190px" %)AT+RX2WTO=?|(% style="width:199px" %)Get RXwindows2 timeout|(% style="width:104px" %)7((( 1078 1078 OK 1079 1079 ))) 1080 1080 |(% style="width:190px" %)AT+RX2WTO=20|(% style="width:199px" %)Set RXwindows2 timeout|(% style="width:104px" %)OK 1081 1081 1103 +(% style="display:none" %) (%%) 1104 + 1082 1082 == 7.22 Setting up uplinkdwelltime (as923, au915) == 1083 1083 1084 1084 ... ... @@ -1087,9 +1087,8 @@ 1087 1087 1088 1088 (% style="color:blue" %)**AT Command: AT+DWELLT** 1089 1089 1090 -(% border="1" style="background-color:#ffffcc; color:green; width:497.222px" %) 1091 -|=(% colspan="3" style="width: 494px;" %)AT+DWELLT 1092 -|(% style="width:183px" %)**Command Example**|(% style="width:179px" %)**Function**|(% style="width:131px" %)**Response** 1113 +(% border="1" style="background-color:#f2f2f2; width:497.222px" %) 1114 +|(% style="background-color:#4f81bd; color:white; width:183px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:179px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:131px" %)**Response** 1093 1093 |(% style="width:183px" %)AT+DWELLT=?|(% style="width:179px" %)Get uplinkdwelltime|(% style="width:131px" %)1((( 1094 1094 OK 1095 1095 ))) ... ... @@ -1102,8 +1102,11 @@ 1102 1102 If the downlink payload=2501, it means set uplinkdwelltime to 1, while type code is 25. 1103 1103 1104 1104 * **Example 1**: Downlink Payload: **2501** ~/~/ set uplinkdwelltime to 1 1127 + 1105 1105 * **Example 2**: Downlink Payload: **2500** ~/~/ set uplinkdwelltime to 0 1106 1106 1130 +(% style="display:none" %) (%%) 1131 + 1107 1107 == 7.23 Set Packet Receiving Response Level == 1108 1108 1109 1109 ... ... @@ -1110,25 +1110,30 @@ 1110 1110 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. 1111 1111 1112 1112 1113 -**RPL value:** 1138 +(% style="color:blue" %)**RPL value:** 1114 1114 1115 1115 * **AT+RPL=0:** Device won't immediately reply any downlink commands from platform. 1141 + 1116 1116 * **AT+RPL=1:** Device will immediately reply message to Unconfirmed Data Down. Payload is 0x00. 1143 + 1117 1117 * **AT+RPL=2:** Device will immediately reply message to Confirmed Data Down. Payload is 0x00 and requied response header for this command. 1145 + 1118 1118 * **AT+RPL=3:** Device will immediately reply message to MAC Command. Payload is 0x00 and requied response header for this command. 1147 + 1119 1119 * **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. 1120 1120 1121 -**Case Analyes:** 1150 +(% style="color:blue" %)**Case Analyes:** 1122 1122 1123 1123 * For Class A devices, AT+RPL=0 is ok. that is defaut settings in software. 1153 + 1124 1124 * For Class C devices used in ChirpStack, need to set AT+RPL=4 because Chirpstack require immedietely reply message to MAC Command. 1155 + 1125 1125 * 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. 1126 1126 1127 1127 (% style="color:blue" %)**AT Command: AT+RPL** 1128 1128 1129 -(% border="1" style="background-color:#ffffcc; color:green; width:536.222px" %) 1130 -|=(% colspan="3" style="width: 533px;" %)AT+RPL 1131 -|(% style="width:160px" %)**Command Example**|(% style="width:263px" %)**Function**|(% style="width:109px" %)**Response** 1160 +(% border="1" 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** 1132 1132 |(% style="width:160px" %)AT+RPL=?|(% style="width:263px" %)Get packet receiving response level|(% style="width:109px" %)1((( 1133 1133 OK 1134 1134 ))) ... ... @@ -1141,20 +1141,22 @@ 1141 1141 If the downlink payload=2101, it means set packet receiving response level to 1, while type code is 21. 1142 1142 1143 1143 * **Example 1**: Downlink Payload: **2101** ~/~/ set packet receiving response level to 1 1174 + 1144 1144 * **Example 2**: Downlink Payload: **2102** ~/~/ set packet receiving response level to 2 1145 1145 1177 +(% style="display:none" %) (%%) 1178 + 1146 1146 == 7.24 Controls NBTrans in unconfirmed uplink mode(LWS007 NBTrans:Set retransmission packets) == 1147 1147 1148 1148 1149 1149 (% style="color:blue" %)**AT Command: AT+SETMAXNBTRANS ** 1150 1150 1151 -(% border="1" style="background-color:#ffffcc; color:green; width:589px" %) 1152 -|=(% colspan="3" style="width: 586px;" %)AT+**SETMAXNBTRANS** 1153 -|(% style="width:227px" %)**Command Example**|(% style="width:300px" %)**Function**|(% style="width:87px" %)**Response** 1154 -|(% style="width:227px" %)**AT+SETMAXNBTRANS=1,0**|(% style="width:300px" %)Value1: set the maximum NBTrans.|(% style="width:87px" %)1((( 1184 +(% border="1" 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((( 1155 1155 OK 1156 1156 ))) 1157 -|(% style="width:227px" %) **AT+SETMAXNBTRANS=?,1**|(% style="width:300px" %)(((1189 +|(% style="width:227px" %)AT+SETMAXNBTRANS=?,1|(% style="width:300px" %)((( 1158 1158 value2: 0: uplink fcnt doesn't change for each NBTrans; 1159 1159 1160 1160 1: uplink fcnt increase by 1 for each NBTrans. ... ... @@ -1171,16 +1171,23 @@ 1171 1171 If the downlink payload=330100, it means set end node to use confirm mode, while type code is 33. 1172 1172 1173 1173 * Example 1: Downlink Payload: 330100 ~/~/ Set AT+SETMAXNBTRANS=1,0 1206 + 1174 1174 * Example 2: Downlink Payload: 330201 ~/~/ Set AT+SETMAXNBTRANS=2,1 1175 1175 1209 +(% style="display:none" %) (%%) 1210 + 1176 1176 == 7.25 Device offline rejoining (LWS007) == 1177 1177 1178 1178 1179 1179 (% style="color:blue" %)**AT Command: AT+DDETECT** 1180 1180 1181 -(% border="1" style="background-color:#ffffcc; color:green; width:710.222px" %) 1182 -|=(% colspan="3" style="width: 707px;" %)AT+**DDETECT** 1183 -|(% 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 +* ACK_Timout_2: Unit: min 1220 + 1221 +(% border="1" style="background-color:#f2f2f2; width:710.222px" %) 1222 +|(% 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** 1184 1184 |(% style="width:160px" %)((( 1185 1185 AT+DDETECT=1,1440,2880 1186 1186 ... ... @@ -1209,46 +1209,52 @@ 1209 1209 OK 1210 1210 ))) 1211 1211 1212 -(% style="color:blue" %)**Downlink Command: 0x3 3**1251 +(% style="color:blue" %)**Downlink Command: 0x32** 1213 1213 1214 1214 Format: Command Code (0x32) followed by 2 bytes mode value. 1215 1215 1216 -If the downlink payload=320105A00B40, it means set end node to use confirm mode, while type code is 3 3.1255 +If the downlink payload=320105A00B40, it means set end node to use confirm mode, while type code is 32. 1217 1217 1218 -* **Example 1:** Downlink Payload: 320105A00B40 ~/~/ Set AT+DDETECT=1,1440,2880 1257 +* **Example 1:** Downlink Payload: 320105A00B40 ~/~/ Set AT+DDETECT=1,1440,2880 1219 1219 1259 +** 0x01 : Flag 1260 +** 0x05A0: ACK_Timout_1 : 1440minutes (24 hours) 1261 +** 0x0B40: ACK_Timout_2 : 2880minutes (48 hours) 1262 +** **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. 1263 + 1264 +(% style="display:none" %) (%%) 1265 + 1220 1220 == 7.26 Request the server to send an ACK == 1221 1221 1222 1222 1223 1223 (% style="color:blue" %)**AT Command: AT+PNACKMD** 1224 1224 1225 -(% border="1" style="background-color:#ffffcc; color:green; width:536.222px" %) 1226 -|=(% colspan="3" style="width: 533px;" %)**AT+PNACKMD** 1227 -|(% style="width:160px" %)**Command Example**|(% style="width:263px" %)**Function**|(% style="width:109px" %)**Response** 1228 -|(% 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((( 1271 +(% border="1" style="background-color:#f2f2f2; width:536.222px" %) 1272 +|(% 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** 1273 +|(% 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((( 1229 1229 OK 1230 1230 ))) 1231 -|(% style="width:160px" %) **AT+PNACKMD=0**|(% style="width:263px" %)off request the server to send an ACK|(% style="width:109px" %)(((1276 +|(% style="width:160px" %)AT+PNACKMD=0|(% style="width:263px" %)off request the server to send an ACK|(% style="width:109px" %)((( 1232 1232 0 1233 - 1234 1234 OK 1235 1235 ))) 1236 1236 1281 +(% style="display:none" %) (%%) 1282 + 1237 1237 == 7.27 Adjust network rejoining interval == 1238 1238 1239 1239 1240 1240 (% style="color:blue" %)**AT Command: AT+RJTDC** 1241 1241 1242 -(% border="1" style="background-color:#ffffcc; color:green; width:727.222px" %) 1243 -|=(% colspan="3" style="width: 724px;" %)AT+RJTDC 1244 -|(% style="width:165px" %)**Command Example**|(% style="width:227px" %)**Function**|(% style="width:329px" %)**Response** 1245 -|(% style="width:165px" %)AT+RJTDC=?|(% style="width:227px" %)Show the ReJoin data transmission interval in min|(% style="width:329px" %)30000((( 1288 +(% border="1" style="background-color:#f2f2f2; width:727.222px" %) 1289 +|(% 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** 1290 +|(% style="width:165px" %)AT+RJTDC=?|(% style="width:227px" %)Show the ReJoin data transmission interval in min|(% style="width:329px" %)30((( 1246 1246 OK 1247 1247 1248 -the interval is 30 000ms= 30s1293 +the interval is 30 min 1249 1249 ))) 1250 -|(% style="width:165px" %)AT+RJTDC=60 000|(% style="width:227px" %)Set the ReJoin data transmission interval in min|(% style="width:329px" %)OK(((1251 -Set the ReJoin data transmission interval to 60 000ms= 60 seconds1295 +|(% style="width:165px" %)AT+RJTDC=60|(% style="width:227px" %)Set the ReJoin data transmission interval in min|(% style="width:329px" %)OK((( 1296 +Set the ReJoin data transmission interval to 60 min 1252 1252 ))) 1253 1253 1254 1254 (% style="color:blue" %)**Downlink Command: 0x26** ... ... @@ -1257,17 +1257,23 @@ 1257 1257 1258 1258 If the downlink payload=26000A, it means set end node to use confirm mode, while type code is 26. 1259 1259 1260 -* **Example 1:** Downlink Payload: 26000A ~/~/ Set AT+RJTDC=10 1261 -* **Example 2: **Downlink Payload: 260002 ~/~/ Set AT+RJTDC=2 1305 +* **Example 1:** Downlink Payload: 26000A ~/~/ Set AT+RJTDC=10 1262 1262 1307 +* **Example 2: **Downlink Payload: 260002 ~/~/ Set AT+RJTDC=2 1308 + 1309 +(% style="display:none" %) (%%) 1310 + 1263 1263 = 8. AT Commands Combination = 1264 1264 1265 1265 == 8.1 Set a fix RX2DR for downlink window == 1266 1266 1267 1267 1268 -* (% style="color:blue" %)**AT+ADR=0 **(%%) **~-~->** Disable ADR first 1269 -* (% style="color:blue" %)**AT+RX2DR=xxxx** (%%) **~-~->** Set xxxx to your wanted DataRate 1316 +* (% style="color:blue" %)**AT+ADR=0 **(%%) **~/~/** Disable ADR first 1270 1270 1318 +* (% style="color:blue" %)**AT+RX2DR=xxxx** (%%) **~/~/** Set xxxx to your wanted DataRate 1319 + 1320 +(% style="display:none" %) (%%) 1321 + 1271 1271 == 8.2 Use Downlink Command to set a fix uplink DR == 1272 1272 1273 1273 ... ... @@ -1276,7 +1276,9 @@ 1276 1276 **Same as:** 1277 1277 1278 1278 * AT+ADR=0 [[Reference>>||anchor="H7.1AdaptiveDataRate"]] 1330 + 1279 1279 * AT+DR=5 [[Reference>>||anchor="H7.4DataRate"]] 1332 + 1280 1280 * AT+TXP=0 [[Reference>>||anchor="H7.14TransmitPower"]] 1281 1281 1282 1282