Version 84.1 by Mengting Qiu on 2025/07/01 15:53

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