Last modified by Mengting Qiu on 2025/07/03 15:42

From version 2.1
edited by Xiaoling
on 2023/01/31 18:35
Change comment: Uploaded new attachment "image-20230131183542-1.jpeg", version {1}
To version 73.2
edited by Xiaoling
on 2023/06/27 10:21
Change comment: There is no comment for this version

Summary

Details

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