Hide last authors
Xiaoling 2.2 1 (% style="text-align:center" %)
2 [[image:image-20230131183542-1.jpeg||height="694" width="694"]]
3
4 **Table of Contents:**
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 1. Introduction
20 11. ​What is LoRaWAN Pressure Sensor
21
22 The Dragino **SDI-12-LB** is a **SDI-12 to LoRaWAN Convert **designed for Smart Agriculture solution.
23
24
25 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.
26
27
28 **SDI-12-LB** has SDI-12 interface and support 12v output to power external SDI-12 sensor. It can get the environment data from SDI-12 sensor and sends out the data via LoRaWAN wireless protocol.
29
30
31 The LoRa wireless technology used in **SDI-12-LB** allows device to send data and reach extremely long ranges at low data-rates. It provides ultra-long range spread spectrum communication and high interference immunity whilst minimizing current consumption.
32
33
34 **SDI-12-LB** is powered by **8500mAh Li-SOCI2 battery**, it is designed for long term use up to 5 years.
35
36
37 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.
38
39
40
41 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png]]
42
43
44
45
46
47 *
48 *1. ​ Features
49 * LoRaWAN 1.0.3 Class A
50 * Ultra-low power consumption
51 * Controllable 5v and 12v output to power external sensor
52 * SDI-12 Protocol to connect to SDI-12 Sensor
53 * Monitor Battery Level
54 * Bands: CN470/EU433/KR920/US915/EU868/AS923/AU915/IN865
55 * Support Bluetooth v5.1 and LoRaWAN remote configure.
56 * Support wireless OTA update firmware
57 * Uplink on periodically
58 * Downlink to change configure
59 * 8500mAh Battery for long term use
60
61
62 1.
63 11. Specification
64
65 **Micro Controller:**
66
67 * MCU: 48Mhz ARM
68 * Flash: 256KB
69 * RAM: 64KB
70
71 **Common DC Characteristics:**
72
73 * Supply Voltage: 2.5v ~~ 3.6v
74 * Operating Temperature: -40 ~~ 85°C
75
76 **LoRa Spec:**
77
78 * Frequency Range,  Band 1 (HF): 862 ~~ 1020 Mhz
79 * Max +22 dBm constant RF output vs.
80 * RX sensitivity: down to -139 dBm.
81 * Excellent blocking immunity
82
83
84 **Current Input Measuring :**
85
86 * Range: 0 ~~ 20mA
87 * Accuracy: 0.02mA
88 * Resolution: 0.001mA
89
90
91 **Voltage Input Measuring:**
92
93 * Range: 0 ~~ 30v
94 * Accuracy: 0.02v
95 * Resolution: 0.001v
96
97
98 **Battery:**
99
100 * Li/SOCI2 un-chargeable battery
101 * Capacity: 8500mAh
102 * Self-Discharge: <1% / Year @ 25°C
103 * Max continuously current: 130mA
104 * Max boost current: 2A, 1 second
105
106
107 **Power Consumption**
108
109 * Sleep Mode: 5uA @ 3.3v
110 * LoRa Transmit Mode: 125mA @ 20dBm, 82mA @ 14dBm
111
112
113 1.
114 11. Connect to SDI-12 Sensor
115
116 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image002.png]]
117
118
119
120 1.
121 11. Sleep mode and working mode
122
123
124 **Deep Sleep Mode: Sensor doesn’t have any LoRaWAN activate. This mode is used for storage and shipping to save battery life.**
125
126
127 **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.**
128
129
130
131
132
133 1.
134 11. Button & LEDs
135
136 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image003.png]]
137
138
139
140 |**Behavior on ACT**|**Function**|**Action**
141 |Pressing ACT between 1s < time < 3s|Send an uplink|(((
142 If sensor is already Joined to LoRaWAN network, sensor will send an uplink packet, **blue led** will blink once.
143
144 Meanwhile, BLE module will be active and user can connect via BLE to configure device.
145 )))
146 |Pressing ACT for more than 3s|Active Device|(((
147 **Green led** will fast blink 5 times, device will enter **OTA mode** for 3 seconds. And then start to JOIN LoRaWAN network.
148
149 **Green led** will solidly turn on for 5 seconds after joined in network.
150
151 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.
152 )))
153 |Fast press ACT 5 times.|Deactivate Device|red led will solid on for 5 seconds. Means SDI-12-LB are in Deep Sleep Mode.
154
155
156
157 1.
158 11. Pin Mapping
159
160 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image004.png]]
161
162 1.
163 11. BLE connection
164
165 SDI-12-LB support BLE remote configure.
166
167
168 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:
169
170 * Press button to send an uplink
171 * Press button to active device.
172 * Device Power on or reset.
173
174 If there is no activity connection on BLE in 60 seconds, sensor will shut down BLE module to enter low power mode.
175
176
177
178
179 1.
180 11. Mechanical
181
182 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image005.png]]
183
184 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image006.png]]
185
186 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image007.png]]
187
188
189
190
191 1. Configure SDI-12 to connect to LoRaWAN network
192 11. How it works
193
194 The SDI-12-LB is configured as **LoRaWAN OTAA Class A** mode by default. It has OTAA keys to join LoRaWAN network. To connect a local LoRaWAN network, you need to input the OTAA keys in the LoRaWAN IoT server and activate the SDI-12-LB. It will automatically join the network via OTAA and start to send the sensor value. The default uplink interval is 20 minutes.
195
196
197 1.
198 11. ​Quick guide to connect to LoRaWAN server (OTAA)
199
200 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.
201
202
203 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image008.png]]
204
205
206 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.
207
208
209 **Step 1**: Create a device in TTN with the OTAA keys from SDI-12-LB.
210
211 Each SDI-12-LB is shipped with a sticker with the default device EUI as below:
212
213
214 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image009.png]]
215
216
217
218
219
220 You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:
221
222
223 **Register the device**
224
225 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image010.png]]
226
227
228 **Add APP EUI and DEV EUI**
229
230
231 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image011.png]]
232
233
234 **Add APP EUI in the application**
235
236
237 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image012.png]]
238
239
240 **Add APP KEY**
241
242 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image013.png]]
243
244
245 **Step 2**: Activate on SDI-12-LB
246
247
248 Press the button for 5 seconds to activate the SDI-12-LB.
249
250
251 **Green led** will fast blink 5 times, device will enter **OTA mode** for 3 seconds. And then start to JOIN LoRaWAN network. **Green led** will solidly turn on for 5 seconds after joined in network.
252
253
254 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image014.png]]
255
256
257
258
259
260 1.
261 11. ​SDI-12 Related Commands
262
263
264 User need to configure SDI-12-LB to communicate with SDI-12 sensors otherwise the uplink payload will only include a few bytes.
265
266
267 1.
268 11.
269 111. Basic SDI-12 debug command
270
271 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.
272
273
274 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.
275
276
277 The following is the display information on the serial port and the server.
278
279 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image015.png]]
280
281 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image016.png]]
282
283 al!  ~-~- Get SDI-12 sensor Identification
284
285 * AT Command: AT+ADDRI=aa
286 * LoRaWAN Downlink(prefix 0xAA00): AA 00 aa
287
288 Parameter: aa: ASCII value of SDI-12 sensor address in downlink or HEX value in AT Command)
289
290 Example : AT+ADDRI=0 ( Equal to downlink: 0x AA 00 30)
291
292
293
294 The following is the display information on the serial port and the server.
295
296
297 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image017.png]]
298
299 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image018.png]]
300
301
302 aM!,aMC!, aM1!- aM9!, aMC1!- aMC9!
303
304 aM!: Start Non-Concurrent Measurement
305
306 aMC!: Start Non-Concurrent Measurement – Request CRC
307
308 aM1!- aM9!: Additional Measurements
309
310 aMC1!- aMC9!: Additional Measurements – Request CRC
311
312
313 * AT Command : AT+ADDRM=0,1,0,1
314 * LoRaWAN Downlink(prefix 0xAA01): 0xAA 01 30 01 00 01
315
316 Downlink:AA 01 aa bb cc dd
317
318 aa: SDI-12 sensor address.
319
320 bb: 0: no CRC, 1: request CRC
321
322 cc: 1-9: Additional Measurement, 0: no additional measurement
323
324 dd: delay (in second) to send **aD0!** to get return.
325
326
327 The following is the display information on the serial port and the server.
328
329 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image019.png]]
330
331 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image020.png]]
332
333
334
335 aC!, aCC!,  aC1!- aC9!,  aCC1!- aCC9!
336
337 aC!: Start Concurrent Measurement
338
339 aCC!: Start Concurrent Measurement – Request CRC
340
341 aC1!- aC9!: Start Additional Concurrent Measurements
342
343 aCC1!- aCC9!: Start Additional Concurrent Measurements – Request CRC
344
345
346 * AT Command : AT+ADDRC=0,1,0,1 
347
348 * LoRaWAN Downlink(0xAA02): 0xAA 02 30 01 00 01
349
350 Downlink: AA 02 aa bb cc dd
351
352 aa: SDI-12 sensor address.
353
354 bb: 0: no CRC, 1: request CRC
355
356 cc: 1-9: Additional Measurement, 0: no additional measurement
357
358 dd: delay (in second) to send **aD0!** to get return.
359
360
361 The following is the display information on the serial port and the server.
362
363 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image021.png]]
364
365 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image022.png]]
366
367
368 aR0!- aR9!,  aRC0!- aRC9!
369
370 Start Continuous Measurement
371
372 Start Continuous Measurement – Request CRC
373
374
375 * AT Command : AT+ADDRR=0,1,0,1 
376 * LoRaWAN Downlink (0xAA 03): 0xAA 03 30 01 00 01
377
378 Downlink: AA 03 aa bb cc dd
379
380 aa: SDI-12 sensor address.
381
382 bb: 0: no CRC, 1: request CRC
383
384 cc: 1-9: Additional Measurement, 0: no additional measurement
385
386 dd: delay (in second) to send **aD0!** to get return.
387
388
389 The following is the display information on the serial port and the server.
390
391 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image023.png]]
392
393 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image024.png]]
394
395 1.
396 11.
397 111. Advance SDI-12 Debug command
398
399 This command can be used to debug all SDI-12 command.
400
401
402 LoRaWAN Downlink: A8 aa xx xx xx xx bb cc
403
404 (aa: total SDI-12 command length)
405
406 (xx: SDI-12 command)
407
408 (bb: Delay to wait for return)
409
410 (cc: 0: don’t uplink return to LoRaWAN, 1: Uplink return to LoRaWAN on FPORT=100)
411
412
413 Example: AT+CFGDEV =0RC0!,1
414
415 0RC0!: SDI-12 Command,
416
417 1: Delay 1 second.  ( 0: 810 mini-second)
418
419
420 Equal Downlink: 0xA8 05 30 52 43 30 21 01 01
421
422
423 The following is the display information on the serial port and the server.
424
425
426 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image025.png]]
427
428 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image026.png]]
429
430 1.
431 11.
432 111. Convert ASCII to String
433
434 This command is used to convert between ASCII and String format.
435
436
437 AT+CONVFORM ( Max length: 80 bytes)
438
439 Example:
440
441 1)AT+CONVFORM=0,string   Convert String from String to ASCII
442
443 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image027.png]]
444
445
446 2)AT+CONVFORM=1,ASCII   Convert ASCII to String.
447
448 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image028.png]]
449
450
451
452 1.
453 11.
454 111. Define periodically SDI-12 commands and uplink.
455
456 AT+COMMANDx & AT+DATACUTx
457
458 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.
459
460
461 * ** AT Command:**
462
463 **AT+COMMANDx=var1,var2,var3,var4.**
464
465 var1: SDI-12 command , for example: 0RC0!
466
467 var2: Wait timeout for return. (unit: second)
468
469 var3: Whether to send //addrD0!// to get return after var2 timeout. 0: Don’t Send //addrD0!//; 1: Send //addrD0!//.
470
471 var4: validation check for return. If return invalid, SDI-12-LB will resend this command. Max 2 retries.
472
473 0  No validation check;
474
475 1  Check if return chars are printable char(0x20 ~~ 0x7E);
476
477 2  Check if there is return from SDI-12 sensor
478
479 3  Check if return pass CRC check ( SDI-12 command var1 must include CRC request);
480
481
482 Each AT+COMMANDx is followed by a **AT+DATACUT** command. AT+DATACUT command is used to take the useful string from the SDI-12 sensor so the final payload will have the minimum length to uplink.
483
484
485 **AT+DATACUTx** : This command defines how to handle the return from AT+COMMANDx, max return length is 100 bytes.
486
487 |(((
488 AT+DATACUTx=a,b,c
489
490 a: length for the return of AT+COMMAND
491
492 b:1: grab valid value by byte, max 6 bytes. 2: grab valid value by bytes section, max 3 sections.
493
494 c: define the position for valid value. 
495 )))
496
497
498 For example, if return from AT+COMMAND1 is “013METER   TER12 112T12-00024895” ,. Below AT+DATACUT1 will get different result to combine payload:
499
500
501 |AT+DATACUT1 value|Final Result to combine Payload
502 |34,1,1+2+3|0D 00 01 30 31 33
503 |34,2,1~~8+12~~16|0D 00 01 30 31 33 4D 45 54 45 52 54 45 52 31 32
504 |34,2,1~~34|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
505
506
507
508 * ** Downlink Payload:**
509
510 **0xAF**  downlink command can be used to set AT+COMMANDx or AT+DATACUTx.
511
512
513 **Note : if user use AT+COMMANDx to add a new command, he also need to send AT+DATACUTx downlink.**
514
515
516 Format: ** AF MM NN LL XX XX XX XX YY**
517
518 Where:
519
520 * MM: the AT+COMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F,
521 * NN:  1: set the AT+DATACUT value ; 2: set the AT+DATACUT value.
522 * LL:  The length of AT+COMMAND or AT+DATACUT command
523 * XX XX XX XX: AT+COMMAND or AT+DATACUT command
524 * YY:  If YY=0, RS485-LN will execute the downlink command without uplink; if YY=1, RS485-LN will execute an uplink after got this command. 
525
526 Example:
527
528 **AF 03 01 07 30 4D 43 21 01 01 01 00**: Same as AT+COMMAND3=**0MC!**,** 1**,** 1**,** 1**
529
530 **AF 03 02 06 10 01 05 06 09 0A 00**: Same as AT+DATACUT3=**16**,**1**,**5+6+9+10**
531
532 **AF 03 02 06 0B 02 05 07 08 0A 00**: Same as AT+DATACUT3=**11**,**2**,**5~~7+8~~10**
533
534
535 **Clear SDI12 Command**
536
537 The AT+COMMANDx and AT+DATACUTx settings are stored in special location, user can use below command to clear them.
538
539
540 * ** AT Command:**
541
542 **~ AT+CMDEAR=mm,nn**   mm: start position of erase ,nn: stop position of erase
543
544
545 Etc. AT+CMDEAR=1,10 means erase AT+COMMAND1/AT+DATACUT1 to AT+COMMAND10/AT+DATACUT10
546
547
548 * ** Downlink Payload:**
549
550 **~ 0x09 aa bb**  same as AT+CMDEAR=aa,bb
551
552
553
554
555 **command combination**
556
557 Below shows a screen shot how the results combines together to a uplink payload.
558
559 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image029.png]]
560
561
562 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.
563
564 **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.
565
566
567 For example: as below photo, AT+ALLDATAMOD=1, but AT+DATACUT1 has been set, AT+DATACUT1 will be still effect the result.
568
569
570 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image030.png]]
571
572
573 If AT+ALLDATAMOD=1, **FX,X** will be added in the payload, FX specify which command is used and X specify the length of return. for example in above screen, F1 05 means the return is from AT+COMMAND1 and the return is 5 bytes.
574
575
576
577 **Compose Uplink**
578
579 **AT+DATAUP=0**
580
581 Compose the uplink payload with value returns in sequence and send with A SIGNLE UPLINK.
582
583 Final Payload is Battery Info+PAYVER + VALID Value from RETURN1 + Valid Value from RETURN2 + … + RETURNx
584
585 Where PAYVER is defined by AT+PAYVER, below is an example screen shot.
586
587
588 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image031.png]]
589
590
591 **AT+DATAUP=1**
592
593 Compose the uplink payload with value returns in sequence and send with Multiply UPLINKs.
594
595 Final Payload is
596
597 **Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA**
598
599 1. Battery Info (2 bytes): Battery voltage
600 1. PAYVER (1 byte): Defined by AT+PAYVER
601 1. PAYLOAD COUNT (1 byte): Total how many uplinks of this sampling.
602 1. PAYLOAD# (1 byte): Number of this uplink. (from 0,1,2,3…,to PAYLOAD COUNT)
603 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
604
605 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image032.png]]
606
607
608 **Notice: the Max bytes is according to the max support bytes in different Frequency Bands for lowest SF. As below:**
609
610 ~* For AU915/AS923 bands, if UplinkDwell time=0, max 51 bytes for each uplink ( so 51 -5 = 46 max valid date)
611
612 * For AU915/AS923 bands, if UplinkDwell time=1, max 11 bytes for each uplink ( so 11 -5 = 6 max valid date).
613
614 * For US915 band, max 11 bytes for each uplink ( so 11 -5 = 6 max valid date).
615
616 ~* For all other bands: max 51 bytes for each uplink  ( so 51 -5 = 46 max valid date).
617
618 *** When AT+DATAUP=1, the maximum number of segments is 15, and the maximum total number of bytes is 1500;**
619
620 **~ When AT+DATAUP=1 and AT+ADR=0, the maximum number of bytes of each payload is determined by the DR value.**
621
622 1.
623 11. Uplink Payload
624
625
626 Uplink payloads have two types:
627
628 * Distance Value: Use FPORT=2
629 * Other control commands: Use other FPORT fields.
630
631 The application server should parse the correct value based on FPORT settings.
632
633
634 1.
635 11.
636 111. Device Payload, FPORT=5
637
638 Include device configure status. Once SDI-12-LB Joined the network, it will uplink this message to the server.
639
640
641 Users can also use the downlink command(0x26 01) to ask SDI-12-LB to resend this uplink.
642
643
644 |(% colspan="6" %)**Device Status (FPORT=5)**
645 |**Size (bytes)**|**1**|**2**|**1**|**1**|**2**
646 |**Value**|Sensor Model|Firmware Version|Frequency Band|Sub-band|BAT
647
648
649 Example parse in TTNv3
650
651 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image033.png]]
652
653 **Sensor Model**: For SDI-12-LB, this value is 0x17
654
655 **Firmware Version**: 0x0100, Means: v1.0.0 version
656
657 **Frequency Band**:
658
659 *0x01: EU868
660
661 *0x02: US915
662
663 *0x03: IN865
664
665 *0x04: AU915
666
667 *0x05: KZ865
668
669 *0x06: RU864
670
671 *0x07: AS923
672
673 *0x08: AS923-1
674
675 *0x09: AS923-2
676
677 *0x0a: AS923-3
678
679 *0x0b: CN470
680
681 *0x0c: EU433
682
683 *0x0d: KR920
684
685 *0x0e: MA869
686
687
688 **Sub-Band**:
689
690 AU915 and US915:value 0x00 ~~ 0x08
691
692 CN470: value 0x0B ~~ 0x0C
693
694 Other Bands: Always 0x00
695
696
697 **Battery Info**:
698
699 Check the battery voltage.
700
701 Ex1: 0x0B45 = 2885mV
702
703 Ex2: 0x0B49 = 2889mV
704
705
706 1.
707 11.
708 111. Uplink Payload, FPORT=2
709
710
711 There are different cases for uplink. See below
712
713 * SDI-12 Debug Command return: FPORT=100
714
715 * Periodically Uplink: FPORT=2
716
717
718 |(((
719 **Size**
720
721 **(bytes)**
722 )))|**2**|**1**|**Length depends on the return from the commands**
723 |**Value**|(((
724 Battery(mV)
725
726 &
727
728 Interrupt_Flag
729 )))|[[PAYLOAD_VER>>path:#Probe_Model]]|(((
730 If the valid payload is too long and exceed the maximum support
731
732 Payload length in server,server will show payload not provided in the LoRaWAN server.
733 )))
734
735
736 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image034.png]]
737
738
739
740 1.
741 11.
742 111. Battery Info
743
744 Check the battery voltage for SDI-12-LB.
745
746 Ex1: 0x0B45 = 2885mV
747
748 Ex2: 0x0B49 = 2889mV
749
750
751 1.
752 11.
753 111. Interrupt Pin
754
755 This data field shows if this packet is generated by **Interrupt Pin** or not. [[Click here>>path:#Int_mod]] for the hardware and software set up. Note: The Internet Pin is a separate pin in the screw terminal. See [[pin mapping>>path:#pins]].
756
757
758 Example:
759
760 Ex1: 0x0B45:0x0B&0x80= 0x00    Normal uplink packet.
761
762 Ex2: 0x8B49:0x8B&0x80= 0x80    Interrupt Uplink Packet.
763
764
765 1.
766 11.
767 111. Payload version
768
769
770
771
772
773
774
775 1.
776 11.
777 111. ​Decode payload in The Things Network
778
779 While using TTN network, you can add the payload format to decode the payload.
780
781 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image035.png]]
782
783
784 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.
785
786
787 下面的解码生成超链接放进去.
788
789 function Decoder(bytes, port) {
790
791 if(port==5)
792
793 {
794
795 var freq_band;
796
797 var sub_band;
798
799 var sensor;
800
801
802 if(bytes[0]==0x17)
803
804 sensor= "SDI12-LB";
805
806
807 var firm_ver= (bytes[1]&0x0f)+'.'+(bytes[2]>>4&0x0f)+'.'+(bytes[2]&0x0f);
808
809
810 if(bytes[3]==0x01)
811
812 freq_band="EU868";
813
814 else if(bytes[3]==0x02)
815
816 freq_band="US915";
817
818 else if(bytes[3]==0x03)
819
820 freq_band="IN865";
821
822 else if(bytes[3]==0x04)
823
824 freq_band="AU915";
825
826 else if(bytes[3]==0x05)
827
828 freq_band="KZ865";
829
830 else if(bytes[3]==0x06)
831
832 freq_band="RU864";
833
834 else if(bytes[3]==0x07)
835
836 freq_band="AS923";
837
838 else if(bytes[3]==0x08)
839
840 freq_band="AS923_1";
841
842 else if(bytes[3]==0x09)
843
844 freq_band="AS923_2";
845
846 else if(bytes[3]==0x0A)
847
848 freq_band="AS923_3";
849
850 else if(bytes[3]==0x0F)
851
852 freq_band="AS923_4";
853
854 else if(bytes[3]==0x0B)
855
856 freq_band="CN470";
857
858 else if(bytes[3]==0x0C)
859
860 freq_band="EU433";
861
862 else if(bytes[3]==0x0D)
863
864 freq_band="KR920";
865
866 else if(bytes[3]==0x0E)
867
868 freq_band="MA869";
869
870
871 if(bytes[4]==0xff)
872
873 sub_band="NULL";
874
875 else
876
877 sub_band=bytes[4];
878
879
880 var bat= (bytes[5]<<8 | bytes[6])/1000;
881
882
883 return {
884
885 SENSOR_MODEL:sensor,
886
887 FIRMWARE_VERSION:firm_ver,
888
889 FREQUENCY_BAND:freq_band,
890
891 SUB_BAND:sub_band,
892
893 BAT:bat,
894
895 }
896
897 }
898
899 else if(port==100)
900
901 {
902
903 var datas_sum={};
904
905 for(var j=0;j<bytes.length;j++)
906
907 {
908
909 var datas= String.fromCharCode(bytes[j]);
910
911 if(j=='0')
912
913 datas_sum.datas_sum=datas;
914
915 else
916
917 datas_sum.datas_sum+=datas;
918
919 }
920
921
922 return datas_sum;
923
924 }
925
926 else
927
928 {
929
930 var decode={};
931
932 decode.EXTI_Trigger= (bytes[0] & 0x80)? "TRUE":"FALSE";  
933
934 decode.BatV= ((bytes[0]<<8 | bytes[1])&0x7FFF)/1000;
935
936 decode.Payver= bytes[2];
937
938 for(var i=3;i<bytes.length;i++)
939
940 {
941
942 var data= String.fromCharCode(bytes[i]);
943
944 if(i=='3')
945
946 decode.data_sum=data;
947
948 else
949
950 decode.data_sum+=data;
951
952 }
953
954 return decode; 
955
956 }
957
958
959 }
960
961
962 1.
963 11. Uplink Interval
964
965 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:
966
967 [[http:~~/~~/wiki.dragino.com/index.php?title=End_Device_AT_Commands_and_Downlink_Commands#Change_Uplink_Interval>>url:http://wiki.dragino.com/index.php?title=End_Device_AT_Commands_and_Downlink_Commands#Change_Uplink_Interval]]
968
969
970
971 1.
972 11. Frequency Plans
973
974 The SDI12-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.
975
976
977 [[https:~~/~~/wiki.dragino.com/index.php?title=End_Device_Frequency_Band>>url:https://wiki.dragino.com/index.php?title=End_Device_Frequency_Band]]
978
979
980
981 1.
982 11. Firmware Change Log
983
984 **Firmware download link:**
985
986 [[https:~~/~~/www.dropbox.com/sh/gf1glloczbzz19h/AABbuYI4WY6VdAmpXo6o1V2Ka?dl=0>>url:https://www.dropbox.com/sh/gf1glloczbzz19h/AABbuYI4WY6VdAmpXo6o1V2Ka?dl=0]]
987
988
989
990 1. Configure SDI-12-LB via AT Command or LoRaWAN Downlink
991
992 Use can configure SDI-12-LB via AT Command or LoRaWAN Downlink.
993
994 * AT Command Connection: See [[FAQ>>path:#AT_COMMAND]].
995 * LoRaWAN Downlink instruction for different platforms:
996
997 [[http:~~/~~/wiki.dragino.com/index.php?title=Main_Page#Use_Note_for_Server>>url:http://wiki.dragino.com/index.php?title=Main_Page#Use_Note_for_Server]]
998
999
1000 There are two kinds of commands to configure SDI-12-LB, they are:
1001
1002 * **General Commands**.
1003
1004 These commands are to configure:
1005
1006 * General system settings like: uplink interval.
1007 * LoRaWAN protocol & radio related command.
1008
1009 They are same for all Dragino Device which support DLWS-005 LoRaWAN Stack. These commands can be found on the wiki:
1010
1011 [[http:~~/~~/wiki.dragino.com/index.php?title=End_Device_Downlink_Command>>url:http://wiki.dragino.com/index.php?title=End_Device_Downlink_Command]]
1012
1013
1014 * **Commands special design for SDI-12-LB**
1015
1016 These commands only valid for SDI-12-LB, as below:
1017
1018
1019
1020 1.
1021 11. Set Transmit Interval Time
1022
1023 Feature: Change LoRaWAN End Node Transmit Interval.
1024
1025 **AT Command: AT+TDC**
1026
1027 |**Command Example**|**Function**|**Response**
1028 |AT+TDC=?|Show current transmit Interval|(((
1029 30000
1030
1031 OK
1032
1033 the interval is 30000ms = 30s
1034 )))
1035 |AT+TDC=60000|Set Transmit Interval|(((
1036 OK
1037
1038 Set transmit interval to 60000ms = 60 seconds
1039 )))
1040
1041
1042 **Downlink Command: 0x01**
1043
1044 Format: Command Code (0x01) followed by 3 bytes time value.
1045
1046 If the downlink payload=0100003C, it means set the END Node’s Transmit Interval to 0x00003C=60(S), while type code is 01.
1047
1048 * Example 1: Downlink Payload: 0100001E ~/~/ Set Transmit Interval (TDC) = 30 seconds
1049 * Example 2: Downlink Payload: 0100003C ~/~/ Set Transmit Interval (TDC) = 60 seconds
1050
1051
1052
1053 1.
1054 11. Set Interrupt Mode
1055
1056 Feature, Set Interrupt mode for GPIO_EXIT.
1057
1058 **AT Command: AT+INTMOD**
1059
1060 |**Command Example**|**Function**|**Response**
1061 |AT+INTMOD=?|Show current interrupt mode|(((
1062 0
1063
1064 OK
1065
1066 the mode is 0 = No interruption
1067 )))
1068 |AT+INTMOD=2|(((
1069 Set Transmit Interval
1070
1071 1. (Disable Interrupt),
1072 1. (Trigger by rising and falling edge),
1073 1. (Trigger by falling edge)
1074 1. (Trigger by rising edge)
1075 )))|OK
1076
1077
1078 **Downlink Command: 0x06**
1079
1080 Format: Command Code (0x06) followed by 3 bytes.
1081
1082 This means that the interrupt mode of the end node is set to 0x000003=3 (rising edge trigger), and the type code is 06.
1083
1084 * Example 1: Downlink Payload: 06000000 ~/~/ Turn off interrupt mode
1085 * Example 2: Downlink Payload: 06000003 ~/~/ Set the interrupt mode to rising edge trigger
1086
1087
1088 1.
1089 11. Set the output time
1090
1091 Feature, Control the output 3V3 , 5V or 12V.
1092
1093 **AT Command: AT+3V3T**
1094
1095 |**Command Example**|**Function**|**Response**
1096 |AT+3V3T=?|Show 3V3 open time.|(((
1097 0
1098
1099 OK
1100 )))
1101 |AT+3V3T=0|Normally open 3V3 power supply.|(((
1102 OK
1103
1104 default setting
1105 )))
1106 |AT+3V3T=1000|Close after a delay of 1000 milliseconds.|(((
1107 OK
1108
1109
1110 )))
1111 |AT+3V3T=65535|Normally closed 3V3 power supply.|(((
1112 OK
1113
1114
1115 )))
1116
1117
1118 **AT Command: AT+5VT**
1119
1120 |**Command Example**|**Function**|**Response**
1121 |AT+5VT=?|Show 5V open time.|(((
1122 0
1123
1124 OK
1125 )))
1126 |AT+5VT=0|Normally closed 5V power supply.|(((
1127 OK
1128
1129 default setting
1130 )))
1131 |AT+5VT=1000|Close after a delay of 1000 milliseconds.|(((
1132 OK
1133
1134
1135 )))
1136 |AT+5VT=65535|Normally open 5V power supply.|(((
1137 OK
1138
1139
1140 )))
1141
1142
1143 **AT Command: AT+12VT**
1144
1145 |**Command Example**|**Function**|**Response**
1146 |AT+12VT=?|Show 12V open time.|(((
1147 0
1148
1149 OK
1150 )))
1151 |AT+12VT=0|Normally closed 12V power supply.|OK
1152 |AT+12VT=500|Close after a delay of 500 milliseconds.|(((
1153 OK
1154
1155
1156 )))
1157
1158
1159 **Downlink Command: 0x07**
1160
1161 Format: Command Code (0x07) followed by 3 bytes.
1162
1163 The first byte is which power, the second and third bytes are the time to turn on.
1164
1165 * Example 1: Downlink Payload: 070101F4  -> AT+3V3T=500
1166 * Example 2: Downlink Payload: 0701FFFF   -> AT+3V3T=65535
1167 * Example 3: Downlink Payload: 070203E8  -> AT+5VT=1000
1168 * Example 4: Downlink Payload: 07020000  -> AT+5VT=0
1169 * Example 5: Downlink Payload: 070301F4  -> AT+12VT=500
1170 * Example 6: Downlink Payload: 07030000  -> AT+12VT=0
1171
1172
1173 1.
1174 11. Set the all data mode
1175
1176 Feature, Set the all data mode.
1177
1178 **AT Command: AT+ALLDATAMOD**
1179
1180 |**Command Example**|**Function**|**Response**
1181 |AT+ALLDATAMOD=?|Show current all data mode|(((
1182 0
1183
1184
1185 OK
1186 )))
1187 |AT+ALLDATAMOD=1|Set all data mode is 1.|OK
1188
1189
1190 **Downlink Command: 0xAB**
1191
1192 Format: Command Code (0xAB) followed by 1 bytes.
1193
1194 * Example 1: Downlink Payload: AB 00 ~/~/ AT+ALLDATAMOD=0
1195 * Example 2: Downlink Payload: AB 01 ~/~/ AT+ALLDATAMOD=1
1196
1197
1198 1.
1199 11. Set the splicing payload for uplink
1200
1201 Feature, splicing payload for uplink.
1202
1203 **AT Command: AT+DATAUP**
1204
1205 |**Command Example**|**Function**|**Response**
1206 |AT+DATAUP =?|Show current splicing payload for uplink mode|(((
1207 0
1208
1209
1210 OK
1211 )))
1212 |AT+DATAUP =0|(((
1213 Set splicing payload for uplink mode is 0.
1214
1215
1216 )))|(((
1217 OK
1218
1219
1220 )))
1221 |AT+DATAUP =1|Set splicing payload for uplink mode is 1 , and the each splice uplink is sent sequentially.|OK
1222 |AT+DATAUP =1,20000|(((
1223 Set splicing payload for uplink mode is 1, and the uplink interval of each splice to 20000 milliseconds.
1224
1225
1226 )))|OK
1227
1228
1229 **Downlink Command: 0xAD**
1230
1231 Format: Command Code (0xAD) followed by 1 bytes or 5 bytes.
1232
1233 * Example 1: Downlink Payload: AD 00 ~/~/ AT+DATAUP=0
1234 * Example 2: Downlink Payload: AD 01 ~/~/ AT+DATAUP =1
1235 * Example 3: Downlink Payload: AD 01 00 00 14~/~/ AT+DATAUP =1,20000
1236
1237 This means that the interval is set to 0x000014=20S
1238
1239
1240 1.
1241 11. Set the payload version
1242
1243 Feature, Set the payload version.
1244
1245 **AT Command: AT+PAYVER**
1246
1247 |**Command Example**|**Function**|**Response**
1248 |AT+PAYVER=?|Show current payload version|(((
1249 1
1250
1251
1252 OK
1253 )))
1254 |AT+PAYVER=5|Set payload version is 5.|OK
1255
1256
1257 **Downlink Command: 0xAE**
1258
1259 Format: Command Code (0xAE) followed by 1 bytes.
1260
1261 * Example 1: Downlink Payload: AE 01 ~/~/ AT+PAYVER=1
1262 * Example 2: Downlink Payload: AE 05 ~/~/ AT+PAYVER=5
1263
1264
1265
1266 1. Battery & how to replace
1267 11. Battery Type
1268
1269 SDI-12-LB is equipped with a [[8500mAH ER26500 Li-SOCI2 battery>>url:https://www.dragino.com/downloads/index.php?dir=datasheet/Battery/ER26500/]]. The battery is un-rechargeable battery with low discharge rate targeting for 8~~10 years use. This type of battery is commonly used in IoT target for long-term running, such as water meter.
1270
1271
1272 The discharge curve is not linear so can’t simply use percentage to show the battery level. Below is the battery performance.
1273
1274 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image036.png]]
1275
1276
1277 Minimum Working Voltage for the SDI-12-LB:
1278
1279 SDI-12-LB:  2.45v ~~ 3.6v
1280
1281
1282 1.
1283 11. Replace Battery
1284
1285 Any battery with range 2.45 ~~ 3.6v can be a replacement. We recommend to use Li-SOCl2 Battery.
1286
1287 And make sure the positive and negative pins match.
1288
1289
1290
1291 1.
1292 11. Power Consumption Analyze
1293
1294
1295 Dragino Battery powered product are all runs in Low Power mode. We have an update battery calculator which base on the measurement of the real device. User can use this calculator to check the battery life and calculate the battery life if want to use different transmit interval.
1296
1297
1298 Instruction to use as below:
1299
1300
1301 Step 1: Downlink the up-to-date DRAGINO_Battery_Life_Prediction_Table.xlsx from:
1302
1303 [[https:~~/~~/www.dragino.com/downloads/index.php?dir=LoRa_End_Node/Battery_Analyze/>>url:https://www.dragino.com/downloads/index.php?dir=LoRa_End_Node/Battery_Analyze/]]
1304
1305
1306 Step 2: Open it and choose
1307
1308 * Product Model
1309 * Uplink Interval
1310 * Working Mode
1311
1312 And the Life expectation in difference case will be shown on the right.
1313
1314 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image037.png]]
1315
1316
1317 The battery related documents as below:
1318
1319 * [[Battery Dimension>>url:http://www.dragino.com/downloads/index.php?dir=datasheet/Battery/&file=LSN50-Battery-Dimension.pdf]],
1320 * [[Lithium-Thionyl Chloride Battery>>url:http://www.dragino.com/downloads/downloads/datasheet/Battery/ER18505_datasheet-EN.pdf]] datasheet, [[Tech Spec>>url:http://www.dragino.com/downloads/downloads/datasheet/Battery/ER18505_datasheet_PM-ER18505-S-02-LF_EN.pdf]]
1321 * [[Lithium-ion Battery-Capacitor datasheet>>url:http://www.dragino.com/downloads/downloads/datasheet/Battery/SPC_1520_datasheet.jpg]], [[Tech Spec>>url:http://www.dragino.com/downloads/downloads/datasheet/Battery/SPC1520%20Technical%20Specification20171123.pdf]]
1322
1323
1324
1325 |(((
1326 JST-XH-2P connector
1327 )))
1328
1329 [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image038.png]]
1330
1331
1332
1333 1.
1334 11.
1335 111. ​Battery Note
1336
1337 The Li-SICO battery is designed for small current / long period application. It is not good to use a high current, short period transmit method. The recommended minimum period for use of this battery is 5 minutes. If you use a shorter period time to transmit LoRa, then the battery life may be decreased.
1338
1339
1340 1.
1341 11.
1342 111. ​Replace the battery
1343
1344 You can change the battery in the SDI-12-LB.The type of battery is not limited as long as the output is between 3v to 3.6v. On the main board, there is a diode (D1) between the battery and the main circuit. If you need to use a battery with less than 3.3v, please remove the D1 and shortcut the two pads of it so there won’t be voltage drop between battery and main board.
1345
1346
1347 The default battery pack of SDI-12-LB includes a ER26500 plus super capacitor. If user can’t find this pack locally, they can find ER26500 or equivalence, which will also work in most case. The SPC can enlarge the battery life for high frequency use (update period below 5 minutes)
1348
1349
1350
1351
1352
1353
1354 1. Remote Configure device
1355 11. Connect via BLE
1356
1357
1358 Please see this instruction for how to configure via BLE:
1359
1360 [[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/]]
1361
1362
1363 1.
1364 11. AT Command Set
1365
1366
1367
1368 1. OTA firmware update
1369
1370 Please see this link for how to do OTA firmware update.
1371
1372 [[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/]]
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384 1. ​Order Info
1385
1386 **Package Includes**:
1387
1388 * SDI-12-LB SDI-12 to LoRaWAN Converter
1389
1390
1391 **Dimension and weight**:
1392
1393 * Device Size: cm
1394 * Device Weight: g
1395 * Package Size / pcs : cm
1396 * Weight / pcs : g
1397
1398
1399
1400
1401
1402 1. ​Support
1403
1404 * 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.
1405 * 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
1406
1407 [[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]]
1408
1409
Copyright ©2010-2024 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0