Version 81.3 by Mengting Qiu on 2025/07/01 15:14

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