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,36 +6,39 @@ 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" %)**Model**|(% style="background-color:#4f81bd; color:white; width:330px" %)**Description**|(% style="background-color:#4f81bd; color:white; width:445px" %)**Firmware Version <~-~-> Stack Version** 33 +))) 38 38 |(% style="width:187px" %)((( 35 +**Model** 36 +)))|(% style="width:330px" %)((( 37 +**Description** 38 +)))|(% style="width:445px" %)((( 39 +**Firmware Version <~-~-> Stack Version** 40 +))) 41 +|(% style="width:187px" %)((( 39 39 [[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]], 40 40 )))|(% style="width:330px" %)((( 41 41 Open Source Generic LoRaWAN Sensor Node ... ... @@ -95,20 +95,22 @@ 95 95 ))) 96 96 ))) 97 97 98 -(% style="display:none" %) (%%) 99 99 102 + 100 100 = 4. System Management Commands = 101 101 102 102 == 4.1 Change Uplink Interval == 103 103 104 - 105 105 Feature: Change LoRaWAN End Node Transmit Interval. 106 106 109 +(% class="box infomessage" %) 110 +((( 111 +**AT Command: AT+TDC** 112 +))) 107 107 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** 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** 112 112 |(% style="width:165px" %)AT+TDC=?|(% style="width:227px" %)Show current transmit Interval|(% style="width:329px" %)30000((( 113 113 OK 114 114 ... ... @@ -118,32 +118,35 @@ 118 118 Set transmit interval to 60000ms = 60 seconds 119 119 ))) 120 120 121 -((( 122 -(% style="color:blue" %)**Downlink Command: 0x01** 126 +{{info}} 127 +**Downlink Command: 0x01** 128 +{{/info}} 123 123 130 +((( 124 124 Format: Command Code (0x01) followed by 3 bytes time value. 125 125 ))) 126 126 127 127 ((( 128 -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. 129 129 ))) 130 130 131 -* **Example 1**: Downlink Payload:** 0100001E** 132 -* **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 133 133 134 -(% style="display:none" %) (%%) 135 135 142 + 136 136 == 4.2 Reboot End Node == 137 137 138 - 139 139 Feature: Reboot End Node to perform a new OTAA or ABP Join. 140 140 147 +{{info}} 148 +**AT Command: ATZ** 149 +{{/info}} 141 141 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" %)((( 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|((( 147 147 Device reset and show booting info 148 148 149 149 LSN50 Device/LoRa ST Module ... ... @@ -157,7 +157,9 @@ 157 157 <followed by the Tx and Rx information> 158 158 ))) 159 159 160 -(% style="color:blue" %)**Downlink Command: 0x04** 168 +{{info}} 169 +**Downlink Command: 0x04** 170 +{{/info}} 161 161 162 162 ((( 163 163 Format: Command Code (0x04) followed by FF. ... ... @@ -164,21 +164,23 @@ 164 164 ))) 165 165 166 166 ((( 167 -If the downlink payload=**04FF**, the end node will reboot. 177 +If the downlink payload=**04FF**, the end node will reboot. 178 + 179 + 168 168 ))) 169 169 170 - 171 171 == 4.3 Reset to factory Default == 172 172 173 - 174 174 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. 175 175 186 +{{info}} 187 +**AT Command: AT+FDR** 188 +{{/info}} 176 176 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" %)((( 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" %)((( 182 182 Device reset to factory default parameters and show booting info 183 183 184 184 LSN50 Device/LoRa ST Module ... ... @@ -192,7 +192,9 @@ 192 192 Please set the parameters or reset Device to apply change 193 193 ))) 194 194 195 -(% style="color:blue" %)**Downlink Command: 0x04** 207 +{{info}} 208 +**Downlink Command: 0x04** 209 +{{/info}} 196 196 197 197 ((( 198 198 Format: Command Code (0x04) followed by FE. ... ... @@ -205,21 +205,24 @@ 205 205 206 206 == 4.4 Show Firmware Version == 207 207 208 - 209 209 Feature: Show firmware version. No downlink command yet. 210 210 224 +{{info}} 225 +**AT Command: AT+VER** 226 +{{/info}} 211 211 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" %)((( 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" %)((( 217 217 1.3 EU868 218 218 219 219 OK 220 220 ))) 221 221 222 -(% style="color:blue" %)**Downlink Command: 0x26 (Valid in 006 stack)** 237 +{{info}} 238 +**Downlink Command: 0x26 (Valid in 006 stack)** 239 +{{/info}} 223 223 224 224 ((( 225 225 Downlink Format: 0x26 ... ... @@ -230,9 +230,7 @@ 230 230 ))) 231 231 232 232 ((( 233 - 234 - 235 -(% style="color:#037691" %)**xx: Software Type:** 250 +**xx: Software Type:** 236 236 ))) 237 237 238 238 * 0x00 01: LGT92 Version ... ... @@ -240,9 +240,7 @@ 240 240 * 0x00 03: LSE01/LDDS75/LDDS20/LSPH01/LLMS01/LSNPK01 241 241 242 242 ((( 243 - 244 - 245 -(% style="color:#037691" %)**yy: Frequency Band:** 258 +**yy: Frequency Band:** 246 246 ))) 247 247 248 248 * 0x01: EU868 ... ... @@ -257,9 +257,7 @@ 257 257 * 0xa0: AS923-3 258 258 259 259 ((( 260 - 261 - 262 -(% style="color:#037691" %)**zz: Subband** 273 +**zz: Subband** 263 263 ))) 264 264 265 265 firmware version: v1.1.0 ~-~-> 110 ... ... @@ -267,71 +267,79 @@ 267 267 268 268 == 4.5 Show System Configure == 269 269 270 - 271 271 Feature: Show All configure. No downlink command yet. 272 272 283 +{{info}} 284 +**AT Command: AT+CFG** 285 +{{/info}} 273 273 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** 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** 278 278 |(% style="width:160px" %)AT+CFG|(% style="width:154px" %)Show all configures|(% style="width:280px" %)((( 279 279 AT+DEUI = XX XX XX XX XX XX XX XX 292 + 280 280 AT+DADDR=XXXXXXXX 294 + 281 281 ………. 296 + 282 282 AT+RX2WTO=X 298 + 283 283 AT+CHS=868100000 300 + 284 284 OK 285 285 ))) 286 286 287 -(% style="display:none" %) (%%) 288 288 305 + 289 289 = 5. Keys, IDs and EUIs management = 290 290 291 291 == 5.1 Application EUI == 292 292 293 - 294 294 Feature: Get or Set the Application EUI. 295 295 312 +{{info}} 313 +**AT Command: AT+APPEUI** 314 +{{/info}} 296 296 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** 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** 301 301 |(% style="width:305px" %)AT+APPEUI=?|(% style="width:186px" %)Get the Application EUI|(% style="width:191px" %)00 b3 d5 00 00 00 00 00((( 302 302 OK 303 303 ))) 304 304 |(% style="width:305px" %)AT+APPEUI=00 b3 d5 7e f0 00 4d 34|(% style="width:186px" %)Set the Application EUI|(% style="width:191px" %)OK 305 305 306 -(% style="display:none" %) (%%) 307 307 325 + 308 308 == 5.2 Application Key == 309 309 310 - 311 311 Feature: Get or Set the Application Key. 312 312 330 +{{info}} 331 +**AT Command: AT+APPKEY** 332 +{{/info}} 313 313 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 +(% 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** 318 318 |(% 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((( 319 319 OK 320 320 ))) 321 321 |(% 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 322 322 323 -(% style="display:none" %) (%%) 324 324 325 325 == 5.3 Application Session Key == 326 326 327 - 328 328 Feature: Get or Set the Application Session Key. 329 329 347 +{{info}} 348 +**AT Command: AT+APPSKEY** 349 +{{/info}} 330 330 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** 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** 335 335 |(% 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((( 336 336 OK 337 337 ))) ... ... @@ -339,18 +339,18 @@ 339 339 OK 340 340 ))) 341 341 342 -(% style="display:none" %) (%%) 343 343 344 344 == 5.4 Device Address == 345 345 346 - 347 347 Feature: Get or Set the Device Address. 348 348 366 +{{info}} 367 +**AT Command: AT+DADDR** 368 +{{/info}} 349 349 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** 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** 354 354 |(% style="width:192px" %)AT+DADDR=?|(% style="width:241px" %)Get the Application Session Key.|(% style="width:359px" %)(While Error in format, return AT_PARAM_ERROR)((( 355 355 A8 40 41 FF 356 356 ... ... @@ -358,18 +358,18 @@ 358 358 ))) 359 359 |(% style="width:192px" %)AT+DADDR=A8 40 41 FF|(% style="width:241px" %)Set the Application Session Key.|(% style="width:359px" %)OK 360 360 361 -(% style="display:none" %) (%%) 362 362 363 363 == 5.5 Device EUI == 364 364 365 - 366 366 Feature: Get or Set the Device EUI. 367 367 385 +{{info}} 386 +**AT Command: AT+DEUI** 387 +{{/info}} 368 368 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** 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** 373 373 |(% style="width:250px" %)AT+DEUI=?|(% style="width:147px" %)Get the Device EUI.|(% style="width:634px" %)00 44 34 22 33 45 55 55((( 374 374 OK 375 375 ))) ... ... @@ -377,56 +377,54 @@ 377 377 OK 378 378 ))) 379 379 380 -(% style="display:none" %) (%%) 381 381 382 382 == 5.6 Network ID == 383 383 384 - 385 385 Feature: Get or Set the Network ID.(You can enter this command change only after successful network connection) 386 386 404 +{{info}} 405 +**AT Command: AT+NWKID** 406 +{{/info}} 387 387 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** 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** 392 392 |(% style="width:191px" %)AT+NWKID=?|(% style="width:153px" %)Get the Network ID.|(% style="width:101px" %)a8 40 41 ff((( 393 393 OK 394 394 ))) 395 395 |(% style="width:191px" %)AT+NWKID=A8 40 41 FF|(% style="width:153px" %)Set the Network ID.|(% style="width:101px" %)OK 396 396 397 -(% style="display:none" %) (%%) 398 398 399 399 == 5.7 Network Session Key == 400 400 401 - 402 402 Feature: Get or Set the Network Session Key 403 403 421 +{{info}} 422 +**AT Command: AT+NWKSKEY** 423 +{{/info}} 404 404 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** 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** 409 409 |(% 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((( 410 410 OK 411 411 ))) 412 412 |(% 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 413 413 414 -(% style="display:none" %) (%%) 415 415 416 416 = 6. Joining and sending date on LoRaWAN network = 417 417 418 418 == 6.1 Confirm Mode == 419 419 420 -=== 6.1.1 AT+CFM command before DR-LWS007 software stack === 421 - 422 - 423 423 Feature: Get or Set the confirmation mode (0-1). 424 424 440 +{{info}} 441 +**AT Command: AT+CFM** 442 +{{/info}} 425 425 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** 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** 430 430 |(% style="width:155px" %)AT+CFM=?|(% style="width:205px" %)Get the confirmation mode|(% style="width:346px" %)0((( 431 431 OK 432 432 ))) ... ... @@ -433,106 +433,62 @@ 433 433 |(% style="width:155px" %)AT+CFM=1|(% style="width:205px" %)Set the confirmation mode|(% style="width:346px" %)OK 434 434 |(% style="width:155px" %)AT+CFM=2|(% style="width:205px" %)Set the confirmation mode|(% style="width:346px" %)While Error in format, return AT_PARAM_ERROR 435 435 436 - (% style="color:blue" %)**Downlink Command: 0x05**453 +Downlink Command: 0x05 437 437 438 438 Format: Command Code (0x05) followed by 2 bytes mode value. 439 439 440 440 If the downlink payload=0501, it means set end node to use confirm mode, while type code is 05. 441 441 442 -* **Example 1:**Downlink Payload: 0501443 -* **Example 2:**Downlink Payload: 0500459 +* Example 1: Downlink Payload: 0501 ~/~/ Set AT+CFM=1 460 +* Example 2: Downlink Payload: 0500 ~/~/ Set AT+CFM=0 444 444 445 -(% style="display:none" %) (%%) 446 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 - 493 493 == 6.2 Confirm Status == 494 494 495 - 496 496 Feature: Get confirmation status of the last AT+SEND (0-1). 497 497 467 +{{info}} 468 +**AT Command: AT+CFS** 469 +{{/info}} 498 498 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((( 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((( 504 504 OK 505 505 ))) 506 506 507 -(% style="display:none" %) (%%) 508 508 509 509 == 6.3 Join LoRa® Network == 510 510 511 - 512 512 Feature: Join network. 513 513 483 +{{info}} 484 +**AT Command: AT+JOIN** 485 +{{/info}} 514 514 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** 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** 519 519 |(% style="width:163px" %)AT+JOIN ?|(% style="width:147px" %)Get imformation.|(% style="width:334px" %)AT+JOIN: Join network((( 520 520 OK 492 + 521 521 While Error in format, return AT_BUSY_ERROR 522 522 ))) 523 523 524 -(% style="display:none" %) (%%) 525 525 497 + 526 526 == 6.4 LoRa® Network Join Mode == 527 527 528 - 529 529 Feature: Get or Set the Network Join Mode. (0: ABP, 1: OTAA). 530 530 502 +{{info}} 503 +**AT Command: AT+NJM** 504 +{{/info}} 531 531 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** 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** 536 536 |(% style="width:162px" %)AT+NJM=?|(% style="width:227px" %)Get the Network Join Mode|(% style="width:361px" %)1((( 537 537 OK 538 538 ))) ... ... @@ -539,138 +539,155 @@ 539 539 |(% style="width:162px" %)AT+NJM=0|(% style="width:227px" %)Set the Network Join Mode|(% style="width:361px" %)OK 540 540 |(% 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 541 541 542 -(% style="color:blue" %)**Downlink Command: 0x20** 515 +{{info}} 516 +**Downlink Command: 0x20** 517 +{{/info}} 543 543 544 544 Format: Command Code (0x20) followed by 1 bytes mode value. 545 545 546 546 If the downlink payload=2000, it means set the Network Join Mode, while type code is 20. 547 547 548 -* **Example 1: **Downlink Payload: **2000 0549 -* **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 550 550 551 -(% style="display:none" %) (%%) 552 552 527 + 553 553 == 6.5 LoRa® Network Join Status == 554 554 555 - 556 556 Feature: LoRa® Network Join Status. 557 557 532 +{{info}} 533 +**AT Command: AT+NJS** 534 +{{/info}} 558 558 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** 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** 563 563 |(% style="width:169px" %)AT+NJS=?|(% style="width:164px" %)Get the join status.|(% style="width:161px" %)0((( 564 564 OK 565 565 ))) 566 566 567 -(% style="display:none" %) (%%) 568 568 544 + 569 569 == 6.6 Print Last Received Data in Raw Format == 570 570 571 - 572 572 Feature: Print Last Received Data in Raw Format<port:data>. 573 573 549 +{{info}} 550 +**AT Command: AT+RECV** 551 +{{/info}} 574 574 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** 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** 579 579 |(% style="width:161px" %)AT+RECV=?|(% style="width:272px" %)print last received data in raw format.|(% style="width:150px" %)0:((( 580 580 OK 581 581 ))) 582 582 583 -(% style="display:none" %) (%%) 584 584 561 + 585 585 == 6.7 Print Last Received Data in Binary Format == 586 586 587 - 588 588 Feature: Print Last Received Data in Binary Format<port:data>. 589 589 566 +{{info}} 567 +**AT Command: AT+RECVB** 568 +{{/info}} 590 590 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** 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** 595 595 |(% style="width:173px" %)AT+RECVB=?|(% style="width:497px" %)print last received data in binary format (with hexadecimal values).|(% style="width:120px" %)2: 0010((( 596 596 OK 597 597 ))) 598 598 599 -(% style="display:none" %) (%%) 600 600 578 + 601 601 == 6.8 Send Text Data == 602 602 603 - 604 604 Feature: Send Text Data<port:data>. 605 605 583 +{{info}} 584 +**AT Command: AT+SEND** 585 +{{/info}} 606 606 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** 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** 611 611 |(% style="width:201px" %)AT+SEND=12:hello world|(% style="width:340px" %)Send text data along with the application port.|(% style="width:446px" %)OK((( 612 612 While Error in format, return 592 + 613 613 AT_BUSY_ERROR/AT_BUSY_ERROR/AT_NO_NETWORK_JOINED 594 + 595 + 614 614 ))) 615 615 616 -(% style="display:none" %) (%%) 617 617 599 + 618 618 == 6.9 Send Hexadecimal Data == 619 619 620 - 621 621 Feature: Send hexadecimal data along with the application port. 622 622 604 +{{info}} 605 +**AT Command: AT+SENDB** 606 +{{/info}} 623 623 624 -(% 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 625 625 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 615 + 631 631 ))) 632 632 633 -(% style="display:none" %) (%%) 634 634 619 + 635 635 = 7. LoRaWAN network management = 636 636 637 637 == 7.1 Adaptive Data Rate == 638 638 639 - 640 640 Feature: Get or Set the Adaptive Data Rate setting. (0: off, 1: on). 641 641 626 +{{info}} 627 +**AT Command: AT+ADR** 628 +{{/info}} 642 642 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((( 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((( 648 648 OK 649 649 ))) 650 -|(% style="width:162px" %)AT+ADR=0|(% style="width:266px" %)Set the Adaptive Data Rate setting.|(% style="width:20 9px" %)OK651 -|(% 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((( 652 652 AT_PARAM_ERROR 653 653 ))) 654 654 655 -(% style="color:blue" %)**Downlink Command: 0x22** 641 +{{info}} 642 +**Downlink Command: 0x22** 643 +{{/info}} 656 656 645 + 657 657 If the downlink payload=2201, it means setting the adaptive data rate to 1, while type code is 22. 658 658 659 -* **Example 1**: Downlink Payload: **2201** 660 -* **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. 661 661 662 -(% style="display:none" %) (%%) 663 663 652 + 664 664 == 7.2 LoRa® Class == 665 665 666 - 667 667 Feature: Get or Set the Device Class(Currently only support class A, class C). 668 668 657 +{{info}} 658 +**AT Command:AT+CLASS** 659 +{{/info}} 669 669 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** 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** 674 674 |(% style="width:163px" %)AT+CLASS=?|(% style="width:166px" %)Get the Device Class.|(% style="width:175px" %)A((( 675 675 OK 676 676 ))) ... ... @@ -678,23 +678,17 @@ 678 678 679 679 ))) 680 680 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 - 688 688 == 7.3 Duty Cycle Setting == 689 689 673 +Feature: Get or Set the ETSI Duty Cycle setting - 0=disable, 1=enable - Only for testing. 690 690 691 -Feature: Get or Set the ETSI Duty Cycle setting** : 0**=disable, **1**=enable - Only for testing. 675 +{{info}} 676 +**AT Command:AT+DCS** 677 +{{/info}} 692 692 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** 679 +(% border="1" style="background-color:#ffffcc; color:green; width:515.222px" %) 680 +|=(% colspan="3" style="width: 512px;" %)AT+DCS 681 +|(% style="width:165px" %)**Command Example**|(% style="width:239px" %)**Function**|(% style="width:107px" %)**Response** 698 698 |(% style="width:165px" %)AT+DCS=?|(% style="width:239px" %)Get the ETSI Duty Cycle setting.|(% style="width:107px" %)1((( 699 699 OK 700 700 ))) ... ... @@ -702,23 +702,17 @@ 702 702 703 703 ))) 704 704 705 -(% style="display:none" %) (%%) 706 - 707 707 == 7.4 Data Rate == 708 708 691 +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 709 709 710 -Feature: Get or Set the Data Rate. (0-7 corresponding to DR_X) . 693 +{{info}} 694 +**AT Command: AT+DR** 695 +{{/info}} 711 711 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** 697 +(% border="1" style="background-color:#ffffcc; color:green; width:466.222px" %) 698 +|=(% colspan="3" style="width: 463px;" %)AT+DR 699 +|(% style="width:156px" %)**Command Example**|(% style="width:167px" %)**Function**|(% style="width:140px" %)**Response** 722 722 |(% style="width:156px" %)AT+DR=?|(% style="width:167px" %)Get the Data Rate.|(% style="width:140px" %)5((( 723 723 OK 724 724 ))) ... ... @@ -726,43 +726,47 @@ 726 726 727 727 ))) 728 728 729 -(% style="color:blue" %)**Downlink Command: 0x2200aaFF** 707 +{{info}} 708 +**Downlink Command: 0x2200aaFF** 709 +{{/info}} 730 730 711 + 731 731 If the downlink payload=220001FF, it means setting the data rate to 1, while type code is 22 00 aa FF. 732 732 733 -* **Example 1**: Downlink Payload: **220001FF** 734 -* **Example 2**: Downlink Payload: **220000FF** 714 +* **Example 1**: Downlink Payload: **220001FF** ~/~/ Set AT+DR=1. 715 +* **Example 2**: Downlink Payload: **220000FF** ~/~/ Set AT+DR=0. 735 735 736 -(% style="display:none" %) (%%) 737 - 738 738 == 7.5 Frame Counter Downlink == 739 739 740 - 741 741 Feature: Get or Set the Frame Counter Downlink. 742 742 721 +{{info}} 722 +**AT Command:AT+FCD** 723 +{{/info}} 743 743 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** 725 +(% border="1" style="background-color:#ffffcc; color:green; width:693.222px" %) 726 +|=(% colspan="3" style="width: 690px;" %)AT+FCD 727 +|(% style="width:162px" %)**Command Example**|(% style="width:258px" %)**Function**|(% style="width:269px" %)**Response** 748 748 |(% style="width:162px" %)AT+FCD=?|(% style="width:258px" %)Get the Frame Counter Downlink.|(% style="width:269px" %)0((( 749 749 OK 750 750 ))) 751 751 |(% style="width:162px" %)AT+FCD=10|(% style="width:258px" %)Set the Frame Counter Downlink.|(% style="width:269px" %)(System will write new value to FCD)((( 752 752 OK 733 + 734 + 753 753 ))) 754 754 755 -(% style="display:none" %) (%%) 756 - 757 757 == 7.6 Frame Counter Uplink == 758 758 759 759 Feature: Get or Set the Frame Counter Uplink. 760 760 741 +{{info}} 742 +**AT Command:AT+FCU** 743 +{{/info}} 761 761 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** 745 +(% border="1" style="background-color:#ffffcc; color:green; width:534.222px" %) 746 +|=(% colspan="3" style="width: 531px;" %)AT+FCU 747 +|(% style="width:177px" %)**Command Example**|(% style="width:239px" %)**Function**|(% style="width:113px" %)**Response** 766 766 |(% style="width:177px" %)AT+FCU=?|(% style="width:239px" %)Get the Frame Counter Uplink.|(% style="width:113px" %)0((( 767 767 OK 768 768 ))) ... ... @@ -770,18 +770,17 @@ 770 770 771 771 ))) 772 772 773 -(% style="display:none" %) (%%) 774 - 775 775 == 7.7 Join Accept Delay1 == 776 776 777 - 778 778 Feature: Get or Set the Join Accept Delay between the end of the Tx and the Join Rx Window 1 in ms. 779 779 759 +{{info}} 760 +**AT Command:AT+JN1DL** 761 +{{/info}} 780 780 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** 763 +(% border="1" style="background-color:#ffffcc; color:green; width:537.222px" %) 764 +|=(% colspan="3" style="width: 534px;" %)AT+JN1DL 765 +|(% style="width:164px" %)**Command Example**|(% style="width:229px" %)**Function**|(% style="width:140px" %)**Response** 785 785 |(% style="width:164px" %)AT+JN1DL=?|(% style="width:229px" %)Get the Join Accept Delay.|(% style="width:140px" %)5000((( 786 786 OK 787 787 ))) ... ... @@ -789,18 +789,17 @@ 789 789 790 790 ))) 791 791 792 -(% style="display:none" %) (%%) 793 - 794 794 == 7.8 Join Accept Delay2 == 795 795 796 - 797 797 Feature: Get or Set the Join Accept Delay between the end of the Tx and the Join Rx Window 2 in ms. 798 798 777 +{{info}} 778 +**AT Command:AT+JN2DL** 779 +{{/info}} 799 799 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** 781 +(% border="1" style="background-color:#ffffcc; color:green; width:538.222px" %) 782 +|=(% colspan="3" style="width: 535px;" %)AT+JN2DL 783 +|(% style="width:160px" %)**Command Example**|(% style="width:228px" %)**Function**|(% style="width:146px" %)**Response** 804 804 |(% style="width:160px" %)AT+JN2DL=?|(% style="width:228px" %)Get the Join Accept Delay.|(% style="width:146px" %)6000((( 805 805 OK 806 806 ))) ... ... @@ -808,46 +808,37 @@ 808 808 809 809 ))) 810 810 811 -(% style="display:none" %) (%%) 812 - 813 813 == 7.9 Public Network Mode == 814 814 793 +Feature: Get or Set the public network mode. (0: off, 1: on) 815 815 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 795 +{{info}} 796 +**AT Command:AT+PNM** 797 +{{/info}} 817 817 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** 799 +(% border="1" style="background-color:#ffffcc; color:green; width:667.222px" %) 800 +|=(% colspan="3" style="width: 664px;" %)AT+PNM 801 +|(% style="width:166px" %)**Command Example**|(% style="width:225px" %)**Function**|(% style="width:272px" %)**Response** 825 825 |(% style="width:166px" %)AT+PNM=?|(% style="width:225px" %)Get the public network mode.|(% style="width:272px" %)1((( 826 826 OK 827 827 ))) 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)((( 805 +|(% style="width:166px" %)AT+PNM=1|(% style="width:225px" %)Set the public network mode.|(% style="width:272px" %)(System will write new value to PNM)((( 833 833 OK 834 834 835 835 836 836 ))) 837 -|(% style="width:166px" %)AT+PNM=0|(% style="width:225px" %)Set to use private network autoset syncword=0x12|(% style="width:272px" %) 838 838 839 -(% style="display:none" %) (%%) 840 - 841 841 == 7.10 Receive Delay1 == 842 842 843 - 844 844 Feature: Get or Set the delay between the end of the Tx and the Rx Window 1 in ms 845 845 815 +{{info}} 816 +**AT Command:AT+RX1DL** 817 +{{/info}} 846 846 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** 819 +(% border="1" style="background-color:#ffffcc; color:green; width:408.222px" %) 820 +|=(% colspan="3" style="width: 405px;" %)AT+RX1DL 821 +|(% style="width:155px" %)**Command Example**|(% style="width:128px" %)**Function**|(% style="width:122px" %)**Response** 851 851 |(% style="width:155px" %)AT+RX1DL=?|(% style="width:128px" %)Get the delay.|(% style="width:122px" %)1000((( 852 852 OK 853 853 ))) ... ... @@ -855,18 +855,17 @@ 855 855 856 856 ))) 857 857 858 -(% style="display:none" %) (%%) 859 - 860 860 == 7.11 Receive Delay2 == 861 861 862 - 863 863 Feature: Get or Set the delay between the end of the Tx and the Rx Window 2 in ms 864 864 833 +{{info}} 834 +**AT Command:AT+RX2DL** 835 +{{/info}} 865 865 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** 837 +(% border="1" style="background-color:#ffffcc; color:green; width:481.222px" %) 838 +|=(% colspan="3" style="width: 478px;" %)AT+RX2DL 839 +|(% style="width:175px" %)**Command Example**|(% style="width:152px" %)**Function**|(% style="width:150px" %)**Response** 870 870 |(% style="width:175px" %)AT+RX2DL=?|(% style="width:152px" %)Get the delay.|(% style="width:150px" %)2000((( 871 871 OK 872 872 ))) ... ... @@ -874,18 +874,17 @@ 874 874 875 875 ))) 876 876 877 -(% style="display:none" %) (%%) 878 - 879 879 == 7.12 Rx2 Window Data Rate == 880 880 881 - 882 882 Feature: Get or Set the Rx2 window data rate (0-7 corresponding to DR_X) 883 883 851 +{{info}} 852 +**AT Command:AT+RX2DR** 853 +{{/info}} 884 884 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** 855 +(% border="1" style="background-color:#ffffcc; color:green; width:525.222px" %) 856 +|=(% colspan="3" style="width: 522px;" %)AT+RX2DR 857 +|(% style="width:160px" %)**Command Example**|(% style="width:232px" %)**Function**|(% style="width:130px" %)**Response** 889 889 |(% style="width:160px" %)AT+RX2DR=?|(% style="width:232px" %)Get the Rx2 window data rate.|(% style="width:130px" %)2((( 890 890 OK 891 891 ))) ... ... @@ -893,18 +893,17 @@ 893 893 894 894 ))) 895 895 896 -(% style="display:none" %) (%%) 897 - 898 898 == 7.13 Rx2 Window Frequency == 899 899 900 - 901 901 Feature: Get or Set the Rx2 window frequency 902 902 869 +{{info}} 870 +**AT Command:AT+RX2FQ** 871 +{{/info}} 903 903 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** 873 +(% border="1" style="background-color:#ffffcc; color:green; width:587.222px" %) 874 +|=(% colspan="3" style="width: 584px;" %)AT+RX2FQ 875 +|(% style="width:183px" %)**Command Example**|(% style="width:240px" %)**Function**|(% style="width:160px" %)**Response** 908 908 |(% style="width:183px" %)AT+RX2FQ=?|(% style="width:240px" %)Get the Rx2 window frequency.|(% style="width:160px" %)434665000((( 909 909 OK 910 910 ))) ... ... @@ -912,20 +912,17 @@ 912 912 913 913 ))) 914 914 915 -(% style="display:none" %) (%%) 916 - 917 917 == 7.14 Transmit Power == 918 918 919 - 920 920 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. ) 921 921 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** 887 +{{info}} 888 +**AT Command:AT+TXP** 889 +{{/info}} 923 923 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** 891 +(% border="1" style="background-color:#ffffcc; color:green; width:465.222px" %) 892 +|=(% colspan="3" style="width: 462px;" %)AT+TXP 893 +|(% style="width:161px" %)**Command Example**|(% style="width:189px" %)**Function**|(% style="width:112px" %)**Response** 929 929 |(% style="width:161px" %)AT+TXP=?|(% style="width:189px" %)Get the Transmit Power.|(% style="width:112px" %)0((( 930 930 OK 931 931 ))) ... ... @@ -937,96 +937,93 @@ 937 937 938 938 If the downlink payload=22000100, it means setting the TXP to 0. 939 939 940 -* **Example 1**: Downlink Payload: **22000102** 941 -* **Example 2**: Downlink Payload: **220000 00**905 +* **Example 1**: Downlink Payload: **22000102** ~/~/ Set AT+TXP=2. 906 +* **Example 2**: Downlink Payload: **220000FF** ~/~/ Set AT+TXP=0. 942 942 943 -(% style="display:none" %) (%%) 944 - 945 945 == 7.15 RSSI of the Last Received Packet == 946 946 947 - 948 948 Feature: Get or Set the Rx2 window frequency 949 949 912 +{{info}} 913 +**AT Command:AT+RSSI** 914 +{{/info}} 950 950 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** 916 +(% border="1" style="background-color:#ffffcc; color:green; width:557.222px" %) 917 +|=(% colspan="3" style="width: 554px;" %)AT+RSSI 918 +|(% style="width:164px" %)**Command Example**|(% style="width:289px" %)**Function**|(% style="width:100px" %)**Response** 955 955 |(% style="width:164px" %)AT+RSSI=?|(% style="width:289px" %)Get the RSSI of the last received packet.|(% style="width:100px" %)0((( 956 956 OK 957 957 ))) 958 958 959 -(% style="display:none" %) (%%) 960 - 961 961 == 7.16 SNR of the Last Received Packet == 962 962 963 - 964 964 Feature: Get the SNR of the last received packet 965 965 927 +{{info}} 928 +**AT Command:AT+SNR** 929 +{{/info}} 966 966 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** 931 +(% border="1" style="background-color:#ffffcc; color:green; width:571.222px" %) 932 +|=(% colspan="3" style="width: 568px;" %)AT+SNR 933 +|(% style="width:164px" %)**Command Example**|(% style="width:290px" %)**Function**|(% style="width:113px" %)**Response** 971 971 |(% style="width:164px" %)AT+SNR=?|(% style="width:290px" %)Get the RSSI of the last received packet.|(% style="width:113px" %)0((( 972 972 OK 973 973 ))) 974 974 975 -(% style="display:none" %) (%%) 976 - 977 977 == 7.17 Application Port == 978 978 979 - 980 980 Feature: Get or set the application port. 981 981 942 +{{info}} 943 +**AT Command: AT+PORT** 944 +{{/info}} 982 982 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** 946 +(% border="1" style="background-color:#ffffcc; color:green; width:500.222px" %) 947 +|=(% colspan="3" style="width: 497px;" %)AT+PORT 948 +|(% style="width:157px" %)**Command Example**|(% style="width:204px" %)**Function**|(% style="width:135px" %)**Response** 987 987 |(% style="width:157px" %)AT+PORT=?|(% style="width:204px" %)Get the application port|(% style="width:135px" %)21((( 988 988 OK 989 989 ))) 990 990 |(% style="width:157px" %)AT+PORT=21|(% style="width:204px" %)Set the application port|(% style="width:135px" %)OK 991 991 992 -(% style="color:blue" %)**Downlink Command: 0x23** 954 +{{info}} 955 +**Downlink Command: 0x23** 956 +{{/info}} 993 993 994 994 Format: Command Code (0x23) followed by 1 bytes port value. 995 995 996 996 If the downlink payload=2301, it means set the application port to 1, while type code is 23. 997 997 998 -* **Example 1**: Downlink Payload: **2301** 999 -* **Example 2**: Downlink Payload:** 2305** 962 +* **Example 1**: Downlink Payload: **2301** ~/~/ set the application port to 1 963 +* **Example 2**: Downlink Payload:** 2305** ~/~/ set the application port to 5 1000 1000 1001 -(% style="display:none" %) (%%) 1002 - 1003 1003 == 7.18 Single Channel Mode == 1004 1004 1005 - 1006 1006 Feature:Get or Set Frequency (Unit: Hz) for Single Channel Mode. 1007 1007 969 +{{info}} 970 +**AT Command: AT+CHS** 971 +{{/info}} 1008 1008 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** 973 +(% border="1" style="background-color:#ffffcc; color:green; width:603.222px" %) 974 +|=(% colspan="3" style="width: 600px;" %)AT+CHS 975 +|(% style="width:182px" %)**Command Example**|(% style="width:295px" %)**Function**|(% style="width:122px" %)**Response** 1013 1013 |(% style="width:182px" %)AT+CHS=?|(% style="width:295px" %)Get Frequency for Single Channel Mode|(% style="width:122px" %)0((( 1014 1014 OK 1015 1015 ))) 1016 1016 |(% style="width:182px" %)AT+CHS=868100000|(% style="width:295px" %)Set Frequency for Single Channel Mode|(% style="width:122px" %)OK 1017 1017 1018 -(% style="display:none" %) (%%) 1019 - 1020 1020 == 7.19 Eight Channel Mode == 1021 1021 1022 - 1023 1023 Feature: Get or Set eight channels mode,Only for US915,AU915,CN470. 1024 1024 985 +{{info}} 986 +**AT Command: AT+CHE** 987 +{{/info}} 1025 1025 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** 989 +(% border="1" style="background-color:#ffffcc; color:green; width:710.222px" %) 990 +|=(% colspan="3" style="width: 707px;" %)AT+CHE 991 +|(% style="width:160px" %)**Command Example**|(% style="width:198px" %)**Function**|(% style="width:349px" %)**Response** 1030 1030 |(% style="width:160px" %)AT+CHE=?|(% style="width:198px" %)Get eight channels mode|(% style="width:349px" %)1((( 1031 1031 902.3 902.5 902.7 902.9 903.1 903.3 903.5 903.7 1032 1032 ... ... @@ -1034,36 +1034,35 @@ 1034 1034 ))) 1035 1035 |(% style="width:160px" %)AT+CHE=1|(% style="width:198px" %)Set eight channels mode|(% style="width:349px" %)OK 1036 1036 1037 -(% style="color:blue" %)**Downlink Command: 0x24 (LHT65,LHT65N Downlink Command:0x07)** 999 +{{info}} 1000 +**Downlink Command: 0x24** 1001 +{{/info}} 1038 1038 1039 1039 Format: Command Code (0x24) followed by 1 bytes channel value. 1040 1040 1041 1041 If the downlink payload=2401, it means set channel mode to 1, while type code is 24. 1042 1042 1043 -* **Example 1**: Downlink Payload: 2401 1044 -* **Example 2**: Downlink Payload: 2405 1007 +* **Example 1**: Downlink Payload: 2401 ~/~/ set channel mode to 1 1008 +* **Example 2**: Downlink Payload: 2405 ~/~/ set channel mode to 5 1045 1045 1046 -(% style="display:none" %) (%%) 1047 - 1048 1048 == 7.20 Get or Set RXwindows1 timeout == 1049 1049 1012 +Feature:Get or Set the number of symbols to detect and timeout from RXwindow1(0 to 255). 1050 1050 1051 -Feature: Get or Set the number of symbols to detect and timeout from RXwindow1(0 to 255). 1014 +{{info}} 1015 +**AT Command: AT+RX1WTO** 1016 +{{/info}} 1052 1052 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** 1018 +(% border="1" style="background-color:#ffffcc; color:green; width:460.222px" %) 1019 +|=(% colspan="3" style="width: 457px;" %)AT+ RX1WTO 1020 +|(% style="width:163px" %)**Command Example**|(% style="width:201px" %)**Function**|(% style="width:93px" %)**Response** 1058 1058 |(% style="width:163px" %)AT+RX1WTO=?|(% style="width:201px" %)Get RXwindows1 timeout|(% style="width:93px" %)14((( 1059 1059 OK 1060 1060 ))) 1061 1061 |(% style="width:163px" %)AT+RX1WTO=60|(% style="width:201px" %)Set RXwindows1 timeout|(% style="width:93px" %)OK 1062 1062 1063 -(% style="display:none" %) (%%) 1064 - 1065 1065 ((( 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.1027 +**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. 1067 1067 ))) 1068 1068 1069 1069 [[image:image-20220526162535-1.png]] ... ... @@ -1070,60 +1070,59 @@ 1070 1070 1071 1071 ((( 1072 1072 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. 1034 + 1035 + 1073 1073 ))) 1074 1074 1075 - 1076 1076 == 7.21 Get or Set RXwindows2 timeout == 1077 1077 1040 +Feature:Get or Set the number of symbols to detect and timeout from RXwindow2(0 to 255). 1078 1078 1079 -Feature: Get or Set the number of symbols to detect and timeout from RXwindow2(0 to 255). 1042 +{{info}} 1043 +**AT Command: AT+RX2WTO** 1044 +{{/info}} 1080 1080 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** 1046 +(% border="1" style="background-color:#ffffcc; color:green; width:497.222px" %) 1047 +|=(% colspan="3" style="width: 494px;" %)AT+ RX2WTO 1048 +|(% style="width:190px" %)**Command Example**|(% style="width:199px" %)**Function**|(% style="width:104px" %)**Response** 1086 1086 |(% style="width:190px" %)AT+RX2WTO=?|(% style="width:199px" %)Get RXwindows2 timeout|(% style="width:104px" %)7((( 1087 1087 OK 1088 1088 ))) 1089 1089 |(% style="width:190px" %)AT+RX2WTO=20|(% style="width:199px" %)Set RXwindows2 timeout|(% style="width:104px" %)OK 1090 1090 1091 -(% style="display:none" %) (%%) 1092 - 1093 1093 == 7.22 Setting up uplinkdwelltime (as923, au915) == 1094 1094 1095 - 1096 1096 Feature: Get or Set uplinkdwelltime 1097 1097 1058 +{{info}} 1059 +**AT Command: AT+DWELLT** 1060 +{{/info}} 1098 1098 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** 1062 +(% border="1" style="background-color:#ffffcc; color:green; width:497.222px" %) 1063 +|=(% colspan="3" style="width: 494px;" %)AT+DWELLT 1064 +|(% style="width:183px" %)**Command Example**|(% style="width:179px" %)**Function**|(% style="width:131px" %)**Response** 1103 1103 |(% style="width:183px" %)AT+DWELLT=?|(% style="width:179px" %)Get uplinkdwelltime|(% style="width:131px" %)1((( 1104 1104 OK 1105 1105 ))) 1106 1106 |(% style="width:183px" %)AT+DWELLT=0|(% style="width:179px" %)Set uplinkdwelltime|(% style="width:131px" %)OK 1107 1107 1108 -(% style="color:blue" %)**Downlink Command: 0x25** 1070 +{{info}} 1071 +**Downlink Command: 0x25** 1072 +{{/info}} 1109 1109 1110 1110 Format: Command Code (0x25) followed by 1 bytes state value. 1111 1111 1112 1112 If the downlink payload=2501, it means set uplinkdwelltime to 1, while type code is 25. 1113 1113 1114 -* **Example 1**: Downlink Payload: **2501** 1115 -* **Example 2**: Downlink Payload: **2500** 1078 +* **Example 1**: Downlink Payload: **2501** ~/~/ set uplinkdwelltime to 1 1079 +* **Example 2**: Downlink Payload: **2500** ~/~/ set uplinkdwelltime to 0 1116 1116 1117 -(% style="display:none" %) (%%) 1118 - 1119 1119 == 7.23 Set Packet Receiving Response Level == 1120 1120 1121 - 1122 1122 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. 1123 1123 1085 +RPL value: 1124 1124 1125 -(% style="color:blue" %)**RPL value:** 1126 - 1127 1127 * **AT+RPL=0:** Device won't immediately reply any downlink commands from platform. 1128 1128 * **AT+RPL=1:** Device will immediately reply message to Unconfirmed Data Down. Payload is 0x00. 1129 1129 * **AT+RPL=2:** Device will immediately reply message to Confirmed Data Down. Payload is 0x00 and requied response header for this command. ... ... @@ -1130,183 +1130,50 @@ 1130 1130 * **AT+RPL=3:** Device will immediately reply message to MAC Command. Payload is 0x00 and requied response header for this command. 1131 1131 * **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. 1132 1132 1133 - (% style="color:blue" %)**Case Analyes:**1093 +Case Analyes: 1134 1134 1135 1135 * For Class A devices, AT+RPL=0 is ok. that is defaut settings in software. 1136 1136 * For Class C devices used in ChirpStack, need to set AT+RPL=4 because Chirpstack require immedietely reply message to MAC Command. 1137 1137 * 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. 1138 1138 1139 -(% style="color:blue" %)**AT Command: AT+RPL** 1099 +{{info}} 1100 +**AT Command: AT+RPL** 1101 +{{/info}} 1140 1140 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** 1103 +(% border="1" style="background-color:#ffffcc; color:green; width:536.222px" %) 1104 +|=(% colspan="3" style="width: 533px;" %)AT+RPL 1105 +|(% style="width:160px" %)**Command Example**|(% style="width:263px" %)**Function**|(% style="width:109px" %)**Response** 1143 1143 |(% style="width:160px" %)AT+RPL=?|(% style="width:263px" %)Get packet receiving response level|(% style="width:109px" %)1((( 1144 1144 OK 1145 1145 ))) 1146 1146 |(% style="width:160px" %)AT+RPL=0|(% style="width:263px" %)Set packet receiving response level|(% style="width:109px" %)OK 1147 1147 1148 -(% style="color:blue" %)**Downlink Command: 0x21** 1111 +{{info}} 1112 +**Downlink Command: 0x21** 1113 +{{/info}} 1149 1149 1150 1150 Format: Command Code (0x21) followed by 1 bytes level value. 1151 1151 1152 1152 If the downlink payload=2101, it means set packet receiving response level to 1, while type code is 21. 1153 1153 1154 -* **Example 1**: Downlink Payload: **2101** 1155 -* **Example 2**: Downlink Payload: **2102** 1119 +* **Example 1**: Downlink Payload: **2101** ~/~/ set packet receiving response level to 1 1120 +* **Example 2**: Downlink Payload: **2102** ~/~/ set packet receiving response level to 2 1156 1156 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 - 1288 1288 = 8. AT Commands Combination = 1289 1289 1290 1290 == 8.1 Set a fix RX2DR for downlink window == 1291 1291 1126 +* **AT+ADR=0 **~-~-> Disable ADR first 1127 +* **AT+RX2DR=xxxx** ~-~-> Set xxxx to your wanted DataRate 1292 1292 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 - 1299 1299 == 8.2 Use Downlink Command to set a fix uplink DR == 1300 1300 1131 +{{info}} 1132 +**Downlink Command: 0x22000500** 1133 +{{/info}} 1301 1301 1302 - (% style="color:blue"%)**Downlink Command:0x22000500**1135 +Same as: 1303 1303 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 - 1137 +* AT+ADR=0 [[Reference>>||anchor="H7.1AdaptiveDataRate"]] 1138 +* AT+DR=5 [[Reference>>||anchor="H7.4DataRate"]] 1139 +* AT+TXP=0 [[Reference>>||anchor="H7.14TransmitPower"]]