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

From version 56.1
edited by Edwin Chen
on 2023/06/03 12:12
Change comment: There is no comment for this version
To version 35.1
edited by Xiaoling
on 2023/02/01 09:45
Change comment: Uploaded new attachment "1675215946738-635.png", version {1}

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.Edwin
1 +XWiki.Xiaoling
Content
... ... @@ -1,9 +1,8 @@
1 1  (% style="text-align:center" %)
2 -[[image:image-20230131183542-1.jpeg||_mstalt="470678" height="694" width="694"]]
2 +[[image:image-20230131183542-1.jpeg||height="694" width="694"]]
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 -[[image:image-20230201084414-1.png||_mstalt="427765" height="464" width="1108"]]
37 +[[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,24 +65,21 @@
65 65  * Downlink to change configure
66 66  * 8500mAh Battery for long term use
67 67  
68 -
69 69  == 1.3 Specification ==
70 70  
71 71  
72 -(% style="color:#037691" %)**Micro Controller:**
62 +**Micro Controller:**
73 73  
74 74  * MCU: 48Mhz ARM
75 75  * Flash: 256KB
76 76  * RAM: 64KB
77 77  
78 -(% style="color:#037691" %)**Common DC Characteristics:**
68 +**Common DC Characteristics:**
79 79  
80 80  * Supply Voltage: 2.5v ~~ 3.6v
81 -* Support current: 5V 300mA
82 - 12V 100mA
83 83  * Operating Temperature: -40 ~~ 85°C
84 84  
85 -(% style="color:#037691" %)**LoRa Spec:**
73 +**LoRa Spec:**
86 86  
87 87  * Frequency Range,  Band 1 (HF): 862 ~~ 1020 Mhz
88 88  * Max +22 dBm constant RF output vs.
... ... @@ -89,19 +89,19 @@
89 89  * RX sensitivity: down to -139 dBm.
90 90  * Excellent blocking immunity
91 91  
92 -(% style="color:#037691" %)**Current Input Measuring :**
80 +**Current Input Measuring :**
93 93  
94 94  * Range: 0 ~~ 20mA
95 95  * Accuracy: 0.02mA
96 96  * Resolution: 0.001mA
97 97  
98 -(% style="color:#037691" %)**Voltage Input Measuring:**
86 +**Voltage Input Measuring:**
99 99  
100 100  * Range: 0 ~~ 30v
101 101  * Accuracy: 0.02v
102 102  * Resolution: 0.001v
103 103  
104 -(% style="color:#037691" %)**Battery:**
92 +**Battery:**
105 105  
106 106  * Li/SOCI2 un-chargeable battery
107 107  * Capacity: 8500mAh
... ... @@ -109,51 +109,50 @@
109 109  * Max continuously current: 130mA
110 110  * Max boost current: 2A, 1 second
111 111  
112 -(% style="color:#037691" %)**Power Consumption**
100 +**Power Consumption**
113 113  
114 114  * Sleep Mode: 5uA @ 3.3v
115 115  * LoRa Transmit Mode: 125mA @ 20dBm, 82mA @ 14dBm
116 116  
117 -
118 118  == 1.4 Connect to SDI-12 Sensor ==
119 119  
120 120  
121 121  
122 -[[image:1675212538524-889.png||_mstalt="298272"]]
109 +[[image:1675212538524-889.png]]
123 123  
124 124  
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 ==
134 134  
135 135  
136 -[[image:1675212633011-651.png||_mstalt="291538"]]
123 +[[image:1675212633011-651.png]]
137 137  
138 138  
139 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
140 -|=(% 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**
141 -|(% 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" %)(((
126 +
127 +(% border="1" cellspacing="4" style="background-color:#f7faff; color:black; width:510px" %)
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="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" %)(((
146 -(% 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.
147 -(% style="background-color:#f2f2f2; color:green" %)**Green led**(%%) will solidly turn on for 5 seconds after joined in network.
133 +|(% style="width:167px" %)Pressing ACT for more than 3s|(% style="width:117px" %)Active Device|(% style="width:225px" %)(((
134 +(% 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.
135 +(% 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="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.
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 153  == 1.7 Pin Mapping ==
154 154  
155 155  
156 -[[image:1675213198663-754.png||_mstalt="297167"]]
143 +[[image:1675213198663-754.png]]
157 157  
158 158  
159 159  == 1.8 BLE connection ==
... ... @@ -173,19 +173,22 @@
173 173  == 1.9 Mechanical ==
174 174  
175 175  
176 -[[image:image-20230201090139-2.png||_mstalt="428623"]]
177 177  
178 -[[image:image-20230201090139-3.png||_mstalt="428987"]]
179 179  
180 -[[image:image-20230201090139-4.png||_mstalt="429351"]]
181 181  
166 +[[image:image-20230201090139-2.png]]
182 182  
168 +[[image:image-20230201090139-3.png]]
169 +
170 +[[image:image-20230201090139-4.png]]
171 +
172 +
183 183  = 2. Configure SDI-12 to connect to LoRaWAN network =
184 184  
185 185  == 2.1 How it works ==
186 186  
187 187  
188 -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.
189 189  
190 190  
191 191  == 2.2 Quick guide to connect to LoRaWAN server (OTAA) ==
... ... @@ -194,56 +194,60 @@
194 194  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.
195 195  
196 196  
197 -[[image:image-20230201090528-5.png||_mstalt="430300" height="465" width="1111"]]
187 +[[image:image-20230201090528-5.png||height="465" width="1111"]]
198 198  
199 199  
200 200  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.
201 201  
202 202  
203 -(% 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.
204 204  
205 205  Each SDI-12-LB is shipped with a sticker with the default device EUI as below:
206 206  
207 207  
208 -[[image:image-20230426084456-1.png||height="241" width="519"]]
198 +[[image:image-20230131134744-2.jpeg]]
209 209  
210 210  
201 +
202 +
203 +
211 211  You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:
212 212  
213 213  
214 -(% style="color:blue" %)**Register the device**
207 +**Register the device**
215 215  
216 -[[image:1675213652444-622.png||_mstalt="293657"]]
209 +[[image:1675213652444-622.png]]
217 217  
218 218  
219 -(% style="color:blue" %)**Add APP EUI and DEV EUI**
212 +**Add APP EUI and DEV EUI**
220 220  
221 221  
222 -[[image:1675213661769-223.png||_mstalt="295217"]]
215 +[[image:1675213661769-223.png]]
223 223  
224 224  
225 -(% style="color:blue" %)**Add APP EUI in the application**
218 +**Add APP EUI in the application**
226 226  
227 227  
228 -[[image:1675213675852-577.png||_mstalt="297947"]]
221 +[[image:1675213675852-577.png]]
229 229  
230 230  
231 -(% style="color:blue" %)**Add APP KEY**
224 +**Add APP KEY**
232 232  
233 -[[image:1675213686734-883.png||_mstalt="298064"]]
226 +[[image:1675213686734-883.png]]
234 234  
235 235  
236 -(% style="color:blue" %)**Step 2**(%%): Activate on SDI-12-LB
229 +**Step 2**: Activate on SDI-12-LB
237 237  
238 238  
239 239  Press the button for 5 seconds to activate the SDI-12-LB.
240 240  
241 -(% 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.
242 242  
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.
243 243  
244 -[[image:1675213704414-644.png||_mstalt="293748"]]
245 245  
238 +[[image:1675213704414-644.png]]
246 246  
240 +
247 247  == ​2.3 SDI-12 Related Commands ==
248 248  
249 249  
... ... @@ -260,80 +260,79 @@
260 260  The following is the display information on the serial port and the server.
261 261  
262 262  
263 -[[image:image-20230201091027-6.png||_mstalt="429065"]]
264 264  
258 +[[image:image-20230201091027-6.png]]
265 265  
266 -[[image:image-20230201091027-7.png||_mstalt="429429" height="261" width="1179"]]
267 267  
261 +[[image:image-20230201091027-7.png||height="261" width="1179"]]
268 268  
269 269  
270 -==== (% style="color:blue" %)**al!  ~-~- Get SDI-12 sensor Identification**(%%) ====
264 +==== **al!  ~-~- Get SDI-12 sensor Identification** ====
271 271  
272 272  
273 273  * AT Command: AT+ADDRI=aa
274 274  * LoRaWAN Downlink(prefix 0xAA00): AA 00 aa
275 275  
276 -(% 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)
277 277  
278 -(% 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)
279 279  
280 280  
281 281  The following is the display information on the serial port and the server.
282 282  
283 283  
284 -[[image:image-20230201091257-8.png||_mstalt="431392"]]
278 +[[image:image-20230201091257-8.png]]
285 285  
286 286  
287 -[[image:image-20230201091257-9.png||_mstalt="431756" height="225" width="1242"]]
281 +[[image:image-20230201091257-9.png||height="225" width="1242"]]
288 288  
289 289  
290 -==== (% style="color:blue" %)**aM!,aMC!, aM1!- aM9!, aMC1!- aMC9!**(%%) ====
284 +==== **aM!,aMC!, aM1!- aM9!, aMC1!- aMC9!** ====
291 291  
292 292  
293 -(% style="color:red" %)**aM! **(%%): Start Non-Concurrent Measurement
287 +**aM! **: Start Non-Concurrent Measurement
294 294  
295 -(% style="color:red" %)**aMC! **(%%): Start Non-Concurrent Measurement – Request CRC
289 +**aMC! **: Start Non-Concurrent Measurement – Request CRC
296 296  
297 -(% style="color:red" %)**aM1!- aM9! **(%%): Additional Measurements
291 +**aM1!- aM9! **: Additional Measurements
298 298  
299 -(% style="color:red" %)**aMC1!- aMC9!**(%%) : Additional Measurements – Request CRC
293 +**aMC1!- aMC9!** : Additional Measurements – Request CRC
300 300  
301 301  
302 302  * AT Command : AT+ADDRM=0,1,0,1
303 -
304 304  * LoRaWAN Downlink(prefix 0xAA01): 0xAA 01 30 01 00 01
305 305  
306 306  Downlink:AA 01 aa bb cc dd
307 307  
308 -(% style="color:#037691" %)**aa**(%%): SDI-12 sensor address.
301 +**aa**: SDI-12 sensor address.
309 309  
310 -(% style="color:#037691" %)**bb**(%%): 0: no CRC, 1: request CRC
303 +**bb**: 0: no CRC, 1: request CRC
311 311  
312 -(% style="color:#037691" %)**cc**(%%): 1-9: Additional Measurement, 0: no additional measurement
305 +**cc**: 1-9: Additional Measurement, 0: no additional measurement
313 313  
314 -(% 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.
315 315  
316 316  
317 317  The following is the display information on the serial port and the server.
318 318  
319 319  
320 -[[image:image-20230201091630-10.png||_mstalt="449995"]]
313 +[[image:image-20230201091630-10.png]]
321 321  
322 322  
323 -[[image:image-20230201091630-11.png||_mstalt="450372" height="247" width="1165"]]
316 +[[image:image-20230201091630-11.png||height="247" width="1165"]]
324 324  
325 325  
326 326  
327 -==== (% style="color:blue" %)**aC!, aCC!,  aC1!- aC9!,  aCC1!- aCC9! **(%%) ====
320 +==== **aC!, aCC!,  aC1!- aC9!,  aCC1!- aCC9! ** ====
328 328  
329 329  
330 -(% style="color:red" %)**aC!**(%%) : Start Concurrent Measurement
323 +**aC!** : Start Concurrent Measurement
331 331  
332 -(% style="color:red" %)**aCC!** (%%): Start Concurrent Measurement – Request CRC
325 +**aCC!** : Start Concurrent Measurement – Request CRC
333 333  
334 -(% style="color:red" %)**aC1!- aC9!**(%%) : Start Additional Concurrent Measurements
327 +**aC1!- aC9!** : Start Additional Concurrent Measurements
335 335  
336 -(% style="color:red" %)**aCC1!- aCC9!**(%%) : Start Additional Concurrent Measurements – Request CRC
329 +**aCC1!- aCC9!** : Start Additional Concurrent Measurements – Request CRC
337 337  
338 338  
339 339  * AT Command : AT+ADDRC=0,1,0,1 
... ... @@ -342,29 +342,29 @@
342 342  
343 343  Downlink: AA 02 aa bb cc dd
344 344  
345 -(% style="color:#037691" %)**aa**(%%): SDI-12 sensor address.
338 +**aa**: SDI-12 sensor address.
346 346  
347 -(% style="color:#037691" %)**bb**(%%): 0: no CRC, 1: request CRC
340 +**bb**: 0: no CRC, 1: request CRC
348 348  
349 -(% style="color:#037691" %)**cc**(%%): 1-9: Additional Measurement, 0: no additional measurement
342 +**cc**: 1-9: Additional Measurement, 0: no additional measurement
350 350  
351 -(% 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.
352 352  
353 353  
354 354  The following is the display information on the serial port and the server.
355 355  
356 356  
357 -[[image:image-20230201091954-12.png||_mstalt="453687"]]
350 +[[image:image-20230201091954-12.png]]
358 358  
359 359  
360 -[[image:image-20230201091954-13.png||_mstalt="454064" height="203" width="1117"]]
353 +[[image:image-20230201091954-13.png||height="203" width="1117"]]
361 361  
362 362  
356 +(% style="display:none" %) (%%)
363 363  
358 +==== **aR0!- aR9!,  aRC0!- aRC9!** ====
364 364  
365 -==== (% style="color:blue" %)**aR0!- aR9!,  aRC0!- aRC9!**(%%) ====
366 366  
367 -
368 368  Start Continuous Measurement
369 369  
370 370  Start Continuous Measurement – Request CRC
... ... @@ -375,46 +375,47 @@
375 375  
376 376  Downlink: AA 03 aa bb cc dd
377 377  
378 -(% style="color:#037691" %)**aa**(%%): SDI-12 sensor address.
371 +**aa**: SDI-12 sensor address.
379 379  
380 -(% style="color:#037691" %)**bb**(%%): 0: no CRC, 1: request CRC
373 +**bb**: 0: no CRC, 1: request CRC
381 381  
382 -(% style="color:#037691" %)**cc**(%%): 1-9: Additional Measurement, 0: no additional measurement
375 +**cc**: 1-9: Additional Measurement, 0: no additional measurement
383 383  
384 -(% 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.
385 385  
386 386  
387 387  The following is the display information on the serial port and the server.
388 388  
389 389  
390 -[[image:image-20230201092208-14.png||_mstalt="452283"]]
391 391  
384 +[[image:image-20230201092208-14.png]]
392 392  
393 -[[image:image-20230201092208-15.png||_mstalt="452660" height="214" width="1140"]]
394 394  
387 +[[image:image-20230201092208-15.png||height="214" width="1140"]]
395 395  
396 -=== 2.3.2 Advance SDI-12 Debug command ===
397 397  
390 +=== ​​​​​​​2.3.2 Advance SDI-12 Debug command ===
398 398  
392 +
399 399  This command can be used to debug all SDI-12 command.
400 400  
401 401  
402 402  LoRaWAN Downlink: A8 aa xx xx xx xx bb cc
403 403  
404 -(% style="color:#037691" %)**aa **(%%): total SDI-12 command length
398 +**aa **: total SDI-12 command length
405 405  
406 -(% style="color:#037691" %)**xx **(%%): SDI-12 command
400 +**xx **: SDI-12 command
407 407  
408 -(% style="color:#037691" %)**bb **(%%): Delay to wait for return
402 +**bb **: Delay to wait for return
409 409  
410 -(% 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
411 411  
412 412  
413 -(% style="color:blue" %)**Example: **(%%) AT+CFGDEV =0RC0!,1
407 +**Example: **AT+CFGDEV =0RC0!,1
414 414  
415 -(% style="color:#037691" %)**0RC0! **(%%): SDI-12 Command,
409 +**0RC0! **: SDI-12 Command,
416 416  
417 -(% style="color:#037691" %)**1 **(%%): Delay 1 second.  ( 0: 810 mini-second)
411 +**1 **: Delay 1 second.  ( 0: 810 mini-second)
418 418  
419 419  Equal Downlink: 0xA8 05 30 52 43 30 21 01 01
420 420  
... ... @@ -422,12 +422,14 @@
422 422  The following is the display information on the serial port and the server.
423 423  
424 424  
425 -[[image:image-20230201092355-16.png||_mstalt="453960"]]
419 +[[image:image-20230201092355-16.png]]
426 426  
427 427  
428 -[[image:image-20230201092355-17.png||_mstalt="454337" height="426" width="1135"]]
422 +​​​​​​​[[image:image-20230201092355-17.png||height="426" width="1135"]]
429 429  
430 430  
425 +​​​​​​​
426 +
431 431  === 2.3.3 Convert ASCII to String ===
432 432  
433 433  
... ... @@ -436,18 +436,22 @@
436 436  AT+CONVFORM ( Max length: 80 bytes)
437 437  
438 438  
439 -(% style="color:blue" %)**Example:**
435 +**Example:**
440 440  
441 441  1) AT+CONVFORM=0, string Convert String from String to ASCII
442 442  
443 -[[image:1675214845056-885.png||_mstalt="297622"]]
439 +[[image:1675214845056-885.png]]
444 444  
445 445  
446 446  2) AT+CONVFORM=1, ASCII Convert ASCII to String.
447 447  
448 -[[image:1675214856590-846.png||_mstalt="297739"]]
444 +[[image:1675214856590-846.png]]
449 449  
450 450  
447 +
448 +
449 +​​​​​​​
450 +
451 451  === 2.3.4 Define periodically SDI-12 commands and uplink. ===
452 452  
453 453  
... ... @@ -456,137 +456,142 @@
456 456  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.
457 457  
458 458  
459 -* (% style="color:blue" %)**AT Command:**
459 +* ** AT Command:**
460 460  
461 -(% style="color:#037691" %)**AT+COMMANDx=var1,var2,var3,var4.**
461 +**AT+COMMANDx=var1,var2,var3,var4.**
462 462  
463 -(% style="color:red" %)**var1**(%%): SDI-12 command , for example: 0RC0!
463 +**var1**: SDI-12 command , for example: 0RC0!
464 464  
465 -(% style="color:red" %)**var2**(%%): Wait timeout for return. (unit: second)
465 +**var2**: Wait timeout for return. (unit: second)
466 466  
467 -(% 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!//.
468 468  
469 -(% 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.
470 470  
471 -(% style="color:red" %)**0 **(%%) No validation check;
471 +**0 ** No validation check;
472 472  
473 -(% style="color:red" %)**1** (%%) Check if return chars are printable char(0x20 ~~ 0x7E);
473 +**1**  Check if return chars are printable char(0x20 ~~ 0x7E);
474 474  
475 -(% style="color:red" %)**2**(%%)  Check if there is return from SDI-12 sensor
475 +**2**  Check if there is return from SDI-12 sensor
476 476  
477 -(% 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);
478 478  
479 479  
480 -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.
481 481  
482 482  
483 -(% 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.
484 484  
485 -(% border="1" style="width:436px" %)
486 -|(% style="background-color:#f2f2f2; width:433px" %)(((
487 -(% style="color:#0070c0" %)**AT+DATACUTx=a,b,c**
485 +(% border="1" style="background-color:#f7faff; width:436px" %)
486 +|(% style="width:433px" %)(((
487 +AT+DATACUTx=a,b,c
488 488  
489 489  **a**:  length for the return of AT+COMMAND
490 490  
491 -**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.
492 492  
493 493  **c**:  define the position for valid value. 
494 494  )))
495 495  
496 -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:
497 497  
498 498  
499 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
500 -|=(% style="width: 164px;background-color:#D9E2F3;color:#0070C0" %)**AT+DATACUT1 value**|=(% style="width: 344px;background-color:#D9E2F3;color:#0070C0" %)**Final Result to combine Payload**
501 -|(% style="background-color:#f2f2f2; width:164px" %)34,1,1+2+3|(% style="background-color:#f2f2f2; width:344px" %)0D 00 01 30 31 33
502 -|(% 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
503 -|(% 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
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
504 504  
505 -* (% style="color:blue" %)** Downlink Payload:**
504 +* ** Downlink Payload:**
506 506  
507 -(% 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.
508 508  
509 509  
510 -(% 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.**
511 511  
512 512  
513 -Format: ** (% style="color:#037691" %)AF MM NN LL XX XX XX XX YY(%%)**
512 +Format: ** AF MM NN LL XX XX XX XX YY**
514 514  
515 515  Where:
516 516  
517 -* (% style="color:#037691" %)**MM **(%%): the AT+COMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F,
518 -* (% style="color:#037691" %)**NN **(%%):  1: set the AT+COMMAND value ; 2: set the AT+DATACUT value.
519 -* (% style="color:#037691" %)**LL **(%%):  The length of AT+COMMAND or AT+DATACUT command
520 -* (% style="color:#037691" %)**XX XX XX XX **(%%): AT+COMMAND or AT+DATACUT command
521 -* (% 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. 
522 522  
523 -(% style="color:blue" %)**Example:**
522 +Example:
524 524  
525 -[[image:image-20230201094129-18.png||_mstalt="455065"]]
524 +**AF 03 01 07 30 4D 43 21 01 01 01 00**: Same as AT+COMMAND3=**0MC!**,** 1**,** 1**,** 1**
526 526  
526 +**AF 03 02 06 10 01 05 06 09 0A 00**: Same as AT+DATACUT3=**16**,**1**,**5+6+9+10**
527 527  
528 +**AF 03 02 06 0B 02 05 07 08 0A 00**: Same as AT+DATACUT3=**11**,**2**,**5~~7+8~~10**
528 528  
529 -(% style="color:blue" %)**Clear SDI12 Command**
530 530  
531 +**Clear SDI12 Command**
532 +
531 531  The AT+COMMANDx and AT+DATACUTx settings are stored in special location, user can use below command to clear them.
532 532  
533 533  
534 -* (% style="color:#037691" %)**AT Command:**
536 +* ** AT Command:**
535 535  
536 -(% 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
537 537  
538 538  
539 539  Etc. AT+CMDEAR=1,10 means erase AT+COMMAND1/AT+DATACUT1 to AT+COMMAND10/AT+DATACUT10
540 540  
541 541  
542 -* (% style="color:#037691" %)** Downlink Payload:**
544 +* ** Downlink Payload:**
543 543  
544 -(% style="color:#4f81bd" %)**0x09 aa bb**(%%)  same as AT+CMDEAR=aa,bb
546 +**~ 0x09 aa bb**  same as AT+CMDEAR=aa,bb
545 545  
546 546  
547 547  
548 -(% style="color:blue" %)**command combination**
549 549  
551 +**command combination**
552 +
550 550  Below shows a screen shot how the results combines together to a uplink payload.
551 551  
552 -[[image:1675215745275-920.png||_mstalt="295334"]]
555 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image029.png]]
553 553  
554 554  
555 -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.
556 556  
557 -(% 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.
558 558  
559 559  
560 -(% 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.
561 561  
562 562  
563 -[[image:1675215782925-448.png||_mstalt="297466"]]
566 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image030.png]]
564 564  
565 565  
566 -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.
567 567  
568 568  
569 569  
570 -(% style="color:blue" %)**Compose Uplink**
573 +**Compose Uplink**
571 571  
572 -(% style="color:#4f81bd" %)**AT+DATAUP=0**
575 +**AT+DATAUP=0**
573 573  
574 -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.
575 575  
576 -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
577 577  
578 578  Where PAYVER is defined by AT+PAYVER, below is an example screen shot.
579 579  
580 580  
581 -[[image:1675215828102-844.png||_mstalt="294645"]]
584 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image031.png]]
582 582  
583 583  
584 -(% style="color:#4f81bd" %)**AT+DATAUP=1**
587 +**AT+DATAUP=1**
585 585  
586 -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.
587 587  
588 -Final Payload is __**Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA**__
591 +Final Payload is
589 589  
593 +**Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA**
594 +
590 590  1. Battery Info (2 bytes): Battery voltage
591 591  1. PAYVER (1 byte): Defined by AT+PAYVER
592 592  1. PAYLOAD COUNT (1 byte): Total how many uplinks of this sampling.
... ... @@ -593,46 +593,58 @@
593 593  1. PAYLOAD# (1 byte): Number of this uplink. (from 0,1,2,3…,to PAYLOAD COUNT)
594 594  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
595 595  
596 -[[image:1675215848113-696.png||_mstalt="296998"]]
601 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image032.png]]
597 597  
598 598  
599 -(% 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:**
600 600  
601 -* For AU915/AS923 bands, if UplinkDwell time=0, max 51 bytes for each uplink ( so 51 -5 = 46 max valid date)
602 -* For AU915/AS923 bands, if UplinkDwell time=1, max 11 bytes for each uplink ( so 11 -5 = 6 max valid date).
603 -* For US915 band, max 11 bytes for each uplink ( so 11 -5 = 6 max valid date).
604 -* 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)
605 605  
606 -(% 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).
607 607  
608 -(% 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).
609 609  
612 + ~* For all other bands: max 51 bytes for each uplink  ( so 51 -5 = 46 max valid date).
610 610  
611 -== 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;**
612 612  
613 -=== 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.**
614 614  
618 +1.
619 +11. Uplink Payload
615 615  
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 +
616 616  Include device configure status. Once SDI-12-LB Joined the network, it will uplink this message to the server.
617 617  
635 +
618 618  Users can also use the downlink command(0x26 01) to ask SDI-12-LB to resend this uplink.
619 619  
620 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
621 -|(% colspan="6" style="background-color:#d9e2f3; color:#0070c0" %)**Device Status (FPORT=5)**
622 -|(% 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**
623 -|(% 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
624 624  
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 +
625 625  Example parse in TTNv3
626 626  
627 -[[image:1675215946738-635.png||_mstalt="297778"]]
645 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image033.png]]
628 628  
647 +**Sensor Model**: For SDI-12-LB, this value is 0x17
629 629  
630 -(% style="color:#037691" %)**Sensor Model**(%%): For SDI-12-LB, this value is 0x17
649 +**Firmware Version**: 0x0100, Means: v1.0.0 version
631 631  
632 -(% style="color:#037691" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version
651 +**Frequency Band**:
633 633  
634 -(% style="color:#037691" %)**Frequency Band**:
635 -
636 636  *0x01: EU868
637 637  
638 638  *0x02: US915
... ... @@ -662,7 +662,7 @@
662 662  *0x0e: MA869
663 663  
664 664  
665 -(% style="color:#037691" %)**Sub-Band**:
682 +**Sub-Band**:
666 666  
667 667  AU915 and US915:value 0x00 ~~ 0x08
668 668  
... ... @@ -671,7 +671,7 @@
671 671  Other Bands: Always 0x00
672 672  
673 673  
674 -(% style="color:#037691" %)**Battery Info**:
691 +**Battery Info**:
675 675  
676 676  Check the battery voltage.
677 677  
... ... @@ -680,9 +680,10 @@
680 680  Ex2: 0x0B49 = 2889mV
681 681  
682 682  
683 -=== 2.4.2 Uplink Payload, FPORT~=2 ===
700 +1.
701 +11.
702 +111. Uplink Payload, FPORT=2
684 684  
685 -
686 686  There are different cases for uplink. See below
687 687  
688 688  * SDI-12 Debug Command return: FPORT=100
... ... @@ -689,24 +689,30 @@
689 689  
690 690  * Periodically Uplink: FPORT=2
691 691  
692 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:500px" %)
693 -|=(% style="width: 90px;background-color:#D9E2F3" %)(((
694 -**Size(bytes)**
695 -)))|=(% style="width: 80px;background-color:#D9E2F3" %)**2**|=(% style="width: 90px;background-color:#D9E2F3" %)**1**|=(% style="width: 240px;background-color:#D9E2F3" %)**Length depends on the return from the commands**
696 -|(% 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**|(((
697 697  Battery(mV)
717 +
698 698  &
719 +
699 699  Interrupt_Flag
700 -)))|(% style="width:91px" %)[[PAYLOAD_VER>>||anchor="H3.6Setthepayloadversion"]]|(% style="width:212px" %)(((
701 -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 +
702 702  Payload length in server,server will show payload not provided in the LoRaWAN server.
703 703  )))
704 704  
705 -[[image:1675216282284-923.png||_mstalt="295633"]]
727 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image034.png]]
706 706  
707 707  
708 -=== 2.4.3 Battery Info ===
709 709  
731 +1.
732 +11.
733 +111. Battery Info
710 710  
711 711  Check the battery voltage for SDI-12-LB.
712 712  
... ... @@ -715,12 +715,14 @@
715 715  Ex2: 0x0B49 = 2889mV
716 716  
717 717  
718 -=== 2.4.4 Interrupt Pin ===
742 +1.
743 +11.
744 +111. Interrupt Pin
719 719  
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]].
720 720  
721 -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"]].
722 722  
723 -**Example:**
749 +Example:
724 724  
725 725  Ex1: 0x0B45:0x0B&0x80= 0x00    Normal uplink packet.
726 726  
... ... @@ -727,166 +727,242 @@
727 727  Ex2: 0x8B49:0x8B&0x80= 0x80    Interrupt Uplink Packet.
728 728  
729 729  
730 -=== 2.4.5 Payload version ===
756 +1.
757 +11.
758 +111. Payload version
731 731  
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  
764 +1.
765 +11.
766 +111. ​Decode payload in The Things Network
738 738  
739 739  While using TTN network, you can add the payload format to decode the payload.
740 740  
741 -[[image:1675216779406-595.png||_mstalt="298376"]]
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 ~-~- General Example ===
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||_mstalt="429962" 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: (% _mstmutation="1" style="color:#037691" %)**AT+ALLDATAMOD=1 or AT+DATACUTx=34,2,1~~34**(% style="color:#037691" %);
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: (% _mstmutation="1" style="color:#037691" %)**AT+ALLDATAMOD=1 or AT+DATACUTx=31,2,1~~31**(% style="color:#037691" %);
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: (% _mstmutation="1" style="color:#037691" %)**AT+ALLDATAMOD=1 or AT+DATACUTx=31,2,1~~31**(% style="color:#037691" %);
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: (% _mstmutation="1" style="color:#037691" %)**AT+ALLDATAMOD=1 or AT+DATACUTx=15,2,1~~15**(% style="color:#037691" %);
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.6.2 Example ~-~- Connect to Hygrovue10 ===
857 + freq_band="MA869";
826 826  
827 -==== 2.6.2.1 Reference Manual and Command ====
828 828  
829 -* [[Hygrovue10 Product Page>>https://www.campbellsci.com/hygrovue10]]
830 -* Commands to be used in PC and output.
860 + if(bytes[4]==0xff)
831 831  
832 -1.check device address
862 + sub_band="NULL";
833 833  
834 -2.change device address
864 + else
835 835  
836 -3.check device ID
866 + sub_band=bytes[4];
837 837  
838 -4.start measure
839 839  
840 -5.Get Meausre result
869 + var bat= (bytes[5]<<8 | bytes[6])/1000;
841 841  
842 -[[image:image-20230603120209-2.png||height="281" width="267"]]
843 843  
872 + return {
844 844  
845 -==== 2.6.2.2 Hardware Connection to SDI-12-LB ====
874 + SENSOR_MODEL:sensor,
846 846  
847 -[[image:image-20230603120515-3.png]]
876 + FIRMWARE_VERSION:firm_ver,
848 848  
878 + FREQUENCY_BAND:freq_band,
849 849  
850 -==== 2.6.2.3 Commands set in SDI-12-LB and uplink payload ====
880 + SUB_BAND:sub_band,
851 851  
852 -[[image:image-20230603120648-4.png]]
882 + BAT:bat,
853 853  
854 -[[image:image-20230603120726-5.png]]
884 + }
855 855  
856 -Data in TTN:
886 + }
857 857  
858 -[[image:image-20230603120859-6.png||height="118" width="1285"]]
888 + else if(port==100)
859 859  
890 + {
860 860  
892 + var datas_sum={};
861 861  
894 + for(var j=0;j<bytes.length;j++)
862 862  
863 -== 2.7 Frequency Plans ==
896 + {
864 864  
898 + var datas= String.fromCharCode(bytes[j]);
865 865  
866 -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.
900 + if(j=='0')
867 867  
868 -[[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/]]
902 + datas_sum.datas_sum=datas;
869 869  
904 + else
870 870  
871 -== 2.8 Firmware Change Log ==
906 + datas_sum.datas_sum+=datas;
872 872  
908 + }
873 873  
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 +
874 874  **Firmware download link:**
875 875  
876 -[[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]]
877 877  
878 878  
879 -= 3. Configure SDI-12-LB via AT Command or LoRaWAN Downlink =
880 880  
979 +1. Configure SDI-12-LB via AT Command or LoRaWAN Downlink
881 881  
882 882  Use can configure SDI-12-LB via AT Command or LoRaWAN Downlink.
883 883  
884 -* AT Command Connection: See [[FAQ>>||anchor="H7.FAQ"]].
885 -* 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:
886 886  
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 +
887 887  There are two kinds of commands to configure SDI-12-LB, they are:
888 888  
889 -* (% style="color:blue" %)**General Commands**.
991 +* **General Commands**.
890 890  
891 891  These commands are to configure:
892 892  
... ... @@ -895,307 +895,366 @@
895 895  
896 896  They are same for all Dragino Device which support DLWS-005 LoRaWAN Stack. These commands can be found on the wiki:
897 897  
898 -[[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]]
899 899  
900 900  
901 -* (% style="color:blue" %)**Commands special design for SDI-12-LB**
1003 +* **Commands special design for SDI-12-LB**
902 902  
903 903  These commands only valid for SDI-12-LB, as below:
904 904  
905 905  
906 -== 3.1 Set Transmit Interval Time ==
907 907  
1009 +1.
1010 +11. Set Transmit Interval Time
908 908  
909 909  Feature: Change LoRaWAN End Node Transmit Interval.
910 910  
911 -(% style="color:blue" %)**AT Command: AT+TDC**
1014 +**AT Command: AT+TDC**
912 912  
913 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
914 -|=(% 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**
915 -|(% style="background-color:#f2f2f2; width:157px" %)AT+TDC=?|(% style="background-color:#f2f2f2; width:166px" %)Show current transmit Interval|(% style="background-color:#f2f2f2" %)(((
1016 +|**Command Example**|**Function**|**Response**
1017 +|AT+TDC=?|Show current transmit Interval|(((
916 916  30000
1019 +
917 917  OK
1021 +
918 918  the interval is 30000ms = 30s
919 919  )))
920 -|(% style="background-color:#f2f2f2; width:157px" %)AT+TDC=60000|(% style="background-color:#f2f2f2; width:166px" %)Set Transmit Interval|(% style="background-color:#f2f2f2" %)(((
1024 +|AT+TDC=60000|Set Transmit Interval|(((
921 921  OK
1026 +
922 922  Set transmit interval to 60000ms = 60 seconds
923 923  )))
924 924  
925 -(% style="color:blue" %)**Downlink Command: 0x01**
1030 +**Downlink Command: 0x01**
926 926  
927 -
928 928  Format: Command Code (0x01) followed by 3 bytes time value.
929 929  
930 -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.
931 931  
932 -* Example 1: Downlink Payload: 0100001E  ~/~/ Set Transmit Interval (TDC) = 30 seconds
933 -* 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
934 934  
1039 +1.
1040 +11. Set Interrupt Mode
935 935  
936 -== 3.2 Set Interrupt Mode ==
937 -
938 -
939 939  Feature, Set Interrupt mode for GPIO_EXIT.
940 940  
941 -(% style="color:blue" %)**AT Command: AT+INTMOD**
1044 +**AT Command: AT+INTMOD**
942 942  
943 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
944 -|=(% 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**
945 -|(% style="background-color:#f2f2f2; width:154px" %)AT+INTMOD=?|(% style="background-color:#f2f2f2; width:196px" %)Show current interrupt mode|(% style="background-color:#f2f2f2; width:157px" %)(((
1046 +|**Command Example**|**Function**|**Response**
1047 +|AT+INTMOD=?|Show current interrupt mode|(((
946 946  0
1049 +
947 947  OK
948 -the mode is 0 =Disable Interrupt
1051 +
1052 +the mode is 0 = No interruption
949 949  )))
950 -|(% style="background-color:#f2f2f2; width:154px" %)AT+INTMOD=2|(% style="background-color:#f2f2f2; width:196px" %)(((
1054 +|AT+INTMOD=2|(((
951 951  Set Transmit Interval
952 -0. (Disable Interrupt),
953 -~1. (Trigger by rising and falling edge)
954 -2. (Trigger by falling edge)
955 -3. (Trigger by rising edge)
956 -)))|(% style="background-color:#f2f2f2; width:157px" %)OK
957 957  
958 -(% 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
959 959  
1063 +**Downlink Command: 0x06**
1064 +
960 960  Format: Command Code (0x06) followed by 3 bytes.
961 961  
962 962  This means that the interrupt mode of the end node is set to 0x000003=3 (rising edge trigger), and the type code is 06.
963 963  
964 -* Example 1: Downlink Payload: 06000000  ~/~/  Turn off interrupt mode
965 -* 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
966 966  
1072 +1.
1073 +11. Set the output time
967 967  
968 -== 3.3 Set the output time ==
969 -
970 -
971 971  Feature, Control the output 3V3 , 5V or 12V.
972 972  
973 -(% style="color:blue" %)**AT Command: AT+3V3T**
1077 +**AT Command: AT+3V3T**
974 974  
975 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:474px" %)
976 -|=(% 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**
977 -|(% style="background-color:#f2f2f2; width:154px" %)AT+3V3T=?|(% style="background-color:#f2f2f2; width:201px" %)Show 3V3 open time.|(% style="background-color:#f2f2f2; width:116px" %)(((
1079 +|**Command Example**|**Function**|**Response**
1080 +|AT+3V3T=?|Show 3V3 open time.|(((
978 978  0
1082 +
979 979  OK
980 980  )))
981 -|(% 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" %)(((
1085 +|AT+3V3T=0|Normally open 3V3 power supply.|(((
982 982  OK
1087 +
983 983  default setting
984 984  )))
985 -|(% 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" %)(((
1090 +|AT+3V3T=1000|Close after a delay of 1000 milliseconds.|(((
986 986  OK
1092 +
1093 +
987 987  )))
988 -|(% 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" %)(((
1095 +|AT+3V3T=65535|Normally closed 3V3 power supply.|(((
989 989  OK
1097 +
1098 +
990 990  )))
991 991  
992 -(% style="color:blue" %)**AT Command: AT+5VT**
1101 +**AT Command: AT+5VT**
993 993  
994 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:470px" %)
995 -|=(% 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**
996 -|(% style="background-color:#f2f2f2; width:155px" %)AT+5VT=?|(% style="background-color:#f2f2f2; width:196px" %)Show 5V open time.|(% style="background-color:#f2f2f2; width:114px" %)(((
1103 +|**Command Example**|**Function**|**Response**
1104 +|AT+5VT=?|Show 5V open time.|(((
997 997  0
1106 +
998 998  OK
999 999  )))
1000 -|(% 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" %)(((
1109 +|AT+5VT=0|Normally closed 5V power supply.|(((
1001 1001  OK
1111 +
1002 1002  default setting
1003 1003  )))
1004 -|(% 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" %)(((
1114 +|AT+5VT=1000|Close after a delay of 1000 milliseconds.|(((
1005 1005  OK
1116 +
1117 +
1006 1006  )))
1007 -|(% 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" %)(((
1119 +|AT+5VT=65535|Normally open 5V power supply.|(((
1008 1008  OK
1121 +
1122 +
1009 1009  )))
1010 1010  
1011 -(% style="color:blue" %)**AT Command: AT+12VT**
1125 +**AT Command: AT+12VT**
1012 1012  
1013 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:443px" %)
1014 -|=(% 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**
1015 -|(% style="background-color:#f2f2f2; width:156px" %)AT+12VT=?|(% style="background-color:#f2f2f2; width:199px" %)Show 12V open time.|(% style="background-color:#f2f2f2; width:83px" %)(((
1127 +|**Command Example**|**Function**|**Response**
1128 +|AT+12VT=?|Show 12V open time.|(((
1016 1016  0
1130 +
1017 1017  OK
1018 1018  )))
1019 -|(% 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
1020 -|(% 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" %)(((
1133 +|AT+12VT=0|Normally closed 12V power supply.|OK
1134 +|AT+12VT=500|Close after a delay of 500 milliseconds.|(((
1021 1021  OK
1136 +
1137 +
1022 1022  )))
1023 1023  
1024 -(% style="color:blue" %)**Downlink Command: 0x07**
1140 +**Downlink Command: 0x07**
1025 1025  
1026 1026  Format: Command Code (0x07) followed by 3 bytes.
1027 1027  
1028 1028  The first byte is which power, the second and third bytes are the time to turn on.
1029 1029  
1030 -* Example 1: Downlink Payload: 070101F4  **~-~-->**  AT+3V3T=500
1031 -* Example 2: Downlink Payload: 0701FFFF   **~-~-->**  AT+3V3T=65535
1032 -* Example 3: Downlink Payload: 070203E8  **~-~-->**  AT+5VT=1000
1033 -* Example 4: Downlink Payload: 07020000  **~-~-->**  AT+5VT=0
1034 -* Example 5: Downlink Payload: 070301F4  **~-~-->**  AT+12VT=500
1035 -* 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
1036 1036  
1153 +1.
1154 +11. Set the all data mode
1037 1037  
1038 -== 3.4 Set the all data mode ==
1039 -
1040 -
1041 1041  Feature, Set the all data mode.
1042 1042  
1043 -(% style="color:blue" %)**AT Command: AT+ALLDATAMOD**
1158 +**AT Command: AT+ALLDATAMOD**
1044 1044  
1045 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:437px" %)
1046 -|=(% style="background-color:#D9E2F3;color:#0070C0" %)**Command Example**|=(% style="background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="background-color:#D9E2F3;color:#0070C0" %)**Response**
1047 -|(% style="background-color:#f2f2f2" %)AT+ALLDATAMOD=?|(% style="background-color:#f2f2f2" %)Show current all data mode|(% style="background-color:#f2f2f2" %)(((
1160 +|**Command Example**|**Function**|**Response**
1161 +|AT+ALLDATAMOD=?|Show current all data mode|(((
1048 1048  0
1163 +
1164 +
1049 1049  OK
1050 1050  )))
1051 -|(% style="background-color:#f2f2f2" %)AT+ALLDATAMOD=1|(% style="background-color:#f2f2f2" %)Set all data mode is 1.|(% style="background-color:#f2f2f2" %)OK
1167 +|AT+ALLDATAMOD=1|Set all data mode is 1.|OK
1052 1052  
1053 -(% style="color:blue" %)**Downlink Command: 0xAB**
1169 +**Downlink Command: 0xAB**
1054 1054  
1055 1055  Format: Command Code (0xAB) followed by 1 bytes.
1056 1056  
1057 -* Example 1: Downlink Payload: AB 00  ~/~/  AT+ALLDATAMOD=0
1058 -* 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
1059 1059  
1176 +1.
1177 +11. Set the splicing payload for uplink
1060 1060  
1061 -== 3.5 Set the splicing payload for uplink ==
1062 -
1063 -
1064 1064  Feature, splicing payload for uplink.
1065 1065  
1066 -(% style="color:blue" %)**AT Command: AT+DATAUP**
1181 +**AT Command: AT+DATAUP**
1067 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: 266px;background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="background-color:#D9E2F3;color:#0070C0" %)**Response**
1070 -|(% 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" %)(((
1183 +|**Command Example**|**Function**|**Response**
1184 +|AT+DATAUP =?|Show current splicing payload for uplink mode|(((
1071 1071  0
1186 +
1187 +
1072 1072  OK
1073 1073  )))
1074 -|(% style="background-color:#f2f2f2; width:154px" %)AT+DATAUP =0|(% style="background-color:#f2f2f2; width:266px" %)(((
1190 +|AT+DATAUP =0|(((
1075 1075  Set splicing payload for uplink mode is 0.
1076 -)))|(% style="background-color:#f2f2f2" %)(((
1192 +
1193 +
1194 +)))|(((
1077 1077  OK
1196 +
1197 +
1078 1078  )))
1079 -|(% 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
1080 -|(% style="background-color:#f2f2f2; width:154px" %)AT+DATAUP =1,20000|(% style="background-color:#f2f2f2; width:266px" %)(((
1081 -Set splicing payload for uplink mode is 1, and the uplink interval of each splice to 20000 milliseconds.
1082 -)))|(% style="background-color:#f2f2f2" %)OK
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.
1083 1083  
1084 -(% style="color:blue" %)**Downlink Command: 0xAD**
1203 +
1204 +)))|OK
1085 1085  
1206 +**Downlink Command: 0xAD**
1207 +
1086 1086  Format: Command Code (0xAD) followed by 1 bytes or 5 bytes.
1087 1087  
1088 -* Example 1: Downlink Payload: AD 00  ~/~/  AT+DATAUP=0
1089 -* Example 2: Downlink Payload: AD 01  ~/~/  AT+DATAUP =1
1090 -* 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
1091 1091  
1092 1092  This means that the interval is set to 0x000014=20S
1093 1093  
1094 1094  
1095 -== 3.6 Set the payload version ==
1217 +1.
1218 +11. Set the payload version
1096 1096  
1097 -
1098 1098  Feature, Set the payload version.
1099 1099  
1100 -(% style="color:blue" %)**AT Command: AT+PAYVER**
1222 +**AT Command: AT+PAYVER**
1101 1101  
1102 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:437px" %)
1103 -|=(% 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**
1104 -|(% style="background-color:#f2f2f2; width:158px" %)AT+PAYVER=?|(% style="background-color:#f2f2f2; width:192px" %)Show current payload version|(% style="background-color:#f2f2f2" %)(((
1224 +|**Command Example**|**Function**|**Response**
1225 +|AT+PAYVER=?|Show current payload version|(((
1105 1105  1
1227 +
1228 +
1106 1106  OK
1107 1107  )))
1108 -|(% 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
1231 +|AT+PAYVER=5|Set payload version is 5.|OK
1109 1109  
1110 -(% style="color:blue" %)**Downlink Command: 0xAE**
1233 +**Downlink Command: 0xAE**
1111 1111  
1112 1112  Format: Command Code (0xAE) followed by 1 bytes.
1113 1113  
1114 -* Example 1: Downlink Payload: AE 01  ~/~/  AT+PAYVER=1
1115 -* 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
1116 1116  
1240 +1. Battery & how to replace
1241 +11. Battery Type
1117 1117  
1118 -= 4. Battery & Power Consumption =
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.
1119 1119  
1120 1120  
1121 -SDI-12-LB uses ER26500 + SPC1520 battery pack. See below link for detail information about the battery info and how to replace.
1246 +The discharge curve is not linear so can’t simply use percentage to show the battery level. Below is the battery performance.
1122 1122  
1123 -[[**Battery Info & Power Consumption Analyze**>>url:http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] .
1248 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image036.png]]
1124 1124  
1125 1125  
1126 -= 5. Remote Configure device =
1251 +Minimum Working Voltage for the SDI-12-LB:
1127 1127  
1128 -== 5.1 Connect via BLE ==
1253 +SDI-12-LB:  2.45v ~~ 3.6v
1129 1129  
1130 1130  
1131 -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/]]
1256 +1.
1257 +11. Replace Battery
1132 1132  
1259 +Any battery with range 2.45 ~~ 3.6v can be a replacement. We recommend to use Li-SOCl2 Battery.
1133 1133  
1134 -== 5.2 AT Command Set ==
1261 +And make sure the positive and negative pins match.
1135 1135  
1136 1136  
1137 1137  
1138 -= 6. OTA firmware update =
1265 +1.
1266 +11. Power Consumption Analyze
1139 1139  
1268 +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.
1140 1140  
1141 -Please see this link for how to do OTA firmware update.
1142 1142  
1143 -[[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/]]
1271 +Instruction to use as below:
1144 1144  
1145 1145  
1146 -= 7. FAQ =
1274 +Step 1: Downlink the up-to-date DRAGINO_Battery_Life_Prediction_Table.xlsx from:
1147 1147  
1148 -== 7.1 How to use AT Command  via UART to access device? ==
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/]]
1149 1149  
1150 1150  
1151 -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]]
1279 +Step 2: Open it and choose
1152 1152  
1281 +* Product Model
1282 +* Uplink Interval
1283 +* Working Mode
1153 1153  
1154 -== 7.2 How to update firmware via UART port? ==
1285 +And the Life expectation in difference case will be shown on the right.
1155 1155  
1287 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image037.png]]
1156 1156  
1157 -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]]
1158 1158  
1290 +The battery related documents as below:
1159 1159  
1160 -== 7.3 How to change the LoRa Frequency Bands/Region? ==
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]]
1161 1161  
1296 +|(((
1297 +JST-XH-2P connector
1298 +)))
1162 1162  
1163 -You can follow the instructions for [[how to upgrade image>>doc:Main.Firmware Upgrade Instruction for STM32 base products.WebHome]].
1164 -When downloading the images, choose the required image file for download. ​
1300 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image038.png]]
1165 1165  
1166 1166  
1167 -= 8. ​Order Info =
1168 1168  
1304 +1.
1305 +11.
1306 +111. ​Battery Note
1169 1169  
1170 -(((
1171 -(% style="color:blue" %)**Part Number: SDI-12-LB-XXX**
1172 -)))
1308 +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.
1173 1173  
1174 -(((
1175 -XXX: The default frequency band
1176 -)))
1177 1177  
1178 -(((
1179 -(% style="color:red" %)**AS923**(%%): LoRaWAN AS923 band
1180 -(% style="color:red" %)**AU915**(%%): LoRaWAN AU915 band
1181 -(% style="color:red" %)**EU433**(%%): LoRaWAN EU433 band
1182 -(% style="color:red" %)**EU868**(%%): LoRaWAN EU868 band
1183 -(% style="color:red" %)**KR920**(%%): LoRaWAN KR920 band
1184 -(% style="color:red" %)**US915**(%%): LoRaWAN US915 band
1185 -(% style="color:red" %)**IN865**(%%): LoRaWAN IN865 band
1186 -(% style="color:red" %)**CN470**(%%): LoRaWAN CN470 band
1187 -)))
1311 +1.
1312 +11.
1313 +111. ​Replace the battery
1188 1188  
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.
1189 1189  
1190 -= 9. Packing Info =
1191 1191  
1318 +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)
1192 1192  
1193 -(% style="color:#037691" %)**Package Includes**:
1194 1194  
1195 -* SDI-12-LB SDI-12 to LoRaWAN Converter x 1
1196 1196  
1197 -(% style="color:#037691" %)**Dimension and weight**:
1198 1198  
1323 +
1324 +
1325 +1. Remote Configure device
1326 +11. Connect via BLE
1327 +
1328 +Please see this instruction for how to configure via BLE:
1329 +
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/]]
1331 +
1332 +
1333 +1.
1334 +11. AT Command Set
1335 +
1336 +1. OTA firmware update
1337 +
1338 +Please see this link for how to do OTA firmware update.
1339 +
1340 +[[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/]]
1341 +
1342 +
1343 +
1344 +
1345 +
1346 +
1347 +
1348 +
1349 +
1350 +
1351 +
1352 +1. ​Order Info
1353 +
1354 +**Package Includes**:
1355 +
1356 +* SDI-12-LB SDI-12 to LoRaWAN Converter
1357 +
1358 +**Dimension and weight**:
1359 +
1199 1199  * Device Size: cm
1200 1200  * Device Weight: g
1201 1201  * Package Size / pcs : cm
... ... @@ -1202,9 +1202,12 @@
1202 1202  * Weight / pcs : g
1203 1203  
1204 1204  
1205 -= 10. ​Support =
1206 1206  
1367 +1. ​Support
1207 1207  
1208 1208  * 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
1209 1209  
1210 -* 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]]
1373 +
1374 +
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
image-20230426084456-1.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -190.0 KB
Content
image-20230603120127-1.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Edwin
Size
... ... @@ -1,1 +1,0 @@
1 -5.7 KB
Content
image-20230603120209-2.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Edwin
Size
... ... @@ -1,1 +1,0 @@
1 -22.8 KB
Content
image-20230603120515-3.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Edwin
Size
... ... @@ -1,1 +1,0 @@
1 -489.3 KB
Content
image-20230603120648-4.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Edwin
Size
... ... @@ -1,1 +1,0 @@
1 -100.8 KB
Content
image-20230603120726-5.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Edwin
Size
... ... @@ -1,1 +1,0 @@
1 -133.2 KB
Content
image-20230603120859-6.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Edwin
Size
... ... @@ -1,1 +1,0 @@
1 -55.9 KB
Content