Hide last authors
Edwin Chen 1.1 1 {{box cssClass="floatinginfobox" title="**Contents**"}}
2 {{toc/}}
3 {{/box}}
4
Xiaoling 4.2 5 = **1. Overview** =
Edwin Chen 1.1 6
Xiaoling 6.1 7 (((
Edwin Chen 1.1 8 Shipped LT-22222-L is base on LoRaWAN protocol. We also develop a open source Point to Point LoRa protocol for LT-22222-L. The source code and hex file can be found at:
Xiaoling 6.1 9 )))
Edwin Chen 1.1 10
Xiaoling 6.1 11 (((
Edwin Chen 1.1 12 [[Point to Point Software for LT-22222-L>>https://github.com/dragino/LT-22222-L]].
Xiaoling 6.1 13 )))
Edwin Chen 1.1 14
15 == ==
16
Xiaoling 4.2 17 = **2. Features for this firmware** =
Edwin Chen 1.1 18
Xiaoling 4.2 19
Xiaoling 8.2 20 == **2.1  Point To Point** ==
Xiaoling 4.2 21
Xiaoling 12.2 22 === **2.1.1 Overview** ===
Xiaoling 8.1 23
Xiaoling 8.2 24 [[image:image-20220602111219-1.png||height="472" width="972"]]
Xiaoling 4.2 25
26
Xiaoling 12.2 27 === **2.2.2 Configure** ===
Xiaoling 4.2 28
Xiaoling 4.3 29 (% border="1" style="background-color:#f7faff; color:black; width:500px" %)
30 |=**A's configuration**|=**B's configuration**
31 |AT+GROUPMOD=0|AT+GROUPMOD=0
32 |AT+TXCHS=868700000|AT+TXCHS=869000000
33 |AT+RXCHS=869000000|AT+RXCHS=868700000
34 |AT+TRIG1=2,50|AT+TRIG1=2,50
35 |AT+TRIG2=2,50|AT+TRIG2=2,50
36 |AT+DI1TODO1=2|AT+DI1TODO1=2
37 |AT+DI1TORO1=2|AT+DI1TORO1=2
38 |AT+DI2TODO2=2 |AT+DI2TODO2=2
39 |AT+DI2TORO2=2|AT+DI2TORO2=2
Xiaoling 4.2 40
41
Xiaoling 12.2 42 (% class="wikigeneratedid" %)
43 2.2.3 Serial port display
Xiaoling 7.1 44
Xiaoling 12.2 45
46 (% class="wikigeneratedid" %)
Xiaoling 4.2 47 [[image:image-20220602111219-2.png]]
48
49
Xiaoling 12.2 50 (% class="wikigeneratedid" %)
Xiaoling 4.2 51 [[image:image-20220602111219-3.png]]
52
Xiaoling 12.2 53 (% class="wikigeneratedid" %)
54 If the sender does not get the ACK reply from the receiver, it will retransmit up to 4 times, each interval is 6 seconds, and the UplinkCounter of the retransmission will not increase.
55
56
57
58 == **2.2  Point To Mult-Point ** ==
59
60
61
62
63
Xiaoling 8.9 64 (((
Xiaoling 12.2 65
Xiaoling 8.9 66 )))
Xiaoling 4.2 67
Xiaoling 8.2 68
69 == **2.3 AT command** ==
70
71
Xiaoling 11.3 72 (((
Xiaoling 8.6 73 (% style="color:#037691" %)**ATZ** (%%)**: ** Trig a reset of the MCU
Xiaoling 11.3 74 )))
Xiaoling 8.2 75
Xiaoling 11.3 76 (((
Xiaoling 8.6 77 (% style="color:#037691" %)**AT+FDR** (%%)**:**  Reset Parameters to Factory Default, Keys Reserve
Xiaoling 11.3 78 )))
Xiaoling 8.2 79
Xiaoling 11.3 80 (((
Xiaoling 8.6 81 (% style="color:#037691" %)**AT+FCU** (%%)**:**  Get or Set the Frame Counter Uplink
Xiaoling 11.3 82 )))
Xiaoling 8.2 83
Xiaoling 11.3 84 (((
Xiaoling 8.6 85 (% style="color:#037691" %)**AT+FCD** (%%)**:**  Get or Set the Frame Counter Downlink
Xiaoling 11.3 86 )))
Xiaoling 8.2 87
Xiaoling 11.3 88 (((
Xiaoling 8.6 89 (% style="color:#037691" %)**AT+TXP** (%%)**:**  Get or Set the transmit power, the maximum is 20dBm (default is 14dBm)
Xiaoling 11.3 90 )))
Xiaoling 8.2 91
Xiaoling 11.3 92 (((
Xiaoling 8.8 93 (% style="color:#037691" %)**AT+SYNC** (%%)**:**  Get or Set the Sync word [1:0x34,0:0x12] (default is 1)
Xiaoling 11.3 94 )))
Xiaoling 8.2 95
Xiaoling 11.3 96 (((
Xiaoling 8.7 97 (% style="color:#037691" %)**AT+PMB** (%%)**:    **Get or Set the preamble (default:8)
Xiaoling 11.3 98 )))
Xiaoling 8.2 99
Xiaoling 11.3 100 (((
Xiaoling 8.6 101 (% style="color:#037691" %)**AT+TXCHS **(%%)**:** Get or Set the transmit frequency of TX (default:868700000)
Xiaoling 11.3 102 )))
Xiaoling 8.2 103
Xiaoling 11.3 104 (((
Xiaoling 8.6 105 (% style="color:#037691" %)**AT+TXSF **(%%)**:**  Get or Set the spreading factor of TX (7 to 12) (default:12)
Xiaoling 11.3 106 )))
Xiaoling 8.2 107
Xiaoling 11.3 108 (((
Xiaoling 8.6 109 (% style="color:#037691" %)**AT+RXCHS **(%%)**:** Get or Set the transmit frequency of RX (default:869000000)
Xiaoling 11.3 110 )))
Xiaoling 8.2 111
Xiaoling 11.3 112 (((
Xiaoling 8.6 113 (% style="color:#037691" %)**AT+RXSF **(%%)**:**  Get or Set the spreading factor of RX (7 to 12) (default:12)
Xiaoling 11.3 114 )))
Xiaoling 8.2 115
Xiaoling 11.3 116 (((
Xiaoling 9.2 117 (% style="color:#037691" %)**AT+BW **(%%)**:       **Get or Set the bandwidth [0:125khz,1:250khz,2:500khz] (default:0)
Xiaoling 11.3 118 )))
Xiaoling 8.2 119
Xiaoling 11.3 120 (((
Xiaoling 8.7 121 (% style="color:#037691" %)**AT+CR **(%%)**:        **Get or Set the coding rate [1: 4/5, 2: 4/6, 3: 4/7, 4: 4/8] (default:1)
Xiaoling 11.3 122 )))
Xiaoling 8.2 123
Xiaoling 11.3 124 (((
Xiaoling 8.6 125 (% style="color:#037691" %)**AT+TDC **(%%)**:**  Get or set the application data transmission interval in ms(default 10 minutes)
Xiaoling 11.3 126 )))
Xiaoling 8.2 127
Xiaoling 11.3 128 (((
Xiaoling 8.8 129 (% style="color:#037691" %)**AT+VER **(%%)**:**  Get firmware version number
Xiaoling 11.3 130 )))
Xiaoling 8.2 131
Xiaoling 11.3 132 (((
Xiaoling 9.2 133 (% style="color:#037691" %)**AT+SEND **(%%)**:   **Set Custom sent hex data
Xiaoling 11.3 134 )))
Xiaoling 8.2 135
Xiaoling 11.3 136 (((
Xiaoling 8.6 137 (% style="color:#037691" %)**AT+GROUPMOD **(%%)**: **Set or Get the grouping mode of the device (default: 0)
Xiaoling 11.3 138 )))
Xiaoling 8.2 139
Xiaoling 11.1 140 (((
Xiaoling 11.3 141 (((
Xiaoling 8.7 142 (% style="color:#037691" %)**AT+GROUPID **(%%)**:      **Set or Get the password for matching between TX group and RX group, which can be composed of numbers or characters (default: 12345678)
Xiaoling 11.1 143 )))
Xiaoling 11.3 144 )))
Xiaoling 8.2 145
Xiaoling 11.3 146 (((
Xiaoling 8.6 147 (% style="color:#037691" %)**AT+TRIG1 **(%%)**:**  Set or Get the DI1 pin interrupt trigger mode (default 0,0)
Xiaoling 11.3 148 )))
Xiaoling 8.2 149
Xiaoling 11.3 150 (((
Xiaoling 8.7 151 (% style="color:#037691" %)**AT+TRIG2 **(%%)**:            **Set or Get the DI2 pin interrupt trigger mode (default 0,0)
Xiaoling 11.3 152 )))
Xiaoling 8.2 153
Xiaoling 11.3 154 (((
Xiaoling 8.7 155 (% style="color:#037691" %)**AT+DI1TODO1 **(%%)**:    **Set or get the mode in which DI1 maps to DO1 (default 0)
Xiaoling 11.3 156 )))
Xiaoling 8.2 157
Xiaoling 11.3 158 (((
Xiaoling 8.7 159 (% style="color:#037691" %)**AT+DI1TORO1 **(%%)**:    **Set or get the mode in which DI1 maps to RO1(default 0)
Xiaoling 11.3 160 )))
Xiaoling 8.2 161
Xiaoling 11.3 162 (((
Xiaoling 8.6 163 (% style="color:#037691" %)**AT+DI2TODO2 **(%%)**:**  Set or get the mode in which DI2 maps to DO2(default 0)
Xiaoling 11.3 164 )))
Xiaoling 8.2 165
Xiaoling 11.3 166 (((
Xiaoling 8.7 167 (% style="color:#037691" %)**AT+DI2TORO2 **(%%)**:    **Set or get the mode in which DI2 maps to RO2(default 0)
Xiaoling 11.3 168 )))
Xiaoling 8.2 169
Xiaoling 11.3 170 (((
171
172 )))
Xiaoling 8.2 173
Xiaoling 11.3 174 (((
175
176 )))
Xiaoling 8.2 177
Xiaoling 11.3 178 (((
Xiaoling 8.7 179 (% style="color:#4f81bd" %)**Example 1:**
Xiaoling 11.3 180 )))
Xiaoling 8.2 181
Xiaoling 11.3 182 (((
Xiaoling 8.7 183 **AT+SEND=01020304 **will send a payload of 01020304
Xiaoling 11.3 184 )))
Xiaoling 8.2 185
Xiaoling 11.3 186 (((
187
188 )))
Xiaoling 8.2 189
Xiaoling 11.3 190 (((
Xiaoling 8.7 191 (% style="color:#4f81bd" %)**Example 2: **
Xiaoling 11.3 192 )))
Xiaoling 8.2 193
Xiaoling 11.3 194 (((
Xiaoling 8.8 195 **AT+TRIGx=a    **Trigger directly without triggering time
Xiaoling 11.3 196 )))
Xiaoling 8.2 197
Xiaoling 11.3 198 (((
Xiaoling 8.7 199 **AT+TRIGx=a,b**
Xiaoling 11.3 200 )))
Xiaoling 8.2 201
Xiaoling 11.3 202 (((
Xiaoling 8.7 203 a=0: falling edge;
Xiaoling 11.3 204 )))
Xiaoling 8.2 205
Xiaoling 11.3 206 (((
Xiaoling 8.7 207 a=1: rising edge;
Xiaoling 11.3 208 )))
Xiaoling 8.2 209
Xiaoling 11.3 210 (((
Xiaoling 8.7 211 a=2: falling edge or rising edge;
Xiaoling 11.3 212 )))
Xiaoling 8.2 213
Xiaoling 11.3 214 (((
Xiaoling 8.7 215 b:  triggering time in milliseconds.
Xiaoling 11.3 216 )))
Xiaoling 8.2 217
Xiaoling 11.3 218 (((
Xiaoling 8.7 219 AT+TRIGx=2,50  Falling edge or rising edge trigger, and the trigger time exceeds 50ms.
Xiaoling 11.3 220 )))
Xiaoling 8.2 221
Xiaoling 11.3 222 (((
223
224 )))
Xiaoling 8.2 225
Xiaoling 11.3 226 (((
Xiaoling 8.7 227 (% style="color:#4f81bd" %)**Example 3: **
Xiaoling 11.3 228 )))
Xiaoling 8.2 229
Xiaoling 11.3 230 (((
Xiaoling 8.7 231 **AT+DI1TODO1= maps value**
Xiaoling 11.3 232 )))
Xiaoling 8.2 233
Xiaoling 11.3 234 (((
Xiaoling 8.7 235 **AT+DI1TORO1= maps value**
Xiaoling 11.3 236 )))
Xiaoling 8.2 237
Xiaoling 11.3 238 (((
Xiaoling 8.7 239 **AT+DI2TODO2= maps value**
Xiaoling 11.3 240 )))
Xiaoling 8.2 241
Xiaoling 11.3 242 (((
Xiaoling 8.7 243 **AT+DI2TORO2= maps value**
Xiaoling 11.3 244 )))
Xiaoling 8.7 245
Xiaoling 11.3 246 (((
247
248 )))
Xiaoling 8.7 249
Xiaoling 8.4 250 (% border="1" style="background-color:#f7faff; color:black; width:706px" %)
Xiaoling 11.3 251 |=(% style="width: 102px;" %)(((
252 Maps value
253 )))|=(% style="width: 331px;" %)(((
254 DIx to DOx
255 )))|=(% style="width: 268px;" %)(((
256 DIx to ROx
257 )))
258 |(% style="width:102px" %)(((
259 0
260 )))|(% style="width:331px" %)(((
261 No Action
262 )))|(% style="width:268px" %)(((
263 No Action
264 )))
265 |(% style="width:102px" %)(((
266 1
267 )))|(% style="width:331px" %)(((
268 If DIx is high, control DOx to output low level, If DIx is low, control DOx to output high level
269 )))|(% style="width:268px" %)(((
270 (((
Xiaoling 8.2 271 If DIx is high, control ROx to close,
Xiaoling 11.3 272 )))
Xiaoling 8.2 273
Xiaoling 11.3 274 (((
Xiaoling 8.2 275 if DIx is low, control ROx to open
276 )))
Xiaoling 11.3 277 )))
278 |(% style="width:102px" %)(((
279 2
280 )))|(% style="width:331px" %)(((
281 If DIx is high, control DOx to output high level, If DIx is low, control DOx to output low level
282 )))|(% style="width:268px" %)(((
283 (((
Xiaoling 8.2 284 If DIx is high, control ROx to open,
Xiaoling 11.3 285 )))
Xiaoling 8.2 286
Xiaoling 11.3 287 (((
Xiaoling 8.2 288 if DIx is low, control ROx to close
289 )))
Xiaoling 11.3 290 )))
291 |(% style="width:102px" %)(((
292 3
293 )))|(% style="width:331px" %)(((
294 DOx state flip
295 )))|(% style="width:268px" %)(((
296 ROx state flip
297 )))
Xiaoling 8.2 298
Xiaoling 11.3 299 (((
Xiaoling 8.7 300 (% style="color:#4f81bd" %)**Example 4: **
Xiaoling 11.3 301 )))
Xiaoling 8.2 302
Xiaoling 11.3 303 (((
Xiaoling 8.7 304 **AT+GROUPMOD=0**  Set to point to point mode
Xiaoling 11.3 305 )))
Xiaoling 8.2 306
Xiaoling 11.3 307 (((
Xiaoling 8.7 308 **AT+GROUPMOD=0,aa**  Set the TX group that controls the number of aa (The maximum value of aa is 8)
Xiaoling 11.3 309 )))
Xiaoling 8.2 310
Xiaoling 11.1 311 (((
Xiaoling 11.3 312 (((
Xiaoling 8.7 313 **AT+GROUPMOD=1,bb**  Set to the RX group controlled by the TX group, numbered bb(The maximum value of aa is 8)
Xiaoling 11.1 314 )))
Xiaoling 11.3 315 )))
Xiaoling 8.2 316
Xiaoling 11.3 317 (((
Xiaoling 8.7 318 **AT+GROUPMOD=0,2**  Set to control the TX group of the two RX groups
Xiaoling 11.3 319 )))
Xiaoling 8.2 320
Xiaoling 11.3 321 (((
Xiaoling 8.7 322 **AT+GROUPMOD=1,1**  Set the RX group numbered 1
Xiaoling 11.3 323 )))
Xiaoling 8.2 324
Xiaoling 11.3 325 (((
Xiaoling 8.7 326 **AT+GROUPMOD=1,2**  Set the RX group numbered 2
Xiaoling 11.3 327 )))
Xiaoling 8.2 328
329
330 == **2.4 Data Format** ==
331
Xiaoling 11.3 332 (((
Xiaoling 8.2 333 8 bytes of GROUPID + 9 bytes of payload + 4 bytes of checksum
Xiaoling 11.3 334 )))
Xiaoling 8.2 335
Xiaoling 11.3 336 (((
337
338 )))
Xiaoling 8.2 339
Xiaoling 11.3 340 (((
Xiaoling 8.8 341 (% style="color:#4f81bd" %)**Payload:**
Xiaoling 11.3 342 )))
Xiaoling 8.2 343
Xiaoling 8.4 344 (% border="1" style="background-color:#f7faff; color:black; width:938px" %)
Xiaoling 11.3 345 |=(% style="width: 123px;" %)(((
346 **Size (bytes)**
347 )))|=(% style="width: 107px;" %)(((
348 1
349 )))|=(% style="width: 107px;" %)(((
350 1
351 )))|=(% style="width: 107px;" %)(((
352 1
353 )))|=(% style="width: 107px;" %)(((
354 1
355 )))|=(% style="width: 107px;" %)(((
356 1
357 )))|=(% style="width: 107px;" %)(((
358 1
359 )))|=(% style="width: 107px;" %)(((
360 1
361 )))|=(% style="width: 107px;" %)(((
362 1
363 )))|=(% style="width: 107px;" %)(((
364 1
365 )))
366 |(% style="width:123px" %)(((
367 **Value**
368 )))|(% style="width:38px" %)(((
369 address
370 )))|(% style="width:70px" %)(((
371 request
372 )))|(% style="width:52px" %)(((
373 ACK
374 )))|(% style="width:127px" %)(((
375 (((
Xiaoling 8.2 376 DI1&
Xiaoling 11.3 377 )))
Xiaoling 8.2 378
Xiaoling 11.3 379 (((
Xiaoling 8.2 380 DI1 level
Xiaoling 11.3 381 )))
382 )))|(% style="width:101px" %)(((
383 DI1TODO1
384 )))|(% style="width:91px" %)(((
385 DI1TORO1
386 )))|(% style="width:111px" %)(((
387 (((
Xiaoling 8.2 388 DI2&
Xiaoling 11.3 389 )))
Xiaoling 8.2 390
Xiaoling 11.3 391 (((
Xiaoling 8.2 392 DI2 level
Xiaoling 11.3 393 )))
394 )))|(% style="width:105px" %)(((
395 DI2TODO2
396 )))|(% style="width:106px" %)(((
397 DI2TORO2
398 )))
Xiaoling 8.2 399
Xiaoling 11.3 400 (((
Xiaoling 8.5 401 (% style="color:#037691" %)**The first byte**(%%)**:**  00 is the broadcast address, 01-08 is the RX group number.
Xiaoling 11.3 402 )))
Xiaoling 8.2 403
Xiaoling 11.3 404 (((
Xiaoling 8.5 405 (% style="color:#037691" %)**The second byte**(%%)**:**  send mapping request when not 0, not request when it is 0.
Xiaoling 11.3 406 )))
Xiaoling 8.2 407
Xiaoling 11.3 408 (((
Xiaoling 8.5 409 (% style="color:#037691" %)**The third byte**(%%)**:**  ACK returned to the sender after the mapping is completed.
Xiaoling 11.3 410 )))
Xiaoling 8.2 411
Xiaoling 11.1 412 (((
Xiaoling 11.3 413 (((
Xiaoling 8.5 414 (% style="color:#037691" %)**The fourth byte**(%%)**:**  the high four bits are 1 to represent DI1, and the low four bits are the level of DI1 when the interrupt is triggered.
Xiaoling 11.1 415 )))
Xiaoling 11.3 416 )))
Xiaoling 8.2 417
Xiaoling 11.3 418 (((
Xiaoling 8.6 419 (% style="color:#037691" %)**The Fifth byte**(%%)**:       **DI1TODO1 when the interrupt is triggered, 0 when the interrupt is not triggered.
Xiaoling 11.3 420 )))
Xiaoling 8.2 421
Xiaoling 11.3 422 (((
Xiaoling 8.5 423 (% style="color:#037691" %)**The Sixth byte**(%%)**:**  0 does not trigger interrupt when DI1TORO1 interrupt is triggered.
Xiaoling 11.3 424 )))
Xiaoling 8.2 425
Xiaoling 11.1 426 (((
Xiaoling 11.3 427 (((
Xiaoling 8.5 428 (% style="color:#037691" %)**The seventh byte**(%%)**:**  the high four bits are 2 to represent DI2, and the low four bits are the level of DI2 when the interrupt is triggered.
Xiaoling 11.1 429 )))
Xiaoling 11.3 430 )))
Xiaoling 8.2 431
Xiaoling 11.3 432 (((
Xiaoling 8.6 433 (% style="color:#037691" %)**The 8th byte**(%%)**:          **DI2TODO2 when the interrupt is triggered, 0 when the interrupt is not triggered.
Xiaoling 11.3 434 )))
Xiaoling 8.2 435
Xiaoling 11.3 436 (((
Xiaoling 8.5 437 (% style="color:#037691" %)**The 9th byte**(%%)**:**  DI2TORO2 when an interrupt is triggered, 0 when an interrupt is not triggered.
Xiaoling 11.3 438 )))
Xiaoling 8.2 439
Edwin Chen 1.1 440
Copyright ©2010-2022 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0