Version 87.3 by Xiaoling on 2023/06/30 10:28

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