Version 80.2 by Mengting Qiu on 2025/07/01 15:00

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