Version 90.4 by Xiaoling on 2024/01/03 17:08

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