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