Version 81.4 by Mengting Qiu on 2025/07/01 15:28

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