Version 81.18 by Mengting Qiu on 2025/07/01 15:37

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