Version 53.1 by Edwin Chen on 2023/06/03 12:10

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
83 12V 100mA
84 * Operating Temperature: -40 ~~ 85°C
85
86 (% style="color:#037691" %)**LoRa Spec:**
87
88 * Frequency Range,  Band 1 (HF): 862 ~~ 1020 Mhz
89 * Max +22 dBm constant RF output vs.
90 * RX sensitivity: down to -139 dBm.
91 * Excellent blocking immunity
92
93 (% style="color:#037691" %)**Current Input Measuring :**
94
95 * Range: 0 ~~ 20mA
96 * Accuracy: 0.02mA
97 * Resolution: 0.001mA
98
99 (% style="color:#037691" %)**Voltage Input Measuring:**
100
101 * Range: 0 ~~ 30v
102 * Accuracy: 0.02v
103 * Resolution: 0.001v
104
105 (% style="color:#037691" %)**Battery:**
106
107 * Li/SOCI2 un-chargeable battery
108 * Capacity: 8500mAh
109 * Self-Discharge: <1% / Year @ 25°C
110 * Max continuously current: 130mA
111 * Max boost current: 2A, 1 second
112
113 (% style="color:#037691" %)**Power Consumption**
114
115 * Sleep Mode: 5uA @ 3.3v
116 * LoRa Transmit Mode: 125mA @ 20dBm, 82mA @ 14dBm
117
118
119
120 == 1.4 Connect to SDI-12 Sensor ==
121
122
123
124 [[image:1675212538524-889.png||_mstalt="298272"]]
125
126
127 == 1.5 Sleep mode and working mode ==
128
129
130 (% 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.
131
132 (% 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.
133
134
135 == 1.6 Button & LEDs ==
136
137
138 [[image:1675212633011-651.png||_mstalt="291538"]]
139
140
141 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
142 |=(% 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**
143 |(% 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" %)(((
144 If sensor is already Joined to LoRaWAN network, sensor will send an uplink packet, (% style="color:blue" %)**blue led** (%%)will blink once.
145 Meanwhile, BLE module will be active and user can connect via BLE to configure device.
146 )))
147 |(% 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" %)(((
148 (% 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.
149 (% style="background-color:#f2f2f2; color:green" %)**Green led**(%%) will solidly turn on for 5 seconds after joined in network.
150 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.
151 )))
152 |(% 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.
153
154
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 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 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.
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.
207
208 Each SDI-12-LB is shipped with a sticker with the default device EUI as below:
209
210
211 [[image:image-20230426084456-1.png||height="241" width="519"]]
212
213
214 You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:
215
216
217 (% style="color:blue" %)**Register the device**
218
219 [[image:1675213652444-622.png||_mstalt="293657"]]
220
221
222 (% style="color:blue" %)**Add APP EUI and DEV EUI**
223
224
225 [[image:1675213661769-223.png||_mstalt="295217"]]
226
227
228 (% style="color:blue" %)**Add APP EUI in the application**
229
230
231 [[image:1675213675852-577.png||_mstalt="297947"]]
232
233
234 (% style="color:blue" %)**Add APP KEY**
235
236 [[image:1675213686734-883.png||_mstalt="298064"]]
237
238
239 (% style="color:blue" %)**Step 2**(%%): Activate on SDI-12-LB
240
241
242 Press the button for 5 seconds to activate the SDI-12-LB.
243
244 (% 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.
245
246
247 [[image:1675213704414-644.png||_mstalt="293748"]]
248
249
250 == ​2.3 SDI-12 Related Commands ==
251
252
253 User need to configure SDI-12-LB to communicate with SDI-12 sensors otherwise the uplink payload will only include a few bytes.
254
255
256 === 2.3.1 Basic SDI-12 debug command ===
257
258
259 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.
260
261 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.
262
263 The following is the display information on the serial port and the server.
264
265
266 [[image:image-20230201091027-6.png||_mstalt="429065"]]
267
268
269 [[image:image-20230201091027-7.png||_mstalt="429429" height="261" width="1179"]]
270
271
272
273 ==== (% style="color:blue" %)**al!  ~-~- Get SDI-12 sensor Identification**(%%) ====
274
275
276 * AT Command: AT+ADDRI=aa
277 * LoRaWAN Downlink(prefix 0xAA00): AA 00 aa
278
279 (% style="color:#037691" %)**Parameter:  **(%%)aa: ASCII value of SDI-12 sensor address in downlink or HEX value in AT Command)
280
281 (% style="color:blue" %)**Example :   **(%%)AT+ADDRI=0 ( Equal to downlink: 0x AA 00 30)
282
283
284 The following is the display information on the serial port and the server.
285
286
287 [[image:image-20230201091257-8.png||_mstalt="431392"]]
288
289
290 [[image:image-20230201091257-9.png||_mstalt="431756" height="225" width="1242"]]
291
292
293 ==== (% style="color:blue" %)**aM!,aMC!, aM1!- aM9!, aMC1!- aMC9!**(%%) ====
294
295
296 (% style="color:red" %)**aM! **(%%): Start Non-Concurrent Measurement
297
298 (% style="color:red" %)**aMC! **(%%): Start Non-Concurrent Measurement – Request CRC
299
300 (% style="color:red" %)**aM1!- aM9! **(%%): Additional Measurements
301
302 (% style="color:red" %)**aMC1!- aMC9!**(%%) : Additional Measurements – Request CRC
303
304
305 * AT Command : AT+ADDRM=0,1,0,1
306
307 * LoRaWAN Downlink(prefix 0xAA01): 0xAA 01 30 01 00 01
308
309 Downlink:AA 01 aa bb cc dd
310
311 (% style="color:#037691" %)**aa**(%%): SDI-12 sensor address.
312
313 (% style="color:#037691" %)**bb**(%%): 0: no CRC, 1: request CRC
314
315 (% style="color:#037691" %)**cc**(%%): 1-9: Additional Measurement, 0: no additional measurement
316
317 (% style="color:#037691" %)**dd**(%%): delay (in second) to send (% style="color:#037691" %)__**aD0!**__(%%) to get return.
318
319
320 The following is the display information on the serial port and the server.
321
322
323 [[image:image-20230201091630-10.png||_mstalt="449995"]]
324
325
326 [[image:image-20230201091630-11.png||_mstalt="450372" height="247" width="1165"]]
327
328
329
330 ==== (% style="color:blue" %)**aC!, aCC!,  aC1!- aC9!,  aCC1!- aCC9! **(%%) ====
331
332
333 (% style="color:red" %)**aC!**(%%) : Start Concurrent Measurement
334
335 (% style="color:red" %)**aCC!** (%%): Start Concurrent Measurement – Request CRC
336
337 (% style="color:red" %)**aC1!- aC9!**(%%) : Start Additional Concurrent Measurements
338
339 (% style="color:red" %)**aCC1!- aCC9!**(%%) : Start Additional Concurrent Measurements – Request CRC
340
341
342 * AT Command : AT+ADDRC=0,1,0,1 
343
344 * LoRaWAN Downlink(0xAA02): 0xAA 02 30 01 00 01
345
346 Downlink: AA 02 aa bb cc dd
347
348 (% style="color:#037691" %)**aa**(%%): SDI-12 sensor address.
349
350 (% style="color:#037691" %)**bb**(%%): 0: no CRC, 1: request CRC
351
352 (% style="color:#037691" %)**cc**(%%): 1-9: Additional Measurement, 0: no additional measurement
353
354 (% style="color:#037691" %)**dd**(%%): delay (in second) to send (% style="color:#037691" %)__**aD0!**__(%%)__ __to get return.
355
356
357 The following is the display information on the serial port and the server.
358
359
360 [[image:image-20230201091954-12.png||_mstalt="453687"]]
361
362
363 [[image:image-20230201091954-13.png||_mstalt="454064" height="203" width="1117"]]
364
365
366
367
368 ==== (% style="color:blue" %)**aR0!- aR9!,  aRC0!- aRC9!**(%%) ====
369
370
371 Start Continuous Measurement
372
373 Start Continuous Measurement – Request CRC
374
375
376 * AT Command : AT+ADDRR=0,1,0,1 
377 * LoRaWAN Downlink (0xAA 03): 0xAA 03 30 01 00 01
378
379 Downlink: AA 03 aa bb cc dd
380
381 (% style="color:#037691" %)**aa**(%%): SDI-12 sensor address.
382
383 (% style="color:#037691" %)**bb**(%%): 0: no CRC, 1: request CRC
384
385 (% style="color:#037691" %)**cc**(%%): 1-9: Additional Measurement, 0: no additional measurement
386
387 (% style="color:#037691" %)**dd**(%%): delay (in second) to send (% style="color:#037691" %)__**aD0!**__(%%) to get return.
388
389
390 The following is the display information on the serial port and the server.
391
392
393 [[image:image-20230201092208-14.png||_mstalt="452283"]]
394
395
396 [[image:image-20230201092208-15.png||_mstalt="452660" height="214" width="1140"]]
397
398
399 === 2.3.2 Advance SDI-12 Debug command ===
400
401
402 This command can be used to debug all SDI-12 command.
403
404
405 LoRaWAN Downlink: A8 aa xx xx xx xx bb cc
406
407 (% style="color:#037691" %)**aa **(%%): total SDI-12 command length
408
409 (% style="color:#037691" %)**xx **(%%): SDI-12 command
410
411 (% style="color:#037691" %)**bb **(%%): Delay to wait for return
412
413 (% style="color:#037691" %)**cc **(%%): 0: don't uplink return to LoRaWAN, 1: Uplink return to LoRaWAN on FPORT=100
414
415
416 (% style="color:blue" %)**Example: **(%%) 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 === 2.3.3 Convert ASCII to String ===
435
436
437 This command is used to convert between ASCII and String format.
438
439 AT+CONVFORM ( Max length: 80 bytes)
440
441
442 (% style="color:blue" %)**Example:**
443
444 1) AT+CONVFORM=0, string Convert String from String to ASCII
445
446 [[image:1675214845056-885.png||_mstalt="297622"]]
447
448
449 2) AT+CONVFORM=1, ASCII Convert ASCII to String.
450
451 [[image:1675214856590-846.png||_mstalt="297739"]]
452
453
454 === 2.3.4 Define periodically SDI-12 commands and uplink. ===
455
456
457 AT+COMMANDx & AT+DATACUTx
458
459 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.
460
461
462 * (% style="color:blue" %)**AT Command:**
463
464 (% style="color:#037691" %)**AT+COMMANDx=var1,var2,var3,var4.**
465
466 (% style="color:red" %)**var1**(%%): SDI-12 command , for example: 0RC0!
467
468 (% style="color:red" %)**var2**(%%): Wait timeout for return. (unit: second)
469
470 (% style="color:red" %)**var3**(%%): Whether to send //addrD0!// to get return after var2 timeout. 0: Don't Send //addrD0! //; 1: Send //addrD0!//.
471
472 (% style="color:red" %)**var4**(%%): validation check for return. If return invalid, SDI-12-LB will resend this command. Max 3 retries.
473
474 (% style="color:red" %)**0 **(%%) No validation check;
475
476 (% style="color:red" %)**1** (%%) Check if return chars are printable char(0x20 ~~ 0x7E);
477
478 (% style="color:red" %)**2**(%%)  Check if there is return from SDI-12 sensor
479
480 (% style="color:red" %)**3** (%%) Check if return pass CRC check ( SDI-12 command var1 must include CRC request);
481
482
483 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.
484
485
486 (% style="color:blue" %)**AT+DATACUTx**(%%) : This command defines how to handle the return from AT+COMMANDx, max return length is 100 bytes.
487
488 (% border="1" style="width:436px" %)
489 |(% style="background-color:#f2f2f2; width:433px" %)(((
490 (% style="color:#0070c0" %)**AT+DATACUTx=a,b,c**
491
492 **a**:  length for the return of AT+COMMAND
493
494 **b**: 1: grab valid value by byte, max 6 bytes. 2: grab valid value by bytes section, max 3 sections.
495
496 **c**:  define the position for valid value. 
497 )))
498
499 For example, if return from AT+COMMAND1 is “013METER   TER12 112T12-00024895<CR><LF>” , Below AT+DATACUT1 will get different result to combine payload:
500
501
502 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
503 |=(% style="width: 164px;background-color:#D9E2F3;color:#0070C0" %)**AT+DATACUT1 value**|=(% style="width: 344px;background-color:#D9E2F3;color:#0070C0" %)**Final Result to combine Payload**
504 |(% style="background-color:#f2f2f2; width:164px" %)34,1,1+2+3|(% style="background-color:#f2f2f2; width:344px" %)0D 00 01 30 31 33
505 |(% 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
506 |(% 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
507
508 * (% style="color:blue" %)** Downlink Payload:**
509
510 (% style="color:blue" %)**0xAF**(%%)  downlink command can be used to set AT+COMMANDx or AT+DATACUTx.
511
512
513 (% style="color:red" %)**Note : if user use AT+COMMANDx to add a new command, he also need to send AT+DATACUTx downlink.**
514
515
516 Format: ** (% style="color:#037691" %)AF MM NN LL XX XX XX XX YY(%%)**
517
518 Where:
519
520 * (% style="color:#037691" %)**MM **(%%): the AT+COMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F,
521 * (% style="color:#037691" %)**NN **(%%):  1: set the AT+COMMAND value ; 2: set the AT+DATACUT value.
522 * (% style="color:#037691" %)**LL **(%%):  The length of AT+COMMAND or AT+DATACUT command
523 * (% style="color:#037691" %)**XX XX XX XX **(%%): AT+COMMAND or AT+DATACUT command
524 * (% 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. 
525
526 (% style="color:blue" %)**Example:**
527
528 [[image:image-20230201094129-18.png||_mstalt="455065"]]
529
530
531
532 (% style="color:blue" %)**Clear SDI12 Command**
533
534 The AT+COMMANDx and AT+DATACUTx settings are stored in special location, user can use below command to clear them.
535
536
537 * (% style="color:#037691" %)**AT Command:**
538
539 (% style="color:#4f81bd" %)**AT+CMDEAR=mm,nn** (%%) mm: start position of erase ,nn: stop position of erase
540
541
542 Etc. AT+CMDEAR=1,10 means erase AT+COMMAND1/AT+DATACUT1 to AT+COMMAND10/AT+DATACUT10
543
544
545 * (% style="color:#037691" %)** Downlink Payload:**
546
547 (% style="color:#4f81bd" %)**0x09 aa bb**(%%)  same as AT+CMDEAR=aa,bb
548
549
550
551 (% style="color:blue" %)**command combination**
552
553 Below shows a screen shot how the results combines together to a uplink payload.
554
555 [[image:1675215745275-920.png||_mstalt="295334"]]
556
557
558 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.
559
560 (% 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.
561
562
563 (% 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.
564
565
566 [[image:1675215782925-448.png||_mstalt="297466"]]
567
568
569 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.
570
571
572
573 (% style="color:blue" %)**Compose Uplink**
574
575 (% style="color:#4f81bd" %)**AT+DATAUP=0**
576
577 Compose the uplink payload with value returns in sequence and send with **__A SIGNLE UPLINK__**.
578
579 Final Payload is **__Battery Info+PAYVER + VALID Value from RETURN1 + Valid Value from RETURN2 + … + RETURNx__**
580
581 Where PAYVER is defined by AT+PAYVER, below is an example screen shot.
582
583
584 [[image:1675215828102-844.png||_mstalt="294645"]]
585
586
587 (% style="color:#4f81bd" %)**AT+DATAUP=1**
588
589 Compose the uplink payload with value returns in sequence and send with **__Multiply UPLINKs__**.
590
591 Final Payload is __**Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA**__
592
593 1. Battery Info (2 bytes): Battery voltage
594 1. PAYVER (1 byte): Defined by AT+PAYVER
595 1. PAYLOAD COUNT (1 byte): Total how many uplinks of this sampling.
596 1. PAYLOAD# (1 byte): Number of this uplink. (from 0,1,2,3…,to PAYLOAD COUNT)
597 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
598
599 [[image:1675215848113-696.png||_mstalt="296998"]]
600
601
602 (% style="color:red" %)**Notice: the Max bytes is according to the max support bytes in different Frequency Bands for lowest SF. As below:**
603
604 * For AU915/AS923 bands, if UplinkDwell time=0, max 51 bytes for each uplink ( so 51 -5 = 46 max valid date)
605 * For AU915/AS923 bands, if UplinkDwell time=1, max 11 bytes for each uplink ( so 11 -5 = 6 max valid date).
606 * For US915 band, max 11 bytes for each uplink ( so 11 -5 = 6 max valid date).
607 * For all other bands: max 51 bytes for each uplink  ( so 51 -5 = 46 max valid date).
608
609 (% style="color:red" %)**When AT+DATAUP=1, the maximum number of segments is 15, and the maximum total number of bytes is 1500;**
610
611 (% 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.**
612
613
614 == 2.4 Uplink Payload ==
615
616 === 2.4.1 Device Payload, FPORT~=5 ===
617
618
619 Include device configure status. Once SDI-12-LB Joined the network, it will uplink this message to the server.
620
621 Users can also use the downlink command(0x26 01) to ask SDI-12-LB to resend this uplink.
622
623 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
624 |(% colspan="6" style="background-color:#d9e2f3; color:#0070c0" %)**Device Status (FPORT=5)**
625 |(% 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**
626 |(% 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
627
628 Example parse in TTNv3
629
630 [[image:1675215946738-635.png||_mstalt="297778"]]
631
632
633 (% style="color:#037691" %)**Sensor Model**(%%): For SDI-12-LB, this value is 0x17
634
635 (% style="color:#037691" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version
636
637 (% style="color:#037691" %)**Frequency Band**:
638
639 *0x01: EU868
640
641 *0x02: US915
642
643 *0x03: IN865
644
645 *0x04: AU915
646
647 *0x05: KZ865
648
649 *0x06: RU864
650
651 *0x07: AS923
652
653 *0x08: AS923-1
654
655 *0x09: AS923-2
656
657 *0x0a: AS923-3
658
659 *0x0b: CN470
660
661 *0x0c: EU433
662
663 *0x0d: KR920
664
665 *0x0e: MA869
666
667
668 (% style="color:#037691" %)**Sub-Band**:
669
670 AU915 and US915:value 0x00 ~~ 0x08
671
672 CN470: value 0x0B ~~ 0x0C
673
674 Other Bands: Always 0x00
675
676
677 (% style="color:#037691" %)**Battery Info**:
678
679 Check the battery voltage.
680
681 Ex1: 0x0B45 = 2885mV
682
683 Ex2: 0x0B49 = 2889mV
684
685
686 === 2.4.2 Uplink Payload, FPORT~=2 ===
687
688
689 There are different cases for uplink. See below
690
691 * SDI-12 Debug Command return: FPORT=100
692
693 * Periodically Uplink: FPORT=2
694
695 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:500px" %)
696 |=(% style="width: 90px;background-color:#D9E2F3" %)(((
697 **Size(bytes)**
698 )))|=(% style="width: 80px;background-color:#D9E2F3" %)**2**|=(% style="width: 90px;background-color:#D9E2F3" %)**1**|=(% style="width: 240px;background-color:#D9E2F3" %)**Length depends on the return from the commands**
699 |(% style="width:93px" %)**Value**|(% style="width:83px" %)(((
700 Battery(mV)
701 &
702 Interrupt_Flag
703 )))|(% style="width:91px" %)[[PAYLOAD_VER>>||anchor="H3.6Setthepayloadversion"]]|(% style="width:212px" %)(((
704 If the valid payload is too long and exceed the maximum support.
705 Payload length in server,server will show payload not provided in the LoRaWAN server.
706 )))
707
708 [[image:1675216282284-923.png||_mstalt="295633"]]
709
710
711 === 2.4.3 Battery Info ===
712
713
714 Check the battery voltage for SDI-12-LB.
715
716 Ex1: 0x0B45 = 2885mV
717
718 Ex2: 0x0B49 = 2889mV
719
720
721 === 2.4.4 Interrupt Pin ===
722
723
724 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"]].
725
726 **Example:**
727
728 Ex1: 0x0B45:0x0B&0x80= 0x00    Normal uplink packet.
729
730 Ex2: 0x8B49:0x8B&0x80= 0x80    Interrupt Uplink Packet.
731
732
733 === 2.4.5 Payload version ===
734
735
736 The version number of the payload, mainly used for decoding. The default is 01.
737
738
739 === 2.4.6 ​Decode payload in The Things Network ===
740
741
742 While using TTN network, you can add the payload format to decode the payload.
743
744 [[image:1675216779406-595.png||_mstalt="298376"]]
745
746
747 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.
748
749 SDI-12-LB TTN Payload Decoder: [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>url:https://github.com/dragino/dragino-end-node-decoder]]
750
751
752 == 2.5 Uplink Interval ==
753
754
755 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:
756
757 [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/#H4.1ChangeUplinkInterval>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/#H4.1ChangeUplinkInterval]]
758
759
760 == 2.6 Examples To Set SDI commands. ==
761
762 === 2.6.1 Examples 1 ===
763
764
765 COM port and SDI-12 sensor communication converted to SDI-12-LB and SDI-12 sensor communication.
766
767 [[image:image-20230222143809-1.png||_mstalt="429962" height="564" width="729"]]
768
769
770 (% style="color:blue" %)**1) The AT+COMMANDx command is applied to the red arrow part, and sends the SDI12 command to the SDI12 sensor:**
771
772 a. Send the first command and get the first reply:
773
774 (% style="color:#037691" %)**AT+COMMANDx=1I!,0,0,1**
775
776 b. Send the second command and get the second reply:
777
778 (% style="color:#037691" %)**AT+COMMANDx=2I!,0,0,1**
779
780 c. Send the third command and get the third reply:
781
782 (% style="color:#037691" %)**AT+COMMANDx=3I!,0,0,1**
783
784 d. Send the fourth command and get the fourth reply:
785
786 (% style="color:#037691" %)**AT+COMMANDx=4I!,0,0,1**
787
788 e. Send the fifth command plus the sixth command, get the sixth reply:
789
790 (% style="color:#037691" %)**AT+COMMANDx=1M!,2,1,1**
791
792 f. Send the seventh command plus the eighth command, get the eighth reply:
793
794 (% style="color:#037691" %)**AT+COMMANDx=2M!,2,1,1**
795
796 g. Send the ninth command plus the tenth command, get the tenth reply:
797
798 (% style="color:#037691" %)**AT+COMMANDx=3M!,1,1,1**
799
800 h. Send the eleventh command plus the twelfth command, get the twelfth reply:
801
802 (% style="color:#037691" %)**AT+COMMANDx=4M!,1,1,1**
803
804
805 (% style="color:blue" %)**2) The AT+DATACUTx command is applied to the green arrow part, receiving and cut out data from the SDI12 sensor:**
806
807 a. The first reply, all 34 characters: ”113TRUEBNERSMT100038220303182331<CR><LF>”
808
809 Cut out all characters: (% _mstmutation="1" style="color:#037691" %)**AT+ALLDATAMOD=1 or AT+DATACUTx=34,2,1~~34**(% style="color:#037691" %);
810
811 b. The sixth reply, all 31 characters:”1+19210+1.04+0.00+22.49+11.75<CR><LF>”
812
813 Cut out all characters: (% _mstmutation="1" style="color:#037691" %)**AT+ALLDATAMOD=1 or AT+DATACUTx=31,2,1~~31**(% style="color:#037691" %);
814
815 c. The eighth reply, all 31 characters:”2+18990+1.08+0.00+22.24+11.80<CR><LF>”
816
817 Cut out all characters: (% _mstmutation="1" style="color:#037691" %)**AT+ALLDATAMOD=1 or AT+DATACUTx=31,2,1~~31**(% style="color:#037691" %);
818
819 d. The tenth reply, all 15 characters:”3-2919.8+24.0<CR><LF>”
820
821 Cut out all characters: (% _mstmutation="1" style="color:#037691" %)**AT+ALLDATAMOD=1 or AT+DATACUTx=15,2,1~~15**(% style="color:#037691" %);
822
823 e. The twelfth reply, all 25 characters:”4+30.8+22.84+4.7+954.38<CR><LF>”
824
825 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”**.
826
827
828 == 2.7 Frequency Plans ==
829
830
831 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.
832
833 [[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/]]
834
835
836 == 2.8 Firmware Change Log ==
837
838
839 **Firmware download link:**
840
841 [[https:~~/~~/www.dropbox.com/sh/qrbgbikb109lkiv/AACBR-v_ZhZAMengcY7Nsa1ja?dl=0>>https://www.dropbox.com/sh/qrbgbikb109lkiv/AACBR-v_ZhZAMengcY7Nsa1ja?dl=0]]
842
843
844 = 3. Configure SDI-12-LB via AT Command or LoRaWAN Downlink =
845
846
847 Use can configure SDI-12-LB via AT Command or LoRaWAN Downlink.
848
849 * AT Command Connection: See [[FAQ>>||anchor="H7.FAQ"]].
850 * LoRaWAN Downlink instruction for different platforms: See [[IoT LoRaWAN Server>>http://wiki.dragino.com/xwiki/bin/view/Main/]] section.
851
852 There are two kinds of commands to configure SDI-12-LB, they are:
853
854 * (% style="color:blue" %)**General Commands**.
855
856 These commands are to configure:
857
858 * General system settings like: uplink interval.
859 * LoRaWAN protocol & radio related command.
860
861 They are same for all Dragino Device which support DLWS-005 LoRaWAN Stack. These commands can be found on the wiki:
862
863 [[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/]]
864
865
866 * (% style="color:blue" %)**Commands special design for SDI-12-LB**
867
868 These commands only valid for SDI-12-LB, as below:
869
870
871 == 3.1 Set Transmit Interval Time ==
872
873
874 Feature: Change LoRaWAN End Node Transmit Interval.
875
876 (% style="color:blue" %)**AT Command: AT+TDC**
877
878 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
879 |=(% 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**
880 |(% style="background-color:#f2f2f2; width:157px" %)AT+TDC=?|(% style="background-color:#f2f2f2; width:166px" %)Show current transmit Interval|(% style="background-color:#f2f2f2" %)(((
881 30000
882 OK
883 the interval is 30000ms = 30s
884 )))
885 |(% style="background-color:#f2f2f2; width:157px" %)AT+TDC=60000|(% style="background-color:#f2f2f2; width:166px" %)Set Transmit Interval|(% style="background-color:#f2f2f2" %)(((
886 OK
887 Set transmit interval to 60000ms = 60 seconds
888 )))
889
890 (% style="color:blue" %)**Downlink Command: 0x01**
891
892
893 Format: Command Code (0x01) followed by 3 bytes time value.
894
895 If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01.
896
897 * Example 1: Downlink Payload: 0100001E  ~/~/ Set Transmit Interval (TDC) = 30 seconds
898 * Example 2: Downlink Payload: 0100003C  ~/~/  Set Transmit Interval (TDC) = 60 seconds
899
900
901
902 == 3.2 Set Interrupt Mode ==
903
904
905 Feature, Set Interrupt mode for GPIO_EXIT.
906
907 (% style="color:blue" %)**AT Command: AT+INTMOD**
908
909 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
910 |=(% 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**
911 |(% style="background-color:#f2f2f2; width:154px" %)AT+INTMOD=?|(% style="background-color:#f2f2f2; width:196px" %)Show current interrupt mode|(% style="background-color:#f2f2f2; width:157px" %)(((
912 0
913 OK
914 the mode is 0 =Disable Interrupt
915 )))
916 |(% style="background-color:#f2f2f2; width:154px" %)AT+INTMOD=2|(% style="background-color:#f2f2f2; width:196px" %)(((
917 Set Transmit Interval
918 0. (Disable Interrupt),
919 ~1. (Trigger by rising and falling edge)
920 2. (Trigger by falling edge)
921 3. (Trigger by rising edge)
922 )))|(% style="background-color:#f2f2f2; width:157px" %)OK
923
924 (% style="color:blue" %)**Downlink Command: 0x06**
925
926 Format: Command Code (0x06) followed by 3 bytes.
927
928 This means that the interrupt mode of the end node is set to 0x000003=3 (rising edge trigger), and the type code is 06.
929
930 * Example 1: Downlink Payload: 06000000  ~/~/  Turn off interrupt mode
931 * Example 2: Downlink Payload: 06000003  ~/~/  Set the interrupt mode to rising edge trigger
932
933
934
935 == 3.3 Set the output time ==
936
937
938 Feature, Control the output 3V3 , 5V or 12V.
939
940 (% style="color:blue" %)**AT Command: AT+3V3T**
941
942 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:474px" %)
943 |=(% 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**
944 |(% style="background-color:#f2f2f2; width:154px" %)AT+3V3T=?|(% style="background-color:#f2f2f2; width:201px" %)Show 3V3 open time.|(% style="background-color:#f2f2f2; width:116px" %)(((
945 0
946 OK
947 )))
948 |(% 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" %)(((
949 OK
950 default setting
951 )))
952 |(% 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" %)(((
953 OK
954 )))
955 |(% 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" %)(((
956 OK
957 )))
958
959 (% style="color:blue" %)**AT Command: AT+5VT**
960
961 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:470px" %)
962 |=(% 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**
963 |(% style="background-color:#f2f2f2; width:155px" %)AT+5VT=?|(% style="background-color:#f2f2f2; width:196px" %)Show 5V open time.|(% style="background-color:#f2f2f2; width:114px" %)(((
964 0
965 OK
966 )))
967 |(% 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" %)(((
968 OK
969 default setting
970 )))
971 |(% 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" %)(((
972 OK
973 )))
974 |(% 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" %)(((
975 OK
976 )))
977
978 (% style="color:blue" %)**AT Command: AT+12VT**
979
980 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:443px" %)
981 |=(% 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**
982 |(% style="background-color:#f2f2f2; width:156px" %)AT+12VT=?|(% style="background-color:#f2f2f2; width:199px" %)Show 12V open time.|(% style="background-color:#f2f2f2; width:83px" %)(((
983 0
984 OK
985 )))
986 |(% 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
987 |(% 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" %)(((
988 OK
989 )))
990
991 (% style="color:blue" %)**Downlink Command: 0x07**
992
993 Format: Command Code (0x07) followed by 3 bytes.
994
995 The first byte is which power, the second and third bytes are the time to turn on.
996
997 * Example 1: Downlink Payload: 070101F4  **~-~-->**  AT+3V3T=500
998 * Example 2: Downlink Payload: 0701FFFF   **~-~-->**  AT+3V3T=65535
999 * Example 3: Downlink Payload: 070203E8  **~-~-->**  AT+5VT=1000
1000 * Example 4: Downlink Payload: 07020000  **~-~-->**  AT+5VT=0
1001 * Example 5: Downlink Payload: 070301F4  **~-~-->**  AT+12VT=500
1002 * Example 6: Downlink Payload: 07030000  **~-~-->**  AT+12VT=0
1003
1004
1005
1006 == 3.4 Set the all data mode ==
1007
1008
1009 Feature, Set the all data mode.
1010
1011 (% style="color:blue" %)**AT Command: AT+ALLDATAMOD**
1012
1013 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:437px" %)
1014 |=(% style="background-color:#D9E2F3;color:#0070C0" %)**Command Example**|=(% style="background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="background-color:#D9E2F3;color:#0070C0" %)**Response**
1015 |(% style="background-color:#f2f2f2" %)AT+ALLDATAMOD=?|(% style="background-color:#f2f2f2" %)Show current all data mode|(% style="background-color:#f2f2f2" %)(((
1016 0
1017 OK
1018 )))
1019 |(% style="background-color:#f2f2f2" %)AT+ALLDATAMOD=1|(% style="background-color:#f2f2f2" %)Set all data mode is 1.|(% style="background-color:#f2f2f2" %)OK
1020
1021 (% style="color:blue" %)**Downlink Command: 0xAB**
1022
1023 Format: Command Code (0xAB) followed by 1 bytes.
1024
1025 * Example 1: Downlink Payload: AB 00  ~/~/  AT+ALLDATAMOD=0
1026 * Example 2: Downlink Payload: AB 01  ~/~/  AT+ALLDATAMOD=1
1027
1028
1029
1030 == 3.5 Set the splicing payload for uplink ==
1031
1032
1033 Feature, splicing payload for uplink.
1034
1035 (% style="color:blue" %)**AT Command: AT+DATAUP**
1036
1037 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
1038 |=(% 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**
1039 |(% 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" %)(((
1040 0
1041 OK
1042 )))
1043 |(% style="background-color:#f2f2f2; width:154px" %)AT+DATAUP =0|(% style="background-color:#f2f2f2; width:266px" %)(((
1044 Set splicing payload for uplink mode is 0.
1045 )))|(% style="background-color:#f2f2f2" %)(((
1046 OK
1047 )))
1048 |(% 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
1049 |(% style="background-color:#f2f2f2; width:154px" %)AT+DATAUP =1,20000|(% style="background-color:#f2f2f2; width:266px" %)(((
1050 Set splicing payload for uplink mode is 1, and the uplink interval of each splice to 20000 milliseconds.
1051 )))|(% style="background-color:#f2f2f2" %)OK
1052
1053 (% style="color:blue" %)**Downlink Command: 0xAD**
1054
1055 Format: Command Code (0xAD) followed by 1 bytes or 5 bytes.
1056
1057 * Example 1: Downlink Payload: AD 00  ~/~/  AT+DATAUP=0
1058 * Example 2: Downlink Payload: AD 01  ~/~/  AT+DATAUP =1
1059 * Example 3: Downlink Payload: AD 01 00 00 14  ~/~/  AT+DATAUP =1,20000
1060
1061 This means that the interval is set to 0x000014=20S
1062
1063
1064 == 3.6 Set the payload version ==
1065
1066
1067 Feature, Set the payload version.
1068
1069 (% style="color:blue" %)**AT Command: AT+PAYVER**
1070
1071 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:437px" %)
1072 |=(% 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**
1073 |(% style="background-color:#f2f2f2; width:158px" %)AT+PAYVER=?|(% style="background-color:#f2f2f2; width:192px" %)Show current payload version|(% style="background-color:#f2f2f2" %)(((
1074 1
1075 OK
1076 )))
1077 |(% 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
1078
1079 (% style="color:blue" %)**Downlink Command: 0xAE**
1080
1081 Format: Command Code (0xAE) followed by 1 bytes.
1082
1083 * Example 1: Downlink Payload: AE 01  ~/~/  AT+PAYVER=1
1084 * Example 2: Downlink Payload: AE 05  ~/~/  AT+PAYVER=5
1085
1086
1087
1088 = 4. Battery & Power Consumption =
1089
1090
1091 SDI-12-LB uses ER26500 + SPC1520 battery pack. See below link for detail information about the battery info and how to replace.
1092
1093 [[**Battery Info & Power Consumption Analyze**>>url:http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] .
1094
1095
1096 = 5. Remote Configure device =
1097
1098 == 5.1 Connect via BLE ==
1099
1100
1101 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/]]
1102
1103
1104 == 5.2 AT Command Set ==
1105
1106
1107
1108 = 6. OTA firmware update =
1109
1110
1111 Please see this link for how to do OTA firmware update.
1112
1113 [[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/]]
1114
1115
1116 = 7. FAQ =
1117
1118 == 7.1 How to use AT Command  via UART to access device? ==
1119
1120
1121 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]]
1122
1123
1124 == 7.2 How to update firmware via UART port? ==
1125
1126
1127 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]]
1128
1129
1130 == 7.3 How to change the LoRa Frequency Bands/Region? ==
1131
1132
1133 You can follow the instructions for [[how to upgrade image>>doc:Main.Firmware Upgrade Instruction for STM32 base products.WebHome]].
1134 When downloading the images, choose the required image file for download. ​
1135
1136
1137 = 8. ​Order Info =
1138
1139
1140 (((
1141 (% style="color:blue" %)**Part Number: SDI-12-LB-XXX**
1142 )))
1143
1144 (((
1145 XXX: The default frequency band
1146 )))
1147
1148 (((
1149 (% style="color:red" %)**AS923**(%%): LoRaWAN AS923 band
1150 (% style="color:red" %)**AU915**(%%): LoRaWAN AU915 band
1151 (% style="color:red" %)**EU433**(%%): LoRaWAN EU433 band
1152 (% style="color:red" %)**EU868**(%%): LoRaWAN EU868 band
1153 (% style="color:red" %)**KR920**(%%): LoRaWAN KR920 band
1154 (% style="color:red" %)**US915**(%%): LoRaWAN US915 band
1155 (% style="color:red" %)**IN865**(%%): LoRaWAN IN865 band
1156 (% style="color:red" %)**CN470**(%%): LoRaWAN CN470 band
1157 )))
1158
1159
1160 = 9. Packing Info =
1161
1162
1163 (% style="color:#037691" %)**Package Includes**:
1164
1165 * SDI-12-LB SDI-12 to LoRaWAN Converter x 1
1166
1167 (% style="color:#037691" %)**Dimension and weight**:
1168
1169 * Device Size: cm
1170 * Device Weight: g
1171 * Package Size / pcs : cm
1172 * Weight / pcs : g
1173
1174
1175
1176 = 10. ​Support =
1177
1178
1179 * 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.
1180
1181 * 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]]
Copyright ©2010-2024 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0