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