Version 58.1 by Bei Jinggeng on 2022/12/02 10:28

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