Version 83.1 by Mengting Qiu on 2025/07/01 15:48

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