Changes for page SDI-12-LB/LS -- SDI-12 to LoRaWAN Converter User Manual
Last modified by Mengting Qiu on 2025/07/03 15:42
From version 173.1
edited by Xiaoling
on 2025/06/10 10:52
on 2025/06/10 10:52
Change comment:
There is no comment for this version
To version 180.1
edited by Mengting Qiu
on 2025/07/03 15:42
on 2025/07/03 15:42
Change comment:
There is no comment for this version
Summary
-
Page properties (2 modified, 0 added, 0 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. Xiaoling1 +XWiki.ting - Content
-
... ... @@ -728,30 +728,32 @@ 728 728 729 729 When using the AT+DATACONVx command, 730 730 731 -The data of RETURN3 will be converted into 2 data, the first data is +9 5, and the second data is +260.731 +The data of RETURN3 will be converted into 2 data, the first data is +192, and the second data is +258. 732 732 733 +The data of RETURN4 will be converted into 3 data, the first data is +187716, and the second data is +252, and the third data is +1. 734 + 733 733 * AT+DATACONV3=1,2+2,2 The first data is uploaded as 2 bytes and the second data is uploaded as 2 bytes. The form converted to hexadecimal is as shown above,as below: 734 734 * ((( 735 735 AT+DATACONV4=1,3+2,2+3,2 The first data uploads 3 bytes, the second data also uploads 2 bytes, and the third data also uploads 2 bytes. The hexadecimal form is shown above and as shown in the following figure: 736 736 ))) 737 737 738 -[[image:image-20250609141343-1.png]] 739 739 741 + 740 740 **For example,the uplink payload as below:** 741 741 742 -0C E401 00C6010302DB9900FD0001744 +0CFC 01 00C0 0102 02DD44 00FC 0001 743 743 744 -(% style="color:#037691" %)**BAT**(%%): 0x0C E4= 3300mV = 3.300V746 +(% style="color:#037691" %)**BAT**(%%): 0x0CFC = 3324mV = 3.324V 745 745 746 746 (% style="color:#037691" %)**Payload Version**(%%): 0x01, Means: v1.0 version 747 747 748 -(% style="color:#037691" %)**Data 1: **(%%)0x00C 6(H) = 198(D) / 100 = 19.8750 +(% style="color:#037691" %)**Data 1: **(%%)0x00C0(H) = 192(D) / 100 = 19.2 749 749 750 -(% style="color:#037691" %)**Data 2: **(%%)0x010 3(H) = 259(D) / 10 = 25.9752 +(% style="color:#037691" %)**Data 2: **(%%)0x0102(H) = 258(D) / 10 = 25.8 751 751 752 -(% style="color:#037691" %)**Data 3: **(%%)0x02D B99(H) = 187289(D) / 100 = 1872.89754 +(% style="color:#037691" %)**Data 3: **(%%)0x02DD44(H) = 187716(D) / 100 = 1877.16 753 753 754 -(% style="color:#037691" %)**Data 4: **(%%)0x00F D(H) = 253(D) / 10 = 25.3756 +(% style="color:#037691" %)**Data 4: **(%%)0x00FC(H) = 252(D) / 10 = 25.2 755 755 756 756 (% style="color:#037691" %)**Data 5: **(%%)0x0001(H) = 1(D) = 1 757 757 ... ... @@ -1265,28 +1265,39 @@ 1265 1265 == 2.9 Datalog Feature(Since v1.3.0) == 1266 1266 1267 1267 1268 -((( 1269 -Datalog Feature is to ensure IoT Server can get all sampling data from Sensor even if the LoRaWAN network is down. For each sampling, SDI-12-LB will store the reading for future retrieving purposes. There are two ways for IoT servers to get datalog from SDI-12-LB. 1270 +Datalog Feature is to ensure IoT Server can get all sampling data from Sensor even if the LoRaWAN network is down. For each sampling, SDI-12-LB will store the reading for future retrieving purposes. 1271 + 1272 + 1273 +=== 2.9.1 How datalog works === 1274 + 1275 + 1276 +SDI-12-LB will wait for ACK for every uplink, when there is no LoRaWAN network,SDI-12-LB will mark these records with non-ack messages and store the sensor data, and it will send all messages (10s interval) after the network recovery. 1277 + 1278 +* ((( 1279 +a) SDI-12-LB will do an ACK check for data records sending to make sure every data arrive server. 1270 1270 ))) 1281 +* ((( 1282 +b) SDI-12-LB will send data in **CONFIRMED Mode**, but SDI-12-LB won't re-transmit the packet if it doesn't get ACK, it will just mark it as a NONE-ACK message. In a future uplink if SDI-12-LB gets a ACK, SDI-12-LB will consider there is a network connection and resend all NONE-ACK messages. 1271 1271 1284 + 1285 +))) 1272 1272 1273 -=== 2.9. 1Ways to getdatalogvia LoRaWAN===1287 +=== 2.9.2 Enable Datalog === 1274 1274 1275 1275 1276 - There are twomethods:1290 +User need to make sure below two settings are enable to use datalog; 1277 1277 1278 -(% style="color:blue" %)**Method 1:** (%%)IoT Server sends a downlink LoRaWAN command to [[poll the value>>||anchor="H2.8.4Pollsensorvalue"]] for specified time range. 1292 +* (% style="color:blue" %)**SYNCMOD=1(Default)**(%%) to enable sync time via LoRaWAN MAC command, click here ([[AT+SYNCMOD>>https://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/#H4.6Settimesynchronizationmethod28ThenetworkservermustsupportLoRaWANv1.0.329]]) for detailed instructions. 1293 +* (% style="color:blue" %)**PNACKMD=1**(%%)** **to enable datalog feature, click here ([[AT+PNACKMD>>https://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/#H7.26RequesttheservertosendanACK]]) for detailed instructions. 1279 1279 1280 1280 1281 -(% style="color:blue" %)**Method 2: **(%%)Set PNACKMD=1, SDI-12-LB will wait for ACK for every uplink, when there is no LoRaWAN network, SDI-12-LB will mark these records with non-ack messages and store the sensor data, and it will send all messages (10s interval) after the network recovery. 1282 1282 1297 +Once SDI-12-LB Joined LoRaWAN network, it will send the MAC command (DeviceTimeReq) and the server will reply with (DeviceTimeAns) to send the current time to SDI-12-LB. If SDI-12-LB fails to get the time from the server, SDI-12-LB will use the internal time and wait for next time request (AT+SYNCTDC to set the time request period, default is 10 days). 1283 1283 1284 -(% style="color:red" %)**Note for method 2 :**1299 +(% style="color:red" %)**Note: LoRaWAN Server need to support LoRaWAN v1.0.3(MAC v1.0.3) or higher to support this MAC command feature, Chirpstack,TTN V3 v3 and loriot support but TTN V3 v2 doesn't support. If server doesn't support this command, it will through away uplink packet with this command, so user will lose the packet with time request for TTN V3 v2 if SYNCMOD=1.** 1285 1285 1286 -* a) SDI-12-LB will do an ACK check for data records sending to make sure every data arrive server. 1287 -* b) SDI-12-LB will send data in **CONFIRMED Mode** when PNACKMD=1, but SDI-12-LB won't re-transmit the packet if it doesn't get ACK, it will just mark it as a NONE-ACK message. In a future uplink if SDI-12-LB gets a ACK, SDI-12-LB will consider there is a network connection and resend all NONE-ACK Message. 1288 1288 1289 -=== 2.9. 2Unix TimeStamp ===1302 +=== 2.9.3 Unix TimeStamp === 1290 1290 1291 1291 1292 1292 SDI-12-LB uses Unix TimeStamp format based on ... ... @@ -1303,39 +1303,6 @@ 1303 1303 So, we can use AT+TIMESTAMP=1742889625 or downlink 3067E26299 to set the current time 2025 – March ~-~- 25 Tuesday 08:00:25 1304 1304 1305 1305 1306 -=== 2.9.3 Set Device Time === 1307 - 1308 - 1309 -((( 1310 -(% style="color:blue" %)**There are two ways to set device's time:** 1311 -))) 1312 - 1313 -((( 1314 -**1. Through LoRaWAN MAC Command (Default settings)** 1315 -))) 1316 - 1317 -((( 1318 -User need to set SYNCMOD=1 to enable sync time via MAC command. 1319 -))) 1320 - 1321 -((( 1322 -Once SDI-12-LB Joined LoRaWAN network, it will send the MAC command (DeviceTimeReq) and the server will reply with (DeviceTimeAns) to send the current time to SDI-12-LB. If SDI-12-LB fails to get the time from the server, SDI-12-LB will use the internal time and wait for next time request (AT+SYNCTDC to set the time request period, default is 10 days). 1323 -))) 1324 - 1325 -((( 1326 -(% style="color:red" %)**Note: LoRaWAN Server need to support LoRaWAN v1.0.3(MAC v1.0.3) or higher to support this MAC command feature, Chirpstack,TTN V3 v3 and loriot support but TTN V3 v2 doesn't support. If server doesn't support this command, it will through away uplink packet with this command, so user will lose the packet with time request for TTN V3 v2 if SYNCMOD=1.** 1327 -))) 1328 - 1329 - 1330 -((( 1331 -**2. Manually Set Time** 1332 -))) 1333 - 1334 -((( 1335 -User needs to set SYNCMOD=0 to manual time, otherwise, the user set time will be overwritten by the time set by the server. 1336 -))) 1337 - 1338 - 1339 1339 === 2.9.4 Poll sensor value === 1340 1340 1341 1341 ... ... @@ -1861,6 +1861,9 @@ 1861 1861 1862 1862 * Example: 0xA90D09 ~/~/ Same as AT+SDITIMING=13,9 1863 1863 1844 + 1845 + 1846 + 1864 1864 == 3.11 add Pulse_count, VDC_input, IDC_input(Since firmware V1.3.0) == 1865 1865 1866 1866 ... ... @@ -1956,6 +1956,45 @@ 1956 1956 1957 1957 1958 1958 1942 +== 3.12 Cut data separation processing(Since firmware V1.3.2) == 1943 + 1944 + 1945 +AT+NEWLINE command, which only takes effect when AT+DATAUP=1 or AT+DATAUP=1, timeout. 1946 + 1947 +When not set, each part of AT+DATAUP is sent according to the maximum number of bytes of DR. 1948 + 1949 +When setting, each part of AT+DATAUP is sent according to the value set by AT+NEWLINE. 1950 + 1951 + 1952 +* ((( 1953 +(% style="color:#037691" %)** AT Command:** 1954 +))) 1955 + 1956 +(% style="color:#4472c4" %)//**AT+NEWLINE=ALL**//(%%)// //The data cut out by each AT+COMMANDx command is sent separately as an uplink. 1957 + 1958 +(% style="color:#4472c4" %)//**AT+NEWLINE=ALL**//(%%)// equal: (% style="color:#4472c4" %)**AT+NEWLINE=1+2+3+4+5+6+7+8+9+10+11+12+13+14+15**// 1959 + 1960 + 1961 +(% style="color:#4472c4" %)//**AT+NEWLINE=a+b+c**//(%%)// //The data returned by all commands is divided into three parts, COMMAND(1~~a) is the first part, COMMAND(a+1~~b) is the second part,COMMAND(b+1~~c) is the third part. 1962 + 1963 + 1964 +(% style="color:#4472c4" %)//**AT+NEWLINE=NULL**//(%%)// //Turn off the functionality of this AT command. 1965 + 1966 + 1967 +* ((( 1968 +(% style="color:#037691" %)** Downlink Payload:** 1969 +))) 1970 + 1971 +//AT+NEWLINE=ALL ~-~--> (% style="color:#4472c4" %)**0xA5 01**// 1972 + 1973 +// AT+NEWLINE= NULL ~-~--> (% style="color:#4472c4" %)**0xA5 00**// 1974 + 1975 +//AT+NEWLINE= a+b+c ~-~--> (% style="color:#4472c4" %)**0xA5 number of bytes a b c**// 1976 + 1977 +//AT+NEWLINE= 1+5+15 ~-~--> (% style="color:#4472c4" %)**0xA5 03 01 05 0F**// 1978 + 1979 + 1980 + 1959 1959 = 4. Battery & Power Consumption = 1960 1960 1961 1961 ... ... @@ -1978,12 +1978,22 @@ 1978 1978 1979 1979 = 6. OTA firmware update = 1980 1980 2003 +User can change firmware TS01-LB/LS to: 1981 1981 1982 -Please see this link for how to do OTA firmware update. 2005 +* Change Frequency band/ region. 2006 +* Update with new features. 2007 +* Fix bugs. 1983 1983 1984 - [[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/]]2009 +Firmware and changelog can be downloaded from : [[**Firmware download link**>>https://www.dropbox.com/scl/fo/ztlw35a9xbkomu71u31im/AMbGiR5K1fLcUTLbp44o22Q/LoRaWAN%20End%20Node/SDI-12-LB/Firmware?rlkey=ojjcsw927eaow01dgooldq3nu&subfolder_nav_tracking=1&dl=0]] 1985 1985 2011 +Methods to Update Firmware: 1986 1986 2013 +* (Recommanded way) OTA firmware update via wireless : **[[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/]]** 2014 + 2015 +* Update through UART TTL interface : **[[Instruction>>url:http://wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H1.LoRaSTv4baseHardware]]**. 2016 + 2017 + 2018 + 1987 1987 = 7. FAQ = 1988 1988 1989 1989 == 7.1 How to use AT Command via UART to access device? ==