Changes for page End Device AT Commands and Downlink Command
Last modified by kai on 2024/09/06 10:00
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,4 +1,4 @@ 1 - **Contents:** 1 + **Table of** **Contents:** 2 2 3 3 {{toc/}} 4 4 ... ... @@ -6,40 +6,36 @@ 6 6 7 7 = 1. Introduction = 8 8 9 + 9 9 Dragino LoRaWAN End Node support two types of AT Commands and Downlink Commands: 10 10 11 -* **Common Commands:** They should be available for each sensor, such as: change uplink interval, reset device. 12 -* **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. 13 13 14 14 ((( 15 15 **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.** 16 - 17 17 ))) 18 18 19 + 19 19 = 2. How to use AT Commands or Downlink command = 20 20 21 -* 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/]] 22 -* 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: 22 + 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: 23 23 ** Use HEX format to send a downlink: [[TTN v3>>Notes for TTN]] 24 -** 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]]? 25 25 ** See use note for more serves [[Servers Note>>doc:Main.WebHome]](IoT LoRaWAN Server) 26 26 29 +(% style="display:none" %) (%%) 27 27 28 - 29 29 = 3. Support End Node and firmware version = 30 30 31 -(% border="1" style="background-color:#ffffcc; color:green; width:966px" %) 32 -|=(% colspan="3" style="width: 963px;" %)((( 33 + 33 33 Dragino STM32 base hardware Firmware / LoRaWAN stack list 34 -))) 35 + 36 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:966px" %) 37 +|(% 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** 35 35 |(% style="width:187px" %)((( 36 -**Model** 37 -)))|(% style="width:330px" %)((( 38 -**Description** 39 -)))|(% style="width:445px" %)((( 40 -**Firmware Version <~-~-> Stack Version** 41 -))) 42 -|(% style="width:187px" %)((( 43 43 [[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]], 44 44 )))|(% style="width:330px" %)((( 45 45 Open Source Generic LoRaWAN Sensor Node ... ... @@ -99,22 +99,20 @@ 99 99 ))) 100 100 ))) 101 101 98 +(% style="display:none" %) (%%) 102 102 103 - 104 104 = 4. System Management Commands = 105 105 106 106 == 4.1 Change Uplink Interval == 107 107 104 + 108 108 Feature: Change LoRaWAN End Node Transmit Interval. 109 109 110 -(% class="box infomessage" %) 111 -((( 112 -**AT Command: AT+TDC** 113 -))) 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** 108 +(% style="color:blue" %)**AT Command: AT+TDC** 109 + 110 +(% border="1" style="background-color:#f2f2f2; width:727.222px" %) 111 +|(% 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 ... ... @@ -124,35 +124,32 @@ 124 124 Set transmit interval to 60000ms = 60 seconds 125 125 ))) 126 126 127 -{{info}} 128 -**Downlink Command: 0x01** 129 -{{/info}} 130 - 131 131 ((( 122 +(% style="color:blue" %)**Downlink Command: 0x01** 123 + 132 132 Format: Command Code (0x01) followed by 3 bytes time value. 133 133 ))) 134 134 135 135 ((( 136 -If the downlink payload=0100003C, it means set the END Node ’s Transmit Interval to 0x00003C=60(S), while type code is 01.128 +If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01. 137 137 ))) 138 138 139 -* **Example 1**: Downlink Payload:** 0100001E** ~/~/ Set Transmit Interval (TDC) = 30 seconds 140 -* **Example 2**: Downlink Payload:** 0100003C** ~/~/ Set Transmit Interval (TDC) = 60 seconds 131 +* **Example 1**: Downlink Payload:** 0100001E** ~/~/ Set Transmit Interval (TDC) = 30 seconds 132 +* **Example 2**: Downlink Payload:** 0100003C** ~/~/ Set Transmit Interval (TDC) = 60 seconds 141 141 134 +(% style="display:none" %) (%%) 142 142 143 - 144 144 == 4.2 Reboot End Node == 145 145 138 + 146 146 Feature: Reboot End Node to perform a new OTAA or ABP Join. 147 147 148 -{{info}} 149 -**AT Command: ATZ** 150 -{{/info}} 151 151 152 -(% border="1" style="background-color:#ffffcc; color:green; width:727.222px" %) 153 -|=(% colspan="3" %)ATZ: Trig a reset of the MCU 154 -|**Command Example**|**Function**|**Response** 155 -|ATZ|Reset MCU|((( 142 +(% style="color:blue" %)**AT Command: ATZ ~/~/ **(%%)Trig a reset of the MCU 143 + 144 +(% border="1" style="background-color:#f2f2f2; width:546px" %) 145 +|(% 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** 146 +|(% style="width:157px" %)ATZ|(% style="width:92px" %)Reset MCU|(% style="width:294px" %)((( 156 156 Device reset and show booting info 157 157 158 158 LSN50 Device/LoRa ST Module ... ... @@ -166,9 +166,7 @@ 166 166 <followed by the Tx and Rx information> 167 167 ))) 168 168 169 -{{info}} 170 -**Downlink Command: 0x04** 171 -{{/info}} 160 +(% style="color:blue" %)**Downlink Command: 0x04** 172 172 173 173 ((( 174 174 Format: Command Code (0x04) followed by FF. ... ... @@ -175,23 +175,21 @@ 175 175 ))) 176 176 177 177 ((( 178 -If the downlink payload=**04FF**, the end node will reboot. 179 - 180 - 167 +If the downlink payload=**04FF**, the end node will reboot. 181 181 ))) 182 182 170 + 183 183 == 4.3 Reset to factory Default == 184 184 173 + 185 185 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. 186 186 187 -{{info}} 188 -**AT Command: AT+FDR** 189 -{{/info}} 190 190 191 -(% border="1" style="background-color:#ffffcc; color:green; width:831.222px" %) 192 -|=(% colspan="3" style="width: 828px;" %)Reset to factory default 193 -|(% style="width:181px" %)**Command Example**|(% style="width:181px" %)**Function**|(% style="width:465px" %)**Response** 194 -|(% style="width:181px" %)AT+FDR|(% style="width:181px" %)Reset to factory default|(% style="width:465px" %)((( 177 +(% style="color:blue" %)**AT Command: AT+FDR ~/~/ **(%%)Reset to factory default 178 + 179 +(% border="1" style="background-color:#f2f2f2; width:789px" %) 180 +|(% 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** 181 +|(% style="width:154px" %)AT+FDR|(% style="width:175px" %)Reset to factory default|(% style="width:456px" %)((( 195 195 Device reset to factory default parameters and show booting info 196 196 197 197 LSN50 Device/LoRa ST Module ... ... @@ -205,9 +205,7 @@ 205 205 Please set the parameters or reset Device to apply change 206 206 ))) 207 207 208 -{{info}} 209 -**Downlink Command: 0x04** 210 -{{/info}} 195 +(% style="color:blue" %)**Downlink Command: 0x04** 211 211 212 212 ((( 213 213 Format: Command Code (0x04) followed by FE. ... ... @@ -220,24 +220,21 @@ 220 220 221 221 == 4.4 Show Firmware Version == 222 222 208 + 223 223 Feature: Show firmware version. No downlink command yet. 224 224 225 -{{info}} 226 -**AT Command: AT+VER** 227 -{{/info}} 228 228 229 -(% border="1" style="background-color:#ffffcc; color:green; width:586px" %) 230 -|=(% colspan="3" style="width: 583px;" %)AT+VER: Image Version and Frequency Band 231 -|(% style="width:170px" %)**Command Example**|(% style="width:300px" %)**Function**|(% style="width:113px" %)**Response** 232 -|(% style="width:170px" %)AT+VER=?|(% style="width:300px" %)Show Image version and Frequency Band|(% style="width:113px" %)((( 212 +(% style="color:blue" %)**AT Command: AT+VER ~/~/ **(%%)Image Version and Frequency Band 213 + 214 +(% border="1" style="background-color:#f2f2f2; width:542px" %) 215 +|(% 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** 216 +|(% style="width:157px" %)AT+VER=?|(% style="width:295px" %)Show Image version and Frequency Band|(% style="width:86px" %)((( 233 233 1.3 EU868 234 234 235 235 OK 236 236 ))) 237 237 238 -{{info}} 239 -**Downlink Command: 0x26 (Valid in 006 stack)** 240 -{{/info}} 222 +(% style="color:blue" %)**Downlink Command: 0x26 (Valid in 006 stack)** 241 241 242 242 ((( 243 243 Downlink Format: 0x26 ... ... @@ -248,7 +248,9 @@ 248 248 ))) 249 249 250 250 ((( 251 -**xx: Software Type:** 233 + 234 + 235 +(% style="color:#037691" %)**xx: Software Type:** 252 252 ))) 253 253 254 254 * 0x00 01: LGT92 Version ... ... @@ -256,7 +256,9 @@ 256 256 * 0x00 03: LSE01/LDDS75/LDDS20/LSPH01/LLMS01/LSNPK01 257 257 258 258 ((( 259 -**yy: Frequency Band:** 243 + 244 + 245 +(% style="color:#037691" %)**yy: Frequency Band:** 260 260 ))) 261 261 262 262 * 0x01: EU868 ... ... @@ -271,7 +271,9 @@ 271 271 * 0xa0: AS923-3 272 272 273 273 ((( 274 -**zz: Subband** 260 + 261 + 262 +(% style="color:#037691" %)**zz: Subband** 275 275 ))) 276 276 277 277 firmware version: v1.1.0 ~-~-> 110 ... ... @@ -279,74 +279,71 @@ 279 279 280 280 == 4.5 Show System Configure == 281 281 270 + 282 282 Feature: Show All configure. No downlink command yet. 283 283 284 -{{info}} 285 -**AT Command: AT+CFG** 286 -{{/info}} 287 287 288 -(% border="1" style="background-color:#ffffcc; color:green; width:599.222px" %) 289 -|=(% colspan="3" style="width: 596px;" %)AT+CFG: Print all configurations 290 -|(% style="width:160px" %)**Command Example**|(% style="width:154px" %)**Function**|(% style="width:280px" %)**Response** 274 +(% style="color:blue" %)**AT Command: AT+CFG ~/~/ **(%%)Print all configurations 275 + 276 +(% border="1" style="background-color:#f2f2f2; width:599.222px" %) 277 +|(% 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** 291 291 |(% style="width:160px" %)AT+CFG|(% style="width:154px" %)Show all configures|(% style="width:280px" %)((( 292 292 AT+DEUI = XX XX XX XX XX XX XX XX 293 - 294 294 AT+DADDR=XXXXXXXX 295 - 296 296 ………. 297 - 298 298 AT+RX2WTO=X 299 - 300 300 AT+CHS=868100000 301 - 302 302 OK 303 303 ))) 304 304 287 +(% style="display:none" %) (%%) 288 + 305 305 = 5. Keys, IDs and EUIs management = 306 306 307 307 == 5.1 Application EUI == 308 308 293 + 309 309 Feature: Get or Set the Application EUI. 310 310 311 -{{info}} 312 -**AT Command: AT+APPEUI** 313 -{{/info}} 314 314 315 -(% border="1" style="background-color:#ffffcc; color:green; width:686.222px" %) 316 -|=(% colspan="3" style="width: 683px;" %)AT+APPEUI 317 -|(% style="width:305px" %)**Command Example**|(% style="width:186px" %)**Function**|(% style="width:191px" %)**Response** 297 +(% style="color:blue" %)**AT Command: AT+APPEUI** 298 + 299 +(% border="1" style="background-color:#f2f2f2; width:686.222px" %) 300 +|(% 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** 318 318 |(% style="width:305px" %)AT+APPEUI=?|(% style="width:186px" %)Get the Application EUI|(% style="width:191px" %)00 b3 d5 00 00 00 00 00((( 319 319 OK 320 320 ))) 321 321 |(% style="width:305px" %)AT+APPEUI=00 b3 d5 7e f0 00 4d 34|(% style="width:186px" %)Set the Application EUI|(% style="width:191px" %)OK 322 322 306 +(% style="display:none" %) (%%) 307 + 323 323 == 5.2 Application Key == 324 324 310 + 325 325 Feature: Get or Set the Application Key. 326 326 327 -{{info}} 328 -**AT Command: AT+APPKEY** 329 -{{/info}} 330 330 331 -(% border="1" style="background-color:#ffffcc; color:green; width:976.222px" %) 332 -|=(% colspan="3" style="width: 973px;" %)AT+APPKEY 333 -|(% style="width:441px" %)**Command Example**|(% style="width:180px" %)**Function**|(% style="width:350px" %)**Response** 314 +(% style="color:blue" %)**AT Command: AT+APPKEY** 315 + 316 +(% border="1" style="background-color:#f2f2f2; width:976.222px" %) 317 +|(% 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** 334 334 |(% 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((( 335 335 OK 336 336 ))) 337 337 |(% 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 338 338 323 +(% style="display:none" %) (%%) 324 + 339 339 == 5.3 Application Session Key == 340 340 327 + 341 341 Feature: Get or Set the Application Session Key. 342 342 343 -{{info}} 344 -**AT Command: AT+APPSKEY** 345 -{{/info}} 346 346 347 -(% border="1" style="background-color:#ffffcc; color:green; width:1040.22px" %) 348 -|=(% colspan="3" style="width: 1037px;" %)AT+APPSKEY 349 -|(% style="width:451px" %)**Command Example**|(% style="width:231px" %)**Function**|(% style="width:354px" %)**Response** 331 +(% style="color:blue" %)**AT Command: AT+APPSKEY** 332 + 333 +(% border="1" style="background-color:#f2f2f2; width:1040.22px" %) 334 +|(% 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** 350 350 |(% 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((( 351 351 OK 352 352 ))) ... ... @@ -354,17 +354,18 @@ 354 354 OK 355 355 ))) 356 356 342 +(% style="display:none" %) (%%) 343 + 357 357 == 5.4 Device Address == 358 358 346 + 359 359 Feature: Get or Set the Device Address. 360 360 361 -{{info}} 362 -**AT Command: AT+DADDR** 363 -{{/info}} 364 364 365 -(% border="1" style="background-color:#ffffcc; color:green; width:795.222px" %) 366 -|=(% colspan="3" style="width: 792px;" %)AT+DADDR 367 -|(% style="width:192px" %)**Command Example**|(% style="width:241px" %)**Function**|(% style="width:359px" %)**Response** 350 +(% style="color:blue" %)**AT Command: AT+DADDR** 351 + 352 +(% border="1" style="background-color:#f2f2f2; width:795.222px" %) 353 +|(% 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** 368 368 |(% style="width:192px" %)AT+DADDR=?|(% style="width:241px" %)Get the Application Session Key.|(% style="width:359px" %)(While Error in format, return AT_PARAM_ERROR)((( 369 369 A8 40 41 FF 370 370 ... ... @@ -372,17 +372,18 @@ 372 372 ))) 373 373 |(% style="width:192px" %)AT+DADDR=A8 40 41 FF|(% style="width:241px" %)Set the Application Session Key.|(% style="width:359px" %)OK 374 374 361 +(% style="display:none" %) (%%) 362 + 375 375 == 5.5 Device EUI == 376 376 365 + 377 377 Feature: Get or Set the Device EUI. 378 378 379 -{{info}} 380 -**AT Command: AT+DEUI** 381 -{{/info}} 382 382 383 -(% border="1" style="background-color:#ffffcc; color:green; width:1035.22px" %) 384 -|=(% colspan="3" style="width: 1032px;" %)AT+DEUI 385 -|(% style="width:250px" %)**Command Example**|(% style="width:147px" %)**Function**|(% style="width:634px" %)**Response** 369 +(% style="color:blue" %)**AT Command: AT+DEUI** 370 + 371 +(% border="1" style="background-color:#f2f2f2; width:1035.22px" %) 372 +|(% 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** 386 386 |(% style="width:250px" %)AT+DEUI=?|(% style="width:147px" %)Get the Device EUI.|(% style="width:634px" %)00 44 34 22 33 45 55 55((( 387 387 OK 388 388 ))) ... ... @@ -390,51 +390,56 @@ 390 390 OK 391 391 ))) 392 392 380 +(% style="display:none" %) (%%) 381 + 393 393 == 5.6 Network ID == 394 394 384 + 395 395 Feature: Get or Set the Network ID.(You can enter this command change only after successful network connection) 396 396 397 -{{info}} 398 -**AT Command: AT+NWKID** 399 -{{/info}} 400 400 401 -(% border="1" style="background-color:#ffffcc; color:green; width:448.222px" %) 402 -|=(% colspan="3" style="width: 445px;" %)AT+NWKID 403 -|(% style="width:191px" %)**Command Example**|(% style="width:153px" %)**Function**|(% style="width:101px" %)**Response** 388 +(% style="color:blue" %)**AT Command: AT+NWKID** 389 + 390 +(% border="1" style="background-color:#f2f2f2; width:448.222px" %) 391 +|(% 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** 404 404 |(% style="width:191px" %)AT+NWKID=?|(% style="width:153px" %)Get the Network ID.|(% style="width:101px" %)a8 40 41 ff((( 405 405 OK 406 406 ))) 407 407 |(% style="width:191px" %)AT+NWKID=A8 40 41 FF|(% style="width:153px" %)Set the Network ID.|(% style="width:101px" %)OK 408 408 397 +(% style="display:none" %) (%%) 398 + 409 409 == 5.7 Network Session Key == 410 410 401 + 411 411 Feature: Get or Set the Network Session Key 412 412 413 -{{info}} 414 -**AT Command: AT+NWKSKEY** 415 -{{/info}} 416 416 417 -(% border="1" style="background-color:#ffffcc; color:green; width:1017.22px" %) 418 -|=(% colspan="3" style="width: 1014px;" %)AT+NWKSKEY 419 -|(% style="width:455px" %)**Command Example**|(% style="width:215px" %)**Function**|(% style="width:343px" %)**Response** 405 +(% style="color:blue" %)**AT Command: AT+NWKSKEY** 406 + 407 +(% border="1" style="background-color:#f2f2f2; width:1017.22px" %) 408 +|(% 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** 420 420 |(% 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((( 421 421 OK 422 422 ))) 423 423 |(% 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 424 424 414 +(% style="display:none" %) (%%) 415 + 425 425 = 6. Joining and sending date on LoRaWAN network = 426 426 427 427 == 6.1 Confirm Mode == 428 428 420 +=== 6.1.1 AT+CFM command before DR-LWS007 software stack === 421 + 422 + 429 429 Feature: Get or Set the confirmation mode (0-1). 430 430 431 -{{info}} 432 -**AT Command: AT+CFM** 433 -{{/info}} 434 434 435 -(% border="1" style="background-color:#ffffcc; color:green; width:710.222px" %) 436 -|=(% colspan="3" style="width: 707px;" %)AT+CFM 437 -|(% style="width:155px" %)**Command Example**|(% style="width:205px" %)**Function**|(% style="width:346px" %)**Response** 426 +(% style="color:blue" %)**AT Command: AT+CFM** 427 + 428 +(% border="1" style="background-color:#f2f2f2; width:710.222px" %) 429 +|(% 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** 438 438 |(% style="width:155px" %)AT+CFM=?|(% style="width:205px" %)Get the confirmation mode|(% style="width:346px" %)0((( 439 439 OK 440 440 ))) ... ... @@ -441,58 +441,106 @@ 441 441 |(% style="width:155px" %)AT+CFM=1|(% style="width:205px" %)Set the confirmation mode|(% style="width:346px" %)OK 442 442 |(% style="width:155px" %)AT+CFM=2|(% style="width:205px" %)Set the confirmation mode|(% style="width:346px" %)While Error in format, return AT_PARAM_ERROR 443 443 444 -Downlink Command: 0x05 436 +(% style="color:blue" %)**Downlink Command: 0x05** 445 445 446 446 Format: Command Code (0x05) followed by 2 bytes mode value. 447 447 448 448 If the downlink payload=0501, it means set end node to use confirm mode, while type code is 05. 449 449 450 -* Example 1: Downlink Payload: 0501 ~/~/ Set AT+CFM=1 451 -* Example 2: Downlink Payload: 0500 ~/~/ Set AT+CFM=0 442 +* **Example 1:** Downlink Payload: 0501 ~/~/ Set AT+CFM=1 443 +* **Example 2:** Downlink Payload: 0500 ~/~/ Set AT+CFM=0 452 452 445 +(% style="display:none" %) (%%) 446 + 447 +=== 6.1.2 AT+CFM command since DR-LWS007 software stack === 448 + 449 + 450 +(% style="color:blue" %)**AT Command: AT+CFM** 451 + 452 +(% border="1" style="background-color:#f2f2f2; width:710.222px" %) 453 +|(% 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** 454 +|(% style="width:160px" %)((( 455 +AT+CFM=1,0,0 456 + 457 +value1 458 +)))|(% style="width:198px" %)confirmed uplink|(% style="width:349px" %)((( 459 +1 460 + 461 +OK 462 +))) 463 +|(% style="width:160px" %)((( 464 +AT+CFM=0,?,0 465 + 466 +value2 467 +)))|(% style="width:198px" %)set max retry , range: 0 ~~ 7|(% style="width:349px" %)((( 468 +0~~7 469 + 470 +OK 471 +))) 472 +|(% style="width:160px" %)((( 473 +AT+CFM=0,0,1 474 + 475 +value3 476 +)))|(% style="width:198px" %)uplink fcnt increase by 1 for each retry|(% style="width:349px" %)((( 477 +1 478 + 479 +OK 480 +))) 481 + 482 +(% style="color:blue" %)**Downlink Command: 0x05** 483 + 484 +Format: Command Code (0x05) followed by 2 bytes mode value. 485 + 486 +If the downlink payload=05010101, it means set end node to use confirm mode, while type code is 05. 487 + 488 +* **Example 1:** Downlink Payload: 05010101 ~/~/ Set AT+CFM=1,1,1 489 +* **Example 2:** Downlink Payload: 05000700 ~/~/ Set AT+CFM=0,7,0 490 + 491 +(% style="display:none" %) (%%) 492 + 453 453 == 6.2 Confirm Status == 454 454 495 + 455 455 Feature: Get confirmation status of the last AT+SEND (0-1). 456 456 457 -{{info}} 458 -**AT Command: AT+CFS** 459 -{{/info}} 460 460 461 -(% border="1" style="background-color:#ffffcc; color:green; width:534.222px" %) 462 -|=(% colspan="3" style="width: 531px;" %)AT+CFS 463 -|(% style="width:156px" %)**Command Example**|(% style="width:193px" %)**Function**|(% style="width:178px" %)**Response** 464 -|(% style="width:156px" %)AT+CFS=?|(% style="width:193px" %)Get confirmation status|(% style="width:178px" %)0((( 499 +(% style="color:blue" %)**AT Command: AT+CFS** 500 + 501 +(% border="1" style="background-color:#f2f2f2; width:463px" %) 502 +|(% 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** 503 +|(% style="width:156px" %)AT+CFS=?|(% style="width:193px" %)Get confirmation status|(% style="width:107px" %)0((( 465 465 OK 466 466 ))) 467 467 507 +(% style="display:none" %) (%%) 508 + 468 468 == 6.3 Join LoRa® Network == 469 469 511 + 470 470 Feature: Join network. 471 471 472 -{{info}} 473 -**AT Command: AT+JOIN** 474 -{{/info}} 475 475 476 -(% border="1" style="background-color:#ffffcc; color:green; width:647.222px" %) 477 -|=(% colspan="3" style="width: 644px;" %)AT+JOIN 478 -|(% style="width:163px" %)**Command Example**|(% style="width:147px" %)**Function**|(% style="width:334px" %)**Response** 515 +(% style="color:blue" %)**AT Command: AT+JOIN** 516 + 517 +(% border="1" style="background-color:#f2f2f2; width:647.222px" %) 518 +|(% 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** 479 479 |(% style="width:163px" %)AT+JOIN ?|(% style="width:147px" %)Get imformation.|(% style="width:334px" %)AT+JOIN: Join network((( 480 480 OK 481 - 482 482 While Error in format, return AT_BUSY_ERROR 483 483 ))) 484 484 524 +(% style="display:none" %) (%%) 525 + 485 485 == 6.4 LoRa® Network Join Mode == 486 486 528 + 487 487 Feature: Get or Set the Network Join Mode. (0: ABP, 1: OTAA). 488 488 489 -{{info}} 490 -**AT Command: AT+NJM** 491 -{{/info}} 492 492 493 -(% border="1" style="background-color:#ffffcc; color:green; width:753.222px" %) 494 -|=(% colspan="3" style="width: 750px;" %)AT+NJM 495 -|(% style="width:162px" %)**Command Example**|(% style="width:227px" %)**Function**|(% style="width:361px" %)**Response** 532 +(% style="color:blue" %)**AT Command: AT+NJM** 533 + 534 +(% border="1" style="background-color:#f2f2f2; width:753.222px" %) 535 +|(% 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** 496 496 |(% style="width:162px" %)AT+NJM=?|(% style="width:227px" %)Get the Network Join Mode|(% style="width:361px" %)1((( 497 497 OK 498 498 ))) ... ... @@ -499,141 +499,138 @@ 499 499 |(% style="width:162px" %)AT+NJM=0|(% style="width:227px" %)Set the Network Join Mode|(% style="width:361px" %)OK 500 500 |(% style="width:162px" %)AT+NJM=2|(% style="width:227px" %)Set the Network Join Mode|(% style="width:361px" %)While Error in format, return AT_PARAM_ERROR 501 501 502 -{{info}} 503 -**Downlink Command: 0x20** 504 -{{/info}} 542 +(% style="color:blue" %)**Downlink Command: 0x20** 505 505 506 506 Format: Command Code (0x20) followed by 1 bytes mode value. 507 507 508 508 If the downlink payload=2000, it means set the Network Join Mode, while type code is 20. 509 509 510 -* **Example 1: **Downlink Payload: **2000** O511 -* **Example 2:** Downlink Payload: **2001** ~/~/ Set AT+NJM=1 548 +* **Example 1: **Downlink Payload: **2000 ** ~/~/ Set AT+NJM=0 549 +* **Example 2:** Downlink Payload: **2001** ~/~/ Set AT+NJM=1 512 512 551 +(% style="display:none" %) (%%) 552 + 513 513 == 6.5 LoRa® Network Join Status == 514 514 555 + 515 515 Feature: LoRa® Network Join Status. 516 516 517 -{{info}} 518 -**AT Command: AT+NJS** 519 -{{/info}} 520 520 521 -(% border="1" style="background-color:#ffffcc; color:green; width:498.222px" %) 522 -|=(% colspan="3" style="width: 495px;" %)AT+NJS 523 -|(% style="width:169px" %)**Command Example**|(% style="width:164px" %)**Function**|(% style="width:161px" %)**Response** 559 +(% style="color:blue" %)**AT Command: AT+NJS** 560 + 561 +(% border="1" style="background-color:#f2f2f2; width:498.222px" %) 562 +|(% 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** 524 524 |(% style="width:169px" %)AT+NJS=?|(% style="width:164px" %)Get the join status.|(% style="width:161px" %)0((( 525 525 OK 526 526 ))) 527 527 567 +(% style="display:none" %) (%%) 568 + 528 528 == 6.6 Print Last Received Data in Raw Format == 529 529 571 + 530 530 Feature: Print Last Received Data in Raw Format<port:data>. 531 531 532 -{{info}} 533 -**AT Command: AT+RECV** 534 -{{/info}} 535 535 536 -(% border="1" style="background-color:#ffffcc; color:green; width:587.222px" %) 537 -|=(% colspan="3" style="width: 584px;" %)AT+RECV 538 -|(% style="width:161px" %)**Command Example**|(% style="width:272px" %)**Function**|(% style="width:150px" %)**Response** 575 +(% style="color:blue" %)**AT Command: AT+RECV** 576 + 577 +(% border="1" style="background-color:#f2f2f2; width:587.222px" %) 578 +|(% 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** 539 539 |(% style="width:161px" %)AT+RECV=?|(% style="width:272px" %)print last received data in raw format.|(% style="width:150px" %)0:((( 540 540 OK 541 541 ))) 542 542 583 +(% style="display:none" %) (%%) 584 + 543 543 == 6.7 Print Last Received Data in Binary Format == 544 544 587 + 545 545 Feature: Print Last Received Data in Binary Format<port:data>. 546 546 547 -{{info}} 548 -**AT Command: AT+RECVB** 549 -{{/info}} 550 550 551 -(% border="1" style="background-color:#ffffcc; color:green; width:793.222px" %) 552 -|=(% colspan="3" style="width: 790px;" %)AT+RECVB 553 -|(% style="width:173px" %)**Command Example**|(% style="width:497px" %)**Function**|(% style="width:120px" %)**Response** 591 +(% style="color:blue" %)**AT Command: AT+RECVB** 592 + 593 +(% border="1" style="background-color:#f2f2f2; width:793.222px" %) 594 +|(% 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** 554 554 |(% style="width:173px" %)AT+RECVB=?|(% style="width:497px" %)print last received data in binary format (with hexadecimal values).|(% style="width:120px" %)2: 0010((( 555 555 OK 556 556 ))) 557 557 599 +(% style="display:none" %) (%%) 600 + 558 558 == 6.8 Send Text Data == 559 559 603 + 560 560 Feature: Send Text Data<port:data>. 561 561 562 -{{info}} 563 -**AT Command: AT+SEND** 564 -{{/info}} 565 565 566 -(% border="1" style="background-color:#ffffcc; color:green; width:991.222px" %) 567 -|=(% colspan="3" style="width: 988px;" %)AT+SEND 568 -|(% style="width:201px" %)**Command Example**|(% style="width:340px" %)**Function**|(% style="width:446px" %)**Response** 607 +(% style="color:blue" %)**AT Command: AT+SEND** 608 + 609 +(% border="1" style="background-color:#f2f2f2; width:991.222px" %) 610 +|(% 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** 569 569 |(% style="width:201px" %)AT+SEND=12:hello world|(% style="width:340px" %)Send text data along with the application port.|(% style="width:446px" %)OK((( 570 570 While Error in format, return 571 - 572 572 AT_BUSY_ERROR/AT_BUSY_ERROR/AT_NO_NETWORK_JOINED 573 - 574 - 575 575 ))) 576 576 616 +(% style="display:none" %) (%%) 617 + 577 577 == 6.9 Send Hexadecimal Data == 578 578 620 + 579 579 Feature: Send hexadecimal data along with the application port. 580 580 581 -{{info}} 582 -**AT Command: AT+SENDB** 583 -{{/info}} 584 584 585 -(% border="1" style="background-color:#ffffcc; color:green; width:1120.22px" %) 586 -|=(% colspan="3" style="width: 1117px;" %)AT+SENDB 587 -|(% style="width:257px" %)**Command Example**|(% style="width:406px" %)**Function**|(% style="width:453px" %)**Response** 588 -|(% style="width:257px" %)AT+SENDB=12:abcdef0123456789|(% style="width:406px" %)Send hexadecimal data along with the application port.|(% style="width:453px" %)OK 589 -|(% 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((( 590 -AT_PARAM_ERROR AT_BUSY_ERROR/AT_NO_NETWORK_JOINED 624 +(% style="color:blue" %)**AT Command: AT+SENDB** 591 591 592 - 626 +(% border="1" style="width:974px" %) 627 +|(% 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** 628 +|(% style="width:257px" %)AT+SENDB=12:abcdef0123456789|(% style="width:394px" %)Send hexadecimal data along with the application port.|(% style="width:318px" %)OK 629 +|(% 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((( 630 +AT_PARAM_ERROR AT_BUSY_ERROR/AT_NO_NETWORK_JOINED 593 593 ))) 594 594 633 +(% style="display:none" %) (%%) 634 + 595 595 = 7. LoRaWAN network management = 596 596 597 597 == 7.1 Adaptive Data Rate == 598 598 639 + 599 599 Feature: Get or Set the Adaptive Data Rate setting. (0: off, 1: on). 600 600 601 -{{info}} 602 -**AT Command: AT+ADR** 603 -{{/info}} 604 604 605 -(% border="1" style="background-color:#ffffcc; color:green; width:683.222px" %) 606 -|=(% colspan="3" style="width: 680px;" %)AT+ADR 607 -|(% style="width:162px" %)**Command Example**|(% style="width:266px" %)**Function**|(% style="width:250px" %)**Response** 608 -|(% style="width:162px" %)AT+ADR=?|(% style="width:266px" %)Get the Adaptive Data Rate setting.|(% style="width:250px" %)1((( 643 +(% style="color:blue" %)**AT Command: AT+ADR** 644 + 645 +(% border="1" style="width:643px" %) 646 +|(% 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** 647 +|(% style="width:162px" %)AT+ADR=?|(% style="width:266px" %)Get the Adaptive Data Rate setting.|(% style="width:209px" %)1((( 609 609 OK 610 610 ))) 611 -|(% style="width:162px" %)AT+ADR=0|(% style="width:266px" %)Set the Adaptive Data Rate setting.|(% style="width:2 50px" %)OK612 -|(% style="width:162px" %)AT+ADR=2|(% style="width:266px" %)Set the Adaptive Data Rate setting.|(% style="width:2 50px" %)While Error in format, return(((650 +|(% style="width:162px" %)AT+ADR=0|(% style="width:266px" %)Set the Adaptive Data Rate setting.|(% style="width:209px" %)OK 651 +|(% style="width:162px" %)AT+ADR=2|(% style="width:266px" %)Set the Adaptive Data Rate setting.|(% style="width:209px" %)While Error in format, return((( 613 613 AT_PARAM_ERROR 614 614 ))) 615 615 616 -{{info}} 617 -**Downlink Command: 0x22** 618 -{{/info}} 655 +(% style="color:blue" %)**Downlink Command: 0x22** 619 619 620 - 621 621 If the downlink payload=2201, it means setting the adaptive data rate to 1, while type code is 22. 622 622 623 -* **Example 1**: Downlink Payload: **2201** ~/~/ Set AT+ADR=1. 624 -* **Example 2**: Downlink Payload: **2200FFFF** ~/~/ Set AT+ADR=0. 659 +* **Example 1**: Downlink Payload: **2201** ~/~/ Set AT+ADR=1. 660 +* **Example 2**: Downlink Payload: **2200FFFF** ~/~/ Set AT+ADR=0. 625 625 662 +(% style="display:none" %) (%%) 663 + 626 626 == 7.2 LoRa® Class == 627 627 666 + 628 628 Feature: Get or Set the Device Class(Currently only support class A, class C). 629 629 630 -{{info}} 631 -**AT Command:AT+CLASS** 632 -{{/info}} 633 633 634 -(% border="1" style="background-color:#ffffcc; color:green; width:507.222px" %) 635 -|=(% colspan="3" style="width: 504px;" %)AT+CLASS 636 -|(% style="width:163px" %)**Command Example**|(% style="width:166px" %)**Function**|(% style="width:175px" %)**Response** 670 +(% style="color:blue" %)**AT Command: AT+CLASS** 671 + 672 +(% border="1" style="background-color:#f2f2f2; width:507.222px" %) 673 +|(% 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** 637 637 |(% style="width:163px" %)AT+CLASS=?|(% style="width:166px" %)Get the Device Class.|(% style="width:175px" %)A((( 638 638 OK 639 639 ))) ... ... @@ -641,17 +641,23 @@ 641 641 642 642 ))) 643 643 681 +(% style="display:none" %) 682 + 683 +(% style="color:red" %)**Notice:** 684 + 685 +* Run AT+FDR before running AT+CLASS=C 686 +* 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. 687 + 644 644 == 7.3 Duty Cycle Setting == 645 645 646 -Feature: Get or Set the ETSI Duty Cycle setting - 0=disable, 1=enable - Only for testing. 647 647 648 -{{info}} 649 -**AT Command:AT+DCS** 650 -{{/info}} 691 +Feature: Get or Set the ETSI Duty Cycle setting** : 0**=disable, **1**=enable - Only for testing. 651 651 652 -(% border="1" style="background-color:#ffffcc; color:green; width:515.222px" %) 653 -|=(% colspan="3" style="width: 512px;" %)AT+DCS 654 -|(% style="width:165px" %)**Command Example**|(% style="width:239px" %)**Function**|(% style="width:107px" %)**Response** 693 + 694 +(% style="color:blue" %)**AT Command: AT+DCS** 695 + 696 +(% border="1" style="background-color:#f2f2f2; width:515.222px" %) 697 +|(% 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** 655 655 |(% style="width:165px" %)AT+DCS=?|(% style="width:239px" %)Get the ETSI Duty Cycle setting.|(% style="width:107px" %)1((( 656 656 OK 657 657 ))) ... ... @@ -659,17 +659,23 @@ 659 659 660 660 ))) 661 661 705 +(% style="display:none" %) (%%) 706 + 662 662 == 7.4 Data Rate == 663 663 664 -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 665 665 666 -{{info}} 667 -**AT Command: AT+DR** 668 -{{/info}} 710 +Feature: Get or Set the Data Rate. (0-7 corresponding to DR_X) . 669 669 670 -(% border="1" style="background-color:#ffffcc; color:green; width:466.222px" %) 671 -|=(% colspan="3" style="width: 463px;" %)AT+DR 672 -|(% style="width:156px" %)**Command Example**|(% style="width:167px" %)**Function**|(% style="width:140px" %)**Response** 712 +(% style="color:red" %) 713 +**Notice:** 714 + 715 +* 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. 716 +* 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/]] 717 + 718 +(% style="color:blue" %)**AT Command: AT+DR** 719 + 720 +(% border="1" style="background-color:#f2f2f2; width:466.222px" %) 721 +|(% 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** 673 673 |(% style="width:156px" %)AT+DR=?|(% style="width:167px" %)Get the Data Rate.|(% style="width:140px" %)5((( 674 674 OK 675 675 ))) ... ... @@ -677,47 +677,43 @@ 677 677 678 678 ))) 679 679 680 -{{info}} 681 -**Downlink Command: 0x2200aaFF** 682 -{{/info}} 729 +(% style="color:blue" %)**Downlink Command: 0x2200aaFF** 683 683 684 - 685 685 If the downlink payload=220001FF, it means setting the data rate to 1, while type code is 22 00 aa FF. 686 686 687 -* **Example 1**: Downlink Payload: **220001FF** ~/~/ Set AT+DR=1. 688 -* **Example 2**: Downlink Payload: **220000FF** ~/~/ Set AT+DR=0. 733 +* **Example 1**: Downlink Payload: **220001FF** ~/~/ Set AT+DR=1. 734 +* **Example 2**: Downlink Payload: **220000FF** ~/~/ Set AT+DR=0. 689 689 736 +(% style="display:none" %) (%%) 737 + 690 690 == 7.5 Frame Counter Downlink == 691 691 740 + 692 692 Feature: Get or Set the Frame Counter Downlink. 693 693 694 -{{info}} 695 -**AT Command:AT+FCD** 696 -{{/info}} 697 697 698 -(% border="1" style="background-color:#ffffcc; color:green; width:693.222px" %) 699 -|=(% colspan="3" style="width: 690px;" %)AT+FCD 700 -|(% style="width:162px" %)**Command Example**|(% style="width:258px" %)**Function**|(% style="width:269px" %)**Response** 744 +(% style="color:blue" %)**AT Command: AT+FCD** 745 + 746 +(% border="1" style="background-color:#f2f2f2; width:693.222px" %) 747 +|(% 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** 701 701 |(% style="width:162px" %)AT+FCD=?|(% style="width:258px" %)Get the Frame Counter Downlink.|(% style="width:269px" %)0((( 702 702 OK 703 703 ))) 704 704 |(% style="width:162px" %)AT+FCD=10|(% style="width:258px" %)Set the Frame Counter Downlink.|(% style="width:269px" %)(System will write new value to FCD)((( 705 705 OK 706 - 707 - 708 708 ))) 709 709 755 +(% style="display:none" %) (%%) 756 + 710 710 == 7.6 Frame Counter Uplink == 711 711 712 712 Feature: Get or Set the Frame Counter Uplink. 713 713 714 -{{info}} 715 -**AT Command:AT+FCU** 716 -{{/info}} 717 717 718 -(% border="1" style="background-color:#ffffcc; color:green; width:534.222px" %) 719 -|=(% colspan="3" style="width: 531px;" %)AT+FCU 720 -|(% style="width:177px" %)**Command Example**|(% style="width:239px" %)**Function**|(% style="width:113px" %)**Response** 762 +(% style="color:blue" %)**AT Command: AT+FCU** 763 + 764 +(% border="1" style="background-color:#f2f2f2; width:534.222px" %) 765 +|(% 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** 721 721 |(% style="width:177px" %)AT+FCU=?|(% style="width:239px" %)Get the Frame Counter Uplink.|(% style="width:113px" %)0((( 722 722 OK 723 723 ))) ... ... @@ -725,17 +725,18 @@ 725 725 726 726 ))) 727 727 773 +(% style="display:none" %) (%%) 774 + 728 728 == 7.7 Join Accept Delay1 == 729 729 777 + 730 730 Feature: Get or Set the Join Accept Delay between the end of the Tx and the Join Rx Window 1 in ms. 731 731 732 -{{info}} 733 -**AT Command:AT+JN1DL** 734 -{{/info}} 735 735 736 -(% border="1" style="background-color:#ffffcc; color:green; width:537.222px" %) 737 -|=(% colspan="3" style="width: 534px;" %)AT+JN1DL 738 -|(% style="width:164px" %)**Command Example**|(% style="width:229px" %)**Function**|(% style="width:140px" %)**Response** 781 +(% style="color:blue" %)**AT Command: AT+JN1DL** 782 + 783 +(% border="1" style="background-color:#f2f2f2; width:537.222px" %) 784 +|(% 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** 739 739 |(% style="width:164px" %)AT+JN1DL=?|(% style="width:229px" %)Get the Join Accept Delay.|(% style="width:140px" %)5000((( 740 740 OK 741 741 ))) ... ... @@ -743,17 +743,18 @@ 743 743 744 744 ))) 745 745 792 +(% style="display:none" %) (%%) 793 + 746 746 == 7.8 Join Accept Delay2 == 747 747 796 + 748 748 Feature: Get or Set the Join Accept Delay between the end of the Tx and the Join Rx Window 2 in ms. 749 749 750 -{{info}} 751 -**AT Command:AT+JN2DL** 752 -{{/info}} 753 753 754 -(% border="1" style="background-color:#ffffcc; color:green; width:538.222px" %) 755 -|=(% colspan="3" style="width: 535px;" %)AT+JN2DL 756 -|(% style="width:160px" %)**Command Example**|(% style="width:228px" %)**Function**|(% style="width:146px" %)**Response** 800 +(% style="color:blue" %)**AT Command: AT+JN2DL** 801 + 802 +(% border="1" style="background-color:#f2f2f2; width:538.222px" %) 803 +|(% 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** 757 757 |(% style="width:160px" %)AT+JN2DL=?|(% style="width:228px" %)Get the Join Accept Delay.|(% style="width:146px" %)6000((( 758 758 OK 759 759 ))) ... ... @@ -761,37 +761,46 @@ 761 761 762 762 ))) 763 763 811 +(% style="display:none" %) (%%) 812 + 764 764 == 7.9 Public Network Mode == 765 765 766 -Feature: Get or Set the public network mode. (0: off, 1: on) 767 767 768 -{{info}} 769 -**AT Command:AT+PNM** 770 -{{/info}} 816 +Feature: Get or Set the public network mode. (0: off, 1: on). A Public LoRaWAN network use 0x34 as syncword. Default Settings; PNM=1 771 771 772 -(% border="1" style="background-color:#ffffcc; color:green; width:667.222px" %) 773 -|=(% colspan="3" style="width: 664px;" %)AT+PNM 774 -|(% style="width:166px" %)**Command Example**|(% style="width:225px" %)**Function**|(% style="width:272px" %)**Response** 818 +(% style="color:red" %)**Notice: If user build their own LoRaWAN server but still use syncword=0x34, this is still considered a public LoRaWAN network.** 819 + 820 + 821 +(% style="color:blue" %)**AT Command: AT+PNM** 822 + 823 +(% border="1" style="background-color:#f2f2f2; width:667.222px" %) 824 +|(% 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** 775 775 |(% style="width:166px" %)AT+PNM=?|(% style="width:225px" %)Get the public network mode.|(% style="width:272px" %)1((( 776 776 OK 777 777 ))) 778 -|(% style="width:166px" %)AT+PNM=1|(% style="width:225px" %)Set the public network mode.|(% style="width:272px" %)(System will write new value to PNM)((( 828 +|(% style="width:166px" %)AT+PNM=1|(% style="width:225px" %)((( 829 +Set the public network mode. 830 + 831 +Set syncword=0x34 832 +)))|(% style="width:272px" %)(System will write new value to PNM)((( 779 779 OK 780 780 781 781 782 782 ))) 837 +|(% style="width:166px" %)AT+PNM=0|(% style="width:225px" %)Set to use private network autoset syncword=0x12|(% style="width:272px" %) 783 783 839 +(% style="display:none" %) (%%) 840 + 784 784 == 7.10 Receive Delay1 == 785 785 843 + 786 786 Feature: Get or Set the delay between the end of the Tx and the Rx Window 1 in ms 787 787 788 -{{info}} 789 -**AT Command:AT+RX1DL** 790 -{{/info}} 791 791 792 -(% border="1" style="background-color:#ffffcc; color:green; width:408.222px" %) 793 -|=(% colspan="3" style="width: 405px;" %)AT+RX1DL 794 -|(% style="width:155px" %)**Command Example**|(% style="width:128px" %)**Function**|(% style="width:122px" %)**Response** 847 +(% style="color:blue" %)**AT Command: AT+RX1DL** 848 + 849 +(% border="1" style="background-color:#f2f2f2; width:408.222px" %) 850 +|(% 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** 795 795 |(% style="width:155px" %)AT+RX1DL=?|(% style="width:128px" %)Get the delay.|(% style="width:122px" %)1000((( 796 796 OK 797 797 ))) ... ... @@ -799,17 +799,18 @@ 799 799 800 800 ))) 801 801 858 +(% style="display:none" %) (%%) 859 + 802 802 == 7.11 Receive Delay2 == 803 803 862 + 804 804 Feature: Get or Set the delay between the end of the Tx and the Rx Window 2 in ms 805 805 806 -{{info}} 807 -**AT Command:AT+RX2DL** 808 -{{/info}} 809 809 810 -(% border="1" style="background-color:#ffffcc; color:green; width:481.222px" %) 811 -|=(% colspan="3" style="width: 478px;" %)AT+RX2DL 812 -|(% style="width:175px" %)**Command Example**|(% style="width:152px" %)**Function**|(% style="width:150px" %)**Response** 866 +(% style="color:blue" %)**AT Command: AT+RX2DL** 867 + 868 +(% border="1" style="background-color:#f2f2f2; width:481.222px" %) 869 +|(% 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** 813 813 |(% style="width:175px" %)AT+RX2DL=?|(% style="width:152px" %)Get the delay.|(% style="width:150px" %)2000((( 814 814 OK 815 815 ))) ... ... @@ -817,17 +817,18 @@ 817 817 818 818 ))) 819 819 877 +(% style="display:none" %) (%%) 878 + 820 820 == 7.12 Rx2 Window Data Rate == 821 821 881 + 822 822 Feature: Get or Set the Rx2 window data rate (0-7 corresponding to DR_X) 823 823 824 -{{info}} 825 -**AT Command:AT+RX2DR** 826 -{{/info}} 827 827 828 -(% border="1" style="background-color:#ffffcc; color:green; width:525.222px" %) 829 -|=(% colspan="3" style="width: 522px;" %)AT+RX2DR 830 -|(% style="width:160px" %)**Command Example**|(% style="width:232px" %)**Function**|(% style="width:130px" %)**Response** 885 +(% style="color:blue" %)**AT Command: AT+RX2DR** 886 + 887 +(% border="1" style="background-color:#f2f2f2; width:525.222px" %) 888 +|(% 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** 831 831 |(% style="width:160px" %)AT+RX2DR=?|(% style="width:232px" %)Get the Rx2 window data rate.|(% style="width:130px" %)2((( 832 832 OK 833 833 ))) ... ... @@ -835,17 +835,18 @@ 835 835 836 836 ))) 837 837 896 +(% style="display:none" %) (%%) 897 + 838 838 == 7.13 Rx2 Window Frequency == 839 839 900 + 840 840 Feature: Get or Set the Rx2 window frequency 841 841 842 -{{info}} 843 -**AT Command:AT+RX2FQ** 844 -{{/info}} 845 845 846 -(% border="1" style="background-color:#ffffcc; color:green; width:587.222px" %) 847 -|=(% colspan="3" style="width: 584px;" %)AT+RX2FQ 848 -|(% style="width:183px" %)**Command Example**|(% style="width:240px" %)**Function**|(% style="width:160px" %)**Response** 904 +(% style="color:blue" %)**AT Command: AT+RX2FQ** 905 + 906 +(% border="1" style="background-color:#f2f2f2; width:587.222px" %) 907 +|(% 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** 849 849 |(% style="width:183px" %)AT+RX2FQ=?|(% style="width:240px" %)Get the Rx2 window frequency.|(% style="width:160px" %)434665000((( 850 850 OK 851 851 ))) ... ... @@ -853,17 +853,20 @@ 853 853 854 854 ))) 855 855 915 +(% style="display:none" %) (%%) 916 + 856 856 == 7.14 Transmit Power == 857 857 919 + 858 858 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. ) 859 859 860 -{{info}} 861 -**AT Command:AT+TXP** 862 -{{/info}} 922 +(% 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** 863 863 864 -(% border="1" style="background-color:#ffffcc; color:green; width:465.222px" %) 865 -|=(% colspan="3" style="width: 462px;" %)AT+TXP 866 -|(% style="width:161px" %)**Command Example**|(% style="width:189px" %)**Function**|(% style="width:112px" %)**Response** 924 + 925 +(% style="color:blue" %)**AT Command: AT+TXP** 926 + 927 +(% border="1" style="background-color:#f2f2f2; width:465.222px" %) 928 +|(% 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** 867 867 |(% style="width:161px" %)AT+TXP=?|(% style="width:189px" %)Get the Transmit Power.|(% style="width:112px" %)0((( 868 868 OK 869 869 ))) ... ... @@ -875,93 +875,96 @@ 875 875 876 876 If the downlink payload=22000100, it means setting the TXP to 0. 877 877 878 -* **Example 1**: Downlink Payload: **22000102** ~/~/ Set AT+TXP=2. 879 -* **Example 2**: Downlink Payload: **220000 FF** ~/~/ Set AT+TXP=0.940 +* **Example 1**: Downlink Payload: **22000102** ~/~/ Set AT+TXP=2. 941 +* **Example 2**: Downlink Payload: **22000000** ~/~/ Set AT+TXP=0. 880 880 943 +(% style="display:none" %) (%%) 944 + 881 881 == 7.15 RSSI of the Last Received Packet == 882 882 947 + 883 883 Feature: Get or Set the Rx2 window frequency 884 884 885 -{{info}} 886 -**AT Command:AT+RSSI** 887 -{{/info}} 888 888 889 -(% border="1" style="background-color:#ffffcc; color:green; width:557.222px" %) 890 -|=(% colspan="3" style="width: 554px;" %)AT+RSSI 891 -|(% style="width:164px" %)**Command Example**|(% style="width:289px" %)**Function**|(% style="width:100px" %)**Response** 951 +(% style="color:blue" %)**AT Command:AT+RSSI** 952 + 953 +(% border="1" style="background-color:#f2f2f2; width:557.222px" %) 954 +|(% 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** 892 892 |(% style="width:164px" %)AT+RSSI=?|(% style="width:289px" %)Get the RSSI of the last received packet.|(% style="width:100px" %)0((( 893 893 OK 894 894 ))) 895 895 959 +(% style="display:none" %) (%%) 960 + 896 896 == 7.16 SNR of the Last Received Packet == 897 897 963 + 898 898 Feature: Get the SNR of the last received packet 899 899 900 -{{info}} 901 -**AT Command:AT+SNR** 902 -{{/info}} 903 903 904 -(% border="1" style="background-color:#ffffcc; color:green; width:571.222px" %) 905 -|=(% colspan="3" style="width: 568px;" %)AT+SNR 906 -|(% style="width:164px" %)**Command Example**|(% style="width:290px" %)**Function**|(% style="width:113px" %)**Response** 967 +(% style="color:blue" %)**AT Command: AT+SNR** 968 + 969 +(% border="1" style="background-color:#f2f2f2; width:571.222px" %) 970 +|(% 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** 907 907 |(% style="width:164px" %)AT+SNR=?|(% style="width:290px" %)Get the RSSI of the last received packet.|(% style="width:113px" %)0((( 908 908 OK 909 909 ))) 910 910 975 +(% style="display:none" %) (%%) 976 + 911 911 == 7.17 Application Port == 912 912 979 + 913 913 Feature: Get or set the application port. 914 914 915 -{{info}} 916 -**AT Command: AT+PORT** 917 -{{/info}} 918 918 919 -(% border="1" style="background-color:#ffffcc; color:green; width:500.222px" %) 920 -|=(% colspan="3" style="width: 497px;" %)AT+PORT 921 -|(% style="width:157px" %)**Command Example**|(% style="width:204px" %)**Function**|(% style="width:135px" %)**Response** 983 +(% style="color:blue" %)**AT Command: AT+PORT** 984 + 985 +(% border="1" style="background-color:#f2f2f2; width:500.222px" %) 986 +|(% 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** 922 922 |(% style="width:157px" %)AT+PORT=?|(% style="width:204px" %)Get the application port|(% style="width:135px" %)21((( 923 923 OK 924 924 ))) 925 925 |(% style="width:157px" %)AT+PORT=21|(% style="width:204px" %)Set the application port|(% style="width:135px" %)OK 926 926 927 -{{info}} 928 -**Downlink Command: 0x23** 929 -{{/info}} 992 +(% style="color:blue" %)**Downlink Command: 0x23** 930 930 931 931 Format: Command Code (0x23) followed by 1 bytes port value. 932 932 933 933 If the downlink payload=2301, it means set the application port to 1, while type code is 23. 934 934 935 -* **Example 1**: Downlink Payload: **2301** ~/~/ set the application port to 1 936 -* **Example 2**: Downlink Payload:** 2305** ~/~/ set the application port to 5 998 +* **Example 1**: Downlink Payload: **2301** ~/~/ set the application port to 1 999 +* **Example 2**: Downlink Payload:** 2305** ~/~/ set the application port to 5 937 937 1001 +(% style="display:none" %) (%%) 1002 + 938 938 == 7.18 Single Channel Mode == 939 939 1005 + 940 940 Feature:Get or Set Frequency (Unit: Hz) for Single Channel Mode. 941 941 942 -{{info}} 943 -**AT Command: AT+CHS** 944 -{{/info}} 945 945 946 -(% border="1" style="background-color:#ffffcc; color:green; width:603.222px" %) 947 -|=(% colspan="3" style="width: 600px;" %)AT+CHS 948 -|(% style="width:182px" %)**Command Example**|(% style="width:295px" %)**Function**|(% style="width:122px" %)**Response** 1009 +(% style="color:blue" %)**AT Command: AT+CHS** 1010 + 1011 +(% border="1" style="background-color:#f2f2f2; width:603.222px" %) 1012 +|(% 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** 949 949 |(% style="width:182px" %)AT+CHS=?|(% style="width:295px" %)Get Frequency for Single Channel Mode|(% style="width:122px" %)0((( 950 950 OK 951 951 ))) 952 952 |(% style="width:182px" %)AT+CHS=868100000|(% style="width:295px" %)Set Frequency for Single Channel Mode|(% style="width:122px" %)OK 953 953 1018 +(% style="display:none" %) (%%) 1019 + 954 954 == 7.19 Eight Channel Mode == 955 955 1022 + 956 956 Feature: Get or Set eight channels mode,Only for US915,AU915,CN470. 957 957 958 -{{info}} 959 -**AT Command: AT+CHE** 960 -{{/info}} 961 961 962 -(% border="1" style="background-color:#ffffcc; color:green; width:710.222px" %) 963 -|=(% colspan="3" style="width: 707px;" %)AT+CHE 964 -|(% style="width:160px" %)**Command Example**|(% style="width:198px" %)**Function**|(% style="width:349px" %)**Response** 1026 +(% style="color:blue" %)**AT Command: AT+CHE** 1027 + 1028 +(% border="1" style="background-color:#f2f2f2; width:710.222px" %) 1029 +|(% 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** 965 965 |(% style="width:160px" %)AT+CHE=?|(% style="width:198px" %)Get eight channels mode|(% style="width:349px" %)1((( 966 966 902.3 902.5 902.7 902.9 903.1 903.3 903.5 903.7 967 967 ... ... @@ -969,35 +969,36 @@ 969 969 ))) 970 970 |(% style="width:160px" %)AT+CHE=1|(% style="width:198px" %)Set eight channels mode|(% style="width:349px" %)OK 971 971 972 -{{info}} 973 -**Downlink Command: 0x24** 974 -{{/info}} 1037 +(% style="color:blue" %)**Downlink Command: 0x24 (LHT65,LHT65N Downlink Command:0x07)** 975 975 976 976 Format: Command Code (0x24) followed by 1 bytes channel value. 977 977 978 978 If the downlink payload=2401, it means set channel mode to 1, while type code is 24. 979 979 980 -* **Example 1**: Downlink Payload: 2401 ~/~/ set channel mode to 1 981 -* **Example 2**: Downlink Payload: 2405 ~/~/ set channel mode to 5 1043 +* **Example 1**: Downlink Payload: 2401 ~/~/ set channel mode to 1 1044 +* **Example 2**: Downlink Payload: 2405 ~/~/ set channel mode to 5 982 982 1046 +(% style="display:none" %) (%%) 1047 + 983 983 == 7.20 Get or Set RXwindows1 timeout == 984 984 985 -Feature:Get or Set the number of symbols to detect and timeout from RXwindow1(0 to 255). 986 986 987 -{{info}} 988 -**AT Command: AT+RX1WTO** 989 -{{/info}} 1051 +Feature: Get or Set the number of symbols to detect and timeout from RXwindow1(0 to 255). 990 990 991 -(% border="1" style="background-color:#ffffcc; color:green; width:460.222px" %) 992 -|=(% colspan="3" style="width: 457px;" %)AT+ RX1WTO 993 -|(% style="width:163px" %)**Command Example**|(% style="width:201px" %)**Function**|(% style="width:93px" %)**Response** 1053 + 1054 +(% style="color:blue" %)**AT Command: AT+RX1WTO** 1055 + 1056 +(% border="1" style="background-color:#f2f2f2; width:460.222px" %) 1057 +|(% 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** 994 994 |(% style="width:163px" %)AT+RX1WTO=?|(% style="width:201px" %)Get RXwindows1 timeout|(% style="width:93px" %)14((( 995 995 OK 996 996 ))) 997 997 |(% style="width:163px" %)AT+RX1WTO=60|(% style="width:201px" %)Set RXwindows1 timeout|(% style="width:93px" %)OK 998 998 1063 +(% style="display:none" %) (%%) 1064 + 999 999 ((( 1000 -**AT+RX1 TWO**1066 +(% 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. 1001 1001 ))) 1002 1002 1003 1003 [[image:image-20220526162535-1.png]] ... ... @@ -1004,59 +1004,60 @@ 1004 1004 1005 1005 ((( 1006 1006 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. 1007 - 1008 - 1009 1009 ))) 1010 1010 1075 + 1011 1011 == 7.21 Get or Set RXwindows2 timeout == 1012 1012 1013 -Feature:Get or Set the number of symbols to detect and timeout from RXwindow2(0 to 255). 1014 1014 1015 -{{info}} 1016 -**AT Command: AT+RX2WTO** 1017 -{{/info}} 1079 +Feature: Get or Set the number of symbols to detect and timeout from RXwindow2(0 to 255). 1018 1018 1019 -(% border="1" style="background-color:#ffffcc; color:green; width:497.222px" %) 1020 -|=(% colspan="3" style="width: 494px;" %)AT+ RX2WTO 1021 -|(% style="width:190px" %)**Command Example**|(% style="width:199px" %)**Function**|(% style="width:104px" %)**Response** 1081 + 1082 +(% style="color:blue" %)**AT Command: AT+RX2WTO** 1083 + 1084 +(% border="1" style="background-color:#f2f2f2; width:497.222px" %) 1085 +|(% 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** 1022 1022 |(% style="width:190px" %)AT+RX2WTO=?|(% style="width:199px" %)Get RXwindows2 timeout|(% style="width:104px" %)7((( 1023 1023 OK 1024 1024 ))) 1025 1025 |(% style="width:190px" %)AT+RX2WTO=20|(% style="width:199px" %)Set RXwindows2 timeout|(% style="width:104px" %)OK 1026 1026 1091 +(% style="display:none" %) (%%) 1092 + 1027 1027 == 7.22 Setting up uplinkdwelltime (as923, au915) == 1028 1028 1095 + 1029 1029 Feature: Get or Set uplinkdwelltime 1030 1030 1031 -{{info}} 1032 -**AT Command: AT+DWELLT** 1033 -{{/info}} 1034 1034 1035 -(% border="1" style="background-color:#ffffcc; color:green; width:497.222px" %) 1036 -|=(% colspan="3" style="width: 494px;" %)AT+DWELLT 1037 -|(% style="width:183px" %)**Command Example**|(% style="width:179px" %)**Function**|(% style="width:131px" %)**Response** 1099 +(% style="color:blue" %)**AT Command: AT+DWELLT** 1100 + 1101 +(% border="1" style="background-color:#f2f2f2; width:497.222px" %) 1102 +|(% 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** 1038 1038 |(% style="width:183px" %)AT+DWELLT=?|(% style="width:179px" %)Get uplinkdwelltime|(% style="width:131px" %)1((( 1039 1039 OK 1040 1040 ))) 1041 1041 |(% style="width:183px" %)AT+DWELLT=0|(% style="width:179px" %)Set uplinkdwelltime|(% style="width:131px" %)OK 1042 1042 1043 -{{info}} 1044 -**Downlink Command: 0x25** 1045 -{{/info}} 1108 +(% style="color:blue" %)**Downlink Command: 0x25** 1046 1046 1047 1047 Format: Command Code (0x25) followed by 1 bytes state value. 1048 1048 1049 1049 If the downlink payload=2501, it means set uplinkdwelltime to 1, while type code is 25. 1050 1050 1051 -* **Example 1**: Downlink Payload: **2501** ~/~/ set uplinkdwelltime to 1 1052 -* **Example 2**: Downlink Payload: **2500** ~/~/ set uplinkdwelltime to 0 1114 +* **Example 1**: Downlink Payload: **2501** ~/~/ set uplinkdwelltime to 1 1115 +* **Example 2**: Downlink Payload: **2500** ~/~/ set uplinkdwelltime to 0 1053 1053 1117 +(% style="display:none" %) (%%) 1118 + 1054 1054 == 7.23 Set Packet Receiving Response Level == 1055 1055 1121 + 1056 1056 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. 1057 1057 1058 -RPL value: 1059 1059 1125 +(% style="color:blue" %)**RPL value:** 1126 + 1060 1060 * **AT+RPL=0:** Device won't immediately reply any downlink commands from platform. 1061 1061 * **AT+RPL=1:** Device will immediately reply message to Unconfirmed Data Down. Payload is 0x00. 1062 1062 * **AT+RPL=2:** Device will immediately reply message to Confirmed Data Down. Payload is 0x00 and requied response header for this command. ... ... @@ -1063,50 +1063,183 @@ 1063 1063 * **AT+RPL=3:** Device will immediately reply message to MAC Command. Payload is 0x00 and requied response header for this command. 1064 1064 * **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. 1065 1065 1066 -Case Analyes: 1133 +(% style="color:blue" %)**Case Analyes:** 1067 1067 1068 1068 * For Class A devices, AT+RPL=0 is ok. that is defaut settings in software. 1069 1069 * For Class C devices used in ChirpStack, need to set AT+RPL=4 because Chirpstack require immedietely reply message to MAC Command. 1070 1070 * 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. 1071 1071 1072 -{{info}} 1073 -**AT Command: AT+RPL** 1074 -{{/info}} 1139 +(% style="color:blue" %)**AT Command: AT+RPL** 1075 1075 1076 -(% border="1" style="background-color:#ffffcc; color:green; width:536.222px" %) 1077 -|=(% colspan="3" style="width: 533px;" %)AT+RPL 1078 -|(% style="width:160px" %)**Command Example**|(% style="width:263px" %)**Function**|(% style="width:109px" %)**Response** 1141 +(% border="1" style="background-color:#f2f2f2; width:536.222px" %) 1142 +|(% 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** 1079 1079 |(% style="width:160px" %)AT+RPL=?|(% style="width:263px" %)Get packet receiving response level|(% style="width:109px" %)1((( 1080 1080 OK 1081 1081 ))) 1082 1082 |(% style="width:160px" %)AT+RPL=0|(% style="width:263px" %)Set packet receiving response level|(% style="width:109px" %)OK 1083 1083 1084 -{{info}} 1085 -**Downlink Command: 0x21** 1086 -{{/info}} 1148 +(% style="color:blue" %)**Downlink Command: 0x21** 1087 1087 1088 1088 Format: Command Code (0x21) followed by 1 bytes level value. 1089 1089 1090 1090 If the downlink payload=2101, it means set packet receiving response level to 1, while type code is 21. 1091 1091 1092 -* **Example 1**: Downlink Payload: **2101** ~/~/ set packet receiving response level to 1 1093 -* **Example 2**: Downlink Payload: **2102** ~/~/ set packet receiving response level to 2 1154 +* **Example 1**: Downlink Payload: **2101** ~/~/ set packet receiving response level to 1 1155 +* **Example 2**: Downlink Payload: **2102** ~/~/ set packet receiving response level to 2 1094 1094 1157 +(% style="display:none" %) (%%) 1158 + 1159 +== 7.24 Controls NBTrans in unconfirmed uplink mode(LWS007 NBTrans:Set retransmission packets) == 1160 + 1161 + 1162 +(% style="color:blue" %)**AT Command: AT+SETMAXNBTRANS ** 1163 + 1164 +(% border="1" style="background-color:#f2f2f2; width:589px" %) 1165 +|(% 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** 1166 +|(% style="width:227px" %)AT+SETMAXNBTRANS=1,0|(% style="width:300px" %)Value1: set the maximum NBTrans.|(% style="width:87px" %)1((( 1167 +OK 1168 +))) 1169 +|(% style="width:227px" %)AT+SETMAXNBTRANS=?,1|(% style="width:300px" %)((( 1170 +value2: 0: uplink fcnt doesn't change for each NBTrans; 1171 + 1172 +1: uplink fcnt increase by 1 for each NBTrans. 1173 +)))|(% style="width:87px" %)((( 1174 +1 1175 + 1176 +OK 1177 +))) 1178 + 1179 +(% style="color:blue" %)**Downlink Command: 0x33** 1180 + 1181 +Format: Command Code (0x33) followed by 2 bytes mode value. 1182 + 1183 +If the downlink payload=330100, it means set end node to use confirm mode, while type code is 33. 1184 + 1185 +* Example 1: Downlink Payload: 330100 ~/~/ Set AT+SETMAXNBTRANS=1,0 1186 +* Example 2: Downlink Payload: 330201 ~/~/ Set AT+SETMAXNBTRANS=2,1 1187 + 1188 +(% style="display:none" %) (%%) 1189 + 1190 +== 7.25 Device offline rejoining (LWS007) == 1191 + 1192 + 1193 +(% style="color:blue" %)**AT Command: AT+DDETECT** 1194 + 1195 +AT+DDETECT=<Flag>,<ACK_Timout_1>,<ACK_Timout_2> (Default Value: AT+DDETECT=1,1440,2880) 1196 + 1197 +* ACK_Timout_1: Unit: min 1198 +* ACK_Timout_2: Unit: min 1199 + 1200 +(% border="1" style="background-color:#f2f2f2; width:710.222px" %) 1201 +|(% 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** 1202 +|(% style="width:160px" %)((( 1203 +AT+DDETECT=1,1440,2880 1204 + 1205 +value1 1206 +)))|(% style="width:198px" %)Enable online detect|(% style="width:349px" %)((( 1207 +1 1208 + 1209 +OK 1210 +))) 1211 +|(% style="width:160px" %)((( 1212 +AT+DDETECT=1,?,2880 1213 + 1214 +value2 1215 +)))|(% style="width:198px" %)Online detection packet sending time|(% style="width:349px" %)((( 1216 + 1217 + 1218 +OK 1219 +))) 1220 +|(% style="width:160px" %)((( 1221 +AT+DDETECT=1,1440,? 1222 + 1223 +value3 1224 +)))|(% style="width:198px" %)Process rejoin|(% style="width:349px" %)((( 1225 + 1226 + 1227 +OK 1228 +))) 1229 + 1230 +(% style="color:blue" %)**Downlink Command: 0x32** 1231 + 1232 +Format: Command Code (0x32) followed by 2 bytes mode value. 1233 + 1234 +If the downlink payload=320105A00B40, it means set end node to use confirm mode, while type code is 32. 1235 + 1236 +* **Example 1:** Downlink Payload: 320105A00B40 ~/~/ Set AT+DDETECT=1,1440,2880 1237 +** 0x01 : Flag 1238 +** 0x05A0: ACK_Timout_1 : 1440minutes (24 hours) 1239 +** 0x0B40: ACK_Timout_2 : 2880minutes (48 hours) 1240 +** **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. 1241 + 1242 +(% style="display:none" %) (%%) 1243 + 1244 +== 7.26 Request the server to send an ACK == 1245 + 1246 + 1247 +(% style="color:blue" %)**AT Command: AT+PNACKMD** 1248 + 1249 +(% border="1" style="background-color:#f2f2f2; width:536.222px" %) 1250 +|(% 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** 1251 +|(% 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((( 1252 +OK 1253 +))) 1254 +|(% style="width:160px" %)AT+PNACKMD=0|(% style="width:263px" %)off request the server to send an ACK|(% style="width:109px" %)((( 1255 +0 1256 +OK 1257 +))) 1258 + 1259 +(% style="display:none" %) (%%) 1260 + 1261 +== 7.27 Adjust network rejoining interval == 1262 + 1263 + 1264 +(% style="color:blue" %)**AT Command: AT+RJTDC** 1265 + 1266 +(% border="1" style="background-color:#f2f2f2; width:727.222px" %) 1267 +|(% 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** 1268 +|(% style="width:165px" %)AT+RJTDC=?|(% style="width:227px" %)Show the ReJoin data transmission interval in min|(% style="width:329px" %)30((( 1269 +OK 1270 + 1271 +the interval is 30 min 1272 +))) 1273 +|(% style="width:165px" %)AT+RJTDC=60|(% style="width:227px" %)Set the ReJoin data transmission interval in min|(% style="width:329px" %)OK((( 1274 +Set the ReJoin data transmission interval to 60 min 1275 +))) 1276 + 1277 +(% style="color:blue" %)**Downlink Command: 0x26** 1278 + 1279 +Format: Command Code (0x26) followed by 2 bytes mode value. 1280 + 1281 +If the downlink payload=26000A, it means set end node to use confirm mode, while type code is 26. 1282 + 1283 +* **Example 1:** Downlink Payload: 26000A ~/~/ Set AT+RJTDC=10 1284 +* **Example 2: **Downlink Payload: 260002 ~/~/ Set AT+RJTDC=2 1285 + 1286 +(% style="display:none" %) (%%) 1287 + 1095 1095 = 8. AT Commands Combination = 1096 1096 1097 1097 == 8.1 Set a fix RX2DR for downlink window == 1098 1098 1099 -* **AT+ADR=0 **~-~-> Disable ADR first 1100 -* **AT+RX2DR=xxxx** ~-~-> Set xxxx to your wanted DataRate 1101 1101 1293 +* (% style="color:blue" %)**AT+ADR=0 **(%%) **~/~/** Disable ADR first 1294 + 1295 +* (% style="color:blue" %)**AT+RX2DR=xxxx** (%%) **~/~/** Set xxxx to your wanted DataRate 1296 + 1297 +(% style="display:none" %) (%%) 1298 + 1102 1102 == 8.2 Use Downlink Command to set a fix uplink DR == 1103 1103 1104 -{{info}} 1105 -**Downlink Command: 0x22000500** 1106 -{{/info}} 1107 1107 1108 - Same as:1302 +(% style="color:blue" %)**Downlink Command: 0x22000500** 1109 1109 1110 -* AT+ADR=0 [[Reference>>||anchor="H7.1AdaptiveDataRate"]] 1111 -* AT+DR=5 [[Reference>>||anchor="H7.4DataRate"]] 1112 -* AT+TXP=0 [[Reference>>||anchor="H7.14TransmitPower"]] 1304 +**Same as:** 1305 + 1306 +* AT+ADR=0 [[Reference>>||anchor="H7.1AdaptiveDataRate"]] 1307 + 1308 +* AT+DR=5 [[Reference>>||anchor="H7.4DataRate"]] 1309 + 1310 +* AT+TXP=0 [[Reference>>||anchor="H7.14TransmitPower"]] 1311 + 1312 +