Version 81.13 by Mengting Qiu on 2025/07/01 15:33

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