<
From version < 38.73 >
edited by Xiaoling
on 2022/05/31 09:18
To version < 63.38 >
edited by Xiaoling
on 2023/05/29 14:24
>
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,38 +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" %) (%%)
30 +
27 27  = 3. Support End Node and firmware version =
28 28  
29 -(% border="1" style="background-color:#ffffcc; color:green; width:966px" %)
30 -|=(% colspan="3" style="width: 963px;" %)(((
33 +
31 31  Dragino STM32 base hardware Firmware / LoRaWAN stack list
32 -)))
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**)))
33 33  |(% style="width:187px" %)(((
34 -**Model**
35 -)))|(% style="width:330px" %)(((
36 -**Description**
37 -)))|(% style="width:445px" %)(((
38 -**Firmware Version <~-~-> Stack Version**
39 -)))
40 -|(% style="width:187px" %)(((
41 41  [[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]],
42 42  )))|(% style="width:330px" %)(((
43 43  Open Source Generic LoRaWAN Sensor Node
... ... @@ -97,21 +97,20 @@
97 97  )))
98 98  )))
99 99  
101 +(% style="display:none" %) (%%)
100 100  
101 101  = 4. System Management Commands =
102 102  
103 103  == 4.1 Change Uplink Interval ==
104 104  
107 +
105 105  Feature: Change LoRaWAN End Node Transmit Interval.
106 106  
107 -(% class="box infomessage" %)
108 -(((
109 -**AT Command: AT+TDC**
110 -)))
111 111  
112 -(% border="1" style="background-color:#ffffcc; color:green; width:727.222px" %)
113 -|=(% colspan="3" style="width: 724px;" %)AT+TDC
114 -|(% 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**
115 115  |(% style="width:165px" %)AT+TDC=?|(% style="width:227px" %)Show current transmit Interval|(% style="width:329px" %)30000(((
116 116  OK
117 117  
... ... @@ -121,34 +121,35 @@
121 121  Set transmit interval to 60000ms = 60 seconds
122 122  )))
123 123  
124 -{{info}}
125 -**Downlink Command: 0x01**
126 -{{/info}}
127 -
128 128  (((
125 +
126 +
127 +(% style="color:blue" %)**Downlink Command: 0x01**
128 +
129 129  Format: Command Code (0x01) followed by 3 bytes time value.
130 130  )))
131 131  
132 132  (((
133 -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.
134 134  )))
135 135  
136 -* **Example 1**: Downlink Payload:** 0100001E** ~/~/ Set Transmit Interval (TDC) = 30 seconds
137 -* **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
138 138  
139 +(% style="display:none" %) (%%)
139 139  
140 140  == 4.2 Reboot End Node ==
141 141  
143 +
142 142  Feature: Reboot End Node to perform a new OTAA or ABP Join.
143 143  
144 -{{info}}
145 -**AT Command: ATZ**
146 -{{/info}}
147 147  
148 -(% border="1" style="background-color:#ffffcc; color:green; width:727.222px" %)
149 -|=(% colspan="3" %)ATZ: Trig a reset of the MCU
150 -|**Command Example**|**Function**|**Response**
151 -|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" %)(((
152 152  Device reset and show booting info
153 153  
154 154  LSN50 Device/LoRa ST Module
... ... @@ -162,9 +162,7 @@
162 162  <followed by the Tx and Rx information>
163 163  )))
164 164  
165 -{{info}}
166 -**Downlink Command: 0x04**
167 -{{/info}}
166 +(% style="color:blue" %)**Downlink Command: 0x04**
168 168  
169 169  (((
170 170  Format: Command Code (0x04) followed by FF.
... ... @@ -171,23 +171,22 @@
171 171  )))
172 172  
173 173  (((
174 -If the downlink payload=**04FF**, the end node will reboot.
175 -
176 -
173 +If the downlink payload=**04FF**, the end node will reboot.
177 177  )))
178 178  
176 +
179 179  == 4.3 Reset to factory Default ==
180 180  
179 +
181 181  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.
182 182  
183 -{{info}}
184 -**AT Command: AT+FDR**
185 -{{/info}}
186 186  
187 -(% border="1" style="background-color:#ffffcc; color:green; width:831.222px" %)
188 -|=(% colspan="3" style="width: 828px;" %)Reset to factory default
189 -|(% style="width:181px" %)**Command Example**|(% style="width:181px" %)**Function**|(% style="width:465px" %)**Response**
190 -|(% 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" %)(((
191 191  Device reset to factory default parameters and show booting info
192 192  
193 193  LSN50 Device/LoRa ST Module
... ... @@ -201,9 +201,7 @@
201 201  Please set the parameters or reset Device to apply change
202 202  )))
203 203  
204 -{{info}}
205 -**Downlink Command: 0x04**
206 -{{/info}}
202 +(% style="color:blue" %)**Downlink Command: 0x04**
207 207  
208 208  (((
209 209  Format: Command Code (0x04) followed by FE.
... ... @@ -216,24 +216,22 @@
216 216  
217 217  == 4.4 Show Firmware Version ==
218 218  
215 +
219 219  Feature: Show firmware version. No downlink command yet.
220 220  
221 -{{info}}
222 -**AT Command: AT+VER**
223 -{{/info}}
224 224  
225 -(% border="1" style="background-color:#ffffcc; color:green; width:586px" %)
226 -|=(% colspan="3" style="width: 583px;" %)AT+VER: Image Version and Frequency Band
227 -|(% style="width:170px" %)**Command Example**|(% style="width:300px" %)**Function**|(% style="width:113px" %)**Response**
228 -|(% 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" %)(((
229 229  1.3 EU868
230 230  
231 231  OK
232 232  )))
233 233  
234 -{{info}}
235 -**Downlink Command: 0x26 (Valid in 006 stack)**
236 -{{/info}}
230 +(% style="color:blue" %)**Downlink Command: 0x26 (Valid in 006 stack)**
237 237  
238 238  (((
239 239  Downlink Format: 0x26
... ... @@ -244,6 +244,8 @@
244 244  )))
245 245  
246 246  (((
241 +
242 +
247 247  **xx: Software Type:**
248 248  )))
249 249  
... ... @@ -252,6 +252,8 @@
252 252  * 0x00 03: LSE01/LDDS75/LDDS20/LSPH01/LLMS01/LSNPK01
253 253  
254 254  (((
251 +
252 +
255 255  **yy: Frequency Band:**
256 256  )))
257 257  
... ... @@ -267,6 +267,8 @@
267 267  * 0xa0: AS923-3
268 268  
269 269  (((
268 +
269 +
270 270  **zz: Subband**
271 271  )))
272 272  
... ... @@ -275,76 +275,75 @@
275 275  
276 276  == 4.5 Show System Configure ==
277 277  
278 +
278 278  Feature: Show All configure. No downlink command yet.
279 279  
280 -{{info}}
281 -**AT Command: AT+CFG**
282 -{{/info}}
283 283  
284 -(% border="1" style="background-color:#ffffcc; color:green; width:599.222px" %)
285 -|=(% colspan="3" style="width: 596px;" %)AT+CFG: Print all configurations
286 -|(% 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**
287 287  |(% style="width:160px" %)AT+CFG|(% style="width:154px" %)Show all configures|(% style="width:280px" %)(((
288 288  AT+DEUI = XX XX XX XX XX XX XX XX
289 -
290 290  AT+DADDR=XXXXXXXX
291 -
292 292  ……….
293 -
294 294  AT+RX2WTO=X
295 -
296 296  AT+CHS=868100000
297 -
298 298  OK
299 299  )))
300 300  
296 +(% style="display:none" %) (%%)
301 301  
302 302  = 5. Keys, IDs and EUIs management =
303 303  
304 304  == 5.1 Application EUI ==
305 305  
302 +
306 306  Feature: Get or Set the Application EUI.
307 307  
308 -{{info}}
309 -**AT Command: AT+APPEUI**
310 -{{/info}}
311 311  
312 -(% border="1" style="background-color:#ffffcc; color:green; width:686.222px" %)
313 -|=(% colspan="3" style="width: 683px;" %)AT+APPEUI
314 -|(% 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**
315 315  |(% style="width:305px" %)AT+APPEUI=?|(% style="width:186px" %)Get the Application EUI|(% style="width:191px" %)00 b3 d5 00 00 00 00 00(((
316 316  OK
317 317  )))
318 318  |(% style="width:305px" %)AT+APPEUI=00 b3 d5 7e f0 00 4d 34|(% style="width:186px" %)Set the Application EUI|(% style="width:191px" %)OK
319 319  
316 +(% style="display:none" %) (%%)
320 320  
321 321  == 5.2 Application Key ==
322 322  
320 +
323 323  Feature: Get or Set the Application Key.
324 324  
325 -{{info}}
326 -**AT Command: AT+APPKEY**
327 -{{/info}}
328 328  
329 -(% border="1" style="background-color:#ffffcc; color:green; width:976.222px" %)
330 -|=(% colspan="3" style="width: 973px;" %)AT+APPKEY
331 -|(% 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**
332 332  |(% 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(((
333 333  OK
334 334  )))
335 335  |(% 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
336 336  
334 +(% style="display:none" %) (%%)
335 +
337 337  == 5.3 Application Session Key ==
338 338  
338 +
339 339  Feature: Get or Set the Application Session Key.
340 340  
341 -{{info}}
342 -**AT Command: AT+APPSKEY**
343 -{{/info}}
344 344  
345 -(% border="1" style="background-color:#ffffcc; color:green; width:1040.22px" %)
346 -|=(% colspan="3" style="width: 1037px;" %)AT+APPSKEY
347 -|(% 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**
348 348  |(% 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(((
349 349  OK
350 350  )))
... ... @@ -352,17 +352,19 @@
352 352  OK
353 353  )))
354 354  
354 +(% style="display:none" %) (%%)
355 +
355 355  == 5.4 Device Address ==
356 356  
358 +
357 357  Feature: Get or Set the Device Address.
358 358  
359 -{{info}}
360 -**AT Command: AT+DADDR**
361 -{{/info}}
362 362  
363 -(% border="1" style="background-color:#ffffcc; color:green; width:795.222px" %)
364 -|=(% colspan="3" style="width: 792px;" %)AT+DADDR
365 -|(% 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**
366 366  |(% style="width:192px" %)AT+DADDR=?|(% style="width:241px" %)Get the Application Session Key.|(% style="width:359px" %)(While Error in format, return AT_PARAM_ERROR)(((
367 367  A8 40 41 FF
368 368  
... ... @@ -370,17 +370,19 @@
370 370  )))
371 371  |(% style="width:192px" %)AT+DADDR=A8 40 41 FF|(% style="width:241px" %)Set the Application Session Key.|(% style="width:359px" %)OK
372 372  
374 +(% style="display:none" %) (%%)
375 +
373 373  == 5.5 Device EUI ==
374 374  
378 +
375 375  Feature: Get or Set the Device EUI.
376 376  
377 -{{info}}
378 -**AT Command: AT+DEUI**
379 -{{/info}}
380 380  
381 -(% border="1" style="background-color:#ffffcc; color:green; width:1035.22px" %)
382 -|=(% colspan="3" style="width: 1032px;" %)AT+DEUI
383 -|(% 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**
384 384  |(% style="width:250px" %)AT+DEUI=?|(% style="width:147px" %)Get the Device EUI.|(% style="width:634px" %)00 44 34 22 33 45 55 55(((
385 385  OK
386 386  )))
... ... @@ -388,53 +388,59 @@
388 388  OK
389 389  )))
390 390  
394 +(% style="display:none" %) (%%)
395 +
391 391  == 5.6 Network ID ==
392 392  
398 +
393 393  Feature: Get or Set the Network ID.(You can enter this command change only after successful network connection)
394 394  
395 -{{info}}
396 -**AT Command: AT+NWKID**
397 -{{/info}}
398 398  
399 -(% border="1" style="background-color:#ffffcc; color:green; width:448.222px" %)
400 -|=(% colspan="3" style="width: 445px;" %)AT+NWKID
401 -|(% 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**
402 402  |(% style="width:191px" %)AT+NWKID=?|(% style="width:153px" %)Get the Network ID.|(% style="width:101px" %)a8 40 41 ff(((
403 403  OK
404 404  )))
405 405  |(% style="width:191px" %)AT+NWKID=A8 40 41 FF|(% style="width:153px" %)Set the Network ID.|(% style="width:101px" %)OK
406 406  
412 +(% style="display:none" %) (%%)
413 +
407 407  == 5.7 Network Session Key ==
408 408  
416 +
409 409  Feature: Get or Set the Network Session Key
410 410  
411 -{{info}}
412 -**AT Command: AT+NWKSKEY**
413 -{{/info}}
414 414  
415 -(% border="1" style="background-color:#ffffcc; color:green; width:1017.22px" %)
416 -|=(% colspan="3" style="width: 1014px;" %)AT+NWKSKEY
417 -|(% 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**
418 418  |(% 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(((
419 419  OK
420 420  )))
421 421  |(% 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
422 422  
430 +(% style="display:none" %) (%%)
423 423  
424 -
425 425  = 6. Joining and sending date on LoRaWAN network =
426 426  
427 427  == 6.1 Confirm Mode ==
428 428  
436 +=== 6.1.1  AT+CFM command before DR-LWS007 software stack ===
437 +
438 +
429 429  Feature: Get or Set the confirmation mode (0-1).
430 430  
431 -{{info}}
432 -**AT Command: AT+CFM**
433 -{{/info}}
434 434  
435 -(% border="1" style="background-color:#ffffcc; color:green; width:710.222px" %)
436 -|=(% colspan="3" style="width: 707px;" %)AT+CFM
437 -|(% style="width:155px" %)**Command Example**|(% style="width:205px" %)**Function**|(% style="width:346px" %)**Response**
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**
438 438  |(% style="width:155px" %)AT+CFM=?|(% style="width:205px" %)Get the confirmation mode|(% style="width:346px" %)0(((
439 439  OK
440 440  )))
... ... @@ -441,63 +441,110 @@
441 441  |(% style="width:155px" %)AT+CFM=1|(% style="width:205px" %)Set the confirmation mode|(% style="width:346px" %)OK
442 442  |(% style="width:155px" %)AT+CFM=2|(% style="width:205px" %)Set the confirmation mode|(% style="width:346px" %)While Error in format, return AT_PARAM_ERROR
443 443  
444 -Downlink Command: 0x05
453 +(% style="color:blue" %)**Downlink Command: 0x05**
445 445  
446 446  Format: Command Code (0x05) followed by 2 bytes mode value.
447 447  
448 448  If the downlink payload=0501, it means set end node to use confirm mode, while type code is 05.
449 449  
450 -* Example 1: Downlink Payload: 0501 ~/~/ Set AT+CFM=1
451 -* Example 2: Downlink Payload: 0500 ~/~/ Set AT+CFM=0
459 +* **Example 1:** Downlink Payload: 0501  ~/~/ Set AT+CFM=1
460 +* **Example 2:** Downlink Payload: 0500  ~/~/ Set AT+CFM=0
452 452  
462 +(% style="display:none" %) (%%)
453 453  
464 +=== 6.1.2  AT+CFM command since DR-LWS007 software stack ===
454 454  
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 +
455 455  == 6.2 Confirm Status ==
456 456  
513 +
457 457  Feature: Get confirmation status of the last AT+SEND (0-1).
458 458  
459 -{{info}}
460 -**AT Command: AT+CFS**
461 -{{/info}}
462 462  
463 -(% border="1" style="background-color:#ffffcc; color:green; width:534.222px" %)
464 -|=(% colspan="3" style="width: 531px;" %)AT+CFS
465 -|(% style="width:156px" %)**Command Example**|(% style="width:193px" %)**Function**|(% style="width:178px" %)**Response**
466 -|(% 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(((
467 467  OK
468 468  )))
469 469  
526 +(% style="display:none" %) (%%)
470 470  
471 -
472 472  == 6.3 Join LoRa® Network ==
473 473  
530 +
474 474  Feature: Join network.
475 475  
476 -{{info}}
477 -**AT Command: AT+JOIN**
478 -{{/info}}
479 479  
480 -(% border="1" style="background-color:#ffffcc; color:green; width:647.222px" %)
481 -|=(% colspan="3" style="width: 644px;" %)AT+JOIN
482 -|(% 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**
483 483  |(% style="width:163px" %)AT+JOIN ?|(% style="width:147px" %)Get imformation.|(% style="width:334px" %)AT+JOIN: Join network(((
484 484  OK
485 -
486 486  While Error in format, return AT_BUSY_ERROR
487 487  )))
488 488  
544 +(% style="display:none" %) (%%)
489 489  
490 490  == 6.4 LoRa® Network Join Mode ==
491 491  
548 +
492 492  Feature: Get or Set the Network Join Mode. (0: ABP, 1: OTAA).
493 493  
494 -{{info}}
495 -**AT Command: AT+NJM**
496 -{{/info}}
497 497  
498 -(% border="1" style="background-color:#ffffcc; color:green; width:753.222px" %)
499 -|=(% colspan="3" style="width: 750px;" %)AT+NJM
500 -|(% 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**
501 501  |(% style="width:162px" %)AT+NJM=?|(% style="width:227px" %)Get the Network Join Mode|(% style="width:361px" %)1(((
502 502  OK
503 503  )))
... ... @@ -504,118 +504,117 @@
504 504  |(% style="width:162px" %)AT+NJM=0|(% style="width:227px" %)Set the Network Join Mode|(% style="width:361px" %)OK
505 505  |(% 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
506 506  
507 -{{info}}
508 -**Downlink Command: 0x20**
509 -{{/info}}
563 +(% style="color:blue" %)**Downlink Command: 0x20**
510 510  
511 511  Format: Command Code (0x20) followed by 1 bytes mode value.
512 512  
513 513  If the downlink payload=2000, it means set the Network Join Mode, while type code is 20.
514 514  
515 -* **Example 1: **Downlink Payload: **2000** ~/~/ Set AT+NJM=O
516 -* **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
517 517  
572 +(% style="display:none" %) (%%)
518 518  
519 519  == 6.5 LoRa® Network Join Status ==
520 520  
576 +
521 521  Feature: LoRa® Network Join Status.
522 522  
523 -{{info}}
524 -**AT Command: AT+NJS**
525 -{{/info}}
526 526  
527 -(% border="1" style="background-color:#ffffcc; color:green; width:498.222px" %)
528 -|=(% colspan="3" style="width: 495px;" %)AT+NJS
529 -|(% 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**
530 530  |(% style="width:169px" %)AT+NJS=?|(% style="width:164px" %)Get the join status.|(% style="width:161px" %)0(((
531 531  OK
532 532  )))
533 533  
589 +(% style="display:none" %) (%%)
534 534  
535 535  == 6.6 Print Last Received Data in Raw Format ==
536 536  
593 +
537 537  Feature: Print Last Received Data in Raw Format<port:data>.
538 538  
539 -{{info}}
540 -**AT Command: AT+RECV**
541 -{{/info}}
542 542  
543 -(% border="1" style="background-color:#ffffcc; color:green; width:587.222px" %)
544 -|=(% colspan="3" style="width: 584px;" %)AT+RECV
545 -|(% 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**
546 546  |(% style="width:161px" %)AT+RECV=?|(% style="width:272px" %)print last received data in raw format.|(% style="width:150px" %)0:(((
547 547  OK
548 548  )))
549 549  
606 +(% style="display:none" %) (%%)
550 550  
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" %) (%%)
566 566  
567 567  == 6.8 Send Text Data ==
568 568  
627 +
569 569  Feature: Send Text Data<port:data>.
570 570  
571 -{{info}}
572 -**AT Command: AT+SEND**
573 -{{/info}}
574 574  
575 -(% border="1" style="background-color:#ffffcc; color:green; width:991.222px" %)
576 -|=(% colspan="3" style="width: 988px;" %)AT+SEND
577 -|(% 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**
578 578  |(% style="width:201px" %)AT+SEND=12:hello world|(% style="width:340px" %)Send text data along with the application port.|(% style="width:446px" %)OK(((
579 579  While Error in format, return
580 -
581 581  AT_BUSY_ERROR/AT_BUSY_ERROR/AT_NO_NETWORK_JOINED
582 -
583 -
584 584  )))
585 585  
641 +(% style="display:none" %) (%%)
586 586  
587 587  == 6.9 Send Hexadecimal Data ==
588 588  
645 +
589 589  Feature: Send hexadecimal data along with the application port.
590 590  
591 -{{info}}
592 -**AT Command: AT+SENDB**
593 -{{/info}}
594 594  
595 -(% border="1" style="background-color:#ffffcc; color:green; width:1120.22px" %)
596 -|=(% colspan="3" style="width: 1117px;" %)AT+SENDB
597 -|(% style="width:257px" %)**Command Example**|(% style="width:406px" %)**Function**|(% style="width:453px" %)**Response**
598 -|(% style="width:257px" %)AT+SENDB=12:abcdef0123456789|(% style="width:406px" %)Send hexadecimal data along with the application port.|(% style="width:453px" %)OK
599 -|(% 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(((
600 -AT_PARAM_ERROR AT_BUSY_ERROR/AT_NO_NETWORK_JOINED
649 +(% style="color:blue" %)**AT Command: AT+SENDB**
601 601  
602 -
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
603 603  )))
604 604  
659 +(% style="display:none" %) (%%)
605 605  
606 606  = 7. LoRaWAN network management =
607 607  
608 608  == 7.1 Adaptive Data Rate ==
609 609  
665 +
610 610  Feature: Get or Set the Adaptive Data Rate setting. (0: off, 1: on).
611 611  
612 -{{info}}
613 -**AT Command: AT+ADR**
614 -{{/info}}
615 615  
616 -(% border="1" style="background-color:#ffffcc; color:green; width:683.222px" %)
617 -|=(% colspan="3" style="width: 680px;" %)AT+ADR
618 -|(% 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**
619 619  |(% style="width:162px" %)AT+ADR=?|(% style="width:266px" %)Get the Adaptive Data Rate setting.|(% style="width:250px" %)1(((
620 620  OK
621 621  )))
... ... @@ -624,28 +624,26 @@
624 624  AT_PARAM_ERROR
625 625  )))
626 626  
627 -{{info}}
628 -**Downlink Command: 0x22**
629 -{{/info}}
682 +(% style="color:blue" %)**Downlink Command: 0x22**
630 630  
631 -
632 632  If the downlink payload=2201, it means setting the adaptive data rate to 1, while type code is 22.
633 633  
634 -* **Example 1**: Downlink Payload: **2201** ~/~/ Set AT+ADR=1.
635 -* **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.
636 636  
689 +(% style="display:none" %) (%%)
637 637  
638 638  == 7.2 LoRa® Class ==
639 639  
693 +
640 640  Feature: Get or Set the Device Class(Currently only support class A, class C).
641 641  
642 -{{info}}
643 -**AT Command:AT+CLASS**
644 -{{/info}}
645 645  
646 -(% border="1" style="background-color:#ffffcc; color:green; width:507.222px" %)
647 -|=(% colspan="3" style="width: 504px;" %)AT+CLASS
648 -|(% 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**
649 649  |(% style="width:163px" %)AT+CLASS=?|(% style="width:166px" %)Get the Device Class.|(% style="width:175px" %)A(((
650 650  OK
651 651  )))
... ... @@ -653,18 +653,24 @@
653 653  
654 654  )))
655 655  
709 +(% style="display:none" %)
656 656  
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 +
657 657  == 7.3 Duty Cycle Setting ==
658 658  
659 -Feature: Get or Set the ETSI Duty Cycle setting - 0=disable, 1=enable - Only for testing.
660 660  
661 -{{info}}
662 -**AT Command:AT+DCS**
663 -{{/info}}
719 +Feature: Get or Set the ETSI Duty Cycle setting** - 0**=disable, **1**=enable - Only for testing.
664 664  
665 -(% border="1" style="background-color:#ffffcc; color:green; width:515.222px" %)
666 -|=(% colspan="3" style="width: 512px;" %)AT+DCS
667 -|(% 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**
668 668  |(% style="width:165px" %)AT+DCS=?|(% style="width:239px" %)Get the ETSI Duty Cycle setting.|(% style="width:107px" %)1(((
669 669  OK
670 670  )))
... ... @@ -672,18 +672,24 @@
672 672  
673 673  )))
674 674  
734 +(% style="display:none" %) (%%)
675 675  
676 676  == 7.4 Data Rate ==
677 677  
678 -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
679 679  
680 -{{info}}
681 -**AT Command: AT+DR**
682 -{{/info}}
739 +Feature: Get or Set the Data Rate. (0-7 corresponding to DR_X) .
683 683  
684 -(% border="1" style="background-color:#ffffcc; color:green; width:466.222px" %)
685 -|=(% colspan="3" style="width: 463px;" %)AT+DR
686 -|(% 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**
687 687  |(% style="width:156px" %)AT+DR=?|(% style="width:167px" %)Get the Data Rate.|(% style="width:140px" %)5(((
688 688  OK
689 689  )))
... ... @@ -691,49 +691,45 @@
691 691  
692 692  )))
693 693  
694 -{{info}}
695 -**Downlink Command: 0x2200aaFF**
696 -{{/info}}
759 +(% style="color:blue" %)**Downlink Command: 0x2200aaFF**
697 697  
698 -
699 699  If the downlink payload=220001FF, it means setting the data rate to 1, while type code is 22 00 aa FF.
700 700  
701 -* **Example 1**: Downlink Payload: **220001FF** ~/~/ Set AT+DR=1.
702 -* **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.
703 703  
766 +(% style="display:none" %) (%%)
704 704  
705 705  == 7.5 Frame Counter Downlink ==
706 706  
770 +
707 707  Feature: Get or Set the Frame Counter Downlink.
708 708  
709 -{{info}}
710 -**AT Command:AT+FCD**
711 -{{/info}}
712 712  
713 -(% border="1" style="background-color:#ffffcc; color:green; width:693.222px" %)
714 -|=(% colspan="3" style="width: 690px;" %)AT+FCD
715 -|(% 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**
716 716  |(% style="width:162px" %)AT+FCD=?|(% style="width:258px" %)Get the Frame Counter Downlink.|(% style="width:269px" %)0(((
717 717  OK
718 718  )))
719 719  |(% style="width:162px" %)AT+FCD=10|(% style="width:258px" %)Set the Frame Counter Downlink.|(% style="width:269px" %)(System will write new value to FCD)(((
720 720  OK
721 -
722 -
723 723  )))
724 724  
786 +(% style="display:none" %) (%%)
725 725  
726 726  == 7.6 Frame Counter Uplink ==
727 727  
728 728  Feature: Get or Set the Frame Counter Uplink.
729 729  
730 -{{info}}
731 -**AT Command:AT+FCU**
732 -{{/info}}
733 733  
734 -(% border="1" style="background-color:#ffffcc; color:green; width:534.222px" %)
735 -|=(% colspan="3" style="width: 531px;" %)AT+FCU
736 -|(% 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**
737 737  |(% style="width:177px" %)AT+FCU=?|(% style="width:239px" %)Get the Frame Counter Uplink.|(% style="width:113px" %)0(((
738 738  OK
739 739  )))
... ... @@ -741,18 +741,19 @@
741 741  
742 742  )))
743 743  
805 +(% style="display:none" %) (%%)
744 744  
745 745  == 7.7 Join Accept Delay1 ==
746 746  
809 +
747 747  Feature: Get or Set the Join Accept Delay between the end of the Tx and the Join Rx Window 1 in ms.
748 748  
749 -{{info}}
750 -**AT Command:AT+JN1DL**
751 -{{/info}}
752 752  
753 -(% border="1" style="background-color:#ffffcc; color:green; width:537.222px" %)
754 -|=(% colspan="3" style="width: 534px;" %)AT+JN1DL
755 -|(% 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**
756 756  |(% style="width:164px" %)AT+JN1DL=?|(% style="width:229px" %)Get the Join Accept Delay.|(% style="width:140px" %)5000(((
757 757  OK
758 758  )))
... ... @@ -760,18 +760,19 @@
760 760  
761 761  )))
762 762  
825 +(% style="display:none" %) (%%)
763 763  
764 764  == 7.8 Join Accept Delay2 ==
765 765  
829 +
766 766  Feature: Get or Set the Join Accept Delay between the end of the Tx and the Join Rx Window 2 in ms.
767 767  
768 -{{info}}
769 -**AT Command:AT+JN2DL**
770 -{{/info}}
771 771  
772 -(% border="1" style="background-color:#ffffcc; color:green; width:538.222px" %)
773 -|=(% colspan="3" style="width: 535px;" %)AT+JN2DL
774 -|(% 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**
775 775  |(% style="width:160px" %)AT+JN2DL=?|(% style="width:228px" %)Get the Join Accept Delay.|(% style="width:146px" %)6000(((
776 776  OK
777 777  )))
... ... @@ -779,39 +779,48 @@
779 779  
780 780  )))
781 781  
845 +(% style="display:none" %) (%%)
782 782  
783 783  == 7.9 Public Network Mode ==
784 784  
785 -Feature: Get or Set the public network mode. (0: off, 1: on)
786 786  
787 -{{info}}
788 -**AT Command:AT+PNM**
789 -{{/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
790 790  
791 -(% border="1" style="background-color:#ffffcc; color:green; width:667.222px" %)
792 -|=(% colspan="3" style="width: 664px;" %)AT+PNM
793 -|(% 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**
794 794  |(% style="width:166px" %)AT+PNM=?|(% style="width:225px" %)Get the public network mode.|(% style="width:272px" %)1(((
795 795  OK
796 796  )))
797 -|(% 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)(((
798 798  OK
799 799  
800 800  
801 801  )))
872 +|(% style="width:166px" %)AT+PNM=0|(% style="width:225px" %)Set to use private network autoset syncword=0x12|(% style="width:272px" %)
802 802  
874 +(% style="display:none" %) (%%)
803 803  
804 804  == 7.10 Receive Delay1 ==
805 805  
878 +
806 806  Feature: Get or Set the delay between the end of the Tx and the Rx Window 1 in ms
807 807  
808 -{{info}}
809 -**AT Command:AT+RX1DL**
810 -{{/info}}
811 811  
812 -(% border="1" style="background-color:#ffffcc; color:green; width:408.222px" %)
813 -|=(% colspan="3" style="width: 405px;" %)AT+RX1DL
814 -|(% 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**
815 815  |(% style="width:155px" %)AT+RX1DL=?|(% style="width:128px" %)Get the delay.|(% style="width:122px" %)1000(((
816 816  OK
817 817  )))
... ... @@ -819,18 +819,19 @@
819 819  
820 820  )))
821 821  
894 +(% style="display:none" %) (%%)
822 822  
823 823  == 7.11 Receive Delay2 ==
824 824  
898 +
825 825  Feature: Get or Set the delay between the end of the Tx and the Rx Window 2 in ms
826 826  
827 -{{info}}
828 -**AT Command:AT+RX2DL**
829 -{{/info}}
830 830  
831 -(% border="1" style="background-color:#ffffcc; color:green; width:481.222px" %)
832 -|=(% colspan="3" style="width: 478px;" %)AT+RX2DL
833 -|(% 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**
834 834  |(% style="width:175px" %)AT+RX2DL=?|(% style="width:152px" %)Get the delay.|(% style="width:150px" %)2000(((
835 835  OK
836 836  )))
... ... @@ -838,18 +838,19 @@
838 838  
839 839  )))
840 840  
914 +(% style="display:none" %) (%%)
841 841  
842 842  == 7.12 Rx2 Window Data Rate ==
843 843  
918 +
844 844  Feature: Get or Set the Rx2 window data rate (0-7 corresponding to DR_X)
845 845  
846 -{{info}}
847 -**AT Command:AT+RX2DR**
848 -{{/info}}
849 849  
850 -(% border="1" style="background-color:#ffffcc; color:green; width:525.222px" %)
851 -|=(% colspan="3" style="width: 522px;" %)AT+RX2DR
852 -|(% 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**
853 853  |(% style="width:160px" %)AT+RX2DR=?|(% style="width:232px" %)Get the Rx2 window data rate.|(% style="width:130px" %)2(((
854 854  OK
855 855  )))
... ... @@ -857,18 +857,19 @@
857 857  
858 858  )))
859 859  
934 +(% style="display:none" %) (%%)
860 860  
861 861  == 7.13 Rx2 Window Frequency ==
862 862  
938 +
863 863  Feature: Get or Set the Rx2 window frequency
864 864  
865 -{{info}}
866 -**AT Command:AT+RX2FQ**
867 -{{/info}}
868 868  
869 -(% border="1" style="background-color:#ffffcc; color:green; width:587.222px" %)
870 -|=(% colspan="3" style="width: 584px;" %)AT+RX2FQ
871 -|(% 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**
872 872  |(% style="width:183px" %)AT+RX2FQ=?|(% style="width:240px" %)Get the Rx2 window frequency.|(% style="width:160px" %)434665000(((
873 873  OK
874 874  )))
... ... @@ -876,18 +876,21 @@
876 876  
877 877  )))
878 878  
954 +(% style="display:none" %) (%%)
879 879  
880 880  == 7.14 Transmit Power ==
881 881  
958 +
882 882  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. )
883 883  
884 -{{info}}
885 -**AT Command:AT+TXP**
886 -{{/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**
887 887  
888 -(% border="1" style="background-color:#ffffcc; color:green; width:465.222px" %)
889 -|=(% colspan="3" style="width: 462px;" %)AT+TXP
890 -|(% 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**
891 891  |(% style="width:161px" %)AT+TXP=?|(% style="width:189px" %)Get the Transmit Power.|(% style="width:112px" %)0(((
892 892  OK
893 893  )))
... ... @@ -899,98 +899,101 @@
899 899  
900 900  If the downlink payload=22000100, it means setting the TXP to 0.
901 901  
902 -* **Example 1**: Downlink Payload: **22000102** ~/~/ Set AT+TXP=2.
903 -* **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.
904 904  
983 +(% style="display:none" %) (%%)
905 905  
906 906  == 7.15 RSSI of the Last Received Packet ==
907 907  
987 +
908 908  Feature: Get or Set the Rx2 window frequency
909 909  
910 -{{info}}
911 -**AT Command:AT+RSSI**
912 -{{/info}}
913 913  
914 -(% border="1" style="background-color:#ffffcc; color:green; width:557.222px" %)
915 -|=(% colspan="3" style="width: 554px;" %)AT+RSSI
916 -|(% 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**
917 917  |(% style="width:164px" %)AT+RSSI=?|(% style="width:289px" %)Get the RSSI of the last received packet.|(% style="width:100px" %)0(((
918 918  OK
919 919  )))
920 920  
1000 +(% style="display:none" %) (%%)
921 921  
922 922  == 7.16 SNR of the Last Received Packet ==
923 923  
1004 +
924 924  Feature: Get the SNR of the last received packet
925 925  
926 -{{info}}
927 -**AT Command:AT+SNR**
928 -{{/info}}
929 929  
930 -(% border="1" style="background-color:#ffffcc; color:green; width:571.222px" %)
931 -|=(% colspan="3" style="width: 568px;" %)AT+SNR
932 -|(% 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**
933 933  |(% style="width:164px" %)AT+SNR=?|(% style="width:290px" %)Get the RSSI of the last received packet.|(% style="width:113px" %)0(((
934 934  OK
935 935  )))
936 936  
1017 +(% style="display:none" %) (%%)
937 937  
938 938  == 7.17 Application Port ==
939 939  
1021 +
940 940  Feature: Get or set the application port.
941 941  
942 -{{info}}
943 -**AT Command: AT+PORT**
944 -{{/info}}
945 945  
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**
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**
949 949  |(% style="width:157px" %)AT+PORT=?|(% style="width:204px" %)Get the application port|(% style="width:135px" %)21(((
950 950  OK
951 951  )))
952 952  |(% style="width:157px" %)AT+PORT=21|(% style="width:204px" %)Set the application port|(% style="width:135px" %)OK
953 953  
954 -{{info}}
955 -**Downlink Command: 0x23**
956 -{{/info}}
1035 +(% style="color:blue" %)**Downlink Command: 0x23**
957 957  
958 958  Format: Command Code (0x23) followed by 1 bytes port value.
959 959  
960 960  If the downlink payload=2301, it means set the application port to 1, while type code is 23.
961 961  
962 -* **Example 1**: Downlink Payload: **2301** ~/~/ set the application port to 1
963 -* **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
964 964  
1044 +(% style="display:none" %) (%%)
965 965  
966 966  == 7.18 Single Channel Mode ==
967 967  
1048 +
968 968  Feature:Get or Set Frequency (Unit: Hz) for Single Channel Mode.
969 969  
970 -{{info}}
971 -**AT Command: AT+CHS**
972 -{{/info}}
973 973  
974 -(% border="1" style="background-color:#ffffcc; color:green; width:603.222px" %)
975 -|=(% colspan="3" style="width: 600px;" %)AT+CHS
976 -|(% 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**
977 977  |(% style="width:182px" %)AT+CHS=?|(% style="width:295px" %)Get Frequency for Single Channel Mode|(% style="width:122px" %)0(((
978 978  OK
979 979  )))
980 980  |(% style="width:182px" %)AT+CHS=868100000|(% style="width:295px" %)Set Frequency for Single Channel Mode|(% style="width:122px" %)OK
981 981  
1062 +(% style="display:none" %) (%%)
982 982  
983 983  == 7.19 Eight Channel Mode ==
984 984  
1066 +
985 985  Feature: Get or Set eight channels mode,Only for US915,AU915,CN470.
986 986  
987 -{{info}}
988 -**AT Command: AT+CHE**
989 -{{/info}}
990 990  
991 -(% border="1" style="background-color:#ffffcc; color:green; width:710.222px" %)
992 -|=(% colspan="3" style="width: 707px;" %)AT+CHE
993 -|(% 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**
994 994  |(% style="width:160px" %)AT+CHE=?|(% style="width:198px" %)Get eight channels mode|(% style="width:349px" %)1(((
995 995  902.3 902.5 902.7 902.9 903.1 903.3 903.5 903.7
996 996  
... ... @@ -998,36 +998,37 @@
998 998  )))
999 999  |(% style="width:160px" %)AT+CHE=1|(% style="width:198px" %)Set eight channels mode|(% style="width:349px" %)OK
1000 1000  
1001 -{{info}}
1002 -**Downlink Command: 0x24**
1003 -{{/info}}
1082 +(% style="color:blue" %)**Downlink Command: 0x24 (LHT65,LHT65N Downlink Command:0x07)**
1004 1004  
1005 1005  Format: Command Code (0x24) followed by 1 bytes channel value.
1006 1006  
1007 1007  If the downlink payload=2401, it means set channel mode to 1, while type code is 24.
1008 1008  
1009 -* **Example 1**: Downlink Payload: 2401 ~/~/ set channel mode to 1
1010 -* **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
1011 1011  
1091 +(% style="display:none" %) (%%)
1012 1012  
1013 1013  == 7.20 Get or Set RXwindows1 timeout ==
1014 1014  
1015 -Feature:Get or Set the number of symbols to detect and timeout from RXwindow1(0 to 255).
1016 1016  
1017 -{{info}}
1018 -**AT Command: AT+RX1WTO**
1019 -{{/info}}
1096 +Feature: Get or Set the number of symbols to detect and timeout from RXwindow1(0 to 255).
1020 1020  
1021 -(% border="1" style="background-color:#ffffcc; color:green; width:460.222px" %)
1022 -|=(% colspan="3" style="width: 457px;" %)AT+ RX1WTO
1023 -|(% 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**
1024 1024  |(% style="width:163px" %)AT+RX1WTO=?|(% style="width:201px" %)Get RXwindows1 timeout|(% style="width:93px" %)14(((
1025 1025  OK
1026 1026  )))
1027 1027  |(% style="width:163px" %)AT+RX1WTO=60|(% style="width:201px" %)Set RXwindows1 timeout|(% style="width:93px" %)OK
1028 1028  
1109 +(% style="display:none" %) (%%)
1110 +
1029 1029  (((
1030 -**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.
1031 1031  )))
1032 1032  
1033 1033  [[image:image-20220526162535-1.png]]
... ... @@ -1034,61 +1034,62 @@
1034 1034  
1035 1035  (((
1036 1036  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.
1037 -
1038 -
1039 1039  )))
1040 1040  
1121 +
1041 1041  == 7.21 Get or Set RXwindows2 timeout ==
1042 1042  
1043 -Feature:Get or Set the number of symbols to detect and timeout from RXwindow2(0 to 255).
1044 1044  
1045 -{{info}}
1046 -**AT Command: AT+RX2WTO**
1047 -{{/info}}
1125 +Feature: Get or Set the number of symbols to detect and timeout from RXwindow2(0 to 255).
1048 1048  
1049 -(% border="1" style="background-color:#ffffcc; color:green; width:497.222px" %)
1050 -|=(% colspan="3" style="width: 494px;" %)AT+ RX2WTO
1051 -|(% 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**
1052 1052  |(% style="width:190px" %)AT+RX2WTO=?|(% style="width:199px" %)Get RXwindows2 timeout|(% style="width:104px" %)7(((
1053 1053  OK
1054 1054  )))
1055 1055  |(% style="width:190px" %)AT+RX2WTO=20|(% style="width:199px" %)Set RXwindows2 timeout|(% style="width:104px" %)OK
1056 1056  
1138 +(% style="display:none" %) (%%)
1057 1057  
1058 1058  == 7.22 Setting up uplinkdwelltime (as923, au915) ==
1059 1059  
1142 +
1060 1060  Feature: Get or Set uplinkdwelltime
1061 1061  
1062 -{{info}}
1063 -**AT Command: AT+DWELLT**
1064 -{{/info}}
1065 1065  
1066 -(% border="1" style="background-color:#ffffcc; color:green; width:497.222px" %)
1067 -|=(% colspan="3" style="width: 494px;" %)AT+DWELLT
1068 -|(% 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**
1069 1069  |(% style="width:183px" %)AT+DWELLT=?|(% style="width:179px" %)Get uplinkdwelltime|(% style="width:131px" %)1(((
1070 1070  OK
1071 1071  )))
1072 1072  |(% style="width:183px" %)AT+DWELLT=0|(% style="width:179px" %)Set uplinkdwelltime|(% style="width:131px" %)OK
1073 1073  
1074 -{{info}}
1075 -**Downlink Command: 0x25**
1076 -{{/info}}
1156 +(% style="color:blue" %)**Downlink Command: 0x25**
1077 1077  
1078 1078  Format: Command Code (0x25) followed by 1 bytes state value.
1079 1079  
1080 1080  If the downlink payload=2501, it means set uplinkdwelltime to 1, while type code is 25.
1081 1081  
1082 -* **Example 1**: Downlink Payload: **2501** ~/~/ set uplinkdwelltime to 1
1083 -* **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
1084 1084  
1165 +(% style="display:none" %) (%%)
1085 1085  
1086 1086  == 7.23 Set Packet Receiving Response Level ==
1087 1087  
1169 +
1088 1088  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.
1089 1089  
1090 -RPL value:
1091 1091  
1173 +(% style="color:blue" %)**RPL value:**
1174 +
1092 1092  * **AT+RPL=0:** Device won't immediately reply any downlink commands from platform.
1093 1093  * **AT+RPL=1:** Device will immediately reply message to Unconfirmed Data Down. Payload is 0x00.
1094 1094  * **AT+RPL=2:** Device will immediately reply message to Confirmed Data Down. Payload is 0x00 and requied response header for this command.
... ... @@ -1095,52 +1095,188 @@
1095 1095  * **AT+RPL=3:** Device will immediately reply message to MAC Command. Payload is 0x00 and requied response header for this command.
1096 1096  * **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.
1097 1097  
1098 -Case Analyes:
1181 +(% style="color:blue" %)**Case Analyes:**
1099 1099  
1100 1100  * For Class A devices, AT+RPL=0 is ok. that is defaut settings in software.
1101 1101  * For Class C devices used in ChirpStack, need to set AT+RPL=4 because Chirpstack require immedietely reply message to MAC Command.
1102 1102  * 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.
1103 1103  
1104 -{{info}}
1105 -**AT Command: AT+RPL**
1106 -{{/info}}
1187 +(% style="color:blue" %)**AT Command: AT+RPL**
1107 1107  
1108 -(% border="1" style="background-color:#ffffcc; color:green; width:536.222px" %)
1109 -|=(% colspan="3" style="width: 533px;" %)AT+RPL
1110 -|(% 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**
1111 1111  |(% style="width:160px" %)AT+RPL=?|(% style="width:263px" %)Get packet receiving response level|(% style="width:109px" %)1(((
1112 1112  OK
1113 1113  )))
1114 1114  |(% style="width:160px" %)AT+RPL=0|(% style="width:263px" %)Set packet receiving response level|(% style="width:109px" %)OK
1115 1115  
1116 -{{info}}
1117 -**Downlink Command: 0x21**
1118 -{{/info}}
1197 +(% style="color:blue" %)**Downlink Command: 0x21**
1119 1119  
1120 1120  Format: Command Code (0x21) followed by 1 bytes level value.
1121 1121  
1122 1122  If the downlink payload=2101, it means set packet receiving response level to 1, while type code is 21.
1123 1123  
1124 -* **Example 1**: Downlink Payload: **2101** ~/~/ set packet receiving response level to 1
1125 -* **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
1126 1126  
1206 +(% style="display:none" %) (%%)
1127 1127  
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 +
1128 1128  = 8. AT Commands Combination =
1129 1129  
1130 1130  == 8.1 Set a fix RX2DR for downlink window ==
1131 1131  
1132 -* **AT+ADR=0 **~-~-> Disable ADR first
1133 -* **AT+RX2DR=xxxx** ~-~-> Set xxxx to your wanted DataRate
1134 1134  
1346 +* (% style="color:blue" %)**AT+ADR=0             **(%%) **~-~->**  Disable ADR first
1135 1135  
1348 +* (% style="color:blue" %)**AT+RX2DR=xxxx**   (%%) **~-~->**  Set xxxx to your wanted DataRate
1349 +
1350 +(% style="display:none" %) (%%)
1351 +
1136 1136  == 8.2 Use Downlink Command to set a fix uplink DR ==
1137 1137  
1138 -{{info}}
1139 -**Downlink Command: 0x22000500**
1140 -{{/info}}
1141 1141  
1142 -Same as:
1355 +(% style="color:blue" %)**Downlink Command: 0x22000500**
1143 1143  
1144 -* AT+ADR=0  [[Reference>>||anchor="H7.1AdaptiveDataRate"]]
1145 -* AT+DR=5  [[Reference>>||anchor="H7.4DataRate"]]
1146 -* 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