Version 81.14 by Mengting Qiu on 2025/07/01 15:35

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