Version 60.1 by Edwin Chen on 2023/03/25 15:30

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