Version 58.2 by Xiaoling on 2022/12/02 13:45

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