Last modified by Mengting Qiu on 2025/07/03 15:34

Show last authors
1 (% style="display:none" %) (%%) ​​​​​​(% style="display:none" %)
2
3 [[image:image-20220623150858-9.png||data-xwiki-image-style-alignment="center"]]
4
5
6 (% style="display:none" %) (%%)
7
8
9
10
11
12
13
14 **Table of Contents:**
15
16 (% aria-label="macro:toc widget" contenteditable="false" role="region" tabindex="-1" %)
17 (((
18 (% 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" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||height="15" role="presentation" title="Click and drag to move" width="15"]]
19 )))
20
21 {{toc/}}
22
23
24
25
26
27
28
29
30
31
32
33
34 = 1.  Introduction =
35
36 == 1.1 ​ What is LSN50V2-S31 LoRaWAN Temperature & Humidity Sensor ==
37
38
39 (((
40 The Dragino LSN50v2-S31 is a (% style="color:#4472c4" %)**LoRaWAN Temperature and Humidity Sensor**(%%) for Internet of Things solution. It is used to measure the (% style="color:#4472c4" %)**surrounding environment temperature and relative air humidity precisely**(%%), and then upload to IoT server via LoRaWAN wireless protocol.
41 )))
42
43 (((
44 The temperature & humidity sensor used in LSN50v2-S31 is SHT31, which is fully calibrated, linearized, and temperature compensated digital output from Sensirion, it provides a strong reliability and long-term stability. The SHT31 is fixed in a (% style="color:#4472c4" %)**waterproof anti-condensation casing **(%%)for long term use.
45 )))
46
47 (((
48 LSN50v2-S31 supports (% style="color:#4472c4" %)**temperature and humidity alarm feature**(%%), user can get alarm for instant notice.
49 )))
50
51 (((
52 LSN50v2-S31 is powered by(% style="color:#4472c4" %)**8500mAh Li-SOCI2 battery**(%%), It is designed for long term use up to 10 years. (Real-world battery life depends on the use environment, update period. Please check related Power Analyze report).
53 )))
54
55 (((
56 Each LSN50v2-S31 is pre-load with a set of unique keys for LoRaWAN registration, register these keys to local LoRaWAN server and it will auto connect after power on.
57 )))
58
59
60 [[image:1655968636488-753.png]]
61
62
63 == 1.2  Specifications ==
64
65
66 (% style="color:#037691" %)**Micro Controller:**
67
68 * MCU: STM32L072xxxx
69 * Flash:128KB
70 * RAM:20KB
71 * EEPROM: 6KB
72 * Clock Speed: 32Mhz
73
74 (% style="color:#037691" %)**Common DC Characteristics:**
75
76 * Supply Voltage: built in 8500mAh Li-SOCI2 battery
77 * Operating Temperature: -40 ~~ 85°C
78
79 (% style="color:#037691" %)**Temperature Sensor:**
80
81 * Range: -40 to + 80°C
82 * Accuracy: ±0.2 @ 0-90 °C
83 * Resolution: 0.1°C
84 * Long Term Shift: <0.03 °C/yr
85
86 (% style="color:#037691" %)**Humidity Sensor: **
87
88 * Range: 0 ~~ 99.9% RH
89 * Accuracy: ± 2%RH ( 0 ~~ 100%RH)
90 * Resolution: 0.01% RH
91 * Long Term Shift: <0.25 %RH/yr
92
93 (% style="color:#037691" %)**LoRa Spec:**
94
95 * Frequency Range,
96 ** Band 1 (HF): 862 ~~ 1020 Mhz
97 * 168 dB maximum link budget.
98 * High sensitivity: down to -148 dBm.
99 * Bullet-proof front end: IIP3 = -12.5 dBm.
100 * Excellent blocking immunity.
101 * Built-in bit synchronizer for clock recovery.
102 * Preamble detection.
103 * 127 dB Dynamic Range RSSI.
104 * Automatic RF Sense and CAD with ultra-fast AFC.
105 * LoRaWAN 1.0.3 Specification
106
107 (% style="color:#037691" %)**Power Consumption**
108
109 * Sleeping Mode: 20uA
110 * LoRaWAN Transmit Mode: 125mA @ 20dBm 44mA @ 14dBm
111
112 == ​1.3  Features ==
113
114
115 * LoRaWAN v1.0.3 Class A
116 * Ultra-low power consumption
117 * External 3 meters SHT31 probe
118 * Measure range -40°C ~~ 80°C
119 * Temperature & Humidity alarm
120 * Bands: CN470/EU433/KR920/US915/EU868/AS923/AU915/IN865
121 * AT Commands to change parameters
122 * Uplink on periodically or Interrupt
123 * Downlink to change configure
124 * 8500mAh Battery for long term use
125
126 == 1.4 ​ Applications ==
127
128
129 * Wireless Alarm and Security Systems
130 * Home and Building Automation
131 * Industrial Monitoring and Control
132 * Long range Irrigation Systems.
133
134 == 1.5  Pin Definitions and Switch ==
135
136
137 (% class="wikigeneratedid" %)
138 [[image:1655890786311-614.png||height="377" width="733"]]
139
140
141 The latest mother board for LSN50v2-S31 is :
142
143 [[image:image-20230406112239-3.png||height="410" width="731"]]
144
145
146 === 1.5.1 Pin Definition ===
147
148
149 The device is pre-configured to connect to SHT31 sensor. The other pins are not used. If user want to know more about other pins, please refer the user manual of LSn50v2 at: [[https:~~/~~/www.dropbox.com/sh/djkxs7mr17y94mi/AABVlWbM9uzK9OA3mXyAT10Za?dl=0>>https://www.dropbox.com/sh/djkxs7mr17y94mi/AABVlWbM9uzK9OA3mXyAT10Za?dl=0]]
150
151
152 === 1.5.2 Jumper JP2 ===
153
154
155 Power on Device when put this jumper.
156
157
158 === 1.5.3 BOOT MODE / SW1 ===
159
160
161 (((
162 ~1. ISP:  upgrade mode, device won't have any signal in this mode. but ready for upgrade firmware. LED won't work. Firmware won't run.
163 )))
164
165 (((
166 2. Flash:  work mode, device starts to work and send out console output for further debug
167 )))
168
169
170 === 1.5.4 Reset Button ===
171
172
173 Press to reboot the device.
174
175
176 === 1.5.5 LED ===
177
178
179 It will flash:
180
181 1.  When boot the device in flash mode
182
183 2.  Send an uplink packet
184
185
186 === 1.5.6  Probe Dimension ===
187
188
189 [[image:1655970095830-106.png]]
190
191
192 == 1.6  Hardware Variant ==
193
194
195 (% border="1" cellspacing="5" style="width:450px" %)
196 |=(% style="width: 108px;background-color:#4F81BD;color:white" %)Model|=(% style="width: 139px;background-color:#4F81BD;color:white" %)Photo|=(% style="width: 203px;background-color:#4F81BD;color:white" %)**Description**
197 |(% style="width:108px" %)LSN50v2-S31|(% style="width:138px" %)[[image:1655969394811-263.png]]|(% style="width:203px" %)(((
198 External 3 meters SHT31 probe
199 )))
200 |(% style="width:108px" %)LSN50v2 -S31B|(% style="width:138px" %)[[image:1655969407614-262.png]]|(% style="width:203px" %)(((
201 On device SHT31 Probe
202 )))
203
204 = 2.  How to use LSN50v2-S31? =
205
206 == 2.1  How it works ==
207
208
209 (((
210 The LSN50v2-S31 is working as LoRaWAN OTAA Class A end node. Each LSN50v2-S31 is shipped with a worldwide unique set of OTAA and ABP keys. User needs to input the OTAA or ABP keys in the LoRaWAN network server to register. Open the enclosure and power on the LSN50v2-S31, it will join the LoRaWAN network and start to transmit data. The default period for each uplink is 20 minutes.
211 )))
212
213
214 == 2.2  ​Quick guide to connect to LoRaWAN server (OTAA) ==
215
216
217 (((
218 Here is an example for how to join the [[TTN LoRaWAN >>url:http://www.thethingsnetwork.org/]]Server. Below is the network structure, in this demo we use [[DLOS8>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/160-dlos8.html]] as LoRaWAN gateway.
219
220
221 (% 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" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]][[image:1655891470063-521.png]](% title="Click and drag to resize" %)​[[image:1655970238866-880.png]]
222 )))
223
224
225 (((
226 The DLOS8 is already set to connect to [[TTN >>url:https://www.thethingsnetwork.org/]]. What the rest we need to is register the LSN50V2-S31 to TTN:
227
228
229 (% style="color:blue" %)**Step 1**(%%): Create a device in TTN with the OTAA keys from LSN50V2-S31.
230
231 Each LSN50V2-S31 is shipped with a sticker with the default device EUI as below:
232 )))
233
234 (% 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" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]][[image:image-20230426084122-2.png]](% title="Click and drag to resize" %)​[[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LDS25-LBLDS25-LS--LoRaWAN_LiDAR_Distance_Auto-Clean_Sensor_User_Manual/WebHome/image-20230426084152-1.png?width=502&height=233&rev=1.1||alt="图片-20230426084152-1.png"]](% aria-label="Data URI image image widget" 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==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]][[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% title="Click and drag to resize" %)​​(% aria-label="Data URI image image widget" 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==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" 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==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" 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="Click and drag to resize" %)​(% aria-label="Data URI image image widget" 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==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]][[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% title="Click and drag to resize" %)​(% aria-label="Data URI image image widget" 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" %)​(%%)​
235
236
237 (((
238 You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:
239
240 **Create the application.**
241
242 [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/SAC01L_LoRaWAN_Temperature%26Humidity_Sensor_User_Manual/WebHome/image-20250423093843-1.png?width=756&height=264&rev=1.1||alt="image-20250423093843-1.png"]]
243
244 [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LTC2-LB--LoRaWAN_Temperature_Transmitter_User_Manual/WebHome/image-20240907111305-2.png?width=1000&height=572&rev=1.1||alt="image-20240907111305-2.png"]]
245
246
247 **Add devices to the created Application.**
248
249 [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LTC2-LB--LoRaWAN_Temperature_Transmitter_User_Manual/WebHome/image-20240907111659-3.png?width=977&height=185&rev=1.1||alt="image-20240907111659-3.png"]]
250
251 [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LTC2-LB--LoRaWAN_Temperature_Transmitter_User_Manual/WebHome/image-20240907111820-5.png?width=975&height=377&rev=1.1||alt="image-20240907111820-5.png"]]
252
253
254 **Enter end device specifics manually.**
255
256 [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LTC2-LB--LoRaWAN_Temperature_Transmitter_User_Manual/WebHome/image-20240907112136-6.png?width=697&height=687&rev=1.1||alt="image-20240907112136-6.png"]]
257
258
259 **Add DevEUI and AppKey.**
260
261 **Customize a platform ID for the device.**
262
263 [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LTC2-LB--LoRaWAN_Temperature_Transmitter_User_Manual/WebHome/image-20240907112427-7.png?rev=1.1||alt="image-20240907112427-7.png"]]
264
265
266 (% style="color:blue" %)**Step 2**(%%):** Add decoder.**
267
268 In TTN, user can add a custom payload so it shows friendly reading.
269
270 Click this link to get the decoder: [[https:~~/~~/github.com/dragino/dragino-end-node-decoder/tree/main/>>url:https://github.com/dragino/dragino-end-node-decoder/tree/main/]]
271
272 Below is TTN screen shot:
273
274 [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LDS25-LBLDS25-LS--LoRaWAN_LiDAR_Distance_Auto-Clean_Sensor_User_Manual/WebHome/image-20241009140556-1.png?width=1184&height=488&rev=1.1||alt="image-20241009140556-1.png" height="488" width="1184"]]
275
276 [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LDS25-LBLDS25-LS--LoRaWAN_LiDAR_Distance_Auto-Clean_Sensor_User_Manual/WebHome/image-20241009140603-2.png?width=1168&height=562&rev=1.1||alt="image-20241009140603-2.png"]]
277
278 (% aria-label="Data URI image image widget" 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" %)​(%%)​
279 )))
280
281 (% style="color:blue" %)**Step 3**(%%): Power on LSN50v2-S31
282
283 LSN50V2-S31 will auto join to TTN network via the LoRaWAN coverage by DLOS8. After join success, LSN50V2-S31 will start to uplink temperature value to server.
284
285 [[image:1655891678689-137.png]]
286
287
288 == 2.3  ​Uplink Payload ==
289
290 === 2.3.1  Payload Analyze ===
291
292
293 (((
294 Normal Upload Payload:
295 )))
296
297 (((
298 LSN50v2-S31 use the same payload as LSn50v2 mod1, as below. (Since firmware version 1.8.0, the third to sixth bytes are timestamps)
299 )))
300
301 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:400px" %)
302 |=(% style="width: 95px;background-color:#4F81BD;color:white" %)(((
303 **Size(bytes)**
304 )))|=(% style="width: 36px;background-color:#4F81BD;color:white" %)2|=(% style="width: 77px;background-color:#4F81BD;color:white" %)4|=(% style="width: 65px;background-color:#4F81BD;color:white" %)1|=(% style="width: 65px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 65px;background-color:#4F81BD;color:white" %)2
305 |(% style="width:95px" %)Value|(% style="width:36px" %)(((
306 [[Battery>>||anchor="HBattery:"]]
307 )))|(% style="width:61px" %)(((
308 [[Unix TimeStamp>>||anchor="H2.4.1UnixTimeStamp"]]
309 )))|(% style="width:91px" %)(((
310 [[Alarm Flag>>||anchor="HAlarmFlag26MOD:"]]
311 )))|(% style="width:99px" %)(((
312 [[Temperature>>||anchor="HTemperature:"]]
313 )))|(% style="width:97px" %)(((
314 [[Humidity>>||anchor="HHumidity:"]]
315 )))
316
317 [[image:image-20230330135457-3.png]]
318
319
320 ==== (% style="color:#4472c4" %)**Battery:**(%%) ====
321
322
323 Check the battery voltage.
324
325 Ex1: 0x0B45 = 2885mV
326
327 Ex2: 0x0B49 = 2889mV
328
329
330
331 ==== (% style="color:#4472c4" %)**Temperature:**(%%) ====
332
333
334 **Example**:
335
336 If payload is: 0105H:  (0105 & 8000 == 0), temp = 0105H /10 = 26.1 degree
337
338 If payload is: FF3FH :  (FF3F & 8000 == 1) , temp = (FF3FH - 65536)/10 = -19.3 degrees.
339
340 (FF3F & 8000:Judge whether the highest bit is 1, when the highest bit is 1, it is negative)
341
342
343
344 ==== (% style="color:#4472c4" %)**Humidity:**(%%) ====
345
346
347 Read:0x(0197)=412    Value:  412 / 10=41.2, So 41.2%
348
349
350
351 ==== (% style="color:#4472c4" %)**Alarm Flag& MOD:**(%%) ====
352
353
354 **Example:**
355
356 If payload & 0x01 = 0x01  **~-~->** This is an Alarm Message
357
358 If payload & 0x01 = 0x00  **~-~->** This is a normal uplink message, no alarm
359
360 If payload >> 2 = 0x00  **~-~->**  means MOD=1, This is a sampling uplink message
361
362 If payload >> 2 = 0x31  **~-~->**  means MOD=31, this message is a reply message for polling, this message contains the alarm settings. see [[this link>>||anchor="HPolltheAlarmsettings:"]] for detail. [[~>url:http:~~/~~/www.dragino.com/downloads/index.php?dir" data-cke-saved-href="#HPolltheAlarmsettings:" href="#HPolltheAlarmsettings:"~>this link>>||anchor="HPolltheAlarmsettings:" aria-label="Data URI image image widget" contenteditable="false" role="presentation" 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"]]
363
364
365 === 2.3.2  Payload Decoder file ===
366
367
368 (((
369 In **TTN**, use can add a custom payload so it shows friendly. 
370 )))
371
372 (((
373 In the page (% style="color:#037691" %)**Applications ~-~-> Payload Formats ~-~-> Custom ~-~-> decoder**(%%) to add the decoder from:
374 )))
375
376 (((
377 [[http:~~/~~/www.dragino.com/downloads/index.php?dir=LoRa_End_Node/LSN50v2-S31/Decoder/>>url:http://www.dragino.com/downloads/index.php?dir=LoRa_End_Node/LSN50v2-D20/Decoder/]]
378 )))
379
380
381 (% aria-label="Data URI image image widget" 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==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" 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==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" 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="Click and drag to resize" %)​(% aria-label="Data URI image image widget" 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==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" 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==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" 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="Click and drag to resize" %)​
382
383 === 2.3.3  Historical Temperature and humidity of S31, FPORT~=3(Since firmware 1.8.0) ===
384
385
386 S31 stores sensor values and users can retrieve these history values via the [[downlink command>>||anchor="H2.4A0DatalogFeature"]].
387
388 The historical payload includes one or multiplies entries and every entry has the same payload as Real-Time water flow status.
389
390 * Each data entry is 11 bytes and has the same structure as real time water flow status, to save airtime and battery, S31 will send max bytes according to the current DR and Frequency bands.
391
392 For example, in the US915 band, the max payload for different DR is:
393
394 **a) DR0:** max is 11 bytes so one entry of data
395
396 **b) DR1:** max is 53 bytes so devices will upload 4 entries of data (total 44 bytes)
397
398 **c) DR2:** total payload includes 11 entries of data
399
400 **d) DR3:** total payload includes 22 entries of data.
401
402 If S31 doesn't have any data in the polling time. It will uplink 11 bytes of 0
403
404 (% class="wikigeneratedid" id="H" %)
405 [[image:image-20230330140955-1.png]]
406
407 **Downlink:**
408
409 0x 31 64 22 5B 00 64 22 5D 58 05
410
411
412 **Uplink:**
413
414 00 00 00 00 E1 02 95 64 22 5B 37 00 00 00 00 E1 02 97 64 22 5B 74 00 00 00 00 E0 02 98 64 22 5B B0 00 00 00 00 E0 02 9C 64 22 5B EC 00 00 00 00 E0 02 9C 64 22 5C 28 00 00 00 00 DF 02 9D 64 22 5C 64 00 00 00 00 DF 02 9F 64 22 5C A0 00 00 00 00 DE 02 A0 64 22 5C DC 00 00 00 00 DE 02 A9 64 22 5D 18 00 00 00 00 DE 02 A4 64 22 5D 54
415
416
417 **Parsed Value:**
418
419 <Temperature, Humidity, Unix TimeStamp>
420
421 [22.5,66.1,2023-03-28 03:12:55],
422
423 [22.5,66.3,2023-03-28 03:13:56],
424
425 [22.4,66.4,2023-03-28 03:14:56],
426
427 [22.4,66.8,2023-03-28 03:15:56],
428
429 [22.4,66.8,2023-03-28 03:16:56],
430
431 [22.3,66.9,2023-03-28 03:17:56],
432
433 [22.3,67.1,2023-03-28 03:18:56]
434
435 [22.2,67.2,2023-03-28 03:19:56],
436
437 [22.2,68.1,2023-03-28 03:20:56],
438
439 [22.2,67.6,2023-03-28 03:21:56],
440
441
442 **Serial port**:
443
444 [[image:image-20230330141016-2.png]]
445
446
447 == 2.4 Datalog Feature ==
448
449
450 Datalog Feature is to ensure IoT Server can get all sampling data from Sensor even if the LoRaWAN network is down. For each sampling, LSN50V2-S31 will store the reading for future retrieving purposes.
451
452
453 === 2.4.1 How datalog works ===
454
455
456 LSN50V2-S31 will wait for ACK for every uplink, when there is no LoRaWAN network,S31x-LB/LS 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.
457
458 * (((
459 a) LSN50V2-S31 will do an ACK check for data records sending to make sure every data arrive server.
460 )))
461 * (((
462 b) LSN50V2-S31 will send data in **CONFIRMED Mode**, but LSN50V2-S31 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 LSN50V2-S31 gets a ACK, LSN50V2-S31 will consider there is a network connection and resend all NONE-ACK messages.
463
464
465 )))
466
467 === 2.4.2 Enable Datalog ===
468
469
470 User need to make sure below two settings are enable to use datalog;
471
472 * (% 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.
473 * (% 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.
474
475
476
477 Once LSN50V2-S31 Joined LoRaWAN network, it will send the MAC command (DeviceTimeReq) and the server will reply with (DeviceTimeAns) to send the current time to LSN50V2-S31. If LSN50V2-S31 fails to get the time from the server, LSN50V2-S31 will use the internal time and wait for next time request (AT+SYNCTDC to set the time request period, default is 10 days).
478
479 (% 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.**
480
481
482 === 2.4.3 Unix TimeStamp ===
483
484
485 LSN50V2-S31 uses Unix TimeStamp format based on
486
487 [[image:image-20230330141111-3.png]]
488
489 Users can get this time from the link:  [[https:~~/~~/www.epochconverter.com/>>url:https://www.epochconverter.com/]] :
490
491 Below is the converter example
492
493 [[image:image-20230330141111-4.png]]
494
495
496 === 2.4.4 Poll sensor value ===
497
498
499 Users can poll sensor values based on timestamps. Below is the downlink command.
500
501 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:431px" %)
502 |=(% colspan="4" style="width: 428px;background-color:#4F81BD;color:white" %)**Downlink Command to poll Open/Close status (0x31)**
503 |(% style="width:60px" %)**1byte**|(% style="width:127px" %)**4bytes**|(% style="width:122px" %)**4bytes**|(% style="width:116px" %)**1byte**
504 |(% style="width:60px" %)31|(% style="width:127px" %)Timestamp start|(% style="width:122px" %)Timestamp end|(% style="width:116px" %)Uplink Interval
505
506 Timestamp start and Timestamp end-use Unix TimeStamp format as mentioned above. Devices will reply with all data logs during this period, using the uplink interval.
507
508 For example, downlink command[[image:image-20230330141111-5.png]]
509
510 Is to check 2021/11/12 12:00:00 to 2021/11/12 15:00:00's data
511
512 Uplink Internal =5s,means CPL01 will send one packet every 5s. range 5~~255s.
513
514
515 === 2.4.5 Clear Flash Record ===
516
517
518 Feature: Clear flash storage for data log feature.
519
520 **AT Command: (% style="color:#037691" %)AT+CLRDTA(%%)**
521
522 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:511px" %)
523 |=(% style="width: 159px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 138px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 214px;background-color:#4F81BD;color:white" %)**Response**
524 |(% style="width:157px" %)AT+CLRDTA|(% style="width:136px" %)Clear date record|(% style="width:213px" %)(((
525 Clear all stored sensor data…
526 OK
527 )))
528
529 === 2.4.6  Set system time ===
530
531
532 Feature: Set system time, Unix format. [[See here for format detail.>>path:#H2.4.1A0UnixTimeStamp]]
533
534 **AT Command:**
535
536 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:470px" %)
537 |=(% style="width: 157px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 225px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 88px;background-color:#4F81BD;color:white" %)**Response**
538 |(% style="width:157px" %)AT+TIMESTAMP=1611104352|(% style="width:225px" %)Set System time to 2021-01-20 00:59:12|(% style="width:85px" %)(((
539 OK
540 )))
541
542 **Downlink Command:**
543
544 0x306007806000  ~/~/  Set timestamp to 0x(6007806000),Same as AT+TIMESTAMP=1611104352
545
546
547 === 2.4.7  Set Time Sync Mode ===
548
549
550 Feature: Enable/Disable Sync system time via LoRaWAN MAC Command (DeviceTimeReq), LoRaWAN server must support v1.0.3 protocol to reply to this command.
551
552 (% style="color:blue" %)**SYNCMOD**(%%) is set to 1 by default. If user wants to set a different time from the LoRaWAN server, the user needs to set this to 0.
553
554 **AT Command:**
555
556 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
557 |=(% style="width: 159px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 270px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 80px;background-color:#4F81BD;color:white" %)**Response**
558 |(% style="width:154px" %)AT+SYNCMOD=1|(% style="width:279px" %)Enable Sync system time via LoRaWAN MAC Command (DeviceTimeReq) The default is zero time zone.|(% style="width:78px" %)(((
559 OK
560 )))
561 |(% style="width:154px" %)AT+SYNCMOD=1,8|(% style="width:279px" %)Enable Sync system time via LoRaWAN MAC Command (DeviceTimeReq) Set to East eight-time zone.|(% style="width:78px" %)OK
562 |(% style="width:154px" %)AT+SYNCMOD=1,-12|(% style="width:279px" %)Enable Sync system time via LoRaWAN MAC Command (DeviceTimeReq) Set to West Twelve Time Zone.|(% style="width:78px" %)OK
563
564 **Downlink Command:**
565
566 0x28 01  ~/~/ Same As AT+SYNCMOD=1
567
568 0x28 01 08  ~/~/ Same As AT+SYNCMOD=1,8
569
570 0x28 01 F4  ~/~/ Same As AT+SYNCMOD=1,-12
571
572 0x28 00  ~/~/ Same As AT+SYNCMOD=0
573
574
575 == 2.5  Temperature & Humidity Alarm Feature ==
576
577
578 LSN50V2-S31 work flow with Alarm feature.
579
580
581 [[image:1655972194041-948.png]]
582
583
584 (((
585 User can use (% style="color:#037691" %)** AT+SHTEMP **(%%)and (% style="color:#037691" %)** AT+SHHUM **(%%)command to set the alarm low limit or high limit. Device will check the temperature & Humidity every minute, if the temperature lower than low limit or greater than high limit. LSN50v2-S31 will send an (% style="color:#037691" %)** Alarm packet base on Confirmed Uplink Mode** (%%)to server.
586
587
588 Below is an example of the Alarm Packet.
589
590 [[image:image-20220623161735-10.png||height="514" width="1027"]]
591
592
593 )))
594
595 == 2.6  ​Configure LSN50v2-S31 ==
596
597
598 LSN50V2-S31 supports configuration via LoRaWAN downlink command or AT Commands.
599
600 * Downlink command instructions for different platform: [[Use Note for Server>>doc:Main.WebHome]](IoT LoRaWAN Server)
601 * AT Command Access Instructions:  [[LINK>>||anchor="H4.A0UseATCommand"]]
602
603 (((
604 There are two parts of commands: General one and Special for this model.
605 )))
606
607
608
609
610 === 2.6.1 General Configure Commands ===
611
612
613 These commands are to configure:
614
615 * General system settings like: uplink interval.
616 * LoRaWAN protocol & radio related command.
617
618 (((
619 These commands can be found on the wiki:  [[End Device AT Commands and Downlink Commands>>doc:Main.End Device AT Commands and Downlink Command.WebHome]]
620 )))
621
622
623
624
625 === 2.6.2 Sensor related commands ===
626
627
628
629 ==== (% style="color:red" %)**Set Temperature Alarm Threshold:**(%%) ====
630
631
632 * (% style="color:#037691" %)**AT Command:**
633
634 **AT+SHTEMP=min,max**
635
636 * When min=0, and max≠0, Alarm higher than max
637 * When min≠0, and max=0, Alarm lower than min
638 * When min≠0 and max≠0, Alarm higher than max or lower than min
639
640 Example:
641
642 AT+SHTEMP=0,30   ~/~/ Alarm when temperature higher than 30.
643
644
645 * (% style="color:#037691" %)**Downlink Payload:**
646
647 **0x(0C 01 00 1E)**  ~/~/Set AT+SHTEMP=0,30
648
649 (% style="color:red" %)**(note: 3^^rd^^ byte= 0x00 for low limit(not set), 4^^th^^ byte = 0x1E for high limit: 30)**
650
651
652
653 ==== (% style="color:red" %)**Set Humidity Alarm Threshold:**(%%) ====
654
655
656 * (% style="color:#037691" %)**AT Command:**
657
658 **AT+SHHUM=min,max**
659
660 * When min=0, and max≠0, Alarm higher than max
661 * When min≠0, and max=0, Alarm lower than min
662 * When min≠0 and max≠0, Alarm higher than max or lower than min
663
664 Example:
665
666 AT+SHHUM=70,0   ~/~/ Alarm when humidity lower than 70%.
667
668
669 * (% style="color:#037691" %)**Downlink Payload:**
670
671 **0x(0C 02 46 00)**  ~/~/Set AT+SHTHUM=70,0
672
673 (% style="color:red" %)**(note: 3^^rd^^ byte= 0x46 for low limit (70%), 4^^th^^ byte = 0x00 for high limit (not set))**
674
675
676
677 ==== (% style="color:red" %)**Set Alarm Interval:**(%%) ====
678
679
680 The shortest time of two Alarm packet. (unit: min)
681
682 * (% style="color:#037691" %)**AT Command:**
683
684 **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.
685
686
687 * (% style="color:#037691" %)**Downlink Payload:**
688
689 **0x(0D 00 1E)**     **~-~--> ** Set AT+ATDC=0x 00 1E = 30 minutes
690
691
692
693 ==== (% style="color:red" %)**Poll the Alarm settings:**(%%) ====
694
695
696 Send a LoRaWAN downlink to ask device send Alarm settings.
697
698 * (% style="color:#037691" %)**Downlink Payload:**
699
700 0x0E 01
701
702
703 **Example:**
704
705 [[image:1655972693463-687.png]]
706
707 **Explain:**
708
709 * Alarm & MOD bit is 0x7C, 0x7C >> 2 = 0x31: Means this message is the Alarm settings message.
710
711 == 2.7  LED Status ==
712
713
714 LSN50-v2-S31 has an internal LED, it will active in below situation:
715
716 * LED will fast blink 5 times when boot, this means the temperature sensor is detected.
717 * After the fast blinks on boot, the LED will flash once which means device is trying to send Join Packet to the network.
718 * If device successful join LoRaWAN network, the LED will be solid on for 5 seconds.
719
720 == 2.8  Button Function ==
721
722
723 (((
724 **Internal RESET button:**
725 )))
726
727 (((
728 Press this button will reboot the device. Device will process OTAA Join to network again.
729 )))
730
731
732 == (% style="color:inherit; font-family:inherit; font-size:26px" %)2.9  ​Firmware Change Log(%%) ==
733
734
735 Firmware version and change log please see: [[**See this link**>>https://www.dropbox.com/sh/ywkhwu95amzsyvi/AAAwj6H6TIuNyaHrL6ec3aPga?dl=0]]**.**
736
737
738 = 3. Battery & Power Consumption =
739
740
741 LSN50v2-S31 uses ER26500 + SPC1520 battery pack. See below link for detail information about the battery info and how to replace.
742
743 [[**Battery Info & Power Consumption Analyze**>>url:http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] .
744
745
746 = 4.  Use AT Command =
747
748 == 4.1  Access AT Commands ==
749
750
751 User can use a USB to TTL adapter to connect to LSN50V2-S31 to use AT command to configure the device. Example is as below:
752
753
754 [[image:image-20220623095817-4.png||height="665" width="1032"]]
755
756 (% style="display:none" %) (%%)
757
758 [[image:image-20220623100044-7.png]]
759
760
761 = 5.  FAQ =
762
763 == 5.1 What is the frequency range of LSN50v2-S31? ==
764
765
766 Different LSN50V2-S31 version supports different frequency range, below is the table for the working frequency and recommend bands for each model:
767
768 (% border="1" cellspacing="3" style="width:510px" %)
769 |(% style="background-color:#4f81bd; color:white; width:70px" %)**Version**|(% style="background-color:#4f81bd; color:white; width:70px" %)**LoRa IC**|(% style="background-color:#4f81bd; color:white; width:124px" %)**Working Frequency**|(% style="background-color:#4f81bd; color:white; width:123px" %)**Best Tune Frequency**|(% style="background-color:#4f81bd; color:white; width:123px" %)**Recommend Bands**
770 |(% style="width:70px" %)433|(% style="width:72px" %)SX1278|(% style="width:153px" %)Band2(LF): 410 ~~525 Mhz|(% style="width:163px" %)433Mhz|(% style="width:152px" %)CN470/EU433
771 |(% style="width:70px" %)868|(% style="width:72px" %)SX1276|(% style="width:153px" %)Band1(HF):862~~1020 Mhz|(% style="width:163px" %)868Mhz|(% style="width:152px" %)EU868/IN865/RU864
772 |(% style="width:70px" %)915|(% style="width:72px" %)SX1276|(% style="width:153px" %)Band1(HF):862 ~~1020 Mhz|(% style="width:163px" %)915Mhz|(% style="width:152px" %)(((
773 AS923/AU915/
774 KR920/US915
775 )))
776
777 == 5.2 What is the Frequency Plan? ==
778
779
780 Please refer Dragino End Node Frequency Plan:  [[End Device Frequency Band>>doc:Main.End Device Frequency Band.WebHome]]
781
782
783 == 5.3 How to update the firmware? ==
784
785
786 (((
787 User can upgrade the firmware for:
788 )))
789
790 * (((
791 (((
792 Support new features
793 )))
794 )))
795 * (((
796 (((
797 For bug fix
798 )))
799 )))
800 * (((
801 (((
802 Change LoRaWAN bands.
803 )))
804 )))
805
806 (((
807 Please see this link for how to upgrade: ** **[[Firmware Upgrade Instruction>>doc:Main.Firmware Upgrade Instruction for STM32 base products.WebHome]]
808 )))
809
810 firmware location:[[Firmware - Dropbox>>url:https://www.dropbox.com/scl/fo/ztlw35a9xbkomu71u31im/ABkxBmsLQecvQawVIJBH-kw/LoRaWAN%20End%20Node/LSN50v2-S31-S31B/Firmware?dl=0&rlkey=ojjcsw927eaow01dgooldq3nu&subfolder_nav_tracking=1]]
811
812 = 6.  Trouble Shooting =
813
814 == 6.1  AT Command input doesn't work ==
815
816
817 In the case if user can see the console output but can't type input to the device. Please check if you already include the (% style="color:green" %)**ENTER**(%%) while sending out the command. Some serial tool doesn't send (% style="color:green" %)**ENTER**(%%) while press the send key, user need to add ENTER in their string.
818
819
820 == 6.2 Abnormal temperature ==
821
822
823 When the temperature is displayed as - 0.1, it means that the sensor is not connected.
824
825 Please check whether the wiring is loose/Blocked by the insulation layer of the wire/pin damaged
826
827
828 = 7.  Order Info =
829
830
831 **Part Number:  ** (% style="color:blue" %)**LSN50V2-S31-XXX**(%%)**  Or  (% style="color:blue" %)LSN50V2-S31B-XXX (%%)**
832
833 (% style="color:blue" %)**XXX**(%%)**: **The default frequency band
834
835 * (% style="color:red" %)**AS923 **(%%)**:** LoRaWAN AS923 band
836 * (% style="color:red" %)**AU915 **(%%)**:** LoRaWAN AU915 band
837 * (% style="color:red" %)**EU433 **(%%)**:** LoRaWAN EU433 band
838 * (% style="color:red" %)**EU868 **(%%)**:** LoRaWAN EU868 band
839 * (% style="color:red" %)**KR920 **(%%)**:** LoRaWAN KR920 band
840 * (% style="color:red" %)**US915 **(%%)**:** LoRaWAN US915 band
841 * (% style="color:red" %)**IN865 **(%%)**:** LoRaWAN IN865 band
842 * (% style="color:red" %)**CN470 **(%%)**:** LoRaWAN CN470 band
843
844 = 8. ​ Packing Info =
845
846
847 (((
848 **Package Includes**:
849 )))
850
851 * (((
852 (% style="color:blue" %)**LSN50V2-S31**(%%) **or** (% style="color:blue" %)**LSN50V2-S31B**(%%) LoRaWAN Temperature Sensor x 1
853
854
855 )))
856
857 (((
858 **Dimension and weight**:
859 )))
860
861 * Device Size: cm
862 * Device Weight: g
863 * Package Size / pcs : cm
864 * Weight / pcs : g
865
866 = 9.  ​Support =
867
868
869 * 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.
870 * 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]].