Last modified by Mengting Qiu on 2025/07/08 16:32

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