Version 80.1 by Mengting Qiu on 2025/06/30 10:59

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