Version 81.1 by Mengting Qiu on 2025/07/01 15:11

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