Version 81.2 by Mengting Qiu on 2025/07/01 15:13

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