Changes for page SN50v3-LB/LS -- LoRaWAN Sensor Node User Manual
Last modified by Bei Jinggeng on 2025/01/10 15:51
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -558,6 +558,7 @@ 558 558 * When PA12 is high, the bit 1 of payload byte 6 is 1. 559 559 * When PA12 is low, the bit 1 of payload byte 6 is 0. 560 560 561 + 561 561 ==== 2.3.3.4 Analogue Digital Converter (ADC) ==== 562 562 563 563 The ADC pins in LSN50 can measure range from 0~~Vbat, it use reference voltage from . If user need to measure a voltage > VBat, please use resistors to divide this voltage to lower than VBat, otherwise, it may destroy the ADC pin. ... ... @@ -643,7 +643,7 @@ 643 643 644 644 The command is: 645 645 646 -**AT+INTMOD=1 647 +**AT+INTMOD=1 **~/~/(more info about INMOD please refer** **[[**AT Command Manual**>>url:http://www.dragino.com/downloads/index.php?dir=LSN50-LoRaST/&file=DRAGINO_LSN50_AT_Commands_v1.5.1.pdf]]**. **) 647 647 648 648 Below shows some screen captures in TTN V3: 649 649 ... ... @@ -767,6 +767,7 @@ 767 767 * 4: MOD5 768 768 * 5: MOD6 769 769 771 + 770 770 == 2.4 Payload Decoder file == 771 771 772 772 ... ... @@ -777,21 +777,165 @@ 777 777 [[https:~~/~~/github.com/dragino/dragino-end-node-decoder/tree/main/LSN50v2-S31%26S31B >>https://github.com/dragino/dragino-end-node-decoder/tree/main/LSN50v2-S31%26S31B]] 778 778 779 779 782 +== 2.5 Datalog Feature == 780 780 781 -== 2.5 Frequency Plans == 782 782 785 +Datalog Feature is to ensure IoT Server can get all sampling data from Sensor even if the LoRaWAN network is down. For each sampling, S31x-LB will store the reading for future retrieving purposes. 783 783 784 -The SN50v3-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. 785 785 788 +=== 2.5.1 Ways to get datalog via LoRaWAN === 789 + 790 + 791 +Set [[PNACKMD=1>>||anchor="H2.5.4DatalogUplinkpayloadA028FPORT3D329"]], S31x-LB will wait for ACK for every uplink, when there is no LoRaWAN network,S31x-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. 792 + 793 +* a) S31x-LB will do an ACK check for data records sending to make sure every data arrive server. 794 +* b) S31x-LB will send data in **CONFIRMED Mode** when PNACKMD=1, but S31x-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 S31x-LB gets a ACK, S31x-LB will consider there is a network connection and resend all NONE-ACK messages. 795 + 796 +Below is the typical case for the auto-update datalog feature (Set PNACKMD=1) 797 + 798 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20220703111700-2.png?width=1119&height=381&rev=1.1||alt="图片-20220703111700-2.png" height="381" width="1119"]] 799 + 800 +=== 2.5.2 Unix TimeStamp === 801 + 802 + 803 +S31x-LB uses Unix TimeStamp format based on 804 + 805 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20220523001219-11.png?width=627&height=97&rev=1.1||alt="图片-20220523001219-11.png" height="97" width="627"]] 806 + 807 +User can get this time from link: [[https:~~/~~/www.epochconverter.com/>>url:https://www.epochconverter.com/]] : 808 + 809 +Below is the converter example 810 + 811 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20220523001219-12.png?width=720&height=298&rev=1.1||alt="图片-20220523001219-12.png" height="298" width="720"]] 812 + 813 +So, we can use AT+TIMESTAMP=1611889405 or downlink 3060137afd00 to set the current time 2021 – Jan ~-~- 29 Friday 03:03:25 814 + 815 + 816 +=== 2.5.3 Set Device Time === 817 + 818 + 819 +User need to set (% style="color:blue" %)**SYNCMOD=1**(%%) to enable sync time via MAC command. 820 + 821 +Once S31x-LB Joined LoRaWAN network, it will send the MAC command (DeviceTimeReq) and the server will reply with (DeviceTimeAns) to send the current time to S31x-LB. If S31x-LB fails to get the time from the server, S31x-LB will use the internal time and wait for next time request (AT+SYNCTDC to set the time request period, default is 10 days). 822 + 823 +(% 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.** 824 + 825 + 826 +=== 2.5.4 Datalog Uplink payload (FPORT~=3) === 827 + 828 + 829 +The Datalog uplinks will use below payload format. 830 + 831 +**Retrieval data payload:** 832 + 833 +(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:510px" %) 834 +|=(% style="width: 80px;background-color:#D9E2F3" %)((( 835 +**Size(bytes)** 836 +)))|=(% style="width: 60px; background-color: rgb(217, 226, 243);" %)**2**|=(% style="width: 60px; background-color: rgb(217, 226, 243);" %)**2**|=(% style="width: 120px; background-color: rgb(217, 226, 243);" %)**2**|=(% style="width: 103px; background-color: rgb(217, 226, 243);" %)**1**|=(% style="width: 85px; background-color: rgb(217, 226, 243);" %)**4** 837 +|(% style="width:103px" %)**Value**|(% style="width:54px" %)((( 838 +[[Temp_Black>>||anchor="HTemperatureBlack:"]] 839 +)))|(% style="width:51px" %)[[Temp_White>>||anchor="HTemperatureWhite:"]]|(% style="width:89px" %)[[Temp_ Red or Temp _White>>||anchor="HTemperatureREDorTemperatureWhite:"]]|(% style="width:103px" %)Poll message flag & Ext|(% style="width:54px" %)[[Unix Time Stamp>>||anchor="H2.5.2UnixTimeStamp"]] 840 + 841 +**Poll message flag & Ext:** 842 + 843 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20221006192726-1.png?width=754&height=112&rev=1.1||alt="图片-20221006192726-1.png" height="112" width="754"]] 844 + 845 +**No ACK Message**: 1: This message means this payload is fromn Uplink Message which doesn't get ACK from the server before ( for **PNACKMD=1** feature) 846 + 847 +**Poll Message Flag**: 1: This message is a poll message reply. 848 + 849 +* Poll Message Flag is set to 1. 850 + 851 +* Each data entry is 11 bytes, to save airtime and battery, devices will send max bytes according to the current DR and Frequency bands. 852 + 853 +For example, in US915 band, the max payload for different DR is: 854 + 855 +**a) DR0:** max is 11 bytes so one entry of data 856 + 857 +**b) DR1:** max is 53 bytes so devices will upload 4 entries of data (total 44 bytes) 858 + 859 +**c) DR2:** total payload includes 11 entries of data 860 + 861 +**d) DR3: **total payload includes 22 entries of data. 862 + 863 +If devise doesn't have any data in the polling time. Device will uplink 11 bytes of 0 864 + 865 + 866 +**Example:** 867 + 868 +If S31x-LB has below data inside Flash: 869 + 870 +[[image:1682646494051-944.png]] 871 + 872 +If user sends below downlink command: 3160065F9760066DA705 873 + 874 +Where : Start time: 60065F97 = time 21/1/19 04:27:03 875 + 876 + Stop time: 60066DA7= time 21/1/19 05:27:03 877 + 878 + 879 +**S31x-LB will uplink this payload.** 880 + 881 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20220523001219-13.png?width=727&height=421&rev=1.1||alt="图片-20220523001219-13.png" height="421" width="727"]] 882 + 883 +((( 884 +__**7FFF089801464160065F97**__ **__7FFF__ __088E__ __014B__ __41__ __60066009__** 7FFF0885014E41600660667FFF0875015141600662BE7FFF086B015541600665167FFF08660155416006676E7FFF085F015A41600669C67FFF0857015D4160066C1E 885 +))) 886 + 887 +((( 888 +Where the first 11 bytes is for the first entry: 889 +))) 890 + 891 +((( 892 +7FFF089801464160065F97 893 +))) 894 + 895 +((( 896 +**Ext sensor data**=0x7FFF/100=327.67 897 +))) 898 + 899 +((( 900 +**Temp**=0x088E/100=22.00 901 +))) 902 + 903 +((( 904 +**Hum**=0x014B/10=32.6 905 +))) 906 + 907 +((( 908 +**poll message flag & Ext**=0x41,means reply data,Ext=1 909 +))) 910 + 911 +((( 912 +**Unix time** is 0x60066009=1611030423s=21/1/19 04:27:03 913 +))) 914 + 915 + 916 +(% aria-label="数据 URI 图像图像小部件" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||alt="数据 URI 图片" data-widget="image" draggable="true" height="15" role="presentation" title="单击并拖动以移动" width="15"]](% aria-label="数据 URI 图像图像小部件" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220, 220, 220, 0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||alt="数据 URI 图片" draggable="true" height="15" role="presentation" title="单击并拖动以移动" width="15"]](% aria-label="数据 URI 图像图像小部件" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" title="单击并拖动以调整大小" %)的(% aria-label="数据 URI 图像图像小部件" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||alt="数据 URI 图片" data-widget="image" draggable="true" height="15" role="presentation" title="单击并拖动以移动" width="15"]](% aria-label="数据 URI 图像图像小部件" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220, 220, 220, 0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||alt="数据 URI 图片" draggable="true" height="15" role="presentation" title="单击并拖动以移动" width="15"]](% aria-label="数据 URI 图像图像小部件" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" title="单击并拖动以调整大小" %)的 917 + 918 +== 2.6 Temperature Alarm Feature == 919 + 920 + 921 +S31x-LB work flow with Alarm feature. 922 + 923 + 924 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50v2-D20-D22-D23%20LoRaWAN%20Temperature%20Sensor%20User%20Manual/WebHome/image-20220623090437-1.png?rev=1.1||alt="图片-20220623090437-1.png"]] 925 + 926 + 927 +== 2.7 Frequency Plans == 928 + 929 + 930 +The S31x-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. 931 + 786 786 [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/]] 787 787 788 788 789 -= 3. Configure S N50v3-LB =935 += 3. Configure S31x-LB = 790 790 791 791 == 3.1 Configure Methods == 792 792 793 793 794 -S N50v3-LB supports below configure method:940 +S31x-LB supports below configure method: 795 795 796 796 * AT Command via Bluetooth Connection (**Recommended**): [[BLE Configure Instruction>>http://wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/]]. 797 797 * AT Command via UART Connection : See [[UART Connection>>http://wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H2.3UARTConnectionforSN50v3basemotherboard]]. ... ... @@ -810,7 +810,7 @@ 810 810 [[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/]] 811 811 812 812 813 -== 3.3 Commands special design for S N50v3-LB ==959 +== 3.3 Commands special design for S31x-LB == 814 814 815 815 816 816 These commands only valid for S31x-LB, as below: ... ... @@ -844,9 +844,9 @@ 844 844 * Example 1: Downlink Payload: 0100001E ~/~/ Set Transmit Interval (TDC) = 30 seconds 845 845 * Example 2: Downlink Payload: 0100003C ~/~/ Set Transmit Interval (TDC) = 60 seconds 846 846 847 - 848 848 === 3.3.2 Get Device Status === 849 849 995 + 850 850 Send a LoRaWAN downlink to ask device send Alarm settings. 851 851 852 852 (% style="color:blue" %)**Downlink Payload: **(%%)0x26 01 ... ... @@ -854,6 +854,77 @@ 854 854 Sensor will upload Device Status via FPORT=5. See payload section for detail. 855 855 856 856 1003 +=== 3.3.3 Set Temperature Alarm Threshold === 1004 + 1005 +* (% style="color:blue" %)**AT Command:** 1006 + 1007 +(% style="color:#037691" %)**AT+SHTEMP=min,max** 1008 + 1009 +* When min=0, and max≠0, Alarm higher than max 1010 +* When min≠0, and max=0, Alarm lower than min 1011 +* When min≠0 and max≠0, Alarm higher than max or lower than min 1012 + 1013 +Example: 1014 + 1015 + AT+SHTEMP=0,30 ~/~/ Alarm when temperature higher than 30. 1016 + 1017 +* (% style="color:blue" %)**Downlink Payload:** 1018 + 1019 +(% style="color:#037691" %)**0x(0C 01 00 1E)** (%%) ~/~/ Set AT+SHTEMP=0,30 1020 + 1021 +(% style="color:red" %)**(note: 3^^rd^^ byte= 0x00 for low limit(not set), 4^^th^^ byte = 0x1E for high limit: 30)** 1022 + 1023 + 1024 +=== 3.3.4 Set Humidity Alarm Threshold === 1025 + 1026 +* (% style="color:blue" %)**AT Command:** 1027 + 1028 +(% style="color:#037691" %)**AT+SHHUM=min,max** 1029 + 1030 +* When min=0, and max≠0, Alarm higher than max 1031 +* When min≠0, and max=0, Alarm lower than min 1032 +* When min≠0 and max≠0, Alarm higher than max or lower than min 1033 + 1034 +Example: 1035 + 1036 + AT+SHHUM=70,0 ~/~/ Alarm when humidity lower than 70%. 1037 + 1038 +* (% style="color:blue" %)**Downlink Payload:** 1039 + 1040 +(% style="color:#037691" %)**0x(0C 02 46 00)**(%%) ~/~/ Set AT+SHTHUM=70,0 1041 + 1042 +(% style="color:red" %)**(note: 3^^rd^^ byte= 0x46 for low limit (70%), 4^^th^^ byte = 0x00 for high limit (not set))** 1043 + 1044 + 1045 +=== 3.3.5 Set Alarm Interval === 1046 + 1047 +The shortest time of two Alarm packet. (unit: min) 1048 + 1049 +* (% style="color:blue" %)**AT Command:** 1050 + 1051 +(% style="color:#037691" %)**AT+ATDC=30** (%%) ~/~/ The shortest interval of two Alarm packets is 30 minutes, Means is there is an alarm packet uplink, there won't be another one in the next 30 minutes. 1052 + 1053 +* (% style="color:blue" %)**Downlink Payload:** 1054 + 1055 +(% style="color:#037691" %)**0x(0D 00 1E)**(%%) **~-~--> ** Set AT+ATDC=0x 00 1E = 30 minutes 1056 + 1057 + 1058 +=== 3.3.6 Get Alarm settings === 1059 + 1060 + 1061 +Send a LoRaWAN downlink to ask device send Alarm settings. 1062 + 1063 +* (% style="color:#037691" %)**Downlink Payload: **(%%)0x0E 01 1064 + 1065 +**Example:** 1066 + 1067 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50v2-D20-D22-D23%20LoRaWAN%20Temperature%20Sensor%20User%20Manual/WebHome/1655948182791-225.png?rev=1.1||alt="1655948182791-225.png"]] 1068 + 1069 + 1070 +**Explain:** 1071 + 1072 +* Alarm & MOD bit is 0x7C, 0x7C >> 2 = 0x31: Means this message is the Alarm settings message. 1073 + 857 857 === 3.3.7 Set Interrupt Mode === 858 858 859 859 ... ... @@ -885,7 +885,6 @@ 885 885 * Example 1: Downlink Payload: 06000000 ~/~/ Turn off interrupt mode 886 886 * Example 2: Downlink Payload: 06000003 ~/~/ Set the interrupt mode to rising edge trigger 887 887 888 - 889 889 = 4. Battery & Power Consumption = 890 890 891 891