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

From version 44.2
edited by Xiaoling
on 2023/02/24 09:16
Change comment: There is no comment for this version
To version 32.1
edited by Xiaoling
on 2023/02/01 09:43
Change comment: Uploaded new attachment "1675215782925-448.png", version {1}

Summary

Details

Page properties
Content
... ... @@ -3,7 +3,6 @@
3 3  
4 4  **Table of Contents:**
5 5  
6 -{{toc/}}
7 7  
8 8  
9 9  
... ... @@ -22,40 +22,32 @@
22 22  == 1.1 ​What is SDI-12 to LoRaWAN Converter ==
23 23  
24 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 -)))
24 +The Dragino **SDI-12-LB** is a **SDI-12 to LoRaWAN Converter **designed for Smart Agriculture solution.
28 28  
29 -(((
30 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 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 -)))
28 +**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.
36 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 -)))
30 +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.
40 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 -)))
32 +**SDI-12-LB** is powered by **8500mAh Li-SOCI2 battery**, it is designed for long term use up to 5 years.
44 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 -)))
34 +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.
48 48  
49 49  
50 50  [[image:image-20230201084414-1.png||height="464" width="1108"]]
51 51  
52 52  
40 +
41 +
42 +
43 +
53 53  == ​1.2 Features ==
54 54  
55 55  
56 56  * LoRaWAN 1.0.3 Class A
57 57  * Ultra-low power consumption
58 -* Controllable 3.3v, 5v and 12v output to power external sensor
49 +* Controllable 5v and 12v output to power external sensor
59 59  * SDI-12 Protocol to connect to SDI-12 Sensor
60 60  * Monitor Battery Level
61 61  * Bands: CN470/EU433/KR920/US915/EU868/AS923/AU915/IN865
... ... @@ -65,23 +65,21 @@
65 65  * Downlink to change configure
66 66  * 8500mAh Battery for long term use
67 67  
68 -
69 -
70 70  == 1.3 Specification ==
71 71  
72 72  
73 -(% style="color:#037691" %)**Micro Controller:**
62 +**Micro Controller:**
74 74  
75 75  * MCU: 48Mhz ARM
76 76  * Flash: 256KB
77 77  * RAM: 64KB
78 78  
79 -(% style="color:#037691" %)**Common DC Characteristics:**
68 +**Common DC Characteristics:**
80 80  
81 81  * Supply Voltage: 2.5v ~~ 3.6v
82 82  * Operating Temperature: -40 ~~ 85°C
83 83  
84 -(% style="color:#037691" %)**LoRa Spec:**
73 +**LoRa Spec:**
85 85  
86 86  * Frequency Range,  Band 1 (HF): 862 ~~ 1020 Mhz
87 87  * Max +22 dBm constant RF output vs.
... ... @@ -88,19 +88,19 @@
88 88  * RX sensitivity: down to -139 dBm.
89 89  * Excellent blocking immunity
90 90  
91 -(% style="color:#037691" %)**Current Input Measuring :**
80 +**Current Input Measuring :**
92 92  
93 93  * Range: 0 ~~ 20mA
94 94  * Accuracy: 0.02mA
95 95  * Resolution: 0.001mA
96 96  
97 -(% style="color:#037691" %)**Voltage Input Measuring:**
86 +**Voltage Input Measuring:**
98 98  
99 99  * Range: 0 ~~ 30v
100 100  * Accuracy: 0.02v
101 101  * Resolution: 0.001v
102 102  
103 -(% style="color:#037691" %)**Battery:**
92 +**Battery:**
104 104  
105 105  * Li/SOCI2 un-chargeable battery
106 106  * Capacity: 8500mAh
... ... @@ -108,13 +108,11 @@
108 108  * Max continuously current: 130mA
109 109  * Max boost current: 2A, 1 second
110 110  
111 -(% style="color:#037691" %)**Power Consumption**
100 +**Power Consumption**
112 112  
113 113  * Sleep Mode: 5uA @ 3.3v
114 114  * LoRa Transmit Mode: 125mA @ 20dBm, 82mA @ 14dBm
115 115  
116 -
117 -
118 118  == 1.4 Connect to SDI-12 Sensor ==
119 119  
120 120  
... ... @@ -125,9 +125,9 @@
125 125  == 1.5 Sleep mode and working mode ==
126 126  
127 127  
128 -(% 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.
115 +**Deep Sleep Mode: **Sensor doesn't have any LoRaWAN activate. This mode is used for storage and shipping to save battery life.
129 129  
130 -(% 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.
117 +**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.
131 131  
132 132  
133 133  == 1.6 Button & LEDs ==
... ... @@ -136,21 +136,20 @@
136 136  [[image:1675212633011-651.png]]
137 137  
138 138  
126 +
139 139  (% border="1" cellspacing="4" style="background-color:#f7faff; color:black; width:510px" %)
140 -|=(% style="width: 167px;" %)**Behavior on ACT**|=(% style="width: 109px;" %)**Function**|=(% style="width: 231px;" %)**Action**
141 -|(% style="width:167px" %)Pressing ACT between 1s < time < 3s|(% style="width:109px" %)Send an uplink|(% style="width:231px" %)(((
128 +|=(% style="width: 167px;" %)**Behavior on ACT**|=(% style="width: 117px;" %)**Function**|=(% style="width: 225px;" %)**Action**
129 +|(% style="width:167px" %)Pressing ACT between 1s < time < 3s|(% style="width:117px" %)Send an uplink|(% style="width:225px" %)(((
142 142  If sensor is already Joined to LoRaWAN network, sensor will send an uplink packet, (% style="color:blue" %)**blue led** (%%)will blink once.
143 143  Meanwhile, BLE module will be active and user can connect via BLE to configure device.
144 144  )))
145 -|(% style="width:167px" %)Pressing ACT for more than 3s|(% style="width:109px" %)Active Device|(% style="width:231px" %)(((
133 +|(% style="width:167px" %)Pressing ACT for more than 3s|(% style="width:117px" %)Active Device|(% style="width:225px" %)(((
146 146  (% style="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.
147 147  (% style="color:green" %)**Green led**(%%) will solidly turn on for 5 seconds after joined in network.
148 148  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.
149 149  )))
150 -|(% style="width:167px" %)Fast press ACT 5 times.|(% style="width:109px" %)Deactivate Device|(% style="width:231px" %)(% style="color:red" %)**Red led**(%%) will solid on for 5 seconds. Means SDI-12-LB is in Deep Sleep Mode.
138 +|(% style="width:167px" %)Fast press ACT 5 times.|(% style="width:117px" %)Deactivate Device|(% style="width:225px" %)(% style="color:red" %)**Red led**(%%) will solid on for 5 seconds. Means PS-LB is in Deep Sleep Mode.
151 151  
152 -
153 -
154 154  == 1.7 Pin Mapping ==
155 155  
156 156  
... ... @@ -174,6 +174,9 @@
174 174  == 1.9 Mechanical ==
175 175  
176 176  
163 +
164 +
165 +
177 177  [[image:image-20230201090139-2.png]]
178 178  
179 179  [[image:image-20230201090139-3.png]]
... ... @@ -186,7 +186,7 @@
186 186  == 2.1 How it works ==
187 187  
188 188  
189 -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.
178 +The SDI-12-LB is configured as **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.
190 190  
191 191  
192 192  == 2.2 Quick guide to connect to LoRaWAN server (OTAA) ==
... ... @@ -201,47 +201,51 @@
201 201  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.
202 202  
203 203  
204 -(% style="color:blue" %)**Step 1**(%%): Create a device in TTN with the OTAA keys from SDI-12-LB.
193 +**Step 1**: Create a device in TTN with the OTAA keys from SDI-12-LB.
205 205  
206 206  Each SDI-12-LB is shipped with a sticker with the default device EUI as below:
207 207  
208 208  
209 -[[image:image-20230201152430-20.jpeg]]
198 +[[image:image-20230131134744-2.jpeg]]
210 210  
211 211  
201 +
202 +
203 +
212 212  You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:
213 213  
214 214  
215 -(% style="color:blue" %)**Register the device**
207 +**Register the device**
216 216  
217 217  [[image:1675213652444-622.png]]
218 218  
219 219  
220 -(% style="color:blue" %)**Add APP EUI and DEV EUI**
212 +**Add APP EUI and DEV EUI**
221 221  
222 222  
223 223  [[image:1675213661769-223.png]]
224 224  
225 225  
226 -(% style="color:blue" %)**Add APP EUI in the application**
218 +**Add APP EUI in the application**
227 227  
228 228  
229 229  [[image:1675213675852-577.png]]
230 230  
231 231  
232 -(% style="color:blue" %)**Add APP KEY**
224 +**Add APP KEY**
233 233  
234 234  [[image:1675213686734-883.png]]
235 235  
236 236  
237 -(% style="color:blue" %)**Step 2**(%%): Activate on SDI-12-LB
229 +**Step 2**: Activate on SDI-12-LB
238 238  
239 239  
240 240  Press the button for 5 seconds to activate the SDI-12-LB.
241 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 243  
235 +**Green led** will fast blink 5 times, device will enter **OTA mode** for 3 seconds. And then start to JOIN LoRaWAN network. **Green led** will solidly turn on for 5 seconds after joined in network.
244 244  
237 +
245 245  [[image:1675213704414-644.png]]
246 246  
247 247  
... ... @@ -261,6 +261,7 @@
261 261  The following is the display information on the serial port and the server.
262 262  
263 263  
257 +
264 264  [[image:image-20230201091027-6.png]]
265 265  
266 266  
... ... @@ -267,16 +267,15 @@
267 267  [[image:image-20230201091027-7.png||height="261" width="1179"]]
268 268  
269 269  
264 +==== **al!  ~-~- Get SDI-12 sensor Identification** ====
270 270  
271 -==== (% style="color:blue" %)**al!  ~-~- Get SDI-12 sensor Identification**(%%) ====
272 272  
273 -
274 274  * AT Command: AT+ADDRI=aa
275 275  * LoRaWAN Downlink(prefix 0xAA00): AA 00 aa
276 276  
277 -(% style="color:#037691" %)**Parameter:  **(%%)aa: ASCII value of SDI-12 sensor address in downlink or HEX value in AT Command)
270 +**Parameter:  **aa: ASCII value of SDI-12 sensor address in downlink or HEX value in AT Command)
278 278  
279 -(% style="color:blue" %)**Example :   **(%%)AT+ADDRI=0 ( Equal to downlink: 0x AA 00 30)
272 +**Example :  **AT+ADDRI=0 ( Equal to downlink: 0x AA 00 30)
280 280  
281 281  
282 282  The following is the display information on the serial port and the server.
... ... @@ -288,31 +288,30 @@
288 288  [[image:image-20230201091257-9.png||height="225" width="1242"]]
289 289  
290 290  
291 -==== (% style="color:blue" %)**aM!,aMC!, aM1!- aM9!, aMC1!- aMC9!**(%%) ====
284 +==== **aM!,aMC!, aM1!- aM9!, aMC1!- aMC9!** ====
292 292  
293 293  
294 -(% style="color:red" %)**aM! **(%%): Start Non-Concurrent Measurement
287 +**aM! **: Start Non-Concurrent Measurement
295 295  
296 -(% style="color:red" %)**aMC! **(%%): Start Non-Concurrent Measurement – Request CRC
289 +**aMC! **: Start Non-Concurrent Measurement – Request CRC
297 297  
298 -(% style="color:red" %)**aM1!- aM9! **(%%): Additional Measurements
291 +**aM1!- aM9! **: Additional Measurements
299 299  
300 -(% style="color:red" %)**aMC1!- aMC9!**(%%) : Additional Measurements – Request CRC
293 +**aMC1!- aMC9!** : Additional Measurements – Request CRC
301 301  
302 302  
303 303  * AT Command : AT+ADDRM=0,1,0,1
304 -
305 305  * LoRaWAN Downlink(prefix 0xAA01): 0xAA 01 30 01 00 01
306 306  
307 307  Downlink:AA 01 aa bb cc dd
308 308  
309 -(% style="color:#037691" %)**aa**(%%): SDI-12 sensor address.
301 +**aa**: SDI-12 sensor address.
310 310  
311 -(% style="color:#037691" %)**bb**(%%): 0: no CRC, 1: request CRC
303 +**bb**: 0: no CRC, 1: request CRC
312 312  
313 -(% style="color:#037691" %)**cc**(%%): 1-9: Additional Measurement, 0: no additional measurement
305 +**cc**: 1-9: Additional Measurement, 0: no additional measurement
314 314  
315 -(% style="color:#037691" %)**dd**(%%): delay (in second) to send (% style="color:#037691" %)__**aD0!**__(%%) to get return.
307 +**dd**: delay (in second) to send **aD0!** to get return.
316 316  
317 317  
318 318  The following is the display information on the serial port and the server.
... ... @@ -325,16 +325,16 @@
325 325  
326 326  
327 327  
328 -==== (% style="color:blue" %)**aC!, aCC!,  aC1!- aC9!,  aCC1!- aCC9! **(%%) ====
320 +==== **aC!, aCC!,  aC1!- aC9!,  aCC1!- aCC9! ** ====
329 329  
330 330  
331 -(% style="color:red" %)**aC!**(%%) : Start Concurrent Measurement
323 +**aC!** : Start Concurrent Measurement
332 332  
333 -(% style="color:red" %)**aCC!** (%%): Start Concurrent Measurement – Request CRC
325 +**aCC!** : Start Concurrent Measurement – Request CRC
334 334  
335 -(% style="color:red" %)**aC1!- aC9!**(%%) : Start Additional Concurrent Measurements
327 +**aC1!- aC9!** : Start Additional Concurrent Measurements
336 336  
337 -(% style="color:red" %)**aCC1!- aCC9!**(%%) : Start Additional Concurrent Measurements – Request CRC
329 +**aCC1!- aCC9!** : Start Additional Concurrent Measurements – Request CRC
338 338  
339 339  
340 340  * AT Command : AT+ADDRC=0,1,0,1 
... ... @@ -343,13 +343,13 @@
343 343  
344 344  Downlink: AA 02 aa bb cc dd
345 345  
346 -(% style="color:#037691" %)**aa**(%%): SDI-12 sensor address.
338 +**aa**: SDI-12 sensor address.
347 347  
348 -(% style="color:#037691" %)**bb**(%%): 0: no CRC, 1: request CRC
340 +**bb**: 0: no CRC, 1: request CRC
349 349  
350 -(% style="color:#037691" %)**cc**(%%): 1-9: Additional Measurement, 0: no additional measurement
342 +**cc**: 1-9: Additional Measurement, 0: no additional measurement
351 351  
352 -(% style="color:#037691" %)**dd**(%%): delay (in second) to send (% style="color:#037691" %)__**aD0!**__(%%)__ __to get return.
344 +**dd**: delay (in second) to send **aD0!** to get return.
353 353  
354 354  
355 355  The following is the display information on the serial port and the server.
... ... @@ -361,11 +361,11 @@
361 361  [[image:image-20230201091954-13.png||height="203" width="1117"]]
362 362  
363 363  
356 +(% style="display:none" %) (%%)
364 364  
358 +==== **aR0!- aR9!,  aRC0!- aRC9!** ====
365 365  
366 -==== (% style="color:blue" %)**aR0!- aR9!,  aRC0!- aRC9!**(%%) ====
367 367  
368 -
369 369  Start Continuous Measurement
370 370  
371 371  Start Continuous Measurement – Request CRC
... ... @@ -376,18 +376,19 @@
376 376  
377 377  Downlink: AA 03 aa bb cc dd
378 378  
379 -(% style="color:#037691" %)**aa**(%%): SDI-12 sensor address.
371 +**aa**: SDI-12 sensor address.
380 380  
381 -(% style="color:#037691" %)**bb**(%%): 0: no CRC, 1: request CRC
373 +**bb**: 0: no CRC, 1: request CRC
382 382  
383 -(% style="color:#037691" %)**cc**(%%): 1-9: Additional Measurement, 0: no additional measurement
375 +**cc**: 1-9: Additional Measurement, 0: no additional measurement
384 384  
385 -(% style="color:#037691" %)**dd**(%%): delay (in second) to send (% style="color:#037691" %)__**aD0!**__(%%) to get return.
377 +**dd**: delay (in second) to send **aD0!** to get return.
386 386  
387 387  
388 388  The following is the display information on the serial port and the server.
389 389  
390 390  
383 +
391 391  [[image:image-20230201092208-14.png]]
392 392  
393 393  
... ... @@ -394,7 +394,7 @@
394 394  [[image:image-20230201092208-15.png||height="214" width="1140"]]
395 395  
396 396  
397 -=== 2.3.2 Advance SDI-12 Debug command ===
390 +=== ​​​​​​​2.3.2 Advance SDI-12 Debug command ===
398 398  
399 399  
400 400  This command can be used to debug all SDI-12 command.
... ... @@ -402,20 +402,20 @@
402 402  
403 403  LoRaWAN Downlink: A8 aa xx xx xx xx bb cc
404 404  
405 -(% style="color:#037691" %)**aa **(%%): total SDI-12 command length
398 +**aa **: total SDI-12 command length
406 406  
407 -(% style="color:#037691" %)**xx **(%%): SDI-12 command
400 +**xx **: SDI-12 command
408 408  
409 -(% style="color:#037691" %)**bb **(%%): Delay to wait for return
402 +**bb **: Delay to wait for return
410 410  
411 -(% style="color:#037691" %)**cc **(%%): 0: don't uplink return to LoRaWAN, 1: Uplink return to LoRaWAN on FPORT=100
404 +**cc **: 0: don't uplink return to LoRaWAN, 1: Uplink return to LoRaWAN on FPORT=100
412 412  
413 413  
414 -(% style="color:blue" %)**Example: **(%%) AT+CFGDEV =0RC0!,1
407 +**Example: **AT+CFGDEV =0RC0!,1
415 415  
416 -(% style="color:#037691" %)**0RC0! **(%%): SDI-12 Command,
409 +**0RC0! **: SDI-12 Command,
417 417  
418 -(% style="color:#037691" %)**1 **(%%): Delay 1 second.  ( 0: 810 mini-second)
411 +**1 **: Delay 1 second.  ( 0: 810 mini-second)
419 419  
420 420  Equal Downlink: 0xA8 05 30 52 43 30 21 01 01
421 421  
... ... @@ -426,9 +426,11 @@
426 426  [[image:image-20230201092355-16.png]]
427 427  
428 428  
429 -[[image:image-20230201092355-17.png||height="426" width="1135"]]
422 +​​​​​​​[[image:image-20230201092355-17.png||height="426" width="1135"]]
430 430  
431 431  
425 +​​​​​​​
426 +
432 432  === 2.3.3 Convert ASCII to String ===
433 433  
434 434  
... ... @@ -437,7 +437,7 @@
437 437  AT+CONVFORM ( Max length: 80 bytes)
438 438  
439 439  
440 -(% style="color:blue" %)**Example:**
435 +**Example:**
441 441  
442 442  1) AT+CONVFORM=0, string Convert String from String to ASCII
443 443  
... ... @@ -449,6 +449,10 @@
449 449  [[image:1675214856590-846.png]]
450 450  
451 451  
447 +
448 +
449 +​​​​​​​
450 +
452 452  === 2.3.4 Define periodically SDI-12 commands and uplink. ===
453 453  
454 454  
... ... @@ -457,137 +457,142 @@
457 457  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.
458 458  
459 459  
460 -* (% style="color:blue" %)**AT Command:**
459 +* ** AT Command:**
461 461  
462 -(% style="color:#037691" %)**AT+COMMANDx=var1,var2,var3,var4.**
461 +**AT+COMMANDx=var1,var2,var3,var4.**
463 463  
464 -(% style="color:red" %)**var1**(%%): SDI-12 command , for example: 0RC0!
463 +**var1**: SDI-12 command , for example: 0RC0!
465 465  
466 -(% style="color:red" %)**var2**(%%): Wait timeout for return. (unit: second)
465 +**var2**: Wait timeout for return. (unit: second)
467 467  
468 -(% style="color:red" %)**var3**(%%): Whether to send //addrD0!// to get return after var2 timeout. 0: Don't Send //addrD0! //; 1: Send //addrD0!//.
467 +**var3**: Whether to send //addrD0!// to get return after var2 timeout. 0: Don't Send //addrD0! //; 1: Send //addrD0!//.
469 469  
470 -(% style="color:red" %)**var4**(%%): validation check for return. If return invalid, SDI-12-LB will resend this command. Max 3 retries.
469 +**var4**: validation check for return. If return invalid, SDI-12-LB will resend this command. Max 2 retries.
471 471  
472 -(% style="color:red" %)**0 **(%%) No validation check;
471 +**0 ** No validation check;
473 473  
474 -(% style="color:red" %)**1** (%%) Check if return chars are printable char(0x20 ~~ 0x7E);
473 +**1**  Check if return chars are printable char(0x20 ~~ 0x7E);
475 475  
476 -(% style="color:red" %)**2**(%%)  Check if there is return from SDI-12 sensor
475 +**2**  Check if there is return from SDI-12 sensor
477 477  
478 -(% style="color:red" %)**3** (%%) Check if return pass CRC check ( SDI-12 command var1 must include CRC request);
477 +**3**  Check if return pass CRC check ( SDI-12 command var1 must include CRC request);
479 479  
480 480  
481 -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.
480 +Each AT+COMMANDx is followed by a **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.
482 482  
483 483  
484 -(% style="color:blue" %)**AT+DATACUTx**(%%) : This command defines how to handle the return from AT+COMMANDx, max return length is 100 bytes.
483 +**AT+DATACUTx** : This command defines how to handle the return from AT+COMMANDx, max return length is 100 bytes.
485 485  
486 486  (% border="1" style="background-color:#f7faff; width:436px" %)
487 487  |(% style="width:433px" %)(((
488 -**AT+DATACUTx=a,b,c**
487 +AT+DATACUTx=a,b,c
489 489  
490 490  **a**:  length for the return of AT+COMMAND
491 491  
492 -**b**: 1: grab valid value by byte, max 6 bytes. 2: grab valid value by bytes section, max 3 sections.
491 +**b**: 1: grab valid value by byte, max 6 bytes. 2: grab valid value by bytes section, max 3 sections.
493 493  
494 494  **c**:  define the position for valid value. 
495 495  )))
496 496  
497 -For example, if return from AT+COMMAND1 is “013METER   TER12 112T12-00024895<CR><LF>” , Below AT+DATACUT1 will get different result to combine payload:
496 +For example, if return from AT+COMMAND1 is “013METER   TER12 112T12-00024895” ,. Below AT+DATACUT1 will get different result to combine payload:
498 498  
499 499  
500 -(% border="1" cellspacing="4" style="background-color:#f7faff; width:510px" %)
501 -|=(% style="width: 164px;" %)**AT+DATACUT1 value**|=(% style="width: 344px;" %)**Final Result to combine Payload**
502 -|(% style="width:164px" %)34,1,1+2+3|(% style="width:344px" %)0D 00 01 30 31 33
503 -|(% style="width:164px" %)34,2,1~~8+12~~16|(% style="width:344px" %)0D 00 01 30 31 33 4D 45 54 45 52 54 45 52 31 32
504 -|(% style="width:164px" %)34,2,1~~34|(% style="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
499 +|AT+DATACUT1 value|Final Result to combine Payload
500 +|34,1,1+2+3|0D 00 01 30 31 33
501 +|34,2,1~~8+12~~16|0D 00 01 30 31 33 4D 45 54 45 52 54 45 52 31 32
502 +|34,2,1~~34|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
505 505  
506 -* (% style="color:blue" %)** Downlink Payload:**
504 +* ** Downlink Payload:**
507 507  
508 -(% style="color:blue" %)**0xAF**(%%)  downlink command can be used to set AT+COMMANDx or AT+DATACUTx.
506 +**0xAF**  downlink command can be used to set AT+COMMANDx or AT+DATACUTx.
509 509  
510 510  
511 -(% style="color:red" %)**Note : if user use AT+COMMANDx to add a new command, he also need to send AT+DATACUTx downlink.**
509 +**Note : if user use AT+COMMANDx to add a new command, he also need to send AT+DATACUTx downlink.**
512 512  
513 513  
514 -Format: ** (% style="color:#037691" %)AF MM NN LL XX XX XX XX YY(%%)**
512 +Format: ** AF MM NN LL XX XX XX XX YY**
515 515  
516 516  Where:
517 517  
518 -* (% style="color:#037691" %)**MM **(%%): the AT+COMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F,
519 -* (% style="color:#037691" %)**NN **(%%):  1: set the AT+COMMAND value ; 2: set the AT+DATACUT value.
520 -* (% style="color:#037691" %)**LL **(%%):  The length of AT+COMMAND or AT+DATACUT command
521 -* (% style="color:#037691" %)**XX XX XX XX **(%%): AT+COMMAND or AT+DATACUT command
522 -* (% 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. 
516 +* MM: the AT+COMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F,
517 +* NN:  1: set the AT+DATACUT value ; 2: set the AT+DATACUT value.
518 +* LL:  The length of AT+COMMAND or AT+DATACUT command
519 +* XX XX XX XX: AT+COMMAND or AT+DATACUT command
520 +* YY:  If YY=0, RS485-LN will execute the downlink command without uplink; if YY=1, RS485-LN will execute an uplink after got this command. 
523 523  
524 -(% style="color:blue" %)**Example:**
522 +Example:
525 525  
526 -[[image:image-20230201094129-18.png]]
524 +**AF 03 01 07 30 4D 43 21 01 01 01 00**: Same as AT+COMMAND3=**0MC!**,** 1**,** 1**,** 1**
527 527  
526 +**AF 03 02 06 10 01 05 06 09 0A 00**: Same as AT+DATACUT3=**16**,**1**,**5+6+9+10**
528 528  
528 +**AF 03 02 06 0B 02 05 07 08 0A 00**: Same as AT+DATACUT3=**11**,**2**,**5~~7+8~~10**
529 529  
530 -(% style="color:blue" %)**Clear SDI12 Command**
531 531  
531 +**Clear SDI12 Command**
532 +
532 532  The AT+COMMANDx and AT+DATACUTx settings are stored in special location, user can use below command to clear them.
533 533  
534 534  
535 -* (% style="color:#037691" %)**AT Command:**
536 +* ** AT Command:**
536 536  
537 -(% style="color:#4f81bd" %)**AT+CMDEAR=mm,nn** (%%) mm: start position of erase ,nn: stop position of erase
538 +**~ AT+CMDEAR=mm,nn**   mm: start position of erase ,nn: stop position of erase
538 538  
539 539  
540 540  Etc. AT+CMDEAR=1,10 means erase AT+COMMAND1/AT+DATACUT1 to AT+COMMAND10/AT+DATACUT10
541 541  
542 542  
543 -* (% style="color:#037691" %)** Downlink Payload:**
544 +* ** Downlink Payload:**
544 544  
545 -(% style="color:#4f81bd" %)**0x09 aa bb**(%%)  same as AT+CMDEAR=aa,bb
546 +**~ 0x09 aa bb**  same as AT+CMDEAR=aa,bb
546 546  
547 547  
548 548  
549 -(% style="color:blue" %)**command combination**
550 550  
551 +**command combination**
552 +
551 551  Below shows a screen shot how the results combines together to a uplink payload.
552 552  
553 -[[image:1675215745275-920.png]]
555 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image029.png]]
554 554  
555 555  
556 -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.
558 +If user dont want to use DATACUT for some command, he simply want to uplink all returns. AT+ALLDATAMOD can be set to 1.
557 557  
558 -(% 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.
560 +**AT+ALLDATAMOD** will simply get all return and dont 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.
559 559  
560 560  
561 -(% 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.
563 +For example: as below photo, AT+ALLDATAMOD=1, but AT+DATACUT1 has been set, AT+DATACUT1 will be still effect the result.
562 562  
563 563  
564 -[[image:1675215782925-448.png]]
566 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image030.png]]
565 565  
566 566  
567 -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.
569 +If AT+ALLDATAMOD=1, **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.
568 568  
569 569  
570 570  
571 -(% style="color:blue" %)**Compose Uplink**
573 +**Compose Uplink**
572 572  
573 -(% style="color:#4f81bd" %)**AT+DATAUP=0**
575 +**AT+DATAUP=0**
574 574  
575 -Compose the uplink payload with value returns in sequence and send with **__A SIGNLE UPLINK__**.
577 +Compose the uplink payload with value returns in sequence and send with A SIGNLE UPLINK.
576 576  
577 -Final Payload is **__Battery Info+PAYVER + VALID Value from RETURN1 + Valid Value from RETURN2 + … + RETURNx__**
579 +Final Payload is Battery Info+PAYVER + VALID Value from RETURN1 + Valid Value from RETURN2 + … + RETURNx
578 578  
579 579  Where PAYVER is defined by AT+PAYVER, below is an example screen shot.
580 580  
581 581  
582 -[[image:1675215828102-844.png]]
584 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image031.png]]
583 583  
584 584  
585 -(% style="color:#4f81bd" %)**AT+DATAUP=1**
587 +**AT+DATAUP=1**
586 586  
587 -Compose the uplink payload with value returns in sequence and send with **__Multiply UPLINKs__**.
589 +Compose the uplink payload with value returns in sequence and send with Multiply UPLINKs.
588 588  
589 -Final Payload is __**Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA**__
591 +Final Payload is
590 590  
593 +**Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA**
594 +
591 591  1. Battery Info (2 bytes): Battery voltage
592 592  1. PAYVER (1 byte): Defined by AT+PAYVER
593 593  1. PAYLOAD COUNT (1 byte): Total how many uplinks of this sampling.
... ... @@ -594,46 +594,58 @@
594 594  1. PAYLOAD# (1 byte): Number of this uplink. (from 0,1,2,3…,to PAYLOAD COUNT)
595 595  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
596 596  
597 -[[image:1675215848113-696.png]]
601 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image032.png]]
598 598  
599 599  
600 -(% style="color:red" %)**Notice: the Max bytes is according to the max support bytes in different Frequency Bands for lowest SF. As below:**
604 +**Notice: the Max bytes is according to the max support bytes in different Frequency Bands for lowest SF. As below:**
601 601  
602 -* For AU915/AS923 bands, if UplinkDwell time=0, max 51 bytes for each uplink ( so 51 -5 = 46 max valid date)
603 -* For AU915/AS923 bands, if UplinkDwell time=1, max 11 bytes for each uplink ( so 11 -5 = 6 max valid date).
604 -* For US915 band, max 11 bytes for each uplink ( so 11 -5 = 6 max valid date).
605 -* For all other bands: max 51 bytes for each uplink  ( so 51 -5 = 46 max valid date).
606 + ~* For AU915/AS923 bands, if UplinkDwell time=0, max 51 bytes for each uplink ( so 51 -5 = 46 max valid date)
606 606  
607 -(% style="color:red" %)**When AT+DATAUP=1, the maximum number of segments is 15, and the maximum total number of bytes is 1500;**
608 + * For AU915/AS923 bands, if UplinkDwell time=1, max 11 bytes for each uplink ( so 11 -5 = 6 max valid date).
608 608  
609 -(% 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.**
610 + * For US915 band, max 11 bytes for each uplink ( so 11 -5 = 6 max valid date).
610 610  
612 + ~* For all other bands: max 51 bytes for each uplink  ( so 51 -5 = 46 max valid date).
611 611  
612 -== 2.4 Uplink Payload ==
614 + *** When AT+DATAUP=1, the maximum number of segments is 15, and the maximum total number of bytes is 1500;**
613 613  
614 -=== 2.4.1 Device Payload, FPORT~=5 ===
616 +**~ When AT+DATAUP=1 and AT+ADR=0, the maximum number of bytes of each payload is determined by the DR value.**
615 615  
618 +1.
619 +11. Uplink Payload
616 616  
621 +Uplink payloads have two types:
622 +
623 +* Distance Value: Use FPORT=2
624 +* Other control commands: Use other FPORT fields.
625 +
626 +The application server should parse the correct value based on FPORT settings.
627 +
628 +
629 +1.
630 +11.
631 +111. Device Payload, FPORT=5
632 +
617 617  Include device configure status. Once SDI-12-LB Joined the network, it will uplink this message to the server.
618 618  
635 +
619 619  Users can also use the downlink command(0x26 01) to ask SDI-12-LB to resend this uplink.
620 620  
621 -(% border="1" cellspacing="4" style="background-color:#f7faff; width:420px" %)
622 -|(% colspan="6" style="width:434px" %)**Device Status (FPORT=5)**
623 -|(% style="width:114px" %)**Size(bytes)**|(% style="width:39px" %)**1**|(% style="width:80px" %)**2**|(% style="width:89px" %)**1**|(% style="width:59px" %)**1**|(% style="width:37px" %)**2**
624 -|(% style="width:114px" %)**Value**|(% style="width:39px" %)Sensor Model|(% style="width:80px" %)Firmware Version|(% style="width:89px" %)Frequency Band|(% style="width:59px" %)Sub-band|(% style="width:37px" %)BAT
625 625  
639 +|(% colspan="6" %)**Device Status (FPORT=5)**
640 +|**Size (bytes)**|**1**|**2**|**1**|**1**|**2**
641 +|**Value**|Sensor Model|Firmware Version|Frequency Band|Sub-band|BAT
642 +
626 626  Example parse in TTNv3
627 627  
628 -[[image:1675215946738-635.png]]
645 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image033.png]]
629 629  
647 +**Sensor Model**: For SDI-12-LB, this value is 0x17
630 630  
631 -(% style="color:#037691" %)**Sensor Model**(%%): For SDI-12-LB, this value is 0x17
649 +**Firmware Version**: 0x0100, Means: v1.0.0 version
632 632  
633 -(% style="color:#037691" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version
651 +**Frequency Band**:
634 634  
635 -(% style="color:#037691" %)**Frequency Band**:
636 -
637 637  *0x01: EU868
638 638  
639 639  *0x02: US915
... ... @@ -663,7 +663,7 @@
663 663  *0x0e: MA869
664 664  
665 665  
666 -(% style="color:#037691" %)**Sub-Band**:
682 +**Sub-Band**:
667 667  
668 668  AU915 and US915:value 0x00 ~~ 0x08
669 669  
... ... @@ -672,7 +672,7 @@
672 672  Other Bands: Always 0x00
673 673  
674 674  
675 -(% style="color:#037691" %)**Battery Info**:
691 +**Battery Info**:
676 676  
677 677  Check the battery voltage.
678 678  
... ... @@ -681,9 +681,10 @@
681 681  Ex2: 0x0B49 = 2889mV
682 682  
683 683  
684 -=== 2.4.2 Uplink Payload, FPORT~=2 ===
700 +1.
701 +11.
702 +111. Uplink Payload, FPORT=2
685 685  
686 -
687 687  There are different cases for uplink. See below
688 688  
689 689  * SDI-12 Debug Command return: FPORT=100
... ... @@ -690,24 +690,30 @@
690 690  
691 691  * Periodically Uplink: FPORT=2
692 692  
693 -(% border="1" cellspacing="4" style="background-color:#f7faff; width:500px" %)
694 -|=(% style="width: 90px;" %)(((
695 -**Size(bytes)**
696 -)))|=(% style="width: 80px;" %)**2**|=(% style="width: 90px;" %)**1**|=(% style="width: 240px;" %)**Length depends on the return from the commands**
697 -|(% style="width:93px" %)**Value**|(% style="width:83px" %)(((
710 +|(((
711 +**Size**
712 +
713 +**(bytes)**
714 +)))|**2**|**1**|**Length depends on the return from the commands**
715 +|**Value**|(((
698 698  Battery(mV)
717 +
699 699  &
719 +
700 700  Interrupt_Flag
701 -)))|(% style="width:91px" %)[[PAYLOAD_VER>>||anchor="H3.6Setthepayloadversion"]]|(% style="width:212px" %)(((
702 -If the valid payload is too long and exceed the maximum support.
721 +)))|[[PAYLOAD_VER>>path:#Probe_Model]]|(((
722 +If the valid payload is too long and exceed the maximum support
723 +
703 703  Payload length in server,server will show payload not provided in the LoRaWAN server.
704 704  )))
705 705  
706 -[[image:1675216282284-923.png]]
727 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image034.png]]
707 707  
708 708  
709 -=== 2.4.3 Battery Info ===
710 710  
731 +1.
732 +11.
733 +111. Battery Info
711 711  
712 712  Check the battery voltage for SDI-12-LB.
713 713  
... ... @@ -716,12 +716,14 @@
716 716  Ex2: 0x0B49 = 2889mV
717 717  
718 718  
719 -=== 2.4.4 Interrupt Pin ===
742 +1.
743 +11.
744 +111. Interrupt Pin
720 720  
746 +This data field shows if this packet is generated by **Interrupt Pin** or not. [[Click here>>path:#Int_mod]] for the hardware and software set up. Note: The Internet Pin is a separate pin in the screw terminal. See [[pin mapping>>path:#pins]].
721 721  
722 -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"]].
723 723  
724 -**Example:**
749 +Example:
725 725  
726 726  Ex1: 0x0B45:0x0B&0x80= 0x00    Normal uplink packet.
727 727  
... ... @@ -728,127 +728,242 @@
728 728  Ex2: 0x8B49:0x8B&0x80= 0x80    Interrupt Uplink Packet.
729 729  
730 730  
731 -=== 2.4.5 Payload version ===
756 +1.
757 +11.
758 +111. Payload version
732 732  
733 -The version number of the payload, mainly used for decoding. The default is 01.
734 734  
735 735  
736 -=== 2.4.6 ​Decode payload in The Things Network ===
737 737  
738 738  
764 +1.
765 +11.
766 +111. ​Decode payload in The Things Network
767 +
739 739  While using TTN network, you can add the payload format to decode the payload.
740 740  
741 -[[image:1675216779406-595.png]]
770 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image035.png]]
742 742  
743 743  
744 744  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.
745 745  
746 -SDI-12-LB TTN Payload Decoder: [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>url:https://github.com/dragino/dragino-end-node-decoder]]
747 747  
776 +下面的解码生成超链接放进去.
748 748  
749 -== 2.5 Uplink Interval ==
778 +function Decoder(bytes, port) {
750 750  
780 + if(port==5)
751 751  
752 -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:
782 + {
753 753  
754 -[[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]]
784 + var freq_band;
755 755  
786 + var sub_band;
756 756  
757 -== 2.6 Examples To Set SDI commands. ==
788 + var sensor;
758 758  
759 -=== 2.6.1 Examples 1 ===
760 760  
791 + if(bytes[0]==0x17)
761 761  
762 -COM port and SDI-12 sensor communication converted to SDI-12-LB and SDI-12 sensor communication.
793 + sensor= "SDI12-LB";
763 763  
764 -[[image:image-20230222143809-1.png||height="564" width="729"]]
765 765  
796 + var firm_ver= (bytes[1]&0x0f)+'.'+(bytes[2]>>4&0x0f)+'.'+(bytes[2]&0x0f);
766 766  
767 -(% style="color:blue" %)**1) The AT+COMMANDx command is applied to the red arrow part, and sends the SDI12 command to the SDI12 sensor:**
768 768  
769 -a. Send the first command and get the first reply:
799 + if(bytes[3]==0x01)
770 770  
771 -(% style="color:#037691" %)**AT+COMMANDx=1I!,0,0,1**
801 + freq_band="EU868";
772 772  
773 -b. Send the second command and get the second reply
803 + else if(bytes[3]==0x02)
774 774  
775 -(% style="color:#037691" %)**AT+COMMANDx=2I!,0,0,1**
805 + freq_band="US915";
776 776  
777 -c. Send the third command and get the third reply
807 + else if(bytes[3]==0x03)
778 778  
779 -(% style="color:#037691" %)**AT+COMMANDx=3I!,0,0,1**
809 + freq_band="IN865";
780 780  
781 -d. Send the fourth command and get the fourth reply:
811 + else if(bytes[3]==0x04)
782 782  
783 -(% style="color:#037691" %)**AT+COMMANDx=4I!,0,0,1**
813 + freq_band="AU915";
784 784  
785 -e. Send the fifth command plus the sixth command, get the sixth reply:
815 + else if(bytes[3]==0x05)
786 786  
787 -(% style="color:#037691" %)**AT+COMMANDx=1M!,2,1,1**
817 + freq_band="KZ865";
788 788  
789 -f. Send the seventh command plus the eighth command, get the eighth reply:
819 + else if(bytes[3]==0x06)
790 790  
791 -(% style="color:#037691" %)**AT+COMMANDx=2M!,2,1,1**
821 + freq_band="RU864";
792 792  
793 -g. Send the ninth command plus the tenth command, get the tenth reply:
823 + else if(bytes[3]==0x07)
794 794  
795 -(% style="color:#037691" %)**AT+COMMANDx=3M!,1,1,1**
825 + freq_band="AS923";
796 796  
797 -h. Send the eleventh command plus the twelfth command, get the twelfth reply:
827 + else if(bytes[3]==0x08)
798 798  
799 -(% style="color:#037691" %)**AT+COMMANDx=4M!,1,1,1**
829 + freq_band="AS923_1";
800 800  
831 + else if(bytes[3]==0x09)
801 801  
802 -(% style="color:blue" %)**2) The AT+DATACUTx command is applied to the green arrow part, receiving and cut out data from the SDI12 sensor:**
833 + freq_band="AS923_2";
803 803  
804 -a. The first reply, all 34 characters: ”113TRUEBNERSMT100038220303182331<CR><LF>”
835 + else if(bytes[3]==0x0A)
805 805  
806 -Cut out all characters: (% style="color:#037691" %)**AT+ALLDATAMOD=1 or AT+DATACUTx=34,2,1~~34**;
837 + freq_band="AS923_3";
807 807  
808 -b. The sixth reply, all 31 characters:”1+19210+1.04+0.00+22.49+11.75<CR><LF>”
839 + else if(bytes[3]==0x0F)
809 809  
810 -Cut out all characters: (% style="color:#037691" %)**AT+ALLDATAMOD=1 or AT+DATACUTx=31,2,1~~31**;
841 + freq_band="AS923_4";
811 811  
812 -c. The eighth reply, all 31 characters:”2+18990+1.08+0.00+22.24+11.80<CR><LF>”
843 + else if(bytes[3]==0x0B)
813 813  
814 -Cut out all characters: (% style="color:#037691" %)**AT+ALLDATAMOD=1 or AT+DATACUTx=31,2,1~~31**;
845 + freq_band="CN470";
815 815  
816 -d. The tenth reply, all 15 characters:”3-2919.8+24.0<CR><LF>”
847 + else if(bytes[3]==0x0C)
817 817  
818 -Cut out all characters: (% style="color:#037691" %)**AT+ALLDATAMOD=1 or AT+DATACUTx=15,2,1~~15**;
849 + freq_band="EU433";
819 819  
820 -e. The twelfth reply, all 25 characters:”4+30.8+22.84+4.7+954.38<CR><LF>”
851 + else if(bytes[3]==0x0D)
821 821  
822 -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”**.
853 + freq_band="KR920";
823 823  
855 + else if(bytes[3]==0x0E)
824 824  
825 -== 2.7 Frequency Plans ==
857 + freq_band="MA869";
826 826  
827 827  
828 -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.
860 + if(bytes[4]==0xff)
829 829  
830 -[[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/]]
862 + sub_band="NULL";
831 831  
864 + else
832 832  
833 -== 2.8 Firmware Change Log ==
866 + sub_band=bytes[4];
834 834  
835 835  
869 + var bat= (bytes[5]<<8 | bytes[6])/1000;
870 +
871 +
872 + return {
873 +
874 + SENSOR_MODEL:sensor,
875 +
876 + FIRMWARE_VERSION:firm_ver,
877 +
878 + FREQUENCY_BAND:freq_band,
879 +
880 + SUB_BAND:sub_band,
881 +
882 + BAT:bat,
883 +
884 + }
885 +
886 + }
887 +
888 + else if(port==100)
889 +
890 + {
891 +
892 + var datas_sum={};
893 +
894 + for(var j=0;j<bytes.length;j++)
895 +
896 + {
897 +
898 + var datas= String.fromCharCode(bytes[j]);
899 +
900 + if(j=='0')
901 +
902 + datas_sum.datas_sum=datas;
903 +
904 + else
905 +
906 + datas_sum.datas_sum+=datas;
907 +
908 + }
909 +
910 +
911 + return datas_sum;
912 +
913 + }
914 +
915 + else
916 +
917 + {
918 +
919 + var decode={};
920 +
921 + decode.EXTI_Trigger= (bytes[0] & 0x80)? "TRUE":"FALSE";  
922 +
923 + decode.BatV= ((bytes[0]<<8 | bytes[1])&0x7FFF)/1000;
924 +
925 + decode.Payver= bytes[2];
926 +
927 + for(var i=3;i<bytes.length;i++)
928 +
929 + {
930 +
931 + var data= String.fromCharCode(bytes[i]);
932 +
933 + if(i=='3')
934 +
935 + decode.data_sum=data;
936 +
937 + else
938 +
939 + decode.data_sum+=data;
940 +
941 + }
942 +
943 + return decode; 
944 +
945 + }
946 +
947 +
948 +}
949 +
950 +
951 +1.
952 +11. Uplink Interval
953 +
954 +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:
955 +
956 +[[http:~~/~~/wiki.dragino.com/index.php?title=End_Device_AT_Commands_and_Downlink_Commands#Change_Uplink_Interval>>url:http://wiki.dragino.com/index.php?title=End_Device_AT_Commands_and_Downlink_Commands#Change_Uplink_Interval]]
957 +
958 +
959 +
960 +1.
961 +11. Frequency Plans
962 +
963 +The SDI12-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.
964 +
965 +
966 +[[https:~~/~~/wiki.dragino.com/index.php?title=End_Device_Frequency_Band>>url:https://wiki.dragino.com/index.php?title=End_Device_Frequency_Band]]
967 +
968 +
969 +
970 +1.
971 +11. Firmware Change Log
972 +
836 836  **Firmware download link:**
837 837  
838 -[[https:~~/~~/www.dropbox.com/sh/qrbgbikb109lkiv/AACBR-v_ZhZAMengcY7Nsa1ja?dl=0>>https://www.dropbox.com/sh/qrbgbikb109lkiv/AACBR-v_ZhZAMengcY7Nsa1ja?dl=0]]
975 +[[https:~~/~~/www.dropbox.com/sh/gf1glloczbzz19h/AABbuYI4WY6VdAmpXo6o1V2Ka?dl=0>>url:https://www.dropbox.com/sh/gf1glloczbzz19h/AABbuYI4WY6VdAmpXo6o1V2Ka?dl=0]]
839 839  
840 840  
841 -= 3. Configure SDI-12-LB via AT Command or LoRaWAN Downlink =
842 842  
979 +1. Configure SDI-12-LB via AT Command or LoRaWAN Downlink
843 843  
844 844  Use can configure SDI-12-LB via AT Command or LoRaWAN Downlink.
845 845  
846 -* AT Command Connection: See [[FAQ>>||anchor="H7.FAQ"]].
847 -* LoRaWAN Downlink instruction for different platforms: See [[IoT LoRaWAN Server>>http://wiki.dragino.com/xwiki/bin/view/Main/]] section.
983 +* AT Command Connection: See [[FAQ>>path:#AT_COMMAND]].
984 +* LoRaWAN Downlink instruction for different platforms:
848 848  
986 +[[http:~~/~~/wiki.dragino.com/index.php?title=Main_Page#Use_Note_for_Server>>url:http://wiki.dragino.com/index.php?title=Main_Page#Use_Note_for_Server]]
987 +
988 +
849 849  There are two kinds of commands to configure SDI-12-LB, they are:
850 850  
851 -* (% style="color:blue" %)**General Commands**.
991 +* **General Commands**.
852 852  
853 853  These commands are to configure:
854 854  
... ... @@ -857,242 +857,255 @@
857 857  
858 858  They are same for all Dragino Device which support DLWS-005 LoRaWAN Stack. These commands can be found on the wiki:
859 859  
860 -[[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/]]
1000 +[[http:~~/~~/wiki.dragino.com/index.php?title=End_Device_Downlink_Command>>url:http://wiki.dragino.com/index.php?title=End_Device_Downlink_Command]]
861 861  
862 862  
863 -* (% style="color:blue" %)**Commands special design for SDI-12-LB**
1003 +* **Commands special design for SDI-12-LB**
864 864  
865 865  These commands only valid for SDI-12-LB, as below:
866 866  
867 867  
868 -== 3.1 Set Transmit Interval Time ==
869 869  
1009 +1.
1010 +11. Set Transmit Interval Time
870 870  
871 871  Feature: Change LoRaWAN End Node Transmit Interval.
872 872  
873 -(% style="color:blue" %)**AT Command: AT+TDC**
1014 +**AT Command: AT+TDC**
874 874  
875 -(% border="1" cellspacing="4" style="background-color:#f7faff; color:black; width:510px" %)
876 -|=(% style="width: 156px;" %)**Command Example**|=(% style="width: 137px;" %)**Function**|=**Response**
877 -|(% style="width:156px" %)AT+TDC=?|(% style="width:137px" %)Show current transmit Interval|(((
1016 +|**Command Example**|**Function**|**Response**
1017 +|AT+TDC=?|Show current transmit Interval|(((
878 878  30000
1019 +
879 879  OK
1021 +
880 880  the interval is 30000ms = 30s
881 881  )))
882 -|(% style="width:156px" %)AT+TDC=60000|(% style="width:137px" %)Set Transmit Interval|(((
1024 +|AT+TDC=60000|Set Transmit Interval|(((
883 883  OK
1026 +
884 884  Set transmit interval to 60000ms = 60 seconds
885 885  )))
886 886  
887 -(% style="color:blue" %)**Downlink Command: 0x01**
1030 +**Downlink Command: 0x01**
888 888  
889 -
890 890  Format: Command Code (0x01) followed by 3 bytes time value.
891 891  
892 -If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01.
1034 +If the downlink payload=0100003C, it means set the END Nodes Transmit Interval to 0x00003C=60(S), while type code is 01.
893 893  
894 -* Example 1: Downlink Payload: 0100001E  ~/~/ Set Transmit Interval (TDC) = 30 seconds
895 -* Example 2: Downlink Payload: 0100003C  ~/~/  Set Transmit Interval (TDC) = 60 seconds
1036 +* Example 1: Downlink Payload: 0100001E ~/~/ Set Transmit Interval (TDC) = 30 seconds
1037 +* Example 2: Downlink Payload: 0100003C ~/~/ Set Transmit Interval (TDC) = 60 seconds
896 896  
1039 +1.
1040 +11. Set Interrupt Mode
897 897  
898 -
899 -== 3.2 Set Interrupt Mode ==
900 -
901 -
902 902  Feature, Set Interrupt mode for GPIO_EXIT.
903 903  
904 -(% style="color:blue" %)**AT Command: AT+INTMOD**
1044 +**AT Command: AT+INTMOD**
905 905  
906 -(% border="1" cellspacing="4" style="background-color:#f7faff; color:black; width:510px" %)
907 -|=(% style="width: 156px;" %)**Command Example**|=(% style="width: 187px;" %)**Function**|=(% style="width: 165px;" %)**Response**
908 -|(% style="width:156px" %)AT+INTMOD=?|(% style="width:187px" %)Show current interrupt mode|(% style="width:165px" %)(((
1046 +|**Command Example**|**Function**|**Response**
1047 +|AT+INTMOD=?|Show current interrupt mode|(((
909 909  0
1049 +
910 910  OK
911 -the mode is 0 = Disable Interrupt
1051 +
1052 +the mode is 0 = No interruption
912 912  )))
913 -|(% style="width:156px" %)AT+INTMOD=2|(% style="width:187px" %)(((
1054 +|AT+INTMOD=2|(((
914 914  Set Transmit Interval
915 -0. (Disable Interrupt),
916 -~1. (Trigger by rising and falling edge)
917 -2. (Trigger by falling edge)
918 -3. (Trigger by rising edge)
919 -)))|(% style="width:165px" %)OK
920 920  
921 -(% style="color:blue" %)**Downlink Command: 0x06**
1057 +1. (Disable Interrupt),
1058 +1. (Trigger by rising and falling edge),
1059 +1. (Trigger by falling edge)
1060 +1. (Trigger by rising edge)
1061 +)))|OK
922 922  
1063 +**Downlink Command: 0x06**
1064 +
923 923  Format: Command Code (0x06) followed by 3 bytes.
924 924  
925 925  This means that the interrupt mode of the end node is set to 0x000003=3 (rising edge trigger), and the type code is 06.
926 926  
927 -* Example 1: Downlink Payload: 06000000  ~/~/  Turn off interrupt mode
928 -* Example 2: Downlink Payload: 06000003  ~/~/  Set the interrupt mode to rising edge trigger
1069 +* Example 1: Downlink Payload: 06000000 ~/~/ Turn off interrupt mode
1070 +* Example 2: Downlink Payload: 06000003 ~/~/ Set the interrupt mode to rising edge trigger
929 929  
1072 +1.
1073 +11. Set the output time
930 930  
931 -
932 -== 3.3 Set the output time ==
933 -
934 -
935 935  Feature, Control the output 3V3 , 5V or 12V.
936 936  
937 -(% style="color:blue" %)**AT Command: AT+3V3T**
1077 +**AT Command: AT+3V3T**
938 938  
939 -(% border="1" cellspacing="4" style="background-color:#f7faff; color:black; width:474px" %)
940 -|=(% style="width: 154px;" %)**Command Example**|=(% style="width: 201px;" %)**Function**|=(% style="width: 116px;" %)**Response**
941 -|(% style="width:154px" %)AT+3V3T=?|(% style="width:201px" %)Show 3V3 open time.|(% style="width:116px" %)(((
1079 +|**Command Example**|**Function**|**Response**
1080 +|AT+3V3T=?|Show 3V3 open time.|(((
942 942  0
1082 +
943 943  OK
944 944  )))
945 -|(% style="width:154px" %)AT+3V3T=0|(% style="width:201px" %)Normally open 3V3 power supply.|(% style="width:116px" %)(((
1085 +|AT+3V3T=0|Normally open 3V3 power supply.|(((
946 946  OK
1087 +
947 947  default setting
948 948  )))
949 -|(% style="width:154px" %)AT+3V3T=1000|(% style="width:201px" %)Close after a delay of 1000 milliseconds.|(% style="width:116px" %)(((
1090 +|AT+3V3T=1000|Close after a delay of 1000 milliseconds.|(((
950 950  OK
1092 +
1093 +
951 951  )))
952 -|(% style="width:154px" %)AT+3V3T=65535|(% style="width:201px" %)Normally closed 3V3 power supply.|(% style="width:116px" %)(((
1095 +|AT+3V3T=65535|Normally closed 3V3 power supply.|(((
953 953  OK
1097 +
1098 +
954 954  )))
955 955  
956 -(% style="color:blue" %)**AT Command: AT+5VT**
1101 +**AT Command: AT+5VT**
957 957  
958 -(% border="1" cellspacing="4" style="background-color:#f7faff; color:black; width:470px" %)
959 -|=(% style="width: 155px;" %)**Command Example**|=(% style="width: 196px;" %)**Function**|=(% style="width: 114px;" %)**Response**
960 -|(% style="width:155px" %)AT+5VT=?|(% style="width:196px" %)Show 5V open time.|(% style="width:114px" %)(((
1103 +|**Command Example**|**Function**|**Response**
1104 +|AT+5VT=?|Show 5V open time.|(((
961 961  0
1106 +
962 962  OK
963 963  )))
964 -|(% style="width:155px" %)AT+5VT=0|(% style="width:196px" %)Normally closed 5V power supply.|(% style="width:114px" %)(((
1109 +|AT+5VT=0|Normally closed 5V power supply.|(((
965 965  OK
1111 +
966 966  default setting
967 967  )))
968 -|(% style="width:155px" %)AT+5VT=1000|(% style="width:196px" %)Close after a delay of 1000 milliseconds.|(% style="width:114px" %)(((
1114 +|AT+5VT=1000|Close after a delay of 1000 milliseconds.|(((
969 969  OK
1116 +
1117 +
970 970  )))
971 -|(% style="width:155px" %)AT+5VT=65535|(% style="width:196px" %)Normally open 5V power supply.|(% style="width:114px" %)(((
1119 +|AT+5VT=65535|Normally open 5V power supply.|(((
972 972  OK
1121 +
1122 +
973 973  )))
974 974  
975 -(% style="color:blue" %)**AT Command: AT+12VT**
1125 +**AT Command: AT+12VT**
976 976  
977 -(% border="1" cellspacing="4" style="background-color:#f7faff; color:black; width:443px" %)
978 -|=(% style="width: 156px;" %)**Command Example**|=(% style="width: 199px;" %)**Function**|=(% style="width: 83px;" %)**Response**
979 -|(% style="width:156px" %)AT+12VT=?|(% style="width:199px" %)Show 12V open time.|(% style="width:83px" %)(((
1127 +|**Command Example**|**Function**|**Response**
1128 +|AT+12VT=?|Show 12V open time.|(((
980 980  0
1130 +
981 981  OK
982 982  )))
983 -|(% style="width:156px" %)AT+12VT=0|(% style="width:199px" %)Normally closed 12V power supply.|(% style="width:83px" %)OK
984 -|(% style="width:156px" %)AT+12VT=500|(% style="width:199px" %)Close after a delay of 500 milliseconds.|(% style="width:83px" %)(((
1133 +|AT+12VT=0|Normally closed 12V power supply.|OK
1134 +|AT+12VT=500|Close after a delay of 500 milliseconds.|(((
985 985  OK
1136 +
1137 +
986 986  )))
987 987  
988 -(% style="color:blue" %)**Downlink Command: 0x07**
1140 +**Downlink Command: 0x07**
989 989  
990 990  Format: Command Code (0x07) followed by 3 bytes.
991 991  
992 992  The first byte is which power, the second and third bytes are the time to turn on.
993 993  
994 -* Example 1: Downlink Payload: 070101F4  **~-~-->**  AT+3V3T=500
995 -* Example 2: Downlink Payload: 0701FFFF   **~-~-->**  AT+3V3T=65535
996 -* Example 3: Downlink Payload: 070203E8  **~-~-->**  AT+5VT=1000
997 -* Example 4: Downlink Payload: 07020000  **~-~-->**  AT+5VT=0
998 -* Example 5: Downlink Payload: 070301F4  **~-~-->**  AT+12VT=500
999 -* Example 6: Downlink Payload: 07030000  **~-~-->**  AT+12VT=0
1146 +* Example 1: Downlink Payload: 070101F4  -> AT+3V3T=500
1147 +* Example 2: Downlink Payload: 0701FFFF   -> AT+3V3T=65535
1148 +* Example 3: Downlink Payload: 070203E8  -> AT+5VT=1000
1149 +* Example 4: Downlink Payload: 07020000  -> AT+5VT=0
1150 +* Example 5: Downlink Payload: 070301F4  -> AT+12VT=500
1151 +* Example 6: Downlink Payload: 07030000  -> AT+12VT=0
1000 1000  
1153 +1.
1154 +11. Set the all data mode
1001 1001  
1002 -
1003 -== 3.4 Set the all data mode ==
1004 -
1005 -
1006 1006  Feature, Set the all data mode.
1007 1007  
1008 -(% style="color:blue" %)**AT Command: AT+ALLDATAMOD**
1158 +**AT Command: AT+ALLDATAMOD**
1009 1009  
1010 -(% border="1" cellspacing="4" style="background-color:#f7faff; width:437px" %)
1011 -|=**Command Example**|=**Function**|=**Response**
1160 +|**Command Example**|**Function**|**Response**
1012 1012  |AT+ALLDATAMOD=?|Show current all data mode|(((
1013 1013  0
1163 +
1164 +
1014 1014  OK
1015 1015  )))
1016 1016  |AT+ALLDATAMOD=1|Set all data mode is 1.|OK
1017 1017  
1018 -(% style="color:blue" %)**Downlink Command: 0xAB**
1169 +**Downlink Command: 0xAB**
1019 1019  
1020 1020  Format: Command Code (0xAB) followed by 1 bytes.
1021 1021  
1022 -* Example 1: Downlink Payload: AB 00  ~/~/  AT+ALLDATAMOD=0
1023 -* Example 2: Downlink Payload: AB 01  ~/~/  AT+ALLDATAMOD=1
1173 +* Example 1: Downlink Payload: AB 00 ~/~/ AT+ALLDATAMOD=0
1174 +* Example 2: Downlink Payload: AB 01 ~/~/ AT+ALLDATAMOD=1
1024 1024  
1176 +1.
1177 +11. Set the splicing payload for uplink
1025 1025  
1026 -
1027 -== 3.5 Set the splicing payload for uplink ==
1028 -
1029 -
1030 1030  Feature, splicing payload for uplink.
1031 1031  
1032 -(% style="color:blue" %)**AT Command: AT+DATAUP**
1181 +**AT Command: AT+DATAUP**
1033 1033  
1034 -(% border="1" cellspacing="4" style="background-color:#f7faff; width:510px" %)
1035 -|=(% style="width: 154px;" %)**Command Example**|=(% style="width: 266px;" %)**Function**|=**Response**
1036 -|(% style="width:154px" %)AT+DATAUP =?|(% style="width:266px" %)Show current splicing payload for uplink mode|(((
1183 +|**Command Example**|**Function**|**Response**
1184 +|AT+DATAUP =?|Show current splicing payload for uplink mode|(((
1037 1037  0
1186 +
1187 +
1038 1038  OK
1039 1039  )))
1040 -|(% style="width:154px" %)AT+DATAUP =0|(% style="width:266px" %)(((
1190 +|AT+DATAUP =0|(((
1041 1041  Set splicing payload for uplink mode is 0.
1192 +
1193 +
1042 1042  )))|(((
1043 1043  OK
1196 +
1197 +
1044 1044  )))
1045 -|(% style="width:154px" %)AT+DATAUP =1|(% style="width:266px" %)Set splicing payload for uplink mode is 1 , and the each splice uplink is sent sequentially.|OK
1046 -|(% style="width:154px" %)AT+DATAUP =1,20000|(% style="width:266px" %)(((
1047 -Set splicing payload for uplink mode is 1, and the uplink interval of each splice to 20000 milliseconds.
1199 +|AT+DATAUP =1|Set splicing payload for uplink mode is 1 , and the each splice uplink is sent sequentially.|OK
1200 +|AT+DATAUP =1,20000|(((
1201 +Set splicing payload for uplink mode is 1, and the uplink interval of each splice to 20000 milliseconds.
1202 +
1203 +
1048 1048  )))|OK
1049 1049  
1050 -(% style="color:blue" %)**Downlink Command: 0xAD**
1206 +**Downlink Command: 0xAD**
1051 1051  
1052 1052  Format: Command Code (0xAD) followed by 1 bytes or 5 bytes.
1053 1053  
1054 -* Example 1: Downlink Payload: AD 00  ~/~/  AT+DATAUP=0
1055 -* Example 2: Downlink Payload: AD 01  ~/~/  AT+DATAUP =1
1056 -* Example 3: Downlink Payload: AD 01 00 00 14  ~/~/  AT+DATAUP =1,20000
1210 +* Example 1: Downlink Payload: AD 00 ~/~/ AT+DATAUP=0
1211 +* Example 2: Downlink Payload: AD 01 ~/~/ AT+DATAUP =1
1212 +* Example 3: Downlink Payload: AD 01 00 00 14~/~/ AT+DATAUP =1,20000
1057 1057  
1058 1058  This means that the interval is set to 0x000014=20S
1059 1059  
1060 1060  
1061 -== 3.6 Set the payload version ==
1217 +1.
1218 +11. Set the payload version
1062 1062  
1063 -
1064 1064  Feature, Set the payload version.
1065 1065  
1066 -(% style="color:blue" %)**AT Command: AT+PAYVER**
1222 +**AT Command: AT+PAYVER**
1067 1067  
1068 -(% border="1" cellspacing="4" style="background-color:#f7faff; width:437px" %)
1069 -|=(% style="width: 158px;" %)**Command Example**|=(% style="width: 192px;" %)**Function**|=**Response**
1070 -|(% style="width:158px" %)AT+PAYVER=?|(% style="width:192px" %)Show current payload version|(((
1224 +|**Command Example**|**Function**|**Response**
1225 +|AT+PAYVER=?|Show current payload version|(((
1071 1071  1
1227 +
1228 +
1072 1072  OK
1073 1073  )))
1074 -|(% style="width:158px" %)AT+PAYVER=5|(% style="width:192px" %)Set payload version is 5.|OK
1231 +|AT+PAYVER=5|Set payload version is 5.|OK
1075 1075  
1076 -(% style="color:blue" %)**Downlink Command: 0xAE**
1233 +**Downlink Command: 0xAE**
1077 1077  
1078 1078  Format: Command Code (0xAE) followed by 1 bytes.
1079 1079  
1080 -* Example 1: Downlink Payload: AE 01  ~/~/  AT+PAYVER=1
1081 -* Example 2: Downlink Payload: AE 05  ~/~/  AT+PAYVER=5
1237 +* Example 1: Downlink Payload: AE 01 ~/~/ AT+PAYVER=1
1238 +* Example 2: Downlink Payload: AE 05 ~/~/ AT+PAYVER=5
1082 1082  
1240 +1. Battery & how to replace
1241 +11. Battery Type
1083 1083  
1243 +SDI-12-LB is equipped with a [[8500mAH ER26500 Li-SOCI2 battery>>url:https://www.dragino.com/downloads/index.php?dir=datasheet/Battery/ER26500/]]. The battery is un-rechargeable battery with low discharge rate targeting for 8~~10 years use. This type of battery is commonly used in IoT target for long-term running, such as water meter.
1084 1084  
1085 -= 4. Battery & how to replace =
1086 1086  
1087 -== 4.1 Battery Type ==
1088 -
1089 -
1090 -SDI-12-LB is equipped with a [[8500mAH ER26500 Li-SOCI2 battery>>https://www.dropbox.com/sh/w9l2oa3ytpculph/AAAPtt-apH4lYfCj-2Y6lHvQa?dl=0]]. The battery is un-rechargeable battery with low discharge rate targeting for 8~~10 years use. This type of battery is commonly used in IoT target for long-term running, such as water meter.
1091 -
1092 -
1093 1093  The discharge curve is not linear so can’t simply use percentage to show the battery level. Below is the battery performance.
1094 1094  
1095 -[[image:1675234124233-857.png]]
1248 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image036.png]]
1096 1096  
1097 1097  
1098 1098  Minimum Working Voltage for the SDI-12-LB:
... ... @@ -1100,25 +1100,31 @@
1100 1100  SDI-12-LB:  2.45v ~~ 3.6v
1101 1101  
1102 1102  
1103 -== 4.2 Replace Battery ==
1256 +1.
1257 +11. Replace Battery
1104 1104  
1105 -
1106 1106  Any battery with range 2.45 ~~ 3.6v can be a replacement. We recommend to use Li-SOCl2 Battery.
1107 1107  
1108 1108  And make sure the positive and negative pins match.
1109 1109  
1110 1110  
1111 -== 4.3 Power Consumption Analyze ==
1112 1112  
1265 +1.
1266 +11. Power Consumption Analyze
1113 1113  
1114 1114  Dragino Battery powered product are all runs in Low Power mode. We have an update battery calculator which base on the measurement of the real device. User can use this calculator to check the battery life and calculate the battery life if want to use different transmit interval.
1115 1115  
1270 +
1116 1116  Instruction to use as below:
1117 1117  
1118 -(% style="color:blue" %)**Step 1:**(%%) Downlink the up-to-date DRAGINO_Battery_Life_Prediction_Table.xlsx from: [[https:~~/~~/www.dropbox.com/sh/zwex6i331j5oeq2/AACIMf9f_v2qsJ39CuMQ5Py_a?dl=0>>https://www.dropbox.com/sh/zwex6i331j5oeq2/AACIMf9f_v2qsJ39CuMQ5Py_a?dl=0]]
1119 1119  
1120 -(% style="color:blue" %)**Step 2:**(%%) Open it and choose
1274 +Step 1: Downlink the up-to-date DRAGINO_Battery_Life_Prediction_Table.xlsx from:
1121 1121  
1276 +[[https:~~/~~/www.dragino.com/downloads/index.php?dir=LoRa_End_Node/Battery_Analyze/>>url:https://www.dragino.com/downloads/index.php?dir=LoRa_End_Node/Battery_Analyze/]]
1277 +
1278 +
1279 +Step 2: Open it and choose
1280 +
1122 1122  * Product Model
1123 1123  * Uplink Interval
1124 1124  * Working Mode
... ... @@ -1125,47 +1125,56 @@
1125 1125  
1126 1126  And the Life expectation in difference case will be shown on the right.
1127 1127  
1287 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image037.png]]
1128 1128  
1129 -[[image:1675234155374-163.png]]
1130 1130  
1131 -
1132 1132  The battery related documents as below:
1133 1133  
1134 -* [[Battery Dimension>>https://www.dropbox.com/s/ox5g9njwjle7aw3/LSN50-Battery-Dimension.pdf?dl=0]],
1135 -* [[Lithium-Thionyl Chloride Battery datasheet, Tech Spec>>https://www.dropbox.com/sh/d4oyfnp8o94180o/AABQewCNSh5GPeQH86UxRgQQa?dl=0]]
1136 -* [[Lithium-ion Battery-Capacitor datasheet>>https://www.dropbox.com/s/791gjes2lcbfi1p/SPC_1520_datasheet.jpg?dl=0]], [[Tech Spec>>https://www.dropbox.com/s/4pkepr9qqqvtzf2/SPC1520%20Technical%20Specification20171123.pdf?dl=0]]
1292 +* [[Battery Dimension>>url:http://www.dragino.com/downloads/index.php?dir=datasheet/Battery/&file=LSN50-Battery-Dimension.pdf]],
1293 +* [[Lithium-Thionyl Chloride Battery>>url:http://www.dragino.com/downloads/downloads/datasheet/Battery/ER18505_datasheet-EN.pdf]] datasheet, [[Tech Spec>>url:http://www.dragino.com/downloads/downloads/datasheet/Battery/ER18505_datasheet_PM-ER18505-S-02-LF_EN.pdf]]
1294 +* [[Lithium-ion Battery-Capacitor datasheet>>url:http://www.dragino.com/downloads/downloads/datasheet/Battery/SPC_1520_datasheet.jpg]], [[Tech Spec>>url:http://www.dragino.com/downloads/downloads/datasheet/Battery/SPC1520%20Technical%20Specification20171123.pdf]]
1137 1137  
1138 -[[image:image-20230201145019-19.png]]
1296 +|(((
1297 +JST-XH-2P connector
1298 +)))
1139 1139  
1300 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image038.png]]
1140 1140  
1141 -=== 4.3.1 ​Battery Note ===
1142 1142  
1143 1143  
1304 +1.
1305 +11.
1306 +111. ​Battery Note
1307 +
1144 1144  The Li-SICO battery is designed for small current / long period application. It is not good to use a high current, short period transmit method. The recommended minimum period for use of this battery is 5 minutes. If you use a shorter period time to transmit LoRa, then the battery life may be decreased.
1145 1145  
1146 1146  
1147 -=== 4.3.2 Replace the battery ===
1311 +1.
1312 +11.
1313 +111. ​Replace the battery
1148 1148  
1315 +You can change the battery in the SDI-12-LB.The type of battery is not limited as long as the output is between 3v to 3.6v. On the main board, there is a diode (D1) between the battery and the main circuit. If you need to use a battery with less than 3.3v, please remove the D1 and shortcut the two pads of it so there won’t be voltage drop between battery and main board.
1149 1149  
1150 -You can change the battery in the SDI-12-LB.The type of battery is not limited as long as the output is between 3v to 3.6v. On the main board, there is a diode (D1) between the battery and the main circuit. If you need to use a battery with less than 3.3v, please remove the D1 and shortcut the two pads of it so there won't be voltage drop between battery and main board.
1151 1151  
1152 -The default battery pack of SDI-12-LB includes a ER26500 plus super capacitor. If user can't find this pack locally, they can find ER26500 or equivalence, which will also work in most case. The SPC can enlarge the battery life for high frequency use (update period below 5 minutes)
1318 +The default battery pack of SDI-12-LB includes a ER26500 plus super capacitor. If user cant find this pack locally, they can find ER26500 or equivalence, which will also work in most case. The SPC can enlarge the battery life for high frequency use (update period below 5 minutes)
1153 1153  
1154 1154  
1155 -= 5. Remote Configure device =
1156 1156  
1157 -== 5.1 Connect via BLE ==
1158 1158  
1159 1159  
1160 -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/]]
1161 1161  
1325 +1. Remote Configure device
1326 +11. Connect via BLE
1162 1162  
1163 -== 5.2 AT Command Set ==
1328 +Please see this instruction for how to configure via BLE:
1164 1164  
1330 +[[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/]]
1165 1165  
1166 1166  
1167 -= 6. OTA firmware update =
1333 +1.
1334 +11. AT Command Set
1168 1168  
1336 +1. OTA firmware update
1169 1169  
1170 1170  Please see this link for how to do OTA firmware update.
1171 1171  
... ... @@ -1172,59 +1172,23 @@
1172 1172  [[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/]]
1173 1173  
1174 1174  
1175 -= 7. FAQ =
1176 1176  
1177 -== 7.1 How to use AT Command to access device? ==
1178 1178  
1179 1179  
1180 -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]]
1181 1181  
1182 1182  
1183 -== 7.2 How to update firmware via UART port? ==
1184 1184  
1185 1185  
1186 -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]]
1187 1187  
1188 1188  
1189 -== 7.3 How to change the LoRa Frequency Bands/Region? ==
1352 +1. ​Order Info
1190 1190  
1354 +**Package Includes**:
1191 1191  
1192 -You can follow the instructions for [[how to upgrade image>>doc:Main.Firmware Upgrade Instruction for STM32 base products.WebHome]].
1193 -When downloading the images, choose the required image file for download. ​
1356 +* SDI-12-LB SDI-12 to LoRaWAN Converter
1194 1194  
1358 +**Dimension and weight**:
1195 1195  
1196 -= 8. ​Order Info =
1197 -
1198 -
1199 -(((
1200 -(% style="color:blue" %)**Part Number: SDI-12-LB-XXX**
1201 -)))
1202 -
1203 -(((
1204 -XXX: The default frequency band
1205 -)))
1206 -
1207 -(((
1208 -(% style="color:red" %)**AS923**(%%): LoRaWAN AS923 band
1209 -(% style="color:red" %)**AU915**(%%): LoRaWAN AU915 band
1210 -(% style="color:red" %)**EU433**(%%): LoRaWAN EU433 band
1211 -(% style="color:red" %)**EU868**(%%): LoRaWAN EU868 band
1212 -(% style="color:red" %)**KR920**(%%): LoRaWAN KR920 band
1213 -(% style="color:red" %)**US915**(%%): LoRaWAN US915 band
1214 -(% style="color:red" %)**IN865**(%%): LoRaWAN IN865 band
1215 -(% style="color:red" %)**CN470**(%%): LoRaWAN CN470 band
1216 -)))
1217 -
1218 -
1219 -= 9. Packing Info =
1220 -
1221 -
1222 -(% style="color:#037691" %)**Package Includes**:
1223 -
1224 -* SDI-12-LB SDI-12 to LoRaWAN Converter x 1
1225 -
1226 -(% style="color:#037691" %)**Dimension and weight**:
1227 -
1228 1228  * Device Size: cm
1229 1229  * Device Weight: g
1230 1230  * Package Size / pcs : cm
... ... @@ -1232,11 +1232,11 @@
1232 1232  
1233 1233  
1234 1234  
1235 -= 10. ​Support =
1367 +1. ​Support
1236 1236  
1237 -
1238 1238  * 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.
1370 +* 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
1239 1239  
1240 -* 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]]
1372 +[[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]]
1241 1241  
1242 1242  
1675215828102-844.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -231.3 KB
Content
1675215848113-696.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -50.5 KB
Content
1675215946738-635.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -38.4 KB
Content
1675216282284-923.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -47.0 KB
Content
1675216779406-595.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -59.2 KB
Content
1675234124233-857.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -75.8 KB
Content
1675234155374-163.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -138.2 KB
Content
image-20230201145019-19.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -82.2 KB
Content
image-20230201152430-20.jpeg
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -16.5 KB
Content
image-20230222143809-1.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Bei
Size
... ... @@ -1,1 +1,0 @@
1 -322.1 KB
Content