Changes for page SDI-12-LB/LS -- SDI-12 to LoRaWAN Converter User Manual
Last modified by Mengting Qiu on 2025/07/03 15:42
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Attachments (0 modified, 61 added, 0 removed)
- 1675212538524-889.png
- 1675212633011-651.png
- 1675213198663-754.png
- 1675213652444-622.png
- 1675213661769-223.png
- 1675213675852-577.png
- 1675213686734-883.png
- 1675213704414-644.png
- 1675214845056-885.png
- 1675214856590-846.png
- 1675215745275-920.png
- 1675215782925-448.png
- 1675215828102-844.png
- 1675215848113-696.png
- 1675215946738-635.png
- 1675216282284-923.png
- 1675216779406-595.png
- 1675234124233-857.png
- 1675234155374-163.png
- image-20230201084414-1.png
- image-20230201090139-2.png
- image-20230201090139-3.png
- image-20230201090139-4.png
- image-20230201090528-5.png
- image-20230201091027-6.png
- image-20230201091027-7.png
- image-20230201091257-8.png
- image-20230201091257-9.png
- image-20230201091630-10.png
- image-20230201091630-11.png
- image-20230201091954-12.png
- image-20230201091954-13.png
- image-20230201092208-14.png
- image-20230201092208-15.png
- image-20230201092355-16.png
- image-20230201092355-17.png
- image-20230201094129-18.png
- image-20230201145019-19.png
- image-20230201152430-20.jpeg
- image-20230222143809-1.png
- image-20230426084456-1.png
- image-20230603120127-1.png
- image-20230603120209-2.png
- image-20230603120515-3.png
- image-20230603120648-4.png
- image-20230603120726-5.png
- image-20230603120859-6.png
- image-20230603121606-7.png
- image-20230603121643-8.png
- image-20230603121721-9.png
- image-20230603121752-10.png
- image-20230603121826-11.png
- image-20230603122040-12.png
- image-20230603122109-13.png
- image-20230603122139-14.png
- image-20230603122212-15.png
- image-20230603122248-16.png
- image-20230603122508-17.png
- image-20230603122549-18.png
- image-20230603122623-19.png
- image-20230603122719-20.png
Details
- Page properties
-
- Content
-
... ... @@ -1,0 +1,1351 @@ 1 +(% style="text-align:center" %) 2 +[[image:image-20230131183542-1.jpeg||_mstalt="470678" height="694" width="694"]] 3 + 4 +**Table of Contents:** 5 + 6 +{{toc/}} 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 += 1. Introduction = 21 + 22 +== 1.1 What is SDI-12 to LoRaWAN Converter == 23 + 24 + 25 +((( 26 +The Dragino (% style="color:blue" %)**SDI-12-LB**(%%) is a (% style="color:blue" %)**SDI-12 to LoRaWAN Converter **(%%)designed for Smart Agriculture solution. 27 +))) 28 + 29 +((( 30 +SDI-12 (Serial Digital Interface at 1200 baud) is an asynchronous [[serial communications>>url:https://en.wikipedia.org/wiki/Serial_communication]] protocol for intelligent sensors that monitor environment data. SDI-12 protocol is widely used in Agriculture sensor and Weather Station sensors. 31 +))) 32 + 33 +((( 34 +SDI-12-LB has SDI-12 interface and support 12v output to power external SDI-12 sensor. It can get the environment data from SDI-12 sensor and sends out the data via LoRaWAN wireless protocol. 35 +))) 36 + 37 +((( 38 +The LoRa wireless technology used in SDI-12-LB allows device to send data and reach extremely long ranges at low data-rates. It provides ultra-long range spread spectrum communication and high interference immunity whilst minimizing current consumption. 39 +))) 40 + 41 +((( 42 +SDI-12-LB is powered by (% style="color:blue" %)**8500mAh Li-SOCI2 battery**(%%), it is designed for long term use up to 5 years. 43 +))) 44 + 45 +((( 46 +Each SDI-12-LB is pre-load with a set of unique keys for LoRaWAN registrations, register these keys to local LoRaWAN server and it will auto connect after power on. 47 +))) 48 + 49 + 50 +[[image:image-20230201084414-1.png||_mstalt="427765" height="464" width="1108"]] 51 + 52 + 53 +== 1.2 Features == 54 + 55 + 56 +* LoRaWAN 1.0.3 Class A 57 +* Ultra-low power consumption 58 +* Controllable 3.3v, 5v and 12v output to power external sensor 59 +* SDI-12 Protocol to connect to SDI-12 Sensor 60 +* Monitor Battery Level 61 +* Bands: CN470/EU433/KR920/US915/EU868/AS923/AU915/IN865 62 +* Support Bluetooth v5.1 and LoRaWAN remote configure. 63 +* Support wireless OTA update firmware 64 +* Uplink on periodically 65 +* Downlink to change configure 66 +* 8500mAh Battery for long term use 67 + 68 + 69 + 70 +== 1.3 Specification == 71 + 72 + 73 +(% style="color:#037691" %)**Micro Controller:** 74 + 75 +* MCU: 48Mhz ARM 76 +* Flash: 256KB 77 +* RAM: 64KB 78 + 79 +(% style="color:#037691" %)**Common DC Characteristics:** 80 + 81 +* Supply Voltage: 2.5v ~~ 3.6v 82 +* Support current: 5V 300mA 83 + 12V 100mA 84 +* Operating Temperature: -40 ~~ 85°C 85 + 86 +(% style="color:#037691" %)**LoRa Spec:** 87 + 88 +* Frequency Range, Band 1 (HF): 862 ~~ 1020 Mhz 89 +* Max +22 dBm constant RF output vs. 90 +* RX sensitivity: down to -139 dBm. 91 +* Excellent blocking immunity 92 + 93 +(% style="color:#037691" %)**Current Input Measuring :** 94 + 95 +* Range: 0 ~~ 20mA 96 +* Accuracy: 0.02mA 97 +* Resolution: 0.001mA 98 + 99 +(% style="color:#037691" %)**Voltage Input Measuring:** 100 + 101 +* Range: 0 ~~ 30v 102 +* Accuracy: 0.02v 103 +* Resolution: 0.001v 104 + 105 +(% style="color:#037691" %)**Battery:** 106 + 107 +* Li/SOCI2 un-chargeable battery 108 +* Capacity: 8500mAh 109 +* Self-Discharge: <1% / Year @ 25°C 110 +* Max continuously current: 130mA 111 +* Max boost current: 2A, 1 second 112 + 113 +(% style="color:#037691" %)**Power Consumption** 114 + 115 +* Sleep Mode: 5uA @ 3.3v 116 +* LoRa Transmit Mode: 125mA @ 20dBm, 82mA @ 14dBm 117 + 118 + 119 + 120 +== 1.4 Connect to SDI-12 Sensor == 121 + 122 + 123 +[[image:1675212538524-889.png||_mstalt="298272"]] 124 + 125 + 126 +== 1.5 Sleep mode and working mode == 127 + 128 + 129 +(% style="color:blue" %)**Deep Sleep Mode: **(%%)Sensor doesn't have any LoRaWAN activate. This mode is used for storage and shipping to save battery life. 130 + 131 +(% style="color:blue" %)**Working Mode: **(%%)In this mode, Sensor will work as LoRaWAN Sensor to Join LoRaWAN network and send out sensor data to server. Between each sampling/tx/rx periodically, sensor will be in IDLE mode), in IDLE mode, sensor has the same power consumption as Deep Sleep mode. 132 + 133 + 134 +== 1.6 Button & LEDs == 135 + 136 + 137 +[[image:1675212633011-651.png||_mstalt="291538"]] 138 + 139 + 140 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) 141 +|=(% style="width: 167px;background-color:#D9E2F3;color:#0070C0" %)**Behavior on ACT**|=(% style="width: 117px;background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="width: 225px;background-color:#D9E2F3;color:#0070C0" %)**Action** 142 +|(% style="background-color:#f2f2f2; width:167px" %)Pressing ACT between 1s < time < 3s|(% style="background-color:#f2f2f2; width:117px" %)Send an uplink|(% style="background-color:#f2f2f2; width:225px" %)((( 143 +If sensor is already Joined to LoRaWAN network, sensor will send an uplink packet, (% style="color:blue" %)**blue led** (%%)will blink once. 144 +Meanwhile, BLE module will be active and user can connect via BLE to configure device. 145 +))) 146 +|(% style="background-color:#f2f2f2; width:167px" %)Pressing ACT for more than 3s|(% style="background-color:#f2f2f2; width:117px" %)Active Device|(% style="background-color:#f2f2f2; width:225px" %)((( 147 +(% style="background-color:#f2f2f2; color:green" %)**Green led**(%%) will fast blink 5 times, device will enter (% style="color:#037691" %)**OTA mode**(%%) for 3 seconds. And then start to JOIN LoRaWAN network. 148 +(% style="background-color:#f2f2f2; color:green" %)**Green led**(%%) will solidly turn on for 5 seconds after joined in network. 149 +Once sensor is active, BLE module will be active and user can connect via BLE to configure device, no matter if device join or not join LoRaWAN network. 150 +))) 151 +|(% style="background-color:#f2f2f2; width:167px" %)Fast press ACT 5 times.|(% style="background-color:#f2f2f2; width:117px" %)Deactivate Device|(% style="background-color:#f2f2f2; width:225px" %)(% style="color:red" %)**Red led**(%%) will solid on for 5 seconds. Means PS-LB-NA is in Deep Sleep Mode. 152 + 153 + 154 + 155 +== 1.7 Pin Mapping == 156 + 157 + 158 +[[image:1675213198663-754.png||_mstalt="297167"]] 159 + 160 + 161 +== 1.8 BLE connection == 162 + 163 + 164 +SDI-12-LB support BLE remote configure. 165 + 166 +BLE can be used to configure the parameter of sensor or see the console output from sensor. BLE will be only activate on below case: 167 + 168 +* Press button to send an uplink 169 +* Press button to active device. 170 +* Device Power on or reset. 171 + 172 +If there is no activity connection on BLE in 60 seconds, sensor will shut down BLE module to enter low power mode. 173 + 174 + 175 +== 1.9 Mechanical == 176 + 177 + 178 +[[image:image-20230201090139-2.png||_mstalt="428623"]] 179 + 180 +[[image:image-20230201090139-3.png||_mstalt="428987"]] 181 + 182 +[[image:image-20230201090139-4.png||_mstalt="429351"]] 183 + 184 + 185 += 2. Configure SDI-12 to connect to LoRaWAN network = 186 + 187 +== 2.1 How it works == 188 + 189 + 190 +The SDI-12-LB is configured as (% style="color:#037691" %)**LoRaWAN OTAA Class A**(%%) mode by default. It has OTAA keys to join LoRaWAN network. To connect a local LoRaWAN network, you need to input the OTAA keys in the LoRaWAN IoT server and activate the SDI-12-LB. It will automatically join the network via OTAA and start to send the sensor value. The default uplink interval is 20 minutes. 191 + 192 + 193 +== 2.2 Quick guide to connect to LoRaWAN server (OTAA) == 194 + 195 + 196 +Following is an example for how to join the [[TTN v3 LoRaWAN Network>>url:https://console.cloud.thethings.network/]]. Below is the network structure; we use the [[LPS8v2>>url:https://www.dragino.com/products/lora-lorawan-gateway/item/228-lps8v2.html]] as a LoRaWAN gateway in this example. 197 + 198 + 199 +[[image:image-20230201090528-5.png||_mstalt="430300" height="465" width="1111"]] 200 + 201 + 202 +The LPS8V2 is already set to connected to [[TTN network >>url:https://console.cloud.thethings.network/]], so what we need to now is configure the TTN server. 203 + 204 + 205 +(% style="color:blue" %)**Step 1**(%%): Create a device in TTN with the OTAA keys from SDI-12-LB. 206 + 207 +Each SDI-12-LB is shipped with a sticker with the default device EUI as below: 208 + 209 +[[image:image-20230426084456-1.png||height="241" width="519"]] 210 + 211 + 212 +You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot: 213 + 214 + 215 +(% style="color:blue" %)**Register the device** 216 + 217 +[[image:1675213652444-622.png||_mstalt="293657"]] 218 + 219 + 220 +(% style="color:blue" %)**Add APP EUI and DEV EUI** 221 + 222 + 223 +[[image:1675213661769-223.png||_mstalt="295217"]] 224 + 225 + 226 +(% style="color:blue" %)**Add APP EUI in the application** 227 + 228 + 229 +[[image:1675213675852-577.png||_mstalt="297947"]] 230 + 231 + 232 +(% style="color:blue" %)**Add APP KEY** 233 + 234 +[[image:1675213686734-883.png||_mstalt="298064"]] 235 + 236 + 237 +(% style="color:blue" %)**Step 2**(%%): Activate on SDI-12-LB 238 + 239 + 240 +Press the button for 5 seconds to activate the SDI-12-LB. 241 + 242 +(% style="color:green" %)**Green led**(%%) will fast blink 5 times, device will enter (% style="color:blue" %)**OTA mode** (%%)for 3 seconds. And then start to JOIN LoRaWAN network. (% style="color:green" %)**Green led**(%%) will solidly turn on for 5 seconds after joined in network. 243 + 244 + 245 +[[image:1675213704414-644.png||_mstalt="293748"]] 246 + 247 + 248 +== 2.3 SDI-12 Related Commands == 249 + 250 + 251 +User need to configure SDI-12-LB to communicate with SDI-12 sensors otherwise the uplink payload will only include a few bytes. 252 + 253 + 254 +=== 2.3.1 Basic SDI-12 debug command === 255 + 256 + 257 +User can run some basic SDI-12 command to debug the connection to the SDI-12 sensor. These commands can be sent via AT Command or LoRaWAN downlink command. 258 + 259 +If SDI-12 sensor return value after get these commands, //SDI-12-LB// will uplink the return on FPORT=100, otherwise, if there is no response from SDI-12 sensor. //SDI-12-LB// will uplink NULL (0x 4E 55 4C 4C) to server. 260 + 261 +The following is the display information on the serial port and the server. 262 + 263 + 264 +[[image:image-20230201091027-6.png||_mstalt="429065"]] 265 + 266 + 267 +[[image:image-20230201091027-7.png||_mstalt="429429" height="261" width="1179"]] 268 + 269 + 270 + 271 +==== (% style="color:blue" %)**al! ~-~- Get SDI-12 sensor Identification**(%%) ==== 272 + 273 + 274 +* AT Command: AT+ADDRI=aa 275 +* LoRaWAN Downlink(prefix 0xAA00): AA 00 aa 276 + 277 +(% style="color:#037691" %)**Parameter: **(%%)aa: ASCII value of SDI-12 sensor address in downlink or HEX value in AT Command) 278 + 279 +(% style="color:blue" %)**Example : **(%%)AT+ADDRI=0 ( Equal to downlink: 0x AA 00 30) 280 + 281 + 282 +The following is the display information on the serial port and the server. 283 + 284 + 285 +[[image:image-20230201091257-8.png||_mstalt="431392"]] 286 + 287 + 288 +[[image:image-20230201091257-9.png||_mstalt="431756" height="225" width="1242"]] 289 + 290 + 291 +==== (% style="color:blue" %)**aM!,aMC!, aM1!- aM9!, aMC1!- aMC9!**(%%) ==== 292 + 293 + 294 +(% style="color:red" %)**aM! **(%%): Start Non-Concurrent Measurement 295 + 296 +(% style="color:red" %)**aMC! **(%%): Start Non-Concurrent Measurement – Request CRC 297 + 298 +(% style="color:red" %)**aM1!- aM9! **(%%): Additional Measurements 299 + 300 +(% style="color:red" %)**aMC1!- aMC9!**(%%) : Additional Measurements – Request CRC 301 + 302 + 303 +* AT Command : AT+ADDRM=0,1,0,1 304 + 305 +* LoRaWAN Downlink(prefix 0xAA01): 0xAA 01 30 01 00 01 306 + 307 +Downlink:AA 01 aa bb cc dd 308 + 309 +(% style="color:#037691" %)**aa**(%%): SDI-12 sensor address. 310 + 311 +(% style="color:#037691" %)**bb**(%%): 0: no CRC, 1: request CRC 312 + 313 +(% style="color:#037691" %)**cc**(%%): 1-9: Additional Measurement, 0: no additional measurement 314 + 315 +(% style="color:#037691" %)**dd**(%%): delay (in second) to send (% style="color:#037691" %)__**aD0!**__(%%) to get return. 316 + 317 + 318 +The following is the display information on the serial port and the server. 319 + 320 + 321 +[[image:image-20230201091630-10.png||_mstalt="449995"]] 322 + 323 + 324 +[[image:image-20230201091630-11.png||_mstalt="450372" height="247" width="1165"]] 325 + 326 + 327 + 328 +==== (% style="color:blue" %)**aC!, aCC!, aC1!- aC9!, aCC1!- aCC9! **(%%) ==== 329 + 330 + 331 +(% style="color:red" %)**aC!**(%%) : Start Concurrent Measurement 332 + 333 +(% style="color:red" %)**aCC!** (%%): Start Concurrent Measurement – Request CRC 334 + 335 +(% style="color:red" %)**aC1!- aC9!**(%%) : Start Additional Concurrent Measurements 336 + 337 +(% style="color:red" %)**aCC1!- aCC9!**(%%) : Start Additional Concurrent Measurements – Request CRC 338 + 339 + 340 +* AT Command : AT+ADDRC=0,1,0,1 341 + 342 +* LoRaWAN Downlink(0xAA02): 0xAA 02 30 01 00 01 343 + 344 +Downlink: AA 02 aa bb cc dd 345 + 346 +(% style="color:#037691" %)**aa**(%%): SDI-12 sensor address. 347 + 348 +(% style="color:#037691" %)**bb**(%%): 0: no CRC, 1: request CRC 349 + 350 +(% style="color:#037691" %)**cc**(%%): 1-9: Additional Measurement, 0: no additional measurement 351 + 352 +(% style="color:#037691" %)**dd**(%%): delay (in second) to send (% style="color:#037691" %)__**aD0!**__(%%)__ __to get return. 353 + 354 + 355 +The following is the display information on the serial port and the server. 356 + 357 + 358 +[[image:image-20230201091954-12.png||_mstalt="453687"]] 359 + 360 + 361 +[[image:image-20230201091954-13.png||_mstalt="454064" height="203" width="1117"]] 362 + 363 + 364 + 365 + 366 +==== (% style="color:blue" %)**aR0!- aR9!, aRC0!- aRC9!**(%%) ==== 367 + 368 + 369 +Start Continuous Measurement 370 + 371 +Start Continuous Measurement – Request CRC 372 + 373 + 374 +* AT Command : AT+ADDRR=0,1,0,1 375 +* LoRaWAN Downlink (0xAA 03): 0xAA 03 30 01 00 01 376 + 377 +Downlink: AA 03 aa bb cc dd 378 + 379 +(% style="color:#037691" %)**aa**(%%): SDI-12 sensor address. 380 + 381 +(% style="color:#037691" %)**bb**(%%): 0: no CRC, 1: request CRC 382 + 383 +(% style="color:#037691" %)**cc**(%%): 1-9: Additional Measurement, 0: no additional measurement 384 + 385 +(% style="color:#037691" %)**dd**(%%): delay (in second) to send (% style="color:#037691" %)__**aD0!**__(%%) to get return. 386 + 387 + 388 +The following is the display information on the serial port and the server. 389 + 390 + 391 +[[image:image-20230201092208-14.png||_mstalt="452283"]] 392 + 393 + 394 +[[image:image-20230201092208-15.png||_mstalt="452660" height="214" width="1140"]] 395 + 396 + 397 +=== 2.3.2 Advance SDI-12 Debug command === 398 + 399 + 400 +This command can be used to debug all SDI-12 command. 401 + 402 + 403 +LoRaWAN Downlink: A8 aa xx xx xx xx bb cc dd 404 + 405 +(% style="color:#037691" %)**aa **(%%): total SDI-12 command length 406 + 407 +(% style="color:#037691" %)**xx **(%%): SDI-12 command 408 + 409 +(% style="color:#037691" %)**bb **(%%): Delay to wait for return 410 + 411 +(% style="color:#037691" %)**cc **(%%): 0: don't uplink return to LoRaWAN, 1: Uplink return to LoRaWAN on FPORT=100 412 + 413 +(% style="color:#037691" %)**dd: **(%%) 0: Do not use aD0! command access, 1: use aD0! command access. 414 + 415 + 416 +(% style="color:blue" %)**Example1: **(%%) AT+CFGDEV =0RC0!,1 417 + 418 +(% style="color:#037691" %)**0RC0! **(%%): SDI-12 Command, 419 + 420 +(% style="color:#037691" %)**1 **(%%): Delay 1 second. ( 0: 810 mini-second) 421 + 422 +Equal Downlink: 0xA8 05 30 52 43 30 21 01 01 423 + 424 + 425 +The following is the display information on the serial port and the server. 426 + 427 + 428 +[[image:image-20230201092355-16.png||_mstalt="453960"]] 429 + 430 + 431 +[[image:image-20230201092355-17.png||_mstalt="454337" height="426" width="1135"]] 432 + 433 + 434 +(% style="color:blue" %)**Example2: **(%%) AT+CFGDEV =0M!,1,1 or AT+CFGDEV =0C!,1,1 435 + 436 +(% style="color:#037691" %)**0M! **(%%): SDI-12 Command, 437 + 438 +(% style="color:#037691" %)**1 **(%%): Delay 1 second. ( 0: 810 mini-second) 439 + 440 +(% style="color:#037691" %)**1 **(%%):Use aD0! command access. 441 + 442 +Equal Downlink: 0xA8 03 30 4D 21 01 01 01 443 + 444 + 445 +=== 2.3.3 Convert ASCII to String === 446 + 447 + 448 +This command is used to convert between ASCII and String format. 449 + 450 +AT+CONVFORM ( Max length: 80 bytes) 451 + 452 + 453 +(% style="color:blue" %)**Example:** 454 + 455 +1) AT+CONVFORM=0, string Convert String from String to ASCII 456 + 457 +[[image:1675214845056-885.png||_mstalt="297622"]] 458 + 459 + 460 +2) AT+CONVFORM=1, ASCII Convert ASCII to String. 461 + 462 +[[image:1675214856590-846.png||_mstalt="297739"]] 463 + 464 + 465 +=== 2.3.4 Define periodically SDI-12 commands and uplink. === 466 + 467 + 468 +AT+COMMANDx & AT+DATACUTx 469 + 470 +User can define max 15 SDI-12 Commands (AT+COMMAND1 ~~ AT+COMMANDF). On each uplink period (TDC time, default 20 minutes), SDI-12-LB will send these SDI-12 commands and wait for return from SDI-12 sensors. SDI-12-LB will then combine these returns and uplink via LoRaWAN. 471 + 472 + 473 +* (% style="color:blue" %)**AT Command:** 474 + 475 +(% style="color:#037691" %)**AT+COMMANDx=var1,var2,var3,var4.** 476 + 477 +(% style="color:red" %)**var1**(%%): SDI-12 command , for example: 0RC0! 478 + 479 +(% style="color:red" %)**var2**(%%): Wait timeout for return. (unit: second) 480 + 481 +(% style="color:red" %)**var3**(%%): Whether to send //addrD0!// to get return after var2 timeout. 0: Don't Send //addrD0! //; 1: Send //addrD0!//. 482 + 483 +(% style="color:red" %)**var4**(%%): validation check for return. If return invalid, SDI-12-LB will resend this command. Max 3 retries. 484 + 485 +(% style="color:red" %)**0 **(%%) No validation check; 486 + 487 +(% style="color:red" %)**1** (%%) Check if return chars are printable char(0x20 ~~ 0x7E); 488 + 489 +(% style="color:red" %)**2**(%%) Check if there is return from SDI-12 sensor 490 + 491 +(% style="color:red" %)**3** (%%) Check if return pass CRC check ( SDI-12 command var1 must include CRC request); 492 + 493 + 494 +Each AT+COMMANDx is followed by a (% style="color:blue" %)**AT+DATACUT**(%%) command. AT+DATACUT command is used to take the useful string from the SDI-12 sensor so the final payload will have the minimum length to uplink. 495 + 496 + 497 +(% style="color:blue" %)**AT+DATACUTx**(%%) : This command defines how to handle the return from AT+COMMANDx, max return length is 100 bytes. 498 + 499 +(% border="1" style="width:436px" %) 500 +|(% style="background-color:#f2f2f2; width:433px" %)((( 501 +(% style="color:#0070c0" %)**AT+DATACUTx=a,b,c** 502 + 503 +**a**: length for the return of AT+COMMAND 504 + 505 +**b**: 1: grab valid value by byte, max 6 bytes. 2: grab valid value by bytes section, max 3 sections. 506 + 507 +**c**: define the position for valid value. 508 +))) 509 + 510 +For example, if return from AT+COMMAND1 is “013METER TER12 112T12-00024895<CR><LF>” , Below AT+DATACUT1 will get different result to combine payload: 511 + 512 + 513 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) 514 +|=(% style="width: 164px;background-color:#D9E2F3;color:#0070C0" %)**AT+DATACUT1 value**|=(% style="width: 344px;background-color:#D9E2F3;color:#0070C0" %)**Final Result to combine Payload** 515 +|(% style="background-color:#f2f2f2; width:164px" %)34,1,1+2+3|(% style="background-color:#f2f2f2; width:344px" %)0D 00 01 30 31 33 516 +|(% style="background-color:#f2f2f2; width:164px" %)34,2,1~~8+12~~16|(% style="background-color:#f2f2f2; width:344px" %)0D 00 01 30 31 33 4D 45 54 45 52 54 45 52 31 32 517 +|(% style="background-color:#f2f2f2; width:164px" %)34,2,1~~34|(% style="background-color:#f2f2f2; width:344px" %)0D 00 01 30 31 33 4D 45 54 45 52 20 20 20 54 45 52 31 32 20 31 31 32 54 31 32 2D 30 30 30 32 34 38 39 35 0D 0A 518 + 519 +* (% style="color:blue" %)** Downlink Payload:** 520 + 521 +(% style="color:blue" %)**0xAF**(%%) downlink command can be used to set AT+COMMANDx or AT+DATACUTx. 522 + 523 + 524 +(% style="color:red" %)**Note : if user use AT+COMMANDx to add a new command, he also need to send AT+DATACUTx downlink.** 525 + 526 + 527 +Format: ** (% style="color:#037691" %)AF MM NN LL XX XX XX XX YY(%%)** 528 + 529 +Where: 530 + 531 +* (% style="color:#037691" %)**MM **(%%): the AT+COMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F, 532 +* (% style="color:#037691" %)**NN **(%%): 1: set the AT+COMMAND value ; 2: set the AT+DATACUT value. 533 +* (% style="color:#037691" %)**LL **(%%): The length of AT+COMMAND or AT+DATACUT command 534 +* (% style="color:#037691" %)**XX XX XX XX **(%%): AT+COMMAND or AT+DATACUT command 535 +* (% style="color:#037691" %)**YY **(%%): If YY=0, SDI-12-LB will execute the downlink command without uplink; if YY=1, SDI-12-LB will execute an uplink after got this command. 536 + 537 +(% style="color:blue" %)**Example:** 538 + 539 +[[image:image-20230201094129-18.png||_mstalt="455065"]] 540 + 541 + 542 + 543 +(% style="color:blue" %)**Clear SDI12 Command** 544 + 545 +The AT+COMMANDx and AT+DATACUTx settings are stored in special location, user can use below command to clear them. 546 + 547 + 548 +* (% style="color:#037691" %)**AT Command:** 549 + 550 +(% style="color:#4f81bd" %)**AT+CMDEAR=mm,nn** (%%) mm: start position of erase ,nn: stop position of erase 551 + 552 + 553 +Etc. AT+CMDEAR=1,10 means erase AT+COMMAND1/AT+DATACUT1 to AT+COMMAND10/AT+DATACUT10 554 + 555 + 556 +* (% style="color:#037691" %)** Downlink Payload:** 557 + 558 +(% style="color:#4f81bd" %)**0x09 aa bb**(%%) same as AT+CMDEAR=aa,bb 559 + 560 + 561 + 562 +(% style="color:blue" %)**command combination** 563 + 564 +Below shows a screen shot how the results combines together to a uplink payload. 565 + 566 +[[image:1675215745275-920.png||_mstalt="295334"]] 567 + 568 + 569 +If user don't want to use DATACUT for some command, he simply want to uplink all returns. AT+ALLDATAMOD can be set to 1. 570 + 571 +(% style="color:blue" %)**AT+ALLDATAMOD**(%%) will simply get all return and don't do CRC check as result for SDI-12 command. AT+DATACUTx command has higher priority, if AT+DATACUTx has been set, AT+ALLDATAMOD will be ignore for this SDI-12 command. 572 + 573 + 574 +(% style="color:#4f81bd" %)**For example: **(%%) as below photo, AT+ALLDATAMOD=1, but AT+DATACUT1 has been set, AT+DATACUT1 will be still effect the result. 575 + 576 + 577 +[[image:1675215782925-448.png||_mstalt="297466"]] 578 + 579 + 580 +If AT+ALLDATAMOD=1, (% style="color:#4f81bd" %)**FX,X**(%%) will be added in the payload, FX specify which command is used and X specify the length of return. for example in above screen, F1 05 means the return is from AT+COMMAND1 and the return is 5 bytes. 581 + 582 + 583 + 584 +(% style="color:blue" %)**Compose Uplink** 585 + 586 +(% style="color:#4f81bd" %)**AT+DATAUP=0** 587 + 588 +Compose the uplink payload with value returns in sequence and send with **__A SIGNLE UPLINK__**. 589 + 590 +Final Payload is **__Battery Info+PAYVER + VALID Value from RETURN1 + Valid Value from RETURN2 + … + RETURNx__** 591 + 592 +Where PAYVER is defined by AT+PAYVER, below is an example screen shot. 593 + 594 + 595 +[[image:1675215828102-844.png||_mstalt="294645"]] 596 + 597 + 598 +(% style="color:#4f81bd" %)**AT+DATAUP=1** 599 + 600 +Compose the uplink payload with value returns in sequence and send with **__Multiply UPLINKs__**. 601 + 602 +Final Payload is __**Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA**__ 603 + 604 +1. Battery Info (2 bytes): Battery voltage 605 +1. PAYVER (1 byte): Defined by AT+PAYVER 606 +1. PAYLOAD COUNT (1 byte): Total how many uplinks of this sampling. 607 +1. PAYLOAD# (1 byte): Number of this uplink. (from 0,1,2,3…,to PAYLOAD COUNT) 608 +1. DATA: Valid value: max 6 bytes(US915 version here, Notice*!) for each uplink so each uplink <= 11 bytes. For the last uplink, DATA will might less than 6 bytes 609 + 610 +[[image:1675215848113-696.png||_mstalt="296998"]] 611 + 612 + 613 +(% style="color:red" %)**Notice: the Max bytes is according to the max support bytes in different Frequency Bands for lowest SF. As below:** 614 + 615 +* For AU915/AS923 bands, if UplinkDwell time=0, max 51 bytes for each uplink ( so 51 -5 = 46 max valid date) 616 +* For AU915/AS923 bands, if UplinkDwell time=1, max 11 bytes for each uplink ( so 11 -5 = 6 max valid date). 617 +* For US915 band, max 11 bytes for each uplink ( so 11 -5 = 6 max valid date). 618 +* For all other bands: max 51 bytes for each uplink ( so 51 -5 = 46 max valid date). 619 + 620 +(% style="color:red" %)**When AT+DATAUP=1, the maximum number of segments is 15, and the maximum total number of bytes is 1500;** 621 + 622 +(% style="color:red" %)**When AT+DATAUP=1 and AT+ADR=0, the maximum number of bytes of each payload is determined by the DR value.** 623 + 624 + 625 +== 2.4 Uplink Payload == 626 + 627 +=== 2.4.1 Device Payload, FPORT~=5 === 628 + 629 + 630 +Include device configure status. Once SDI-12-LB Joined the network, it will uplink this message to the server. 631 + 632 +Users can also use the downlink command(0x26 01) to ask SDI-12-LB to resend this uplink. 633 + 634 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) 635 +|(% colspan="6" style="background-color:#d9e2f3; color:#0070c0" %)**Device Status (FPORT=5)** 636 +|(% style="background-color:#f2f2f2; width:103px" %)**Size (bytes)**|(% style="background-color:#f2f2f2; width:72px" %)**1**|(% style="background-color:#f2f2f2" %)**2**|(% style="background-color:#f2f2f2; width:91px" %)**1**|(% style="background-color:#f2f2f2; width:86px" %)**1**|(% style="background-color:#f2f2f2; width:44px" %)**2** 637 +|(% style="background-color:#f2f2f2; width:103px" %)**Value**|(% style="background-color:#f2f2f2; width:72px" %)Sensor Model|(% style="background-color:#f2f2f2" %)Firmware Version|(% style="background-color:#f2f2f2; width:91px" %)Frequency Band|(% style="background-color:#f2f2f2; width:86px" %)Sub-band|(% style="background-color:#f2f2f2; width:44px" %)BAT 638 + 639 +Example parse in TTNv3 640 + 641 +[[image:1675215946738-635.png||_mstalt="297778"]] 642 + 643 + 644 +(% style="color:#037691" %)**Sensor Model**(%%): For SDI-12-LB, this value is 0x17 645 + 646 +(% style="color:#037691" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version 647 + 648 +(% style="color:#037691" %)**Frequency Band**: 649 + 650 +0x01: EU868 651 + 652 +0x02: US915 653 + 654 +0x03: IN865 655 + 656 +0x04: AU915 657 + 658 +0x05: KZ865 659 + 660 +0x06: RU864 661 + 662 +0x07: AS923 663 + 664 +0x08: AS923-1 665 + 666 +0x09: AS923-2 667 + 668 +0x0a: AS923-3 669 + 670 +0x0b: CN470 671 + 672 +0x0c: EU433 673 + 674 +0x0d: KR920 675 + 676 +0x0e: MA869 677 + 678 + 679 +(% style="color:#037691" %)**Sub-Band**: 680 + 681 +AU915 and US915:value 0x00 ~~ 0x08 682 + 683 +CN470: value 0x0B ~~ 0x0C 684 + 685 +Other Bands: Always 0x00 686 + 687 + 688 +(% style="color:#037691" %)**Battery Info**: 689 + 690 +Check the battery voltage. 691 + 692 +Ex1: 0x0B45 = 2885mV 693 + 694 +Ex2: 0x0B49 = 2889mV 695 + 696 + 697 +=== 2.4.2 Uplink Payload, FPORT~=2 === 698 + 699 + 700 +There are different cases for uplink. See below 701 + 702 +* SDI-12 Debug Command return: FPORT=100 703 + 704 +* Periodically Uplink: FPORT=2 705 + 706 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:500px" %) 707 +|=(% style="width: 90px;background-color:#D9E2F3;color:#0070C0" %)((( 708 +**Size(bytes)** 709 +)))|=(% style="width: 80px;background-color:#D9E2F3;color:#0070C0" %)**2**|=(% style="width: 90px;background-color:#D9E2F3;color:#0070C0" %)**1**|=(% style="width: 240px;background-color:#D9E2F3;color:#0070C0" %)**Length depends on the return from the commands** 710 +|(% style="width:93px" %)**Value**|(% style="width:83px" %)((( 711 +Battery(mV) 712 +& 713 +Interrupt_Flag 714 +)))|(% style="width:91px" %)[[PAYLOAD_VER>>||anchor="H3.6Setthepayloadversion"]]|(% style="width:212px" %)((( 715 +If the valid payload is too long and exceed the maximum support. 716 +Payload length in server,server will show payload not provided in the LoRaWAN server. 717 +))) 718 + 719 +[[image:1675216282284-923.png||_mstalt="295633"]] 720 + 721 + 722 +=== 2.4.3 Battery Info === 723 + 724 + 725 +Check the battery voltage for SDI-12-LB. 726 + 727 +Ex1: 0x0B45 = 2885mV 728 + 729 +Ex2: 0x0B49 = 2889mV 730 + 731 + 732 +=== 2.4.4 Interrupt Pin === 733 + 734 + 735 +This data field shows if this packet is generated by (% style="color:#037691" %)**Interrupt Pin**(%%) or not. [[Click here>>||anchor="H3.2SetInterruptMode"]] for the hardware and software set up. Note: The Internet Pin is a separate pin in the screw terminal. See [[pin mapping>>||anchor="H1.7PinMapping"]]. 736 + 737 +**Example:** 738 + 739 +Ex1: 0x0B45:0x0B&0x80= 0x00 Normal uplink packet. 740 + 741 +Ex2: 0x8B49:0x8B&0x80= 0x80 Interrupt Uplink Packet. 742 + 743 + 744 +=== 2.4.5 Payload version === 745 + 746 + 747 +The version number of the payload, mainly used for decoding. The default is 01. 748 + 749 + 750 +=== 2.4.6 Decode payload in The Things Network === 751 + 752 + 753 +While using TTN network, you can add the payload format to decode the payload. 754 + 755 +[[image:1675216779406-595.png||_mstalt="298376"]] 756 + 757 + 758 +There is no fix payload decoder in LoRaWAN server because the SDI-12 sensors returns are different. User need to write the decoder themselves for their case. 759 + 760 +SDI-12-LB TTN Payload Decoder: [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>url:https://github.com/dragino/dragino-end-node-decoder]] 761 + 762 + 763 +== 2.5 Uplink Interval == 764 + 765 + 766 +The SDI-12-LB by default uplink the sensor data every 20 minutes. User can change this interval by AT Command or LoRaWAN Downlink Command. See this link: 767 + 768 +[[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/#H4.1ChangeUplinkInterval>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/#H4.1ChangeUplinkInterval]] 769 + 770 + 771 +== 2.6 Examples To Set SDI commands == 772 + 773 +=== 2.6.1 Examples 1 ~-~- General Example === 774 + 775 + 776 +COM port and SDI-12 sensor communication converted to SDI-12-LB and SDI-12 sensor communication. 777 + 778 +[[image:image-20230222143809-1.png||_mstalt="429962" height="564" width="729"]] 779 + 780 + 781 +(% style="color:blue" %)**1) The AT+COMMANDx command is applied to the red arrow part, and sends the SDI12 command to the SDI12 sensor:** 782 + 783 +a. Send the first command and get the first reply: 784 + 785 +(% style="color:#037691" %)**AT+COMMANDx=1I!,0,0,1** 786 + 787 +b. Send the second command and get the second reply: 788 + 789 +(% style="color:#037691" %)**AT+COMMANDx=2I!,0,0,1** 790 + 791 +c. Send the third command and get the third reply: 792 + 793 +(% style="color:#037691" %)**AT+COMMANDx=3I!,0,0,1** 794 + 795 +d. Send the fourth command and get the fourth reply: 796 + 797 +(% style="color:#037691" %)**AT+COMMANDx=4I!,0,0,1** 798 + 799 +e. Send the fifth command plus the sixth command, get the sixth reply: 800 + 801 +(% style="color:#037691" %)**AT+COMMANDx=1M!,2,1,1** 802 + 803 +f. Send the seventh command plus the eighth command, get the eighth reply: 804 + 805 +(% style="color:#037691" %)**AT+COMMANDx=2M!,2,1,1** 806 + 807 +g. Send the ninth command plus the tenth command, get the tenth reply: 808 + 809 +(% style="color:#037691" %)**AT+COMMANDx=3M!,1,1,1** 810 + 811 +h. Send the eleventh command plus the twelfth command, get the twelfth reply: 812 + 813 +(% style="color:#037691" %)**AT+COMMANDx=4M!,1,1,1** 814 + 815 + 816 +(% style="color:blue" %)**2) The AT+DATACUTx command is applied to the green arrow part, receiving and cut out data from the SDI12 sensor:** 817 + 818 +a. The first reply, all 34 characters: ”113TRUEBNERSMT100038220303182331<CR><LF>” 819 + 820 +Cut out all characters: (% _mstmutation="1" style="color:#037691" %)**AT+ALLDATAMOD=1 or AT+DATACUTx=34,2,1~~34**(% style="color:#037691" %); 821 + 822 +b. The sixth reply, all 31 characters:”1+19210+1.04+0.00+22.49+11.75<CR><LF>” 823 + 824 +Cut out all characters: (% _mstmutation="1" style="color:#037691" %)**AT+ALLDATAMOD=1 or AT+DATACUTx=31,2,1~~31**(% style="color:#037691" %); 825 + 826 +c. The eighth reply, all 31 characters:”2+18990+1.08+0.00+22.24+11.80<CR><LF>” 827 + 828 +Cut out all characters: (% _mstmutation="1" style="color:#037691" %)**AT+ALLDATAMOD=1 or AT+DATACUTx=31,2,1~~31**(% style="color:#037691" %); 829 + 830 +d. The tenth reply, all 15 characters:”3-2919.8+24.0<CR><LF>” 831 + 832 +Cut out all characters: (% _mstmutation="1" style="color:#037691" %)**AT+ALLDATAMOD=1 or AT+DATACUTx=15,2,1~~15**(% style="color:#037691" %); 833 + 834 +e. The twelfth reply, all 25 characters:”4+30.8+22.84+4.7+954.38<CR><LF>” 835 + 836 +Partial cut, the cut sensor address and the first two parameters:(% style="color:#037691" %)**AT+DATACUTx=25,2,1~~12, cut out the character field ” 4+30.8+22.84”**. 837 + 838 + 839 +=== 2.6.2 Example 2 ~-~- Connect to Hygrovue10 === 840 + 841 +==== 2.6.2.1 Reference Manual and Command ==== 842 + 843 + 844 +* [[Hygrovue10 Product Page>>https://www.campbellsci.com/hygrovue10]] 845 + 846 +* Commands to be used in PC and output. 847 + 848 +~1. check device address 849 + 850 +2. change device address 851 + 852 +3. check device ID 853 + 854 +4. start measure 855 + 856 +5. Get Meausre result 857 + 858 +[[image:image-20230603120209-2.png||height="281" width="267"]] 859 + 860 + 861 +==== 2.6.2.2 Hardware Connection to SDI-12-LB ==== 862 + 863 + 864 +[[image:image-20230603120515-3.png]] 865 + 866 + 867 +==== 2.6.2.3 Commands set in SDI-12-LB and uplink payload ==== 868 + 869 + 870 +[[image:image-20230603120648-4.png]] 871 + 872 +[[image:image-20230603120726-5.png]] 873 + 874 + 875 +**Data in TTN:** 876 + 877 +[[image:image-20230603120859-6.png||height="118" width="1285"]] 878 + 879 + 880 +=== (% id="cke_bm_1172015S" style="display:none" %) (%%)2.6.3 Example 3 ~-~- Connect to SIL-400 === 881 + 882 +==== 2.6.3.1 Reference Manual and Command ==== 883 + 884 + 885 +* [[SIL-400 Product Page>>https://www.apogeeinstruments.com/sil-411-commercial-grade-sdi-12-digital-output-standard-field-of-view-infrared-radiometer-sensor/]] 886 + 887 +* Commands to be used in PC and output. 888 + 889 +~1. check device address 890 + 891 +2. change device address 892 + 893 +3. check device ID 894 + 895 +4. start measure 896 + 897 +5. Get Meausre result 898 + 899 +[[image:image-20230603121606-7.png||height="242" width="307"]] 900 + 901 + 902 +==== 2.6.3.2 Hardware Connection to SDI-12-LB ==== 903 + 904 + 905 +[[image:image-20230603121643-8.png||height="442" width="656"]] 906 + 907 + 908 +==== 2.6.3.3 Commands set in SDI-12-LB and uplink payload ==== 909 + 910 + 911 +[[image:image-20230603121721-9.png]] 912 + 913 +[[image:image-20230603121752-10.png]] 914 + 915 +Data in TTN: 916 + 917 +[[image:image-20230603121826-11.png||height="155" width="1104"]] 918 + 919 + 920 + 921 +=== (% id="cke_bm_1172015S" style="display:none" %) (%%)2.6.4 Example 4 ~-~- Connect to TEROS-12 === 922 + 923 +==== 2.6.4.1 Reference Manual and Command ==== 924 + 925 + 926 +* [[TEROS-12 Product Page>>https://www.metergroup.com/en/meter-environment/products/teros-12-soil-moisture-sensor]] 927 + 928 +* Commands to be used in PC and output. 929 + 930 +1.check device address 931 + 932 +2.change device address 933 + 934 +3.check device ID 935 + 936 +4.start measure 937 + 938 +5.Get Meausre result 939 + 940 +[[image:image-20230603122248-16.png||height="196" width="198"]] 941 + 942 + 943 +==== 2.6.4.2 Hardware Connection to SDI-12-LB ==== 944 + 945 + 946 +[[image:image-20230603122212-15.png||height="502" width="667"]] 947 + 948 + 949 +==== 2.6.4.3 Commands set in SDI-12-LB and uplink payload ==== 950 + 951 + 952 +[[image:image-20230603122040-12.png]] 953 + 954 +[[image:image-20230603122109-13.png||height="469" width="762"]] 955 + 956 + 957 +**Data in TTN:** 958 + 959 +[[image:image-20230603122139-14.png||height="148" width="1128"]] 960 + 961 + 962 +=== (% id="cke_bm_1489640S" style="display:none" %) (% id="cke_bm_1172015S" style="display:none" %) (%%)2.6.5 Example 5 ~-~- Connect to SIL-400/TEROS-12 & Hygrovue10 === 963 + 964 +==== 2.6.5.1 Important Notice! ==== 965 + 966 + 967 +* The product page and reference command see above example 2,3,4 968 + 969 +* All of these SDI-12 sensors use the same address (address 0) by default. So we need to change their address to different address, by using **aAb!** command. See above example. 970 + 971 +* The sensor needs to be powered to a steady statue. So the 12VT time need to be set to the maximum stable time for the sensors. in this example, it is 13 seconds. 972 + 973 +* If these SDI-12 sensors are powered by external power source. It will add 300uA in the total current in SDI-12-LB. 974 + 975 + 976 + 977 +==== 2.6.5.2 Hardware Connection to SDI-12-LB ==== 978 + 979 + 980 +[[image:image-20230603122508-17.png||height="526" width="742"]] 981 + 982 + 983 +==== 2.6.5.3 Commands set in SDI-12-LB and uplink payload ==== 984 + 985 + 986 +[[image:image-20230603122549-18.png]] 987 + 988 +[[image:image-20230603122623-19.png||height="483" width="1121"]] 989 + 990 + 991 +**Data in TTN:** 992 + 993 +[[image:image-20230603122719-20.png||height="151" width="1179"]] 994 + 995 + 996 +== 2.7 Frequency Plans == 997 + 998 + 999 +The SDI-12-LB uses OTAA mode and below frequency plans by default. If user want to use it with different frequency plan, please refer the AT command sets. 1000 + 1001 +[[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/>>url:http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/]] 1002 + 1003 + 1004 +== 2.8 Firmware Change Log == 1005 + 1006 + 1007 +**Firmware download link:** 1008 + 1009 +[[https:~~/~~/www.dropbox.com/sh/qrbgbikb109lkiv/AACBR-v_ZhZAMengcY7Nsa1ja?dl=0>>https://www.dropbox.com/sh/qrbgbikb109lkiv/AACBR-v_ZhZAMengcY7Nsa1ja?dl=0]] 1010 + 1011 + 1012 += 3. Configure SDI-12-LB via AT Command or LoRaWAN Downlink = 1013 + 1014 + 1015 +Use can configure SDI-12-LB via AT Command or LoRaWAN Downlink. 1016 + 1017 +* AT Command Connection: See [[FAQ>>||anchor="H7.FAQ"]]. 1018 +* LoRaWAN Downlink instruction for different platforms: See [[IoT LoRaWAN Server>>http://wiki.dragino.com/xwiki/bin/view/Main/]] section. 1019 + 1020 +There are two kinds of commands to configure SDI-12-LB, they are: 1021 + 1022 +* (% style="color:blue" %)**General Commands**. 1023 + 1024 +These commands are to configure: 1025 + 1026 +* General system settings like: uplink interval. 1027 +* LoRaWAN protocol & radio related command. 1028 + 1029 +They are same for all Dragino Device which support DLWS-005 LoRaWAN Stack. These commands can be found on the wiki: 1030 + 1031 +[[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/]] 1032 + 1033 + 1034 +* (% style="color:blue" %)**Commands special design for SDI-12-LB** 1035 + 1036 +These commands only valid for SDI-12-LB, as below: 1037 + 1038 + 1039 +== 3.1 Set Transmit Interval Time == 1040 + 1041 + 1042 +Feature: Change LoRaWAN End Node Transmit Interval. 1043 + 1044 +(% style="color:blue" %)**AT Command: AT+TDC** 1045 + 1046 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) 1047 +|=(% style="width: 160px; background-color: rgb(217, 226, 243); color: rgb(0, 112, 192);" %)**Command Example**|=(% style="width: 160px; background-color: rgb(217, 226, 243); color: rgb(0, 112, 192);" %)**Function**|=(% style="width: 190px;background-color:#D9E2F3;color:#0070C0" %)**Response** 1048 +|(% style="background-color:#f2f2f2; width:157px" %)AT+TDC=?|(% style="background-color:#f2f2f2; width:166px" %)Show current transmit Interval|(% style="background-color:#f2f2f2" %)((( 1049 +30000 1050 +OK 1051 +the interval is 30000ms = 30s 1052 +))) 1053 +|(% style="background-color:#f2f2f2; width:157px" %)AT+TDC=60000|(% style="background-color:#f2f2f2; width:166px" %)Set Transmit Interval|(% style="background-color:#f2f2f2" %)((( 1054 +OK 1055 +Set transmit interval to 60000ms = 60 seconds 1056 +))) 1057 + 1058 +(% style="color:blue" %)**Downlink Command: 0x01** 1059 + 1060 + 1061 +Format: Command Code (0x01) followed by 3 bytes time value. 1062 + 1063 +If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01. 1064 + 1065 +* Example 1: Downlink Payload: 0100001E ~/~/ Set Transmit Interval (TDC) = 30 seconds 1066 +* Example 2: Downlink Payload: 0100003C ~/~/ Set Transmit Interval (TDC) = 60 seconds 1067 + 1068 + 1069 + 1070 +== 3.2 Set Interrupt Mode == 1071 + 1072 + 1073 +Feature, Set Interrupt mode for GPIO_EXIT. 1074 + 1075 +(% style="color:blue" %)**AT Command: AT+INTMOD** 1076 + 1077 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) 1078 +|=(% style="width: 154px;background-color:#D9E2F3;color:#0070C0" %)**Command Example**|=(% style="width: 196px;background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="width: 157px;background-color:#D9E2F3;color:#0070C0" %)**Response** 1079 +|(% style="background-color:#f2f2f2; width:154px" %)AT+INTMOD=?|(% style="background-color:#f2f2f2; width:196px" %)Show current interrupt mode|(% style="background-color:#f2f2f2; width:157px" %)((( 1080 +0 1081 +OK 1082 +the mode is 0 =Disable Interrupt 1083 +))) 1084 +|(% style="background-color:#f2f2f2; width:154px" %)AT+INTMOD=2|(% style="background-color:#f2f2f2; width:196px" %)((( 1085 +Set Transmit Interval 1086 +0. (Disable Interrupt), 1087 +~1. (Trigger by rising and falling edge) 1088 +2. (Trigger by falling edge) 1089 +3. (Trigger by rising edge) 1090 +)))|(% style="background-color:#f2f2f2; width:157px" %)OK 1091 + 1092 +(% style="color:blue" %)**Downlink Command: 0x06** 1093 + 1094 +Format: Command Code (0x06) followed by 3 bytes. 1095 + 1096 +This means that the interrupt mode of the end node is set to 0x000003=3 (rising edge trigger), and the type code is 06. 1097 + 1098 +* Example 1: Downlink Payload: 06000000 ~/~/ Turn off interrupt mode 1099 +* Example 2: Downlink Payload: 06000003 ~/~/ Set the interrupt mode to rising edge trigger 1100 + 1101 + 1102 + 1103 +== 3.3 Set the output time == 1104 + 1105 + 1106 +Feature, Control the output 3V3 , 5V or 12V. 1107 + 1108 +(% style="color:blue" %)**AT Command: AT+3V3T** 1109 + 1110 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:474px" %) 1111 +|=(% style="width: 154px;background-color:#D9E2F3;color:#0070C0" %)**Command Example**|=(% style="width: 201px;background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="width: 116px;background-color:#D9E2F3;color:#0070C0" %)**Response** 1112 +|(% style="background-color:#f2f2f2; width:154px" %)AT+3V3T=?|(% style="background-color:#f2f2f2; width:201px" %)Show 3V3 open time.|(% style="background-color:#f2f2f2; width:116px" %)((( 1113 +0 1114 +OK 1115 +))) 1116 +|(% style="background-color:#f2f2f2; width:154px" %)AT+3V3T=0|(% style="background-color:#f2f2f2; width:201px" %)Normally open 3V3 power supply.|(% style="background-color:#f2f2f2; width:116px" %)((( 1117 +OK 1118 +default setting 1119 +))) 1120 +|(% style="background-color:#f2f2f2; width:154px" %)AT+3V3T=1000|(% style="background-color:#f2f2f2; width:201px" %)Close after a delay of 1000 milliseconds.|(% style="background-color:#f2f2f2; width:116px" %)((( 1121 +OK 1122 +))) 1123 +|(% style="background-color:#f2f2f2; width:154px" %)AT+3V3T=65535|(% style="background-color:#f2f2f2; width:201px" %)Normally closed 3V3 power supply.|(% style="background-color:#f2f2f2; width:116px" %)((( 1124 +OK 1125 +))) 1126 + 1127 +(% style="color:blue" %)**AT Command: AT+5VT** 1128 + 1129 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:470px" %) 1130 +|=(% style="width: 155px;background-color:#D9E2F3;color:#0070C0" %)**Command Example**|=(% style="width: 196px;background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="width: 114px;background-color:#D9E2F3;color:#0070C0" %)**Response** 1131 +|(% style="background-color:#f2f2f2; width:155px" %)AT+5VT=?|(% style="background-color:#f2f2f2; width:196px" %)Show 5V open time.|(% style="background-color:#f2f2f2; width:114px" %)((( 1132 +0 1133 +OK 1134 +))) 1135 +|(% style="background-color:#f2f2f2; width:155px" %)AT+5VT=0|(% style="background-color:#f2f2f2; width:196px" %)Normally closed 5V power supply.|(% style="background-color:#f2f2f2; width:114px" %)((( 1136 +OK 1137 +default setting 1138 +))) 1139 +|(% style="background-color:#f2f2f2; width:155px" %)AT+5VT=1000|(% style="background-color:#f2f2f2; width:196px" %)Close after a delay of 1000 milliseconds.|(% style="background-color:#f2f2f2; width:114px" %)((( 1140 +OK 1141 +))) 1142 +|(% style="background-color:#f2f2f2; width:155px" %)AT+5VT=65535|(% style="background-color:#f2f2f2; width:196px" %)Normally open 5V power supply.|(% style="background-color:#f2f2f2; width:114px" %)((( 1143 +OK 1144 +))) 1145 + 1146 +(% style="color:blue" %)**AT Command: AT+12VT ** 1147 + 1148 +(% style="color:blue" %)**(The v1.2 version is enabled for 1 second by default, and the version below v1.2 is disabled by default)** 1149 + 1150 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:443px" %) 1151 +|=(% style="width: 156px;background-color:#D9E2F3;color:#0070C0" %)**Command Example**|=(% style="width: 199px;background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="width: 83px;background-color:#D9E2F3;color:#0070C0" %)**Response** 1152 +|(% style="background-color:#f2f2f2; width:156px" %)AT+12VT=?|(% style="background-color:#f2f2f2; width:199px" %)Show 12V open time.|(% style="background-color:#f2f2f2; width:83px" %)((( 1153 +0 1154 +OK 1155 +))) 1156 +|(% style="background-color:#f2f2f2; width:156px" %)AT+12VT=0|(% style="background-color:#f2f2f2; width:199px" %)Normally closed 12V power supply.|(% style="background-color:#f2f2f2; width:83px" %)OK 1157 +|(% style="background-color:#f2f2f2; width:156px" %)AT+12VT=500|(% style="background-color:#f2f2f2; width:199px" %)Close after a delay of 500 milliseconds.|(% style="background-color:#f2f2f2; width:83px" %)((( 1158 +OK 1159 +))) 1160 + 1161 +(% style="color:blue" %)**Downlink Command: 0x07** 1162 + 1163 +Format: Command Code (0x07) followed by 3 bytes. 1164 + 1165 +The first byte is which power, the second and third bytes are the time to turn on. 1166 + 1167 +* Example 1: Downlink Payload: 070101F4 **~-~-->** AT+3V3T=500 1168 +* Example 2: Downlink Payload: 0701FFFF **~-~-->** AT+3V3T=65535 1169 +* Example 3: Downlink Payload: 070203E8 **~-~-->** AT+5VT=1000 1170 +* Example 4: Downlink Payload: 07020000 **~-~-->** AT+5VT=0 1171 +* Example 5: Downlink Payload: 070301F4 **~-~-->** AT+12VT=500 1172 +* Example 6: Downlink Payload: 07030000 **~-~-->** AT+12VT=0 1173 + 1174 + 1175 + 1176 +== 3.4 Set the all data mode == 1177 + 1178 + 1179 +Feature, Set the all data mode. 1180 + 1181 +(% style="color:blue" %)**AT Command: AT+ALLDATAMOD** 1182 + 1183 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:437px" %) 1184 +|=(% style="background-color:#D9E2F3;color:#0070C0" %)**Command Example**|=(% style="background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="background-color:#D9E2F3;color:#0070C0" %)**Response** 1185 +|(% style="background-color:#f2f2f2" %)AT+ALLDATAMOD=?|(% style="background-color:#f2f2f2" %)Show current all data mode|(% style="background-color:#f2f2f2" %)((( 1186 +0 1187 +OK 1188 +))) 1189 +|(% style="background-color:#f2f2f2" %)AT+ALLDATAMOD=1|(% style="background-color:#f2f2f2" %)Set all data mode is 1.|(% style="background-color:#f2f2f2" %)OK 1190 + 1191 +(% style="color:blue" %)**Downlink Command: 0xAB** 1192 + 1193 +Format: Command Code (0xAB) followed by 1 bytes. 1194 + 1195 +* Example 1: Downlink Payload: AB 00 ~/~/ AT+ALLDATAMOD=0 1196 +* Example 2: Downlink Payload: AB 01 ~/~/ AT+ALLDATAMOD=1 1197 + 1198 + 1199 + 1200 +== 3.5 Set the splicing payload for uplink == 1201 + 1202 + 1203 +Feature, splicing payload for uplink. 1204 + 1205 +(% style="color:blue" %)**AT Command: AT+DATAUP** 1206 + 1207 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) 1208 +|=(% style="width: 154px;background-color:#D9E2F3;color:#0070C0" %)**Command Example**|=(% style="width: 266px;background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="background-color:#D9E2F3;color:#0070C0" %)**Response** 1209 +|(% style="background-color:#f2f2f2; width:154px" %)AT+DATAUP =?|(% style="background-color:#f2f2f2; width:266px" %)Show current splicing payload for uplink mode|(% style="background-color:#f2f2f2" %)((( 1210 +0 1211 +OK 1212 +))) 1213 +|(% style="background-color:#f2f2f2; width:154px" %)AT+DATAUP =0|(% style="background-color:#f2f2f2; width:266px" %)((( 1214 +Set splicing payload for uplink mode is 0. 1215 +)))|(% style="background-color:#f2f2f2" %)((( 1216 +OK 1217 +))) 1218 +|(% style="background-color:#f2f2f2; width:154px" %)AT+DATAUP =1|(% style="background-color:#f2f2f2; width:266px" %)Set splicing payload for uplink mode is 1 , and the each splice uplink is sent sequentially.|(% style="background-color:#f2f2f2" %)OK 1219 +|(% style="background-color:#f2f2f2; width:154px" %)AT+DATAUP =1,20000|(% style="background-color:#f2f2f2; width:266px" %)((( 1220 +Set splicing payload for uplink mode is 1, and the uplink interval of each splice to 20000 milliseconds. 1221 +)))|(% style="background-color:#f2f2f2" %)OK 1222 + 1223 +(% style="color:blue" %)**Downlink Command: 0xAD** 1224 + 1225 +Format: Command Code (0xAD) followed by 1 bytes or 5 bytes. 1226 + 1227 +* Example 1: Downlink Payload: AD 00 ~/~/ AT+DATAUP=0 1228 +* Example 2: Downlink Payload: AD 01 ~/~/ AT+DATAUP =1 1229 +* Example 3: Downlink Payload: AD 01 00 00 14 ~/~/ AT+DATAUP =1,20000 1230 + 1231 +This means that the interval is set to 0x000014=20S 1232 + 1233 + 1234 +== 3.6 Set the payload version == 1235 + 1236 + 1237 +Feature, Set the payload version. 1238 + 1239 +(% style="color:blue" %)**AT Command: AT+PAYVER** 1240 + 1241 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:437px" %) 1242 +|=(% style="width: 158px;background-color:#D9E2F3;color:#0070C0" %)**Command Example**|=(% style="width: 192px;background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="background-color:#D9E2F3;color:#0070C0" %)**Response** 1243 +|(% style="background-color:#f2f2f2; width:158px" %)AT+PAYVER=?|(% style="background-color:#f2f2f2; width:192px" %)Show current payload version|(% style="background-color:#f2f2f2" %)((( 1244 +1 1245 +OK 1246 +))) 1247 +|(% style="background-color:#f2f2f2; width:158px" %)AT+PAYVER=5|(% style="background-color:#f2f2f2; width:192px" %)Set payload version is 5.|(% style="background-color:#f2f2f2" %)OK 1248 + 1249 +(% style="color:blue" %)**Downlink Command: 0xAE** 1250 + 1251 +Format: Command Code (0xAE) followed by 1 bytes. 1252 + 1253 +* Example 1: Downlink Payload: AE 01 ~/~/ AT+PAYVER=1 1254 +* Example 2: Downlink Payload: AE 05 ~/~/ AT+PAYVER=5 1255 + 1256 + 1257 + 1258 += 4. Battery & Power Consumption = 1259 + 1260 + 1261 +SDI-12-LB uses ER26500 + SPC1520 battery pack. See below link for detail information about the battery info and how to replace. 1262 + 1263 +[[**Battery Info & Power Consumption Analyze**>>url:http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] . 1264 + 1265 + 1266 += 5. Remote Configure device = 1267 + 1268 +== 5.1 Connect via BLE == 1269 + 1270 + 1271 +Please see this instruction for how to configure via BLE: [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/>>url:http://wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/]] 1272 + 1273 + 1274 +== 5.2 AT Command Set == 1275 + 1276 + 1277 + 1278 += 6. OTA firmware update = 1279 + 1280 + 1281 +Please see this link for how to do OTA firmware update. 1282 + 1283 +[[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/Firmware%20OTA%20Update%20for%20Sensors/>>url:http://wiki.dragino.com/xwiki/bin/view/Main/Firmware%20OTA%20Update%20for%20Sensors/]] 1284 + 1285 + 1286 += 7. FAQ = 1287 + 1288 +== 7.1 How to use AT Command via UART to access device? == 1289 + 1290 + 1291 +See: [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H1.LoRaSTv4baseHardware>>url:http://wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H1.LoRaSTv4baseHardware]] 1292 + 1293 + 1294 +== 7.2 How to update firmware via UART port? == 1295 + 1296 + 1297 +See: [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H1.LoRaSTv4baseHardware>>url:http://wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H1.LoRaSTv4baseHardware]] 1298 + 1299 + 1300 +== 7.3 How to change the LoRa Frequency Bands/Region? == 1301 + 1302 + 1303 +You can follow the instructions for [[how to upgrade image>>doc:Main.Firmware Upgrade Instruction for STM32 base products.WebHome]]. 1304 +When downloading the images, choose the required image file for download. 1305 + 1306 + 1307 += 8. Order Info = 1308 + 1309 + 1310 +((( 1311 +(% style="color:blue" %)**Part Number: SDI-12-LB-XXX** 1312 +))) 1313 + 1314 +((( 1315 +(% style="color:blue" %)**XXX**(%%): The default frequency band 1316 +))) 1317 + 1318 +((( 1319 +(% style="color:red" %)**AS923**(%%): LoRaWAN AS923 band 1320 +(% style="color:red" %)**AU915**(%%): LoRaWAN AU915 band 1321 +(% style="color:red" %)**EU433**(%%): LoRaWAN EU433 band 1322 +(% style="color:red" %)**EU868**(%%): LoRaWAN EU868 band 1323 +(% style="color:red" %)**KR920**(%%): LoRaWAN KR920 band 1324 +(% style="color:red" %)**US915**(%%): LoRaWAN US915 band 1325 +(% style="color:red" %)**IN865**(%%): LoRaWAN IN865 band 1326 +(% style="color:red" %)**CN470**(%%): LoRaWAN CN470 band 1327 +))) 1328 + 1329 + 1330 += 9. Packing Info = 1331 + 1332 + 1333 +(% style="color:#037691" %)**Package Includes**: 1334 + 1335 +* SDI-12-LB SDI-12 to LoRaWAN Converter x 1 1336 + 1337 +(% style="color:#037691" %)**Dimension and weight**: 1338 + 1339 +* Device Size: cm 1340 +* Device Weight: g 1341 +* Package Size / pcs : cm 1342 +* Weight / pcs : g 1343 + 1344 + 1345 + 1346 += 10. Support = 1347 + 1348 + 1349 +* Support is provided Monday to Friday, from 09:00 to 18:00 GMT+8. Due to different timezones we cannot offer live support. However, your questions will be answered as soon as possible in the before-mentioned schedule. 1350 + 1351 +* Provide as much information as possible regarding your enquiry (product models, accurately describe your problem and steps to replicate it etc) and send a mail to [[support@dragino.com>>url:http://../../../../../../D:%5C%E5%B8%82%E5%9C%BA%E8%B5%84%E6%96%99%5C%E8%AF%B4%E6%98%8E%E4%B9%A6%5CLoRa%5CLT%E7%B3%BB%E5%88%97%5Csupport@dragino.com]]
- 1675212538524-889.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +905.1 KB - Content
- 1675212633011-651.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +18.2 KB - Content
- 1675213198663-754.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +508.9 KB - Content
- 1675213652444-622.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +59.6 KB - Content
- 1675213661769-223.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +53.8 KB - Content
- 1675213675852-577.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +83.1 KB - Content
- 1675213686734-883.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +65.2 KB - Content
- 1675213704414-644.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +50.1 KB - Content
- 1675214845056-885.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +20.4 KB - Content
- 1675214856590-846.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +18.6 KB - Content
- 1675215745275-920.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +187.6 KB - Content
- 1675215782925-448.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +142.5 KB - Content
- 1675215828102-844.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +231.3 KB - Content
- 1675215848113-696.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +50.5 KB - Content
- 1675215946738-635.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +38.4 KB - Content
- 1675216282284-923.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +47.0 KB - Content
- 1675216779406-595.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +59.2 KB - Content
- 1675234124233-857.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +75.8 KB - Content
- 1675234155374-163.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +138.2 KB - Content
- image-20230201084414-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +560.9 KB - Content
- image-20230201090139-2.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +8.3 KB - Content
- image-20230201090139-3.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +4.9 KB - Content
- image-20230201090139-4.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +7.2 KB - Content
- image-20230201090528-5.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +560.9 KB - Content
- image-20230201091027-6.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +10.4 KB - Content
- image-20230201091027-7.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +43.7 KB - Content
- image-20230201091257-8.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +15.8 KB - Content
- image-20230201091257-9.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +46.3 KB - Content
- image-20230201091630-10.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +15.1 KB - Content
- image-20230201091630-11.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +53.1 KB - Content
- image-20230201091954-12.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +13.8 KB - Content
- image-20230201091954-13.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +46.7 KB - Content
- image-20230201092208-14.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +14.3 KB - Content
- image-20230201092208-15.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +46.6 KB - Content
- image-20230201092355-16.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +21.6 KB - Content
- image-20230201092355-17.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +80.0 KB - Content
- image-20230201094129-18.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +12.8 KB - Content
- image-20230201145019-19.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +82.2 KB - Content
- image-20230201152430-20.jpeg
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +16.5 KB - Content
- image-20230222143809-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Bei - Size
-
... ... @@ -1,0 +1,1 @@ 1 +322.1 KB - Content
- image-20230426084456-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +190.0 KB - Content
- image-20230603120127-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Edwin - Size
-
... ... @@ -1,0 +1,1 @@ 1 +5.7 KB - Content
- image-20230603120209-2.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Edwin - Size
-
... ... @@ -1,0 +1,1 @@ 1 +22.8 KB - Content
- image-20230603120515-3.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Edwin - Size
-
... ... @@ -1,0 +1,1 @@ 1 +489.3 KB - Content
- image-20230603120648-4.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Edwin - Size
-
... ... @@ -1,0 +1,1 @@ 1 +100.8 KB - Content
- image-20230603120726-5.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Edwin - Size
-
... ... @@ -1,0 +1,1 @@ 1 +133.2 KB - Content
- image-20230603120859-6.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Edwin - Size
-
... ... @@ -1,0 +1,1 @@ 1 +55.9 KB - Content
- image-20230603121606-7.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Edwin - Size
-
... ... @@ -1,0 +1,1 @@ 1 +24.4 KB - Content
- image-20230603121643-8.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Edwin - Size
-
... ... @@ -1,0 +1,1 @@ 1 +889.7 KB - Content
- image-20230603121721-9.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Edwin - Size
-
... ... @@ -1,0 +1,1 @@ 1 +105.4 KB - Content
- image-20230603121752-10.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Edwin - Size
-
... ... @@ -1,0 +1,1 @@ 1 +160.0 KB - Content
- image-20230603121826-11.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Edwin - Size
-
... ... @@ -1,0 +1,1 @@ 1 +52.8 KB - Content
- image-20230603122040-12.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Edwin - Size
-
... ... @@ -1,0 +1,1 @@ 1 +128.1 KB - Content
- image-20230603122109-13.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Edwin - Size
-
... ... @@ -1,0 +1,1 @@ 1 +271.1 KB - Content
- image-20230603122139-14.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Edwin - Size
-
... ... @@ -1,0 +1,1 @@ 1 +70.4 KB - Content
- image-20230603122212-15.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Edwin - Size
-
... ... @@ -1,0 +1,1 @@ 1 +818.3 KB - Content
- image-20230603122248-16.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Edwin - Size
-
... ... @@ -1,0 +1,1 @@ 1 +12.7 KB - Content
- image-20230603122508-17.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Edwin - Size
-
... ... @@ -1,0 +1,1 @@ 1 +980.2 KB - Content
- image-20230603122549-18.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Edwin - Size
-
... ... @@ -1,0 +1,1 @@ 1 +90.9 KB - Content
- image-20230603122623-19.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Edwin - Size
-
... ... @@ -1,0 +1,1 @@ 1 +139.5 KB - Content
- image-20230603122719-20.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Edwin - Size
-
... ... @@ -1,0 +1,1 @@ 1 +83.8 KB - Content