Changes for page SDI-12-LB/LS -- SDI-12 to LoRaWAN Converter User Manual
Last modified by Xiaoling on 2025/04/25 08:58
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -3,6 +3,7 @@ 3 3 4 4 **Table of Contents:** 5 5 6 +{{toc/}} 6 6 7 7 8 8 ... ... @@ -16,22 +16,23 @@ 16 16 17 17 18 18 20 + 19 19 = 1. Introduction = 20 20 21 21 == 1.1 What is SDI-12 to LoRaWAN Converter == 22 22 23 23 24 -The Dragino **SDI-12-LB** is a **SDI-12 to LoRaWAN Converter **designed for Smart Agriculture solution. 26 +The Dragino **(% style="color:blue" %)SDI-12-LB**(%%) is a **(% style="color:blue" %)SDI-12 to LoRaWAN Converter **(%%)designed for Smart Agriculture solution. 25 25 26 26 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. 27 27 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.30 +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. 29 29 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.32 +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. 31 31 32 - **SDI-12-LB**is powered by **8500mAh Li-SOCI2 battery**, it is designed for long term use up to 5 years.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. 33 33 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.36 +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. 35 35 36 36 37 37 [[image:image-20230201084414-1.png||height="464" width="1108"]] ... ... @@ -39,8 +39,6 @@ 39 39 40 40 41 41 42 - 43 - 44 44 == 1.2 Features == 45 45 46 46 ... ... @@ -56,21 +56,22 @@ 56 56 * Downlink to change configure 57 57 * 8500mAh Battery for long term use 58 58 59 + 59 59 == 1.3 Specification == 60 60 61 61 62 -**Micro Controller:** 63 +**(% style="color:#037691" %)Micro Controller:** 63 63 64 64 * MCU: 48Mhz ARM 65 65 * Flash: 256KB 66 66 * RAM: 64KB 67 67 68 -**Common DC Characteristics:** 69 +**(% style="color:#037691" %)Common DC Characteristics:** 69 69 70 70 * Supply Voltage: 2.5v ~~ 3.6v 71 71 * Operating Temperature: -40 ~~ 85°C 72 72 73 -**LoRa Spec:** 74 +**(% style="color:#037691" %)LoRa Spec:** 74 74 75 75 * Frequency Range, Band 1 (HF): 862 ~~ 1020 Mhz 76 76 * Max +22 dBm constant RF output vs. ... ... @@ -77,19 +77,19 @@ 77 77 * RX sensitivity: down to -139 dBm. 78 78 * Excellent blocking immunity 79 79 80 -**Current Input Measuring :** 81 +**(% style="color:#037691" %)Current Input Measuring :** 81 81 82 82 * Range: 0 ~~ 20mA 83 83 * Accuracy: 0.02mA 84 84 * Resolution: 0.001mA 85 85 86 -**Voltage Input Measuring:** 87 +**(% style="color:#037691" %)Voltage Input Measuring:** 87 87 88 88 * Range: 0 ~~ 30v 89 89 * Accuracy: 0.02v 90 90 * Resolution: 0.001v 91 91 92 -**Battery:** 93 +**(% style="color:#037691" %)Battery:** 93 93 94 94 * Li/SOCI2 un-chargeable battery 95 95 * Capacity: 8500mAh ... ... @@ -97,11 +97,12 @@ 97 97 * Max continuously current: 130mA 98 98 * Max boost current: 2A, 1 second 99 99 100 -**Power Consumption** 101 +**(% style="color:#037691" %)Power Consumption** 101 101 102 102 * Sleep Mode: 5uA @ 3.3v 103 103 * LoRa Transmit Mode: 125mA @ 20dBm, 82mA @ 14dBm 104 104 106 + 105 105 == 1.4 Connect to SDI-12 Sensor == 106 106 107 107 ... ... @@ -112,9 +112,9 @@ 112 112 == 1.5 Sleep mode and working mode == 113 113 114 114 115 -**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. 116 116 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. 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. 118 118 119 119 120 120 == 1.6 Button & LEDs == ... ... @@ -137,6 +137,7 @@ 137 137 ))) 138 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. 139 139 142 + 140 140 == 1.7 Pin Mapping == 141 141 142 142 ... ... @@ -160,9 +160,6 @@ 160 160 == 1.9 Mechanical == 161 161 162 162 163 - 164 - 165 - 166 166 [[image:image-20230201090139-2.png]] 167 167 168 168 [[image:image-20230201090139-3.png]] ... ... @@ -175,7 +175,7 @@ 175 175 == 2.1 How it works == 176 176 177 177 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. 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. 179 179 180 180 181 181 == 2.2 Quick guide to connect to LoRaWAN server (OTAA) == ... ... @@ -190,7 +190,7 @@ 190 190 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. 191 191 192 192 193 -**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. 194 194 195 195 Each SDI-12-LB is shipped with a sticker with the default device EUI as below: 196 196 ... ... @@ -204,35 +204,35 @@ 204 204 You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot: 205 205 206 206 207 -**Register the device** 207 +**(% style="color:blue" %)Register the device** 208 208 209 209 [[image:1675213652444-622.png]] 210 210 211 211 212 -**Add APP EUI and DEV EUI** 212 +**(% style="color:blue" %)Add APP EUI and DEV EUI** 213 213 214 214 215 215 [[image:1675213661769-223.png]] 216 216 217 217 218 -**Add APP EUI in the application** 218 +**(% style="color:blue" %)Add APP EUI in the application** 219 219 220 220 221 221 [[image:1675213675852-577.png]] 222 222 223 223 224 -**Add APP KEY** 224 +**(% style="color:blue" %)Add APP KEY** 225 225 226 226 [[image:1675213686734-883.png]] 227 227 228 228 229 -**Step 2**: Activate on SDI-12-LB 229 +**(% style="color:blue" %)Step 2**(%%): Activate on SDI-12-LB 230 230 231 231 232 232 Press the button for 5 seconds to activate the SDI-12-LB. 233 233 234 234 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. 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. 236 236 237 237 238 238 [[image:1675213704414-644.png]] ... ... @@ -261,15 +261,15 @@ 261 261 [[image:image-20230201091027-7.png||height="261" width="1179"]] 262 262 263 263 264 -==== **al! ~-~- Get SDI-12 sensor Identification** ==== 264 +==== **(% style="color:blue" %)al! ~-~- Get SDI-12 sensor Identification** ==== 265 265 266 266 267 267 * AT Command: AT+ADDRI=aa 268 268 * LoRaWAN Downlink(prefix 0xAA00): AA 00 aa 269 269 270 -**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) 271 271 272 -**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) 273 273 274 274 275 275 The following is the display information on the serial port and the server. ... ... @@ -281,30 +281,31 @@ 281 281 [[image:image-20230201091257-9.png||height="225" width="1242"]] 282 282 283 283 284 -==== **aM!,aMC!, aM1!- aM9!, aMC1!- aMC9!** ==== 284 +==== **(% style="color:blue" %)aM!,aMC!, aM1!- aM9!, aMC1!- aMC9!** ==== 285 285 286 286 287 -**aM! **: Start Non-Concurrent Measurement 287 +**(% style="color:red" %)aM! **(%%): Start Non-Concurrent Measurement 288 288 289 -**aMC! **: Start Non-Concurrent Measurement – Request CRC 289 +**(% style="color:red" %)aMC! **(%%): Start Non-Concurrent Measurement – Request CRC 290 290 291 -**aM1!- aM9! **: Additional Measurements 291 +**(% style="color:red" %)aM1!- aM9! **(%%): Additional Measurements 292 292 293 -**aMC1!- aMC9!** : Additional Measurements – Request CRC 293 +**(% style="color:red" %)aMC1!- aMC9!**(%%) : Additional Measurements – Request CRC 294 294 295 295 296 296 * AT Command : AT+ADDRM=0,1,0,1 297 + 297 297 * LoRaWAN Downlink(prefix 0xAA01): 0xAA 01 30 01 00 01 298 298 299 299 Downlink:AA 01 aa bb cc dd 300 300 301 -**aa**: SDI-12 sensor address. 302 +**(% style="color:#037691" %)aa**(%%): SDI-12 sensor address. 302 302 303 -**bb**: 0: no CRC, 1: request CRC 304 +**(% style="color:#037691" %)bb**(%%): 0: no CRC, 1: request CRC 304 304 305 -**cc**: 1-9: Additional Measurement, 0: no additional measurement 306 +**(% style="color:#037691" %)cc**(%%): 1-9: Additional Measurement, 0: no additional measurement 306 306 307 -**dd**: delay (in second) to send **aD0!** to get return. 308 +**(% style="color:#037691" %)dd**(%%): delay (in second) to send **(% style="color:#037691" %)aD0!**(%%) to get return. 308 308 309 309 310 310 The following is the display information on the serial port and the server. ... ... @@ -317,16 +317,16 @@ 317 317 318 318 319 319 320 -==== **aC!, aCC!, aC1!- aC9!, aCC1!- aCC9! ** ==== 321 +==== **(% style="color:blue" %)aC!, aCC!, aC1!- aC9!, aCC1!- aCC9! ** ==== 321 321 322 322 323 -**aC!** : Start Concurrent Measurement 324 +**(% style="color:red" %)aC!**(%%) : Start Concurrent Measurement 324 324 325 -**aCC!** : Start Concurrent Measurement – Request CRC 326 +**(% style="color:red" %)aCC!** (%%): Start Concurrent Measurement – Request CRC 326 326 327 -**aC1!- aC9!** : Start Additional Concurrent Measurements 328 +**(% style="color:red" %)aC1!- aC9!**(%%) : Start Additional Concurrent Measurements 328 328 329 -**aCC1!- aCC9!** : Start Additional Concurrent Measurements – Request CRC 330 +**(% style="color:red" %)aCC1!- aCC9!**(%%) : Start Additional Concurrent Measurements – Request CRC 330 330 331 331 332 332 * AT Command : AT+ADDRC=0,1,0,1 ... ... @@ -335,13 +335,13 @@ 335 335 336 336 Downlink: AA 02 aa bb cc dd 337 337 338 -**aa**: SDI-12 sensor address. 339 +**(% style="color:#037691" %)aa**(%%): SDI-12 sensor address. 339 339 340 -**bb**: 0: no CRC, 1: request CRC 341 +**(% style="color:#037691" %)bb**(%%): 0: no CRC, 1: request CRC 341 341 342 -**cc**: 1-9: Additional Measurement, 0: no additional measurement 343 +**(% style="color:#037691" %)cc**(%%): 1-9: Additional Measurement, 0: no additional measurement 343 343 344 -**dd**: delay (in second) to send **aD0!** to get return. 345 +**(% style="color:#037691" %)dd**(%%): delay (in second) to send **(% style="color:#037691" %)aD0!**(%%) to get return. 345 345 346 346 347 347 The following is the display information on the serial port and the server. ... ... @@ -353,11 +353,11 @@ 353 353 [[image:image-20230201091954-13.png||height="203" width="1117"]] 354 354 355 355 356 -(% style="display:none" %) (%%) 357 357 358 -==== **aR0!- aR9!, aRC0!- aRC9!** ==== 359 359 359 +==== **(% style="color:blue" %)aR0!- aR9!, aRC0!- aRC9!** ==== 360 360 361 + 361 361 Start Continuous Measurement 362 362 363 363 Start Continuous Measurement – Request CRC ... ... @@ -368,13 +368,13 @@ 368 368 369 369 Downlink: AA 03 aa bb cc dd 370 370 371 -**aa**: SDI-12 sensor address. 372 +**(% style="color:#037691" %)aa**(%%): SDI-12 sensor address. 372 372 373 -**bb**: 0: no CRC, 1: request CRC 374 +**(% style="color:#037691" %)bb**(%%): 0: no CRC, 1: request CRC 374 374 375 -**cc**: 1-9: Additional Measurement, 0: no additional measurement 376 +**(% style="color:#037691" %)cc**(%%): 1-9: Additional Measurement, 0: no additional measurement 376 376 377 -**dd**: delay (in second) to send **aD0!** to get return. 378 +**(% style="color:#037691" %)dd**(%%): delay (in second) to send **(% style="color:#037691" %)aD0!**(%%) to get return. 378 378 379 379 380 380 The following is the display information on the serial port and the server. ... ... @@ -395,20 +395,20 @@ 395 395 396 396 LoRaWAN Downlink: A8 aa xx xx xx xx bb cc 397 397 398 -**aa **: total SDI-12 command length 399 +**(% style="color:#037691" %)aa **(%%): total SDI-12 command length 399 399 400 -**xx **: SDI-12 command 401 +**(% style="color:#037691" %)xx **(%%): SDI-12 command 401 401 402 -**bb **: Delay to wait for return 403 +**(% style="color:#037691" %)bb **(%%): Delay to wait for return 403 403 404 -**cc **: 0: don't uplink return to LoRaWAN, 1: Uplink return to LoRaWAN on FPORT=100 405 +**(% style="color:#037691" %)cc **(%%): 0: don't uplink return to LoRaWAN, 1: Uplink return to LoRaWAN on FPORT=100 405 405 406 406 407 -**Example: **AT+CFGDEV =0RC0!,1 408 +**(% style="color:blue" %)Example: **(%%) AT+CFGDEV =0RC0!,1 408 408 409 -**0RC0! **: SDI-12 Command, 410 +**(% style="color:#037691" %)0RC0! **(%%): SDI-12 Command, 410 410 411 -**1 **: Delay 1 second. ( 0: 810 mini-second) 412 +**(% style="color:#037691" %)1 **(%%): Delay 1 second. ( 0: 810 mini-second) 412 412 413 413 Equal Downlink: 0xA8 05 30 52 43 30 21 01 01 414 414 ... ... @@ -421,7 +421,6 @@ 421 421 422 422 [[image:image-20230201092355-17.png||height="426" width="1135"]] 423 423 424 - 425 425 426 426 === 2.3.3 Convert ASCII to String === 427 427 ... ... @@ -431,7 +431,7 @@ 431 431 AT+CONVFORM ( Max length: 80 bytes) 432 432 433 433 434 -**Example:** 434 +**(% style="color:blue" %)Example:** 435 435 436 436 1) AT+CONVFORM=0, string Convert String from String to ASCII 437 437 ... ... @@ -442,7 +442,6 @@ 442 442 443 443 [[image:1675214856590-846.png]] 444 444 445 - 446 446 447 447 === 2.3.4 Define periodically SDI-12 commands and uplink. === 448 448 ... ... @@ -452,31 +452,31 @@ 452 452 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. 453 453 454 454 455 -* ** AT Command:** 454 +* ** (% style="color:blue" %)AT Command:** 456 456 457 -**AT+COMMANDx=var1,var2,var3,var4.** 456 +**(% style="color:#037691" %)AT+COMMANDx=var1,var2,var3,var4.** 458 458 459 -**var1**: SDI-12 command , for example: 0RC0! 458 +**(% style="color:red" %)var1**(%%): SDI-12 command , for example: 0RC0! 460 460 461 -**var2**: Wait timeout for return. (unit: second) 460 +**(% style="color:red" %)var2**(%%): Wait timeout for return. (unit: second) 462 462 463 -**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!//. 464 464 465 -**var4**: validation check for return. If return invalid, SDI-12-LB will resend this command. Max 2 retries. 464 +**(% style="color:red" %)var4**(%%): validation check for return. If return invalid, SDI-12-LB will resend this command. Max 2 retries. 466 466 467 -**0 ** No validation check; 466 +**(% style="color:red" %)0 **(%%) No validation check; 468 468 469 -**1** Check if return chars are printable char(0x20 ~~ 0x7E); 468 +**(% style="color:red" %)1** (%%) Check if return chars are printable char(0x20 ~~ 0x7E); 470 470 471 -**2** Check if there is return from SDI-12 sensor 470 +**(% style="color:#red" %)2**(%%) Check if there is return from SDI-12 sensor 472 472 473 -**3** Check if return pass CRC check ( SDI-12 command var1 must include CRC request); 472 +**(% style="color:red" %)3** (%%) Check if return pass CRC check ( SDI-12 command var1 must include CRC request); 474 474 475 475 476 -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. 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. 477 477 478 478 479 -**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. 480 480 481 481 (% border="1" style="background-color:#f7faff; width:436px" %) 482 482 |(% style="width:433px" %)((( ... ... @@ -484,7 +484,7 @@ 484 484 485 485 **a**: length for the return of AT+COMMAND 486 486 487 -**b**: 1: grab valid value by byte, max 6 bytes. 2: grab valid value by bytes section, max 3 sections. 486 +**b**: 1: grab valid value by byte, max 6 bytes. 2: grab valid value by bytes section, max 3 sections. 488 488 489 489 **c**: define the position for valid value. 490 490 ))) ... ... @@ -498,49 +498,49 @@ 498 498 |(% 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 499 499 |(% 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 500 500 501 -* ** Downlink Payload:** 500 +* **(% style="color:blue" %) Downlink Payload:** 502 502 503 -**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. 504 504 505 505 506 -**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.** 507 507 508 508 509 -Format: ** AF MM NN LL XX XX XX XX YY** 508 +Format: ** (% style="color:#037691" %)AF MM NN LL XX XX XX XX YY** 510 510 511 511 Where: 512 512 513 -* **MM **: the AT+COMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F, 514 -* **NN **: 1: set the AT+DATACUT value ; 2: set the AT+DATACUT value. 515 -* **LL **: The length of AT+COMMAND or AT+DATACUT command 516 -* **XX XX XX XX **: AT+COMMAND or AT+DATACUT command 517 -* **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. 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. 518 518 519 -**Example:** 518 +**(% style="color:blue" %)Example:** 520 520 521 521 [[image:image-20230201094129-18.png]] 522 522 523 523 524 -**Clear SDI12 Command** 523 +**(% style="color:blue" %)Clear SDI12 Command** 525 525 526 526 The AT+COMMANDx and AT+DATACUTx settings are stored in special location, user can use below command to clear them. 527 527 528 528 529 -* ** AT Command:** 528 +* ** (% style="color:#037691" %)AT Command:** 530 530 531 -** ~AT+CMDEAR=mm,nn** mm: start position of erase ,nn: stop position of erase530 +**(% style="color:#4F81BD" %)AT+CMDEAR=mm,nn** (%%) mm: start position of erase ,nn: stop position of erase 532 532 533 533 534 534 Etc. AT+CMDEAR=1,10 means erase AT+COMMAND1/AT+DATACUT1 to AT+COMMAND10/AT+DATACUT10 535 535 536 536 537 -* ** Downlink Payload:** 536 +* **(% style="color:#037691" %) Downlink Payload:** 538 538 539 -** ~0x09 aa bb** same as AT+CMDEAR=aa,bb538 +**(% style="color:#4F81BD" %)0x09 aa bb**(%%) same as AT+CMDEAR=aa,bb 540 540 541 541 542 542 543 -**command combination** 542 +**(% style="color:blue" %)command combination** 544 544 545 545 Below shows a screen shot how the results combines together to a uplink payload. 546 546 ... ... @@ -549,23 +549,23 @@ 549 549 550 550 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. 551 551 552 -**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. 553 553 554 554 555 -**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. 556 556 557 557 558 558 [[image:1675215782925-448.png]] 559 559 560 560 561 -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. 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. 562 562 563 563 564 564 565 -**Compose Uplink** 564 +**(% style="color:blue" %)Compose Uplink** 566 566 567 567 568 -**AT+DATAUP=0** 567 +**(% style="color:#4F81BD" %)AT+DATAUP=0** 569 569 570 570 Compose the uplink payload with value returns in sequence and send with A SIGNLE UPLINK. 571 571 ... ... @@ -577,7 +577,7 @@ 577 577 [[image:1675215828102-844.png]] 578 578 579 579 580 -**AT+DATAUP=1** 579 +**(% style="color:#4F81BD" %)AT+DATAUP=1** 581 581 582 582 Compose the uplink payload with value returns in sequence and send with Multiply UPLINKs. 583 583 ... ... @@ -594,7 +594,7 @@ 594 594 [[image:1675215848113-696.png]] 595 595 596 596 597 -**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:** 598 598 599 599 * For AU915/AS923 bands, if UplinkDwell time=0, max 51 bytes for each uplink ( so 51 -5 = 46 max valid date) 600 600 * For AU915/AS923 bands, if UplinkDwell time=1, max 11 bytes for each uplink ( so 11 -5 = 6 max valid date). ... ... @@ -601,9 +601,9 @@ 601 601 * For US915 band, max 11 bytes for each uplink ( so 11 -5 = 6 max valid date). 602 602 * For all other bands: max 51 bytes for each uplink ( so 51 -5 = 46 max valid date). 603 603 604 -** ~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;** 605 605 606 -** ~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.** 607 607 608 608 609 609 == 2.4 Uplink Payload == ... ... @@ -634,11 +634,11 @@ 634 634 [[image:1675215946738-635.png]] 635 635 636 636 637 -**Sensor Model**: For SDI-12-LB, this value is 0x17 636 +**(% style="color:#037691" %)Sensor Model**(%%): For SDI-12-LB, this value is 0x17 638 638 639 -**Firmware Version**: 0x0100, Means: v1.0.0 version 638 +**(% style="color:#037691" %)Firmware Version**(%%): 0x0100, Means: v1.0.0 version 640 640 641 -**Frequency Band**: 640 +**(% style="color:#037691" %)Frequency Band**: 642 642 643 643 *0x01: EU868 644 644 ... ... @@ -669,7 +669,7 @@ 669 669 *0x0e: MA869 670 670 671 671 672 -**Sub-Band**: 671 +**(% style="color:#037691" %)Sub-Band**: 673 673 674 674 AU915 and US915:value 0x00 ~~ 0x08 675 675 ... ... @@ -678,7 +678,7 @@ 678 678 Other Bands: Always 0x00 679 679 680 680 681 -**Battery Info**: 680 +**(% style="color:#037691" %)Battery Info**: 682 682 683 683 Check the battery voltage. 684 684 ... ... @@ -704,7 +704,7 @@ 704 704 Battery(mV) 705 705 & 706 706 Interrupt_Flag 707 -)))|(% style="width:70px" %)[[PAYLOAD_VER>> path:#Probe_Model]]|(% style="width:234px" %)(((706 +)))|(% style="width:70px" %)[[PAYLOAD_VER>>||anchor="H3.6Setthepayloadversion"]]|(% style="width:234px" %)((( 708 708 If the valid payload is too long and exceed the maximum support. 709 709 Payload length in server,server will show payload not provided in the LoRaWAN server. 710 710 ))) ... ... @@ -725,7 +725,7 @@ 725 725 === 2.4.4 Interrupt Pin === 726 726 727 727 728 -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]].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"]]. 729 729 730 730 **Example:** 731 731 ... ... @@ -786,7 +786,6 @@ 786 786 * AT Command Connection: See [[FAQ>>path:#AT_COMMAND]]. 787 787 * LoRaWAN Downlink instruction for different platforms: See [[IoT LoRaWAN Server>>http://wiki.dragino.com/xwiki/bin/view/Main/]] section. 788 788 789 - 790 790 There are two kinds of commands to configure SDI-12-LB, they are: 791 791 792 792 * **General Commands**. ... ... @@ -830,31 +830,32 @@ 830 830 831 831 Format: Command Code (0x01) followed by 3 bytes time value. 832 832 833 -If the downlink payload=0100003C, it means set the END Node ’s Transmit Interval to 0x00003C=60(S), while type code is 01.831 +If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01. 834 834 835 -* Example 1: Downlink Payload: 0100001E ~/~/ Set Transmit Interval (TDC) = 30 seconds 836 -* Example 2: Downlink Payload: 0100003C ~/~/ Set Transmit Interval (TDC) = 60 seconds 833 +* Example 1: Downlink Payload: 0100001E ~/~/ Set Transmit Interval (TDC) = 30 seconds 834 +* Example 2: Downlink Payload: 0100003C ~/~/ Set Transmit Interval (TDC) = 60 seconds 837 837 838 838 == 3.2 Set Interrupt Mode == 839 839 838 + 840 840 Feature, Set Interrupt mode for GPIO_EXIT. 841 841 842 842 (% style="color:blue" %)**AT Command: AT+INTMOD** 843 843 844 844 (% border="1" cellspacing="4" style="background-color:#f7faff; color:black; width:510px" %) 845 -|=**Command Example**|=**Function**|=**Response** 846 -|AT+INTMOD=?|Show current interrupt mode|((( 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" %)((( 847 847 0 848 848 OK 849 849 the mode is 0 = No interruption 850 850 ))) 851 -|AT+INTMOD=2|((( 850 +|(% style="width:156px" %)AT+INTMOD=2|(% style="width:187px" %)((( 852 852 Set Transmit Interval 853 853 ~1. (Disable Interrupt), 854 854 2. (Trigger by rising and falling edge) 855 855 3. (Trigger by falling edge) 856 856 4. (Trigger by rising edge) 857 -)))|OK 856 +)))|(% style="width:165px" %)OK 858 858 859 859 (% style="color:blue" %)**Downlink Command: 0x06** 860 860 ... ... @@ -862,10 +862,9 @@ 862 862 863 863 This means that the interrupt mode of the end node is set to 0x000003=3 (rising edge trigger), and the type code is 06. 864 864 865 -* Example 1: Downlink Payload: 06000000 ~/~/ Turn off interrupt mode 866 -* Example 2: Downlink Payload: 06000003 ~/~/ Set the interrupt mode to rising edge trigger 864 +* Example 1: Downlink Payload: 06000000 ~/~/ Turn off interrupt mode 865 +* Example 2: Downlink Payload: 06000003 ~/~/ Set the interrupt mode to rising edge trigger 867 867 868 - 869 869 == 3.3 Set the output time == 870 870 871 871 ... ... @@ -935,58 +935,58 @@ 935 935 * Example 5: Downlink Payload: 070301F4 **~-~-->** AT+12VT=500 936 936 * Example 6: Downlink Payload: 07030000 **~-~-->** AT+12VT=0 937 937 938 - 939 939 == 3.4 Set the all data mode == 940 940 938 + 941 941 Feature, Set the all data mode. 942 942 943 -**AT Command: AT+ALLDATAMOD** 941 +(% style="color:blue" %)**AT Command: AT+ALLDATAMOD** 944 944 945 -|**Command Example**|**Function**|**Response** 943 +(% border="1" cellspacing="4" style="background-color:#f7faff; width:437px" %) 944 +|=**Command Example**|=**Function**|=**Response** 946 946 |AT+ALLDATAMOD=?|Show current all data mode|((( 947 947 0 948 - 949 - 950 950 OK 951 951 ))) 952 952 |AT+ALLDATAMOD=1|Set all data mode is 1.|OK 953 953 954 -**Downlink Command: 0xAB** 951 +(% style="color:blue" %)**Downlink Command: 0xAB** 955 955 956 956 Format: Command Code (0xAB) followed by 1 bytes. 957 957 958 -* Example 1: Downlink Payload: AB 00 ~/~/ AT+ALLDATAMOD=0 959 -* Example 2: Downlink Payload: AB 01 ~/~/ AT+ALLDATAMOD=1 955 +* Example 1: Downlink Payload: AB 00 ~/~/ AT+ALLDATAMOD=0 956 +* Example 2: Downlink Payload: AB 01 ~/~/ AT+ALLDATAMOD=1 960 960 961 - 962 962 == 3.5 Set the splicing payload for uplink == 963 963 960 + 964 964 Feature, splicing payload for uplink. 965 965 966 -**AT Command: AT+DATAUP** 963 +(% style="color:blue" %)**AT Command: AT+DATAUP** 967 967 968 -|**Command Example**|**Function**|**Response** 969 -|AT+DATAUP =?|Show current splicing payload for uplink mode|((( 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|((( 970 970 0 971 971 OK 972 972 ))) 973 -|AT+DATAUP =0|((( 971 +|(% style="width:154px" %)AT+DATAUP =0|(% style="width:266px" %)((( 974 974 Set splicing payload for uplink mode is 0. 975 975 )))|((( 976 976 OK 977 977 ))) 978 -|AT+DATAUP =1|Set splicing payload for uplink mode is 1 , and the each splice uplink is sent sequentially.|OK 979 -|AT+DATAUP =1,20000|((( 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" %)((( 980 980 Set splicing payload for uplink mode is 1, and the uplink interval of each splice to 20000 milliseconds. 981 981 )))|OK 982 982 983 -**Downlink Command: 0xAD** 981 +(% style="color:blue" %)**Downlink Command: 0xAD** 984 984 985 985 Format: Command Code (0xAD) followed by 1 bytes or 5 bytes. 986 986 987 -* Example 1: Downlink Payload: AD 00 ~/~/ AT+DATAUP=0 988 -* Example 2: Downlink Payload: AD 01 ~/~/ AT+DATAUP =1 989 -* Example 3: Downlink Payload: AD 01 00 00 14~/~/ AT+DATAUP =1,20000 985 +* Example 1: Downlink Payload: AD 00 ~/~/ AT+DATAUP=0 986 +* Example 2: Downlink Payload: AD 01 ~/~/ AT+DATAUP =1 987 +* Example 3: Downlink Payload: AD 01 00 00 14 ~/~/ AT+DATAUP =1,20000 990 990 991 991 This means that the interval is set to 0x000014=20S 992 992 ... ... @@ -995,21 +995,22 @@ 995 995 996 996 Feature, Set the payload version. 997 997 998 -**AT Command: AT+PAYVER** 996 +(% style="color:blue" %)**AT Command: AT+PAYVER** 999 999 1000 -|**Command Example**|**Function**|**Response** 1001 -|AT+PAYVER=?|Show current payload version|((( 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|((( 1002 1002 1 1003 1003 OK 1004 1004 ))) 1005 -|AT+PAYVER=5|Set payload version is 5.|OK 1004 +|(% style="width:158px" %)AT+PAYVER=5|(% style="width:192px" %)Set payload version is 5.|OK 1006 1006 1007 -**Downlink Command: 0xAE** 1006 +(% style="color:blue" %)**Downlink Command: 0xAE** 1008 1008 1009 1009 Format: Command Code (0xAE) followed by 1 bytes. 1010 1010 1011 -* Example 1: Downlink Payload: AE 01 ~/~/ AT+PAYVER=1 1012 -* Example 2: Downlink Payload: AE 05 ~/~/ AT+PAYVER=5 1010 +* Example 1: Downlink Payload: AE 01 ~/~/ AT+PAYVER=1 1011 +* Example 2: Downlink Payload: AE 05 ~/~/ AT+PAYVER=5 1013 1013 1014 1014 = 4. Battery & how to replace = 1015 1015 ... ... @@ -1016,7 +1016,7 @@ 1016 1016 == 4.1 Battery Type == 1017 1017 1018 1018 1019 - PS-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.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. 1020 1020 1021 1021 1022 1022 The discharge curve is not linear so can’t simply use percentage to show the battery level. Below is the battery performance. ... ... @@ -1024,9 +1024,9 @@ 1024 1024 [[image:1675146710956-626.png]] 1025 1025 1026 1026 1027 -Minimum Working Voltage for the PS-LB:1026 +Minimum Working Voltage for the SDI-12-LB: 1028 1028 1029 - PS-LB: 2.45v ~~ 3.6v1028 +SDI-12-LB: 2.45v ~~ 3.6v 1030 1030 1031 1031 1032 1032 == 4.2 Replace Battery == ... ... @@ -1075,9 +1075,9 @@ 1075 1075 === 4.3.2 Replace the battery === 1076 1076 1077 1077 1078 -You can change the battery in the PS-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.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. 1079 1079 1080 -The default battery pack of PS-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)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) 1081 1081 1082 1082 1083 1083 ... ... @@ -1093,7 +1093,6 @@ 1093 1093 1094 1094 1095 1095 1096 - 1097 1097 = 6. OTA firmware update = 1098 1098 1099 1099 ... ... @@ -1115,7 +1115,7 @@ 1115 1115 EU868: LoRaWAN EU868 band 1116 1116 KR920: LoRaWAN KR920 band 1117 1117 US915: LoRaWAN US915 band 1118 -IN865: 1116 +IN865: LoRaWAN IN865 band 1119 1119 CN470: LoRaWAN CN470 band 1120 1120 1121 1121 ... ... @@ -1138,8 +1138,6 @@ 1138 1138 * Package Size / pcs : cm 1139 1139 * Weight / pcs : g 1140 1140 1141 - 1142 - 1143 1143 = 9. Support = 1144 1144 1145 1145