<
From version < 38.108 >
edited by Xiaoling
on 2022/06/01 11:54
To version < 63.37 >
edited by Xiaoling
on 2023/05/29 14:22
>
Change comment: There is no comment for this version

Summary

Details

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