Version 63.3 by Xiaoling on 2023/04/19 14:19

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