Version 140.1 by Xiaoling on 2025/06/10 09:27

Show last authors
1
2
3 [[image:image-20240103095714-2.png||data-xwiki-image-style-alignment="center"]]
4
5
6
7
8
9
10 **Table of Contents:**
11
12 {{toc/}}
13
14
15
16
17
18
19 = 1. Introduction =
20
21 == 1.1 What is SN50v3-LB/LS LoRaWAN Generic Node ==
22
23
24 (% style="color:blue" %)**SN50V3-LB/LS **(%%)LoRaWAN Sensor Node is a Long Range LoRa Sensor Node. It is designed for outdoor use and powered by (% style="color:blue" %)** 8500mAh Li/SOCl2 battery**(%%)  or (% style="color:blue" %)**solar powered + Li-ion battery**(%%) for long term use.SN50V3-LB/LS is designed to facilitate developers to quickly deploy industrial level LoRa and IoT solutions. It help users to turn the idea into a practical application and make the Internet of Things a reality. It is easy to program, create and connect your things everywhere.
25
26 (% style="color:blue" %)**SN50V3-LB/LS wireless part**(%%) is based on SX1262 allows the user 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 minimising current consumption.It targets professional wireless sensor network applications such as irrigation systems, smart metering, smart cities, and so on.
27
28 SN50V3-LB/LS has a powerful (% style="color:blue" %)**48Mhz ARM microcontroller with 256KB flash and 64KB RAM**(%%). It has (% style="color:blue" %)**multiplex I/O pins**(%%) to connect to different sensors.
29
30 SN50V3-LB/LS has a (% style="color:blue" %)**built-in BLE module**(%%), user can configure the sensor remotely via Mobile Phone. It also support (% style="color:blue" %)**OTA upgrade**(%%) via private LoRa protocol for easy maintaining.
31
32 SN50V3-LB/LS is the 3^^rd^^ generation of LSN50 series generic sensor node from Dragino. It is an (% style="color:blue" %)**open source project**(%%) and has a mature LoRaWAN stack and application software. User can use the pre-load software for their IoT projects or easily customize the software for different requirements.
33
34 == 1.2 ​Features ==
35
36
37 * LoRaWAN 1.0.3 Class A
38 * Ultra-low power consumption
39 * Open-Source hardware/software
40 * Bands: CN470/EU433/KR920/US915/EU868/AS923/AU915/IN865
41 * Support Bluetooth v5.1 and LoRaWAN remote configure
42 * Support wireless OTA update firmware
43 * Uplink on periodically
44 * Downlink to change configure
45 * 8500mAh Li/SOCl2 Battery (SN50v3-LB)
46 * Solar panel + 3000mAh Li-ion battery (SN50v3-LS)
47
48 == 1.3 Specification ==
49
50
51 (% style="color:#037691" %)**Common DC Characteristics:**
52
53 * Supply Voltage: Built-in Battery , 2.5v ~~ 3.6v
54 * Operating Temperature: -40 ~~ 85°C
55
56 (% style="color:#037691" %)**I/O Interface:**
57
58 * Battery output (2.6v ~~ 3.6v depends on battery)
59 * +5v controllable output
60 * 3 x Interrupt or Digital IN/OUT pins
61 * 3 x one-wire interfaces
62 * 1 x UART Interface
63 * 1 x I2C Interface
64
65 (% style="color:#037691" %)**LoRa Spec:**
66
67 * Frequency Range,  Band 1 (HF): 862 ~~ 1020 Mhz
68 * Max +22 dBm constant RF output vs.
69 * RX sensitivity: down to -139 dBm.
70 * Excellent blocking immunity
71
72 (% style="color:#037691" %)**Battery:**
73
74 * Li/SOCI2 un-chargeable battery
75 * Capacity: 8500mAh
76 * Self-Discharge: <1% / Year @ 25°C
77 * Max continuously current: 130mA
78 * Max boost current: 2A, 1 second
79
80 (% style="color:#037691" %)**Power Consumption**
81
82 * Sleep Mode: 5uA @ 3.3v
83 * LoRa Transmit Mode: 125mA @ 20dBm, 82mA @ 14dBm
84
85 == 1.4 Sleep mode and working mode ==
86
87
88 (% style="color:blue" %)**Deep Sleep Mode: **(%%)Sensor doesn't have any LoRaWAN activate. This mode is used for storage and shipping to save battery life.
89
90 (% style="color:blue" %)**Working Mode:** (%%)In this mode, Sensor will work as LoRaWAN Sensor to Join LoRaWAN network and send out sensor data to server. Between each sampling/tx/rx periodically, sensor will be in IDLE mode), in IDLE mode, sensor has the same power consumption as Deep Sleep mode.
91
92
93 == 1.5 Button & LEDs ==
94
95
96 [[image:image-20250415113729-1.jpeg]]
97
98 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
99 |=(% style="width: 167px;background-color:#4F81BD;color:white" %)**Behavior on ACT**|=(% style="width: 117px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 226px;background-color:#4F81BD;color:white" %)**Action**
100 |[[image:1749518618870-272.png]] 1~~3s|(% style="width:117px" %)Send an uplink|(% style="width:225px" %)(((
101 If sensor is already Joined to LoRaWAN network, sensor will send an uplink packet, (% style="color:blue" %)**blue led** (%%)will blink once.
102 Meanwhile, BLE module will be active and user can connect via BLE to configure device.
103 )))
104 |[[image:1749518621646-995.png]] >3s|(% style="width:117px" %)Active Device|(% style="width:225px" %)(((
105 (% style="color:green" %)**Green led**(%%) will fast blink 5 times, device will enter (% style="color:#037691" %)**OTA mode**(%%) for 3 seconds. And then start to JOIN LoRaWAN network.
106 (% style="color:green" %)**Green led**(%%) will solidly turn on for 5 seconds after joined in network.
107 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.
108 )))
109 |[[image:1749518857619-959.png]] x5|(% style="width:117px" %)Deactivate Device|(% style="width:225px" %)(% style="color:red" %)**Red led**(%%) will solid on for 5 seconds. Means device is in Deep Sleep Mode.
110
111 == 1.6 BLE connection ==
112
113
114 SN50v3-LB/LS supports BLE remote configure.
115
116
117 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:
118
119 * Press button to send an uplink
120 * Press button to active device.
121 * Device Power on or reset.
122
123 If there is no activity connection on BLE in 60 seconds, sensor will shut down BLE module to enter low power mode.
124
125
126 == 1.7 Pin Definitions ==
127
128
129 [[image:image-20230610163213-1.png||height="404" width="699"]]
130
131
132 == 1.8 Mechanical ==
133
134 === 1.8.1 for LB version ===
135
136
137 [[image:image-20240924112806-1.png||height="548" width="894"]]
138
139
140
141 === 1.8.2 for LS version ===
142
143 [[image:image-20231231203439-3.png||height="385" width="886"]]
144
145
146 == 1.9 Hole Option ==
147
148
149 SN50v3-LB/LS has different hole size options for different size sensor cable. The options provided are M12, M16 and M20. The definition is as below:
150
151 [[image:image-20250329085729-1.jpeg]]
152
153 [[image:image-20250329085744-2.jpeg]]
154
155
156 = 2. Configure SN50v3-LB/LS to connect to LoRaWAN network =
157
158 == 2.1 How it works ==
159
160
161 The SN50v3-LB/LS is configured as (% style="color:#037691" %)**LoRaWAN OTAA Class A**(%%) mode by default. It has OTAA keys to join LoRaWAN network. To connect a local LoRaWAN network, you need to input the OTAA keys in the LoRaWAN IoT server and press the button to activate the SN50v3-LB/LS. It will automatically join the network via OTAA and start to send the sensor value. The default uplink interval is 20 minutes.
162
163
164 == 2.2 ​Quick guide to connect to LoRaWAN server (OTAA) ==
165
166
167 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.
168
169 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.
170
171 [[image:image-20250329090241-3.png]]
172
173 (% style="color:blue" %)**Step 1:**(%%) Create a device in TTN with the OTAA keys from SN50v3-LB/LS.
174
175 Each SN50v3-LB/LS is shipped with a sticker with the default device EUI as below:
176
177 [[image:image-20250329090300-4.jpeg]]
178
179
180 You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:
181
182 **Create the application.**
183
184 [[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"]]
185
186 [[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"]]
187
188
189 **Add devices to the created Application.**
190
191 [[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"]]
192
193 [[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"]]
194
195
196 **Enter end device specifics manually.**
197
198 [[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"]]
199
200
201 **Add DevEUI and AppKey.**
202
203 **Customize a platform ID for the device.**
204
205 [[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"]]
206
207
208 (% style="color:blue" %)**Step 2: **(%%)Add decoder.
209
210 In TTN, user can add a custom payload so it shows friendly reading.
211
212 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/]]
213
214 Below is TTN screen shot:
215
216 [[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"]]
217
218 [[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" height="562" width="1168"]]
219
220
221 (% style="color:blue" %)**Step 3:**(%%) Activate SN50v3-LB/LS
222
223 Press the button for 5 seconds to activate the SN50v3-LB/LS.
224
225 (% style="color:green" %)**Green led**(%%) will fast blink 5 times, device will enter (% style="color:blue" %)**OTA mode**(%%) for 3 seconds. And then start to JOIN LoRaWAN network. (% style="color:green" %)**Green led**(%%) will solidly turn on for 5 seconds after joined in network.
226
227 After join success, it will start to upload messages to TTN and you can see the messages in the panel.
228
229
230 == 2.3 ​Uplink Payload ==
231
232 === 2.3.1 Device Status, FPORT~=5 ===
233
234
235 Users can use the downlink command(**0x26 01**) to ask SN50v3-LB/LS to send device configure detail, include device configure status. SN50v3-LB/LS will uplink a payload via FPort=5 to server.
236
237 The Payload format is as below.
238
239
240 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
241 |(% colspan="6" style="background-color:#4f81bd; color:white" %)**Device Status (FPORT=5)**
242 |(% style="width:103px" %)**Size (bytes)**|(% style="width:72px" %)**1**|**2**|(% style="width:91px" %)**1**|(% style="width:86px" %)**1**|(% style="width:44px" %)**2**
243 |(% style="width:103px" %)Value|(% style="width:72px" %)Sensor Model|Firmware Version|(% style="width:91px" %)Frequency Band|(% style="width:86px" %)Sub-band|(% style="width:44px" %)BAT
244
245 Example parse in TTNv3
246
247
248 (% style="color:#037691" %)**Sensor Model**(%%): For SN50v3-LB/LS, this value is 0x1C
249
250 (% style="color:#037691" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version
251
252 (% style="color:#037691" %)**Frequency Band**:
253
254 0x01: EU868
255
256 0x02: US915
257
258 0x03: IN865
259
260 0x04: AU915
261
262 0x05: KZ865
263
264 0x06: RU864
265
266 0x07: AS923
267
268 0x08: AS923-1
269
270 0x09: AS923-2
271
272 0x0a: AS923-3
273
274 0x0b: CN470
275
276 0x0c: EU433
277
278 0x0d: KR920
279
280 0x0e: MA869
281
282
283 (% style="color:#037691" %)**Sub-Band**:
284
285 AU915 and US915:value 0x00 ~~ 0x08
286
287 CN470: value 0x0B ~~ 0x0C
288
289 Other Bands: Always 0x00
290
291
292 (% style="color:#037691" %)**Battery Info**:
293
294 Check the battery voltage.
295
296 Ex1: 0x0B45 = 2885mV
297
298 Ex2: 0x0B49 = 2889mV
299
300
301 === 2.3.2 Working Modes & Sensor Data. Uplink via FPORT~=2 ===
302
303
304 SN50v3-LB/LS has different working mode for the connections of different type of sensors. This section describes these modes. Use can use the AT Command (% style="color:blue" %)**AT+MOD**(%%) to set SN50v3-LB/LS to different working modes.
305
306 For example:
307
308 (% style="color:blue" %)**AT+MOD=2  ** (%%) ~/~/ will set the SN50v3 to work in MOD=2 distance mode which target to measure distance via Ultrasonic Sensor.
309
310
311 (% style="color:red" %) **Important Notice:**
312
313 ~1. Some working modes has payload more than 12 bytes, The US915/AU915/AS923 frequency bands' definition has maximum 11 bytes in (% style="color:blue" %)**DR0**(%%). Server sides will see NULL payload while SN50v3-LB/LS transmit in DR0 with 12 bytes payload.
314
315 2. All modes share the same Payload Explanation from HERE.
316
317 3. By default, the device will send an uplink message every 20 minutes.
318
319
320 ==== 2.3.2.1  MOD~=1 (Default Mode) ====
321
322
323 In this mode, uplink payload includes in total 11 bytes. Uplink packets use FPORT=2.
324
325 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:517px" %)
326 |(% style="background-color:#4f81bd; color:white; width:50px" %)**Size(bytes)**|(% style="background-color:#4f81bd; color:white; width:20px" %)**2**|(% style="background-color:#4f81bd; color:white; width:100px" %)**2**|(% style="background-color:#4f81bd; color:white; width:50px" %)**2**|(% style="background-color:#4f81bd; color:white; width:90px" %)**1**|(% style="background-color:#4f81bd; color:white; width:128px" %)**2**|(% style="background-color:#4f81bd; color:white; width:79px" %)**2**
327 |Value|Bat|(% style="width:191px" %)(((
328 Temperature(DS18B20)(PC13)
329 )))|(% style="width:78px" %)(((
330 ADC(PA4)
331 )))|(% style="width:216px" %)(((
332 Digital in(PB15)&Digital Interrupt(PA8)
333 )))|(% style="width:308px" %)(((
334 Temperature(SHT20 or SHT31 or BH1750 Illumination Sensor)
335 )))|(% style="width:154px" %)(((
336 Humidity(SHT20 or SHT31)
337 )))
338
339 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/image-20220627150949-6.png?rev=1.1||alt="image-20220627150949-6.png"]]
340
341
342 ==== 2.3.2.2  MOD~=2 (Distance Mode) ====
343
344
345 This mode is target to measure the distance. The payload of this mode is totally 11 bytes. The 8^^th^^ and 9^^th^^ bytes is for the distance.
346
347 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:517px" %)
348 |(% style="background-color:#4f81bd; color:white; width:50px" %)**Size(bytes)**|(% style="background-color:#4f81bd; color:white; width:29px" %)**2**|(% style="background-color:#4f81bd; color:white; width:108px" %)**2**|(% style="background-color:#4f81bd; color:white; width:40px" %)**2**|(% style="background-color:#4f81bd; color:white; width:110px" %)**1**|(% style="background-color:#4f81bd; color:white; width:140px" %)**2**|(% style="background-color:#4f81bd; color:white; width:40px" %)**2**
349 |Value|BAT|(% style="width:196px" %)(((
350 Temperature(DS18B20)(PC13)
351 )))|(% style="width:87px" %)(((
352 ADC(PA4)
353 )))|(% style="width:189px" %)(((
354 Digital in(PB15) & Digital Interrupt(PA8)
355 )))|(% style="width:208px" %)(((
356 Distance measure by: 1) LIDAR-Lite V3HP
357 Or 2) Ultrasonic Sensor
358 )))|(% style="width:117px" %)Reserved
359
360 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/1656324539647-568.png?rev=1.1||alt="1656324539647-568.png"]]
361
362
363 (% style="color:blue" %)**Connection of LIDAR-Lite V3HP:**
364
365 [[image:image-20230512173758-5.png||height="563" width="712"]]
366
367
368 (% style="color:blue" %)**Connection to Ultrasonic Sensor:**
369
370 (% style="color:red" %)**Need to remove R1 and R2 resistors to get low power,otherwise there will be 240uA standby current.**
371
372 [[image:image-20230512173903-6.png||height="596" width="715"]]
373
374
375 For the connection to TF-Mini or TF-Luna , MOD2 payload is as below:
376
377 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:517px" %)
378 |(% style="background-color:#4f81bd; color:white; width:50px" %)**Size(bytes)**|(% style="background-color:#4f81bd; color:white; width:20px" %)**2**|(% style="background-color:#4f81bd; color:white; width:100px" %)**2**|(% style="background-color:#4f81bd; color:white; width:100px" %)**1**|(% style="background-color:#4f81bd; color:white; width:50px" %)**2**|(% style="background-color:#4f81bd; color:white; width:120px" %)**2**|(% style="background-color:#4f81bd; color:white; width:77px" %)**2**
379 |Value|BAT|(% style="width:183px" %)(((
380 Temperature(DS18B20)(PC13)
381 )))|(% style="width:173px" %)(((
382 Digital in(PB15) & Digital Interrupt(PA8)
383 )))|(% style="width:84px" %)(((
384 ADC(PA4)
385 )))|(% style="width:323px" %)(((
386 Distance measure by:1)TF-Mini plus LiDAR
387 Or 2) TF-Luna LiDAR
388 )))|(% style="width:188px" %)Distance signal  strength
389
390 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/1656376779088-686.png?rev=1.1||alt="1656376779088-686.png"]]
391
392
393 **Connection to [[TF-Mini plus>>url:http://en.benewake.com/product/detail/5c345cd0e5b3a844c472329b.html]] LiDAR(UART version):**
394
395 (% style="color:red" %)**Need to remove R3 and R4 resistors to get low power,otherwise there will be 400uA standby current.**
396
397 [[image:image-20230512180609-7.png||height="555" width="802"]]
398
399
400 **Connection to [[TF-Luna>>url:http://en.benewake.com/product/detail/5e1c1fd04d839408076b6255.html]] LiDAR (UART version):**
401
402 (% style="color:red" %)**Need to remove R3 and R4 resistors to get low power,otherwise there will be 400uA standby current.**
403
404 [[image:image-20230610170047-1.png||height="452" width="799"]]
405
406
407 ==== 2.3.2.3  MOD~=3 (3 ADC + I2C) ====
408
409
410 This mode has total 12 bytes. Include 3 x ADC + 1x I2C
411
412 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:517px" %)
413 |=(% style="width: 50px;background-color:#4F81BD;color:white" %)(((
414 **Size(bytes)**
415 )))|=(% style="width: 50px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 50px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 50px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 90px;background-color:#4F81BD;color:white" %)**1**|=(% style="width: 110px;background-color:#4F81BD;color:white" %)2|=(% style="width: 97px;background-color:#4F81BD;color:white" %)2|=(% style="width: 20px;background-color:#4F81BD;color:white" %)1
416 |Value|(% style="width:68px" %)(((
417 ADC1(PA4)
418 )))|(% style="width:75px" %)(((
419 ADC2(PA5)
420 )))|(((
421 ADC3(PA8)
422 )))|(((
423 Digital Interrupt(PB15)
424 )))|(% style="width:304px" %)(((
425 Temperature(SHT20 or SHT31 or BH1750 Illumination Sensor)
426 )))|(% style="width:163px" %)(((
427 Humidity(SHT20 or SHT31)
428 )))|(% style="width:53px" %)Bat
429
430 [[image:image-20230513110214-6.png]]
431
432
433 ==== 2.3.2.4 MOD~=4 (3 x DS18B20) ====
434
435
436 This mode has total 11 bytes. As shown below:
437
438 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:517px" %)
439 |(% style="background-color:#4f81bd; color:white; width:50px" %)**Size(bytes)**|(% style="background-color:#4f81bd; color:white; width:20px" %)**2**|(% style="background-color:#4f81bd; color:white; width:100px" %)**2**|(% style="background-color:#4f81bd; color:white; width:50px" %)**2**|(% style="background-color:#4f81bd; color:white; width:99px" %)**1**|(% style="background-color:#4f81bd; color:white; width:99px" %)**2**|(% style="background-color:#4f81bd; color:white; width:99px" %)**2**
440 |Value|BAT|(% style="width:186px" %)(((
441 Temperature1(DS18B20)(PC13)
442 )))|(% style="width:82px" %)(((
443 ADC(PA4)
444 )))|(% style="width:210px" %)(((
445 Digital in(PB15) & Digital Interrupt(PA8) 
446 )))|(% style="width:191px" %)Temperature2(DS18B20)
447 (PB9)|(% style="width:183px" %)Temperature3(DS18B20)(PB8)
448
449 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/1656377606181-607.png?rev=1.1||alt="1656377606181-607.png"]]
450
451
452 [[image:image-20230513134006-1.png||height="559" width="736"]]
453
454
455 ==== 2.3.2.5  MOD~=5(Weight Measurement by HX711) ====
456
457
458 [[image:image-20230512164658-2.png||height="532" width="729"]]
459
460 Each HX711 need to be calibrated before used. User need to do below two steps:
461
462 1. Zero calibration. Don't put anything on load cell and run (% style="color:blue" %)**AT+WEIGRE**(%%) to calibrate to Zero gram.
463 1. Adjust calibration factor (default value 400): Put a known weight thing on load cell and run (% style="color:blue" %)**AT+WEIGAP**(%%) to adjust the Calibration Factor.
464 1. (((
465 Weight has 4 bytes, the unit is g.
466
467
468
469 )))
470
471 For example:
472
473 (% style="color:blue" %)**AT+GETSENSORVALUE =0**
474
475 Response:  Weight is 401 g
476
477 Check the response of this command and adjust the value to match the real value for thing.
478
479 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:517px" %)
480 |=(% style="width: 50px;background-color:#4F81BD;color:white" %)(((
481 **Size(bytes)**
482 )))|=(% style="width: 20px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 150px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 50px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 198px;background-color:#4F81BD;color:white" %)**1**|=(% style="width: 49px;background-color:#4F81BD;color:white" %)**4**
483 |Value|BAT|(% style="width:193px" %)(((
484 Temperature(DS18B20)(PC13)
485 )))|(% style="width:85px" %)(((
486 ADC(PA4)
487 )))|(% style="width:186px" %)(((
488 Digital in(PB15) & Digital Interrupt(PA8)
489 )))|(% style="width:100px" %)Weight
490
491 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/image-20220820120036-2.png?width=1003&height=469&rev=1.1||alt="image-20220820120036-2.png" height="469" width="1003"]]
492
493
494 ==== 2.3.2.6  MOD~=6 (Counting Mode) ====
495
496
497 In this mode, the device will work in counting mode. It counts the interrupt on the interrupt pins and sends the count on TDC time.
498
499 Connection is as below. The PIR sensor is a count sensor, it will generate interrupt when people come close or go away. User can replace the PIR sensor with other counting sensors.
500
501 [[image:image-20230512181814-9.png||height="543" width="697"]]
502
503
504 (% style="color:red" %)**Note:** **LoRaWAN wireless transmission will infect the PIR sensor. Which cause the counting value increase +1 for every uplink. User can change PIR sensor or put sensor away of the SN50_v3 to avoid this happen.**
505
506 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:517px" %)
507 |=(% style="width: 60px;background-color:#4F81BD;color:white" %)**Size(bytes)**|=(% style="width: 40px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 180px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 60px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 100px;background-color:#4F81BD;color:white" %)**1**|=(% style="width: 77px;background-color:#4F81BD;color:white" %)**4**
508 |Value|BAT|(% style="width:256px" %)(((
509 Temperature(DS18B20)(PC13)
510 )))|(% style="width:108px" %)(((
511 ADC(PA4)
512 )))|(% style="width:126px" %)(((
513 Digital in(PB15)
514 )))|(% style="width:145px" %)(((
515 Count(PA8)
516 )))
517
518 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/1656378441509-171.png?rev=1.1||alt="1656378441509-171.png"]]
519
520
521 ==== 2.3.2.7  MOD~=7 (Three interrupt contact modes) ====
522
523
524 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:517px" %)
525 |=(% style="width: 50px;background-color:#4F81BD;color:white" %)(((
526 **Size(bytes)**
527 )))|=(% style="width: 20px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 90px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 50px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 89px;background-color:#4F81BD;color:white" %)**1**|=(% style="width: 89px;background-color:#4F81BD;color:white" %)**1**|=(% style="width: 89px;background-color:#4F81BD;color:white" %)1|=(% style="width: 40px;background-color:#4F81BD;color:white" %)2
528 |Value|BAT|(% style="width:188px" %)(((
529 Temperature(DS18B20)
530 (PC13)
531 )))|(% style="width:83px" %)(((
532 ADC(PA5)
533 )))|(% style="width:184px" %)(((
534 Digital Interrupt1(PA8)
535 )))|(% style="width:186px" %)Digital Interrupt2(PA4)|(% style="width:197px" %)Digital Interrupt3(PB15)|(% style="width:100px" %)Reserved
536
537 [[image:image-20230513111203-7.png||height="324" width="975"]]
538
539
540 ==== 2.3.2.8  MOD~=8 (3ADC+1DS18B20) ====
541
542
543 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:517px" %)
544 |=(% style="width: 50px;background-color:#4F81BD;color:white" %)(((
545 **Size(bytes)**
546 )))|=(% style="width: 30px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 110px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 70px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 119px;background-color:#4F81BD;color:white" %)**1**|=(% style="width: 69px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 69px;background-color:#4F81BD;color:white" %)2
547 |Value|BAT|(% style="width:207px" %)(((
548 Temperature(DS18B20)
549 (PC13)
550 )))|(% style="width:94px" %)(((
551 ADC1(PA4)
552 )))|(% style="width:198px" %)(((
553 Digital Interrupt(PB15)
554 )))|(% style="width:84px" %)(((
555 ADC2(PA5)
556 )))|(% style="width:82px" %)(((
557 ADC3(PA8)
558 )))
559
560 [[image:image-20230513111231-8.png||height="335" width="900"]]
561
562
563 ==== 2.3.2.9  MOD~=9 (3DS18B20+ two Interrupt count mode) ====
564
565
566 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:517px" %)
567 |=(% style="width: 50px;background-color:#4F81BD;color:white" %)(((
568 **Size(bytes)**
569 )))|=(% style="width: 20px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 90px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 90px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 60px;background-color:#4F81BD;color:white" %)**1**|=(% style="width: 89px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 59px;background-color:#4F81BD;color:white" %)4|=(% style="width: 59px;background-color:#4F81BD;color:white" %)4
570 |Value|BAT|(((
571 Temperature
572 (DS18B20)(PC13)
573 )))|(((
574 Temperature2
575 (DS18B20)(PB9)
576 )))|(((
577 Digital Interrupt
578 (PB15)
579 )))|(% style="width:193px" %)(((
580 Temperature3
581 (DS18B20)(PB8)
582 )))|(% style="width:78px" %)(((
583 Count1(PA8)
584 )))|(% style="width:78px" %)(((
585 Count2(PA4)
586 )))
587
588 [[image:image-20230513111255-9.png||height="341" width="899"]]
589
590 (% style="color:blue" %)**The newly added AT command is issued correspondingly:**
591
592 (% style="color:#037691" %)** AT+INTMOD1 PA8**(%%)  pin:  Corresponding downlink:  (% style="color:#037691" %)**06 00 00 xx**
593
594 (% style="color:#037691" %)** AT+INTMOD2 PA4**(%%)  pin:  Corresponding downlink: (% style="color:#037691" %)**06 00 01 xx**
595
596 (% style="color:#037691" %)** AT+INTMOD3 PB15**(%%)  pin:  Corresponding downlink:  (% style="color:#037691" %)** 06 00 02 xx**
597
598
599 (% style="color:blue" %)**AT+SETCNT=aa,bb** 
600
601 When AA is 1, set the count of PA8 pin to BB Corresponding downlink:09 01 bb bb bb bb
602
603 When AA is 2, set the count of PA4 pin to BB Corresponding downlink:09 02 bb bb bb bb
604
605
606 ==== 2.3.2.10  MOD~=10 (PWM input capture and output mode,Since firmware v1.2)(% style="display:none" %) (%%) ====
607
608
609 (% style="color:red" %)**Note: Firmware not release, contact Dragino for testing.**
610
611 In this mode, the uplink can perform PWM input capture, and the downlink can perform PWM output.
612
613 [[It should be noted when using PWM mode.>>||anchor="H2.3.3.12A0PWMMOD"]]
614
615
616 ===== 2.3.2.10.a  Uplink, PWM input capture =====
617
618
619 [[image:image-20230817172209-2.png||height="439" width="683"]]
620
621 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:515px" %)
622 |(% style="background-color:#4f81bd; color:white; width:50px" %)**Size(bytes)**|(% style="background-color:#4f81bd; color:white; width:20px" %)**2**|(% style="background-color:#4f81bd; color:white; width:100px" %)**2**|(% style="background-color:#4f81bd; color:white; width:50px" %)**2**|(% style="background-color:#4f81bd; color:white; width:135px" %)**1**|(% style="background-color:#4f81bd; color:white; width:70px" %)**2**|(% style="background-color:#4f81bd; color:white; width:90px" %)**2**
623 |Value|Bat|(% style="width:191px" %)(((
624 Temperature(DS18B20)(PC13)
625 )))|(% style="width:78px" %)(((
626 ADC(PA4)
627 )))|(% style="width:135px" %)(((
628 PWM_Setting
629 &Digital Interrupt(PA8)
630 )))|(% style="width:70px" %)(((
631 Pulse period
632 )))|(% style="width:89px" %)(((
633 Duration of high level
634 )))
635
636 [[image:image-20230817170702-1.png||height="161" width="1044"]]
637
638
639 When the device detects the following PWM signal ,decoder will converts the pulse period and high-level duration to frequency and duty cycle.
640
641 **Frequency:**
642
643 (% class="MsoNormal" %)
644 (% lang="EN-US" %)If (% style="background-attachment:initial; background-clip:initial; background-image:initial; background-origin:initial; background-position:initial; background-repeat:initial; background-size:initial; color:blue; font-family:Arial,sans-serif" %)**AT+PWMSET**(%%)**=0, **(% lang="EN-US" %)Frequency= 1000000/(%%)Pulse period(HZ);
645
646 (% class="MsoNormal" %)
647 (% lang="EN-US" %)If (% style="background-attachment:initial; background-clip:initial; background-image:initial; background-origin:initial; background-position:initial; background-repeat:initial; background-size:initial; color:blue; font-family:Arial,sans-serif" %)**AT+PWMSET**(%%)**=1, **(% lang="EN-US" %)Frequency= 1000/(%%)Pulse period(HZ);
648
649
650 (% class="MsoNormal" %)
651 **Duty cycle:**
652
653 Duty cycle= Duration of high level/ Pulse period*100 ~(%).
654
655 [[image:image-20230818092200-1.png||height="344" width="627"]]
656
657
658 ===== 2.3.2.10.b  Uplink, PWM output =====
659
660
661 [[image:image-20230817172209-2.png||height="439" width="683"]]
662
663 (% style="background-attachment:initial; background-clip:initial; background-image:initial; background-origin:initial; background-position:initial; background-repeat:initial; background-size:initial; color:blue; font-family:Arial,sans-serif" %)**AT+PWMOUT=a,b,c**
664
665 a is the time delay of the output, the unit is ms.
666
667 b is the output frequency, the unit is HZ.
668
669 c is the duty cycle of the output, the unit is %.
670
671 (% style="background-attachment:initial; background-clip:initial; background-image:initial; background-origin:initial; background-position:initial; background-repeat:initial; background-size:initial; color:blue; font-family:Arial,sans-serif" %)**Downlink**(%%):  (% style="color:#037691" %)**0B 01 bb cc aa **
672
673 aa is the time delay of the output, the unit is ms.
674
675 bb is the output frequency, the unit is HZ.
676
677 cc is the duty cycle of the output, the unit is %.
678
679
680 For example, send a AT command: AT+PWMOUT=65535,1000,50  The PWM is always out, the frequency is 1000HZ, and the duty cycle is 50.
681
682 The oscilloscope displays as follows:
683
684 [[image:image-20231213102404-1.jpeg||height="688" width="821"]]
685
686
687 ===== 2.3.2.10.c  Downlink, PWM output =====
688
689
690 [[image:image-20230817173800-3.png||height="412" width="685"]]
691
692 Downlink:  (% style="color:#037691" %)**0B xx xx xx yy zz zz**
693
694 xx xx xx is the output frequency, the unit is HZ.
695
696 yy is the duty cycle of the output, the unit is %.
697
698 zz zz is the time delay of the output, the unit is ms.
699
700
701 For example, send a downlink command: 0B 00 61 A8 32 13 88, the frequency is 25KHZ, the duty cycle is 50, and the output time is 5 seconds.
702
703 The oscilloscope displays as follows:
704
705 [[image:image-20230817173858-5.png||height="634" width="843"]]
706
707
708
709 ==== 2.3.2.11  MOD~=11 (TEMP117)(Since firmware V1.3.0) ====
710
711
712 In this mode, uplink payload includes in total 11 bytes. Uplink packets use FPORT=2.
713
714 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:517px" %)
715 |(% style="background-color:#4f81bd; color:white; width:50px" %)**Size(bytes)**|(% style="background-color:#4f81bd; color:white; width:20px" %)**2**|(% style="background-color:#4f81bd; color:white; width:100px" %)**2**|(% style="background-color:#4f81bd; color:white; width:50px" %)**2**|(% style="background-color:#4f81bd; color:white; width:90px" %)**1**|(% style="background-color:#4f81bd; color:white; width:128px" %)**2**|(% style="background-color:#4f81bd; color:white; width:79px" %)**2**
716 |Value|Bat|(% style="width:191px" %)(((
717 Temperature(DS18B20)(PC13)
718 )))|(% style="width:78px" %)(((
719 ADC(PA4)
720 )))|(% style="width:216px" %)(((
721 Digital in(PB15)&Digital Interrupt(PA8)
722 )))|(% style="width:308px" %)(((
723 Temperature
724 (TEMP117)
725 )))|(% style="width:154px" %)(((
726 Reserved position, meaningless
727 (0x0000)
728 )))
729
730 [[image:image-20240717113113-1.png||height="352" width="793"]]
731
732 Connection:
733
734 [[image:image-20240717141528-2.jpeg||height="430" width="654"]]
735
736
737 ==== 2.3.2.12  MOD~=12 (Count+SHT31)(Since firmware V1.3.1) ====
738
739
740 This mode has total 11 bytes. As shown below:
741
742 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:517px" %)
743 |=(% style="width: 86px; background-color: rgb(79, 129, 189); color: white;" %)**Size(bytes)**|=(% style="width: 86px; background-color: rgb(79, 129, 189); color: white;" %)**2**|=(% style="width: 86px; background-color: rgb(79, 129, 189); color: white;" %)**2**|=(% style="width: 86px; background-color: rgb(79, 129, 189); color: white;" %)**2**|=(% style="width: 86px; background-color: rgb(79, 129, 189); color: white;" %)**1**|=(% style="width: 86px; background-color: rgb(79, 129, 189); color: white;" %)**4**
744 |Value|BAT|(% style="width:86px" %)(((
745 Temperature_SHT31
746 )))|(% style="width:86px" %)(((
747 Humidity_SHT31
748 )))|(% style="width:86px" %)(((
749 Digital in(PB15)
750 )))|(% style="width:86px" %)(((
751 Count(PA8)
752 )))
753
754 [[image:image-20240717150948-5.png||height="389" width="979"]]
755
756 Wiring example:
757
758 [[image:image-20240717152224-6.jpeg||height="359" width="680"]]
759
760
761 === 2.3.3  ​Decode payload ===
762
763
764 While using TTN V3 network, you can add the payload format to decode the payload.
765
766 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/1656378466788-734.png?rev=1.1||alt="1656378466788-734.png"]]
767
768 The payload decoder function for TTN V3 are here:
769
770 SN50v3-LB/LS TTN V3 Payload Decoder:  [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>url:https://github.com/dragino/dragino-end-node-decoder]]
771
772
773 ==== 2.3.3.1 Battery Info ====
774
775
776 Check the battery voltage for SN50v3-LB/LS.
777
778 Ex1: 0x0B45 = 2885mV
779
780 Ex2: 0x0B49 = 2889mV
781
782
783 ==== 2.3.3.2  Temperature (DS18B20) ====
784
785
786 If there is a DS18B20 connected to PC13 pin. The temperature will be uploaded in the payload.
787
788 More DS18B20 can check the [[3 DS18B20 mode>>||anchor="H2.3.2.4MOD3D4283xDS18B2029"]]
789
790 (% style="color:blue" %)**Connection:**
791
792 [[image:image-20230512180718-8.png||height="538" width="647"]]
793
794
795 (% style="color:blue" %)**Example**:
796
797 If payload is: 0105H:  (0105 & 8000 == 0), temp = 0105H /10 = 26.1 degree
798
799 If payload is: FF3FH :  (FF3F & 8000 == 1) , temp = (FF3FH - 65536)/10 = -19.3 degrees.
800
801 (FF3F & 8000:Judge whether the highest bit is 1, when the highest bit is 1, it is negative)
802
803
804 ==== 2.3.3.3 Digital Input ====
805
806
807 The digital input for pin PB15,
808
809 * When PB15 is high, the bit 1 of payload byte 6 is 1.
810 * When PB15 is low, the bit 1 of payload byte 6 is 0.
811
812 (% class="wikigeneratedid" id="H2.3.3.4A0AnalogueDigitalConverter28ADC29" %)
813 (((
814 When the digital interrupt pin is set to AT+INTMODx=0, this pin is used as a digital input pin.
815
816 (% style="color:red" %)**Note: The maximum voltage input supports 3.6V.**
817
818
819 )))
820
821 ==== 2.3.3.4  Analogue Digital Converter (ADC) ====
822
823
824 The measuring range of the ADC is only about 0.1V to 1.1V The voltage resolution is about 0.24mv.
825
826 When the measured output voltage of the sensor is not within the range of 0.1V and 1.1V, the output voltage terminal of the sensor shall be divided The example in the following figure is to reduce the output voltage of the sensor by three times If it is necessary to reduce more times, calculate according to the formula in the figure and connect the corresponding resistance in series.
827
828 [[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-20220628150112-1.png?width=285&height=241&rev=1.1||alt="image-20220628150112-1.png" height="241" width="285"]]
829
830
831 (% style="color:red" %)**Note: If the ADC type sensor needs to be powered by SN50_v3, it is recommended to use +5V to control its switch.Only sensors with low power consumption can be powered with VDD.**
832
833
834 The position of PA5 on the hardware after **LSN50 v3.3** is changed to the position shown in the figure below, and the collected voltage becomes one-sixth of the original.
835
836 [[image:image-20230811113449-1.png||height="370" width="608"]]
837
838
839
840 ==== 2.3.3.5 Digital Interrupt ====
841
842
843 Digital Interrupt refers to pin PA8, and there are different trigger methods. When there is a trigger, the SN50v3-LB/LS will send a packet to the server.
844
845 (% style="color:blue" %)** Interrupt connection method:**
846
847 [[image:image-20230513105351-5.png||height="147" width="485"]]
848
849
850 (% style="color:blue" %)**Example to use with door sensor :**
851
852 The door sensor is shown at right. It is a two wire magnetic contact switch used for detecting the open/close status of doors or windows.
853
854 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/1656379210849-860.png?rev=1.1||alt="1656379210849-860.png"]]
855
856 When the two pieces are close to each other, the 2 wire output will be short or open (depending on the type), while if the two pieces are away from each other, the 2 wire output will be the opposite status. So we can use SN50v3-LB/LS interrupt interface to detect the status for the door or window.
857
858
859 (% style="color:blue" %)**Below is the installation example:**
860
861 Fix one piece of the magnetic sensor to the door and connect the two pins to SN50v3-LB/LS as follows:
862
863 * (((
864 One pin to SN50v3-LB/LS's PA8 pin
865 )))
866 * (((
867 The other pin to SN50v3-LB/LS's VDD pin
868 )))
869
870 Install the other piece to the door. Find a place where the two pieces will be close to each other when the door is closed. For this particular magnetic sensor, when the door is closed, the output will be short, and PA8 will be at the VCC voltage.
871
872 Door sensors have two types: (% style="color:blue" %)** NC (Normal close)**(%%) and (% style="color:blue" %)**NO (normal open)**(%%). The connection for both type sensors are the same. But the decoding for payload are reverse, user need to modify this in the IoT Server decoder.
873
874 When door sensor is shorted, there will extra power consumption in the circuit, the extra current is 3v3/R14 = 3v3/1Mohm = 3uA which can be ignored.
875
876 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/1656379283019-229.png?rev=1.1||alt="1656379283019-229.png"]]
877
878 The above photos shows the two parts of the magnetic switch fitted to a door.
879
880 The software by default uses the falling edge on the signal line as an interrupt. We need to modify it to accept both the rising edge (0v ~-~-> VCC , door close) and the falling edge (VCC ~-~-> 0v , door open) as the interrupt.
881
882 The command is:
883
884 (% style="color:blue" %)**AT+INTMOD1=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]]**. **)
885
886 Below shows some screen captures in TTN V3:
887
888 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/1656379339508-835.png?rev=1.1||alt="1656379339508-835.png"]]
889
890
891 (% style="color:blue" %)**Application in different modes:**
892
893 * In **MOD=1**, user can use byte 6 to see the status for door open or close. TTN V3 decoder is as below:
894
895 door= (bytes[6] & 0x80)? "CLOSE":"OPEN";
896
897
898 * In **MOD=7**, there are three interrupt pins in effect.
899
900 See the **[[AT+INTMODx>>||anchor="H3.3.3SetInterruptMode"]] **command explained to set the three pin interrupt modes.
901
902 As you can see from the byte parsing table of pattern 7, the seventh byte of the original load is used to display the PA8 pin interrupt flag and status, the eighth byte of the original load is used to display the PA4 pin interrupt flag and status, and the ninth byte of the original load is used to display the PB15 pin interrupt flag and status.
903
904 [[image:image-20250402103902-1.png]]
905
906 TTN V3 decoder is as below:
907
908 [[image:image-20250402104508-2.png||height="255" width="579"]]
909
910 (% style="color:red" %)**Note: mode in decoding is sorted from 0, so it corresponds to the actual working mode AT+MOD=7.**
911
912
913 (% style="color:#037691" %)**Interrupt flag: **(%%)"EXTI1/2/3_Trigger", indicates whether the uplink packet is generated by an interrupt on the PA8/PA4/PB15 pin.
914
915
916 (% style="color:#037691" %)**Interrupt status: **(%%)"EXTI1/2/3_Status", Displays the status of the interrupt sensors connected to the PA4/PA8/PB15 interrupt pins when the packet is uplinked.
917
918
919 ==== 2.3.3.6 I2C Interface (SHT20 & SHT31) ====
920
921
922 The SDA and SCK are I2C interface lines. You can use these to connect to an I2C device and get the sensor data.
923
924 We have made an example to show how to use the I2C interface to connect to the SHT20/ SHT31 Temperature and Humidity Sensor.
925
926 (% style="color:red" %)**Notice: Different I2C sensors have different I2C commands set and initiate process, if user want to use other I2C sensors, User need to re-write the source code to support those sensors. SHT20/ SHT31 code in SN50v3-LB/LS will be a good reference.**
927
928
929 Below is the connection to SHT20/ SHT31. The connection is as below:
930
931 [[image:image-20230610170152-2.png||height="501" width="846"]]
932
933
934 The device will be able to get the I2C sensor data now and upload to IoT Server.
935
936 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/1656379664142-345.png?rev=1.1||alt="1656379664142-345.png"]]
937
938 Convert the read byte to decimal and divide it by ten.
939
940 **Example:**
941
942 Temperature:  Read:0116(H) = 278(D)  Value:  278 /10=27.8℃;
943
944 Humidity:    Read:0248(H)=584(D)  Value:  584 / 10=58.4, So 58.4%
945
946 If you want to use other I2C device, please refer the SHT20 part source code as reference.
947
948
949 ==== 2.3.3.7  ​Distance Reading ====
950
951
952 Refer [[Ultrasonic Sensor section>>||anchor="H2.3.3.8UltrasonicSensor"]].
953
954
955 ==== 2.3.3.8 Ultrasonic Sensor ====
956
957
958 This Fundamental Principles of this sensor can be found at this link: [[https:~~/~~/wiki.dfrobot.com/Weather_-_proof_Ultrasonic_Sensor_with_Separate_Probe_SKU~~_~~__SEN0208>>url:https://wiki.dfrobot.com/Weather_-_proof_Ultrasonic_Sensor_with_Separate_Probe_SKU___SEN0208]]
959
960 The SN50v3-LB/LS detects the pulse width of the sensor and converts it to mm output. The accuracy will be within 1 centimeter. The usable range (the distance between the ultrasonic probe and the measured object) is between 24cm and 600cm.
961
962 The working principle of this sensor is similar to the (% style="color:blue" %)**HC-SR04**(%%) ultrasonic sensor.
963
964 The picture below shows the connection:
965
966 [[image:image-20230512173903-6.png||height="596" width="715"]]
967
968
969 Connect to the SN50v3-LB/LS and run (% style="color:blue" %)**AT+MOD=2**(%%) to switch to ultrasonic mode (ULT).
970
971 The ultrasonic sensor uses the 8^^th^^ and 9^^th^^ byte for the measurement value.
972
973 **Example:**
974
975 Distance:  Read: 0C2D(Hex) = 3117(D)  Value:  3117 mm=311.7 cm
976
977
978 ==== 2.3.3.9  Battery Output - BAT pin ====
979
980
981 The BAT pin of SN50v3-LB/LS is connected to the Battery directly. If users want to use BAT pin to power an external sensor. User need to make sure the external sensor is of low power consumption. Because the BAT pin is always open. If the external sensor is of high power consumption. the battery of SN50v3-LB/LS will run out very soon.
982
983
984 ==== 2.3.3.10  +5V Output ====
985
986
987 SN50v3-LB/LS will enable +5V output before all sampling and disable the +5v after all sampling. 
988
989 The 5V output time can be controlled by AT Command.
990
991 (% style="color:blue" %)**AT+5VT=1000**
992
993 Means set 5V valid time to have 1000ms. So the real 5V output will actually have 1000ms + sampling time for other sensors.
994
995 By default the **AT+5VT=500**. If the external sensor which require 5v and require more time to get stable state, user can use this command to increase the power ON duration for this sensor.
996
997
998 ==== 2.3.3.11  BH1750 Illumination Sensor ====
999
1000
1001 MOD=1 support this sensor. The sensor value is in the 8^^th^^ and 9^^th^^ bytes.
1002
1003 [[image:image-20230512172447-4.png||height="416" width="712"]]
1004
1005
1006 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/image-20220628110012-12.png?rev=1.1||alt="image-20220628110012-12.png" height="361" width="953"]]
1007
1008
1009 ==== 2.3.3.12  PWM MOD ====
1010
1011
1012 * (((
1013 The maximum voltage that the SDA pin of SN50v3 can withstand is 3.6V, and it cannot exceed this voltage value, otherwise the chip may be burned.
1014 )))
1015 * (((
1016 If the PWM pin connected to the SDA pin cannot maintain a high level when it is not working, you need to remove the resistor R2 or replace it with a resistor with a larger resistance, otherwise a sleep current of about 360uA will be generated. The position of the resistor is shown in the figure below:
1017 )))
1018
1019 [[image:image-20230817183249-3.png||height="320" width="417"]]
1020
1021 * (((
1022 The signal captured by the input should preferably be processed by hardware filtering and then connected in. The software processing method is to capture four values, discard the first captured value, and then take the middle value of the second, third, and fourth captured values.
1023 )))
1024 * (((
1025 Since the device can only detect a pulse period of 50ms when [[AT+PWMSET=0>>||anchor="H3.3.8PWMsetting"]] (counting in microseconds), it is necessary to change the value of PWMSET according to the frequency of input capture.
1026 )))
1027 * (((
1028 PWM Input allows low power consumption. PWM Output to achieve real-time control, you need to go to class C. Power consumption will not be low.
1029
1030 For PWM Output Feature, there are two consideration to see if the device can be powered by battery or have to be powered by external DC.
1031
1032 a) If real-time control output is required, the SN50v3-LB/LS is already operating in class C and an external power supply must be used.
1033
1034 b) If the output duration is more than 30 seconds, better to use external power source. 
1035
1036
1037
1038 )))
1039
1040 ==== 2.3.3.13  Working MOD ====
1041
1042
1043 The working MOD info is contained in the Digital in & Digital Interrupt byte (7^^th^^ Byte).
1044
1045 User can use the 3^^rd^^ ~~ 7^^th^^  bit of this byte to see the working mod:
1046
1047 Case 7^^th^^ Byte >> 2 & 0x1f:
1048
1049 * 0: MOD1
1050 * 1: MOD2
1051 * 2: MOD3
1052 * 3: MOD4
1053 * 4: MOD5
1054 * 5: MOD6
1055 * 6: MOD7
1056 * 7: MOD8
1057 * 8: MOD9
1058 * 9: MOD10
1059
1060 == 2.4 Payload Decoder file ==
1061
1062
1063 In TTN, use can add a custom payload so it shows friendly reading
1064
1065 In the page (% style="color:#037691" %)**Applications ~-~-> Payload Formats ~-~-> Custom ~-~-> decoder**(%%) to add the decoder from:
1066
1067 [[https:~~/~~/github.com/dragino/dragino-end-node-decoder/tree/main/SN50_v3-LB>>https://github.com/dragino/dragino-end-node-decoder/tree/main/SN50_v3-LB]]
1068
1069
1070 == 2.5 Frequency Plans ==
1071
1072
1073 The SN50v3-LB/LS uses OTAA mode and below frequency plans by default. Each frequency band use different firmware, user update the firmware to the corresponding band for their country.
1074
1075 [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/]]
1076
1077
1078 = 3. Configure SN50v3-LB/LS =
1079
1080 == 3.1 Configure Methods ==
1081
1082
1083 SN50v3-LB/LS supports below configure method:
1084
1085 * AT Command via Bluetooth Connection (**Recommended**): [[BLE Configure Instruction>>http://wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/]].
1086 * 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]].
1087 * LoRaWAN Downlink.  Instruction for different platforms: See [[IoT LoRaWAN Server>>http://wiki.dragino.com/xwiki/bin/view/Main/]] section.
1088
1089 == 3.2 General Commands ==
1090
1091
1092 These commands are to configure:
1093
1094 * General system settings like: uplink interval.
1095 * LoRaWAN protocol & radio related command.
1096
1097 They are same for all Dragino Devices which support DLWS-005 LoRaWAN Stack. These commands can be found on the wiki:
1098
1099 [[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/]]
1100
1101
1102 == 3.3 Commands special design for SN50v3-LB/LS ==
1103
1104
1105 These commands only valid for SN50v3-LB/LS, as below:
1106
1107
1108 === 3.3.1 Set Transmit Interval Time ===
1109
1110
1111 Feature: Change LoRaWAN End Node Transmit Interval.
1112
1113 (% style="color:blue" %)**AT Command: AT+TDC**
1114
1115 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
1116 |=(% style="width: 156px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 137px;background-color:#4F81BD;color:white" %)**Function**|=(% style="background-color:#4F81BD;color:white" %)**Response**
1117 |(% style="width:156px" %)AT+TDC=?|(% style="width:137px" %)Show current transmit Interval|(((
1118 30000
1119 OK
1120 the interval is 30000ms = 30s
1121 )))
1122 |(% style="width:156px" %)AT+TDC=60000|(% style="width:137px" %)Set Transmit Interval|(((
1123 OK
1124 Set transmit interval to 60000ms = 60 seconds
1125 )))
1126
1127 (% style="color:blue" %)**Downlink Command: 0x01**
1128
1129 Format: Command Code (0x01) followed by 3 bytes time value.
1130
1131 If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01.
1132
1133 * Example 1: Downlink Payload: 0100001E  ~/~/  Set Transmit Interval (TDC) = 30 seconds
1134 * Example 2: Downlink Payload: 0100003C  ~/~/  Set Transmit Interval (TDC) = 60 seconds
1135
1136 === 3.3.2 Get Device Status ===
1137
1138
1139 Send a LoRaWAN downlink to ask the device to send its status.
1140
1141 (% style="color:blue" %)**Downlink Payload: 0x26 01**
1142
1143 Sensor will upload Device Status via **FPORT=5**. See payload section for detail.
1144
1145
1146 === 3.3.3 Set Interrupt Mode ===
1147
1148
1149 ==== 3.3.3.1 Before V1.3.4 firmware ====
1150
1151 (% style="color:red" %)**Note: Before V1.3.4 firmware, the interrupt function of PA8,PA4,PB15 had only one parameter to set, which was used to set the interrupt trigger mode.**
1152
1153 Feature, Set Interrupt mode for PA8, PA4, PB15.
1154
1155 Before using the interrupt function of the **INT** pin, users can set the interrupt triggering mode as required.
1156
1157 (% style="color:#037691" %)**AT Command:**(% style="color:blue" %)** **(% style="color:#4472c4" %)**AT+INTMODx=a**
1158
1159 (% style="color:#4472c4" %)**AT+INTMODx:**
1160
1161 * (% style="color:#4472c4" %)**AT+INTMOD1   **(%%)~/~/ Set the interrupt mode for (% style="background-color:yellow" %)** PA8**(%%) pin.
1162 * (% style="color:#4472c4" %)**AT+INTMOD2   **(%%)~/~/ Set the interrupt mode for (% style="background-color:yellow" %)** PA4**(%%) pin.
1163 * (% style="color:#4472c4" %)**AT+INTMOD3   **(%%)~/~/ Set the interrupt mode for (% style="background-color:yellow" %)** PB15**(%%) pin.
1164
1165 **Parameter a setting:**
1166
1167 * **0:** Disable Interrupt
1168 * **1:** Trigger by rising and falling edge
1169 * **2:** Trigger by falling edge
1170 * **3: **Trigger by rising edge
1171
1172 **Example:**
1173
1174 * AT+INTMOD1=0  ~/~/Disable the PA8 pin interrupt function
1175 * AT+INTMOD2=2  ~/~/Set the interrupt of the PA4 pin to be triggered by the falling edge
1176 * AT+INTMOD3=3  ~/~/Set the interrupt of the PB15 pin to be triggered by the rising edge
1177
1178 (% style="color:#037691" %)**Downlink Command:**(% style="color:blue" %)** **(% style="color:#4472c4" %)**0x06 00 aa bb**
1179
1180 Format: Command Code (0x06 00) followed by 2 bytes.
1181
1182 (% style="color:#4472c4" %)**aa:**(%%) Set the corresponding pin. ((% style="background-color:yellow" %)**00**(%%): PA8 Pin;  (% style="background-color:yellow" %)**01**(%%)**: **PA4 Pin;  (% style="background-color:yellow" %)**02**(%%): PB15 Pin.)
1183
1184 (% style="color:#4472c4" %)**bb: **(%%)Set interrupt mode. ((% style="background-color:yellow" %)**00**(%%) Disable, (% style="background-color:yellow" %)**01**(%%) falling or rising, (% style="background-color:yellow" %)**02**(%%) falling, (% style="background-color:yellow" %)**03**(%%) rising)
1185
1186 **Example:**
1187
1188 * Downlink Payload: **06 00 00 01     **~/~/ Equal to AT+INTMOD1=1
1189 * Downlink Payload: **06 00 01 02     **~/~/ Equal to AT+INTMOD2=2
1190 * Downlink Payload: **06 00 02 03     **~/~/ Equal to AT+INTMOD3=3
1191
1192 ==== 3.3.3.2 Since V1.3.4 firmware ====
1193
1194 (% style="color:red" %)**Note: Since V1.3.4 firmware, the Interrupt function has added a new parameter to set the delay time, i.e. the state hold time.**
1195
1196 (% style="color:#037691" %)**AT Command:**(% style="color:blue" %)** **(% style="color:#4472c4" %)**AT+INTMODx=a,b**
1197
1198 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:420px" %)
1199 |=(% style="width: 116px; background-color: rgb(79, 129, 189); color: white;" %)**Parameter **|=(% style="width: 304px; background-color: rgb(79, 129, 189); color: white;" %)**Values and functions**
1200 |(% style="width:116px" %)(((
1201
1202
1203 **x**
1204 )))|(% style="width:392px" %)(((
1205 1: Set the interrupt mode for (% style="background-color:yellow" %)** PA8**(%%) pin.
1206
1207 2:  Set the interrupt mode for (% style="background-color:yellow" %)** PA4**(%%) pin.
1208
1209 3: Set the interrupt mode for (% style="background-color:yellow" %)** PB15**(%%) pin.
1210 )))
1211 |(% style="width:116px" %)(((
1212
1213
1214 **a**
1215 )))|(% style="width:392px" %)(((
1216 **0:** Disable Interrupt
1217
1218 **1:** Trigger by rising and falling edge
1219
1220 **2:** Trigger by falling edge
1221
1222 **3: **Trigger by rising edge
1223 )))
1224 |(% style="width:116px" %)**b**|(% style="width:392px" %)(((
1225 Set the delay time. (Default: 0)
1226
1227 **Value range: 0~~65535 ms**
1228 )))
1229
1230 **Example:**
1231
1232 * AT+INTMOD1=0,0  ~/~/ Disable the PA8 pin interrupt function
1233 * AT+INTMOD2=2,1000  ~/~/ Set the interrupt of the PA4 pin to be triggered by the falling edge, however, the interrupt will only be triggered if the low level state remains 1000ms
1234 * AT+INTMOD3=3,2500  ~/~/ Set the interrupt of the PB15 pin to be triggered by the rising edge, however, the interrupt will only be triggered if the high level state remains 2500ms
1235
1236 (% style="color:#037691" %)**Downlink Command:**(% style="color:blue" %)** **(% style="color:#4472c4" %)**0x06 00 aa bb cc**
1237
1238 Format: Command Code (0x06 00) followed by 4 bytes.
1239
1240 (% style="color:#4472c4" %)**aa:**(%%) **1 byte**, set the corresponding pin. ((% style="background-color:yellow" %)**00**(%%): PA8 Pin;  (% style="background-color:yellow" %)**01**(%%)**: **PA4 Pin;  (% style="background-color:yellow" %)**02**(%%): PB15 Pin.)
1241
1242 (% style="color:#4472c4" %)**bb: **(%%)**1 byte**, set interrupt mode. ((% style="background-color:yellow" %)**00**(%%) Disable, (% style="background-color:yellow" %)**01**(%%) falling or rising, (% style="background-color:yellow" %)**02**(%%) falling, (% style="background-color:yellow" %)**03**(%%) rising)
1243
1244 (% style="color:#4472c4" %)**cc: **(%%)**2 bytes**, Set the delay time. (0x00~~0xFFFF)
1245
1246 **Example:**
1247
1248 * Downlink Payload: **06 00 00 01 00 00     **~/~/ Equal to AT+INTMOD1=1,0
1249 * Downlink Payload: **06 00 01 02 0B B8     **~/~/ Equal to AT+INTMOD2=2,3000
1250 * Downlink Payload: **06 00 02 03 03 E8   **~/~/ Equal to AT+INTMOD3=3,1000
1251
1252 === 3.3.4 Set Power Output Duration ===
1253
1254
1255 Control the output duration 5V . Before each sampling, device will
1256
1257 ~1. first enable the power output to external sensor,
1258
1259 2. keep it on as per duration, read sensor value and construct uplink payload
1260
1261 3. final, close the power output.
1262
1263 (% style="color:blue" %)**AT Command: AT+5VT**
1264
1265 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
1266 |=(% style="width: 155px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 197px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 158px;background-color:#4F81BD;color:white" %)**Response**
1267 |(% style="width:154px" %)AT+5VT=?|(% style="width:196px" %)Show 5V open time.|(% style="width:157px" %)(((
1268 500(default)
1269 OK
1270 )))
1271 |(% style="width:154px" %)AT+5VT=1000|(% style="width:196px" %)(((
1272 Close after a delay of 1000 milliseconds.
1273 )))|(% style="width:157px" %)OK
1274
1275 (% style="color:blue" %)**Downlink Command: 0x07**
1276
1277 Format: Command Code (0x07) followed by 2 bytes.
1278
1279 The first and second bytes are the time to turn on.
1280
1281 * Example 1: Downlink Payload: 070000  **~-~-->**  AT+5VT=0
1282 * Example 2: Downlink Payload: 0701F4  **~-~-->**  AT+5VT=500
1283
1284 === 3.3.5 Set Weighing parameters ===
1285
1286
1287 Feature: Working mode 5 is effective, weight initialization and weight factor setting of HX711.
1288
1289 (% style="color:blue" %)**AT Command: AT+WEIGRE,AT+WEIGAP**
1290
1291 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
1292 |=(% style="width: 155px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 197px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 158px;background-color:#4F81BD;color:white" %)**Response**
1293 |(% style="width:154px" %)AT+WEIGRE|(% style="width:196px" %)Weight is initialized to 0.|(% style="width:157px" %)OK
1294 |(% style="width:154px" %)AT+WEIGAP=?|(% style="width:196px" %)400.0|(% style="width:157px" %)OK(default)
1295 |(% style="width:154px" %)AT+WEIGAP=400.3|(% style="width:196px" %)Set the factor to 400.3.|(% style="width:157px" %)OK
1296
1297 (% style="color:blue" %)**Downlink Command: 0x08**
1298
1299 Format: Command Code (0x08) followed by 2 bytes or 4 bytes.
1300
1301 Use AT+WEIGRE when the first byte is 1, only 1 byte. When it is 2, use AT+WEIGAP, there are 3 bytes.
1302
1303 The second and third bytes are multiplied by 10 times to be the AT+WEIGAP value.
1304
1305 * Example 1: Downlink Payload: 0801  **~-~-->**  AT+WEIGRE
1306 * Example 2: Downlink Payload: 08020FA3  **~-~-->**  AT+WEIGAP=400.3
1307 * Example 3: Downlink Payload: 08020FA0  **~-~-->**  AT+WEIGAP=400.0
1308
1309 === 3.3.6 Set Digital pulse count value ===
1310
1311
1312 Feature: Set the pulse count value.
1313
1314 Count 1 is PA8 pin of mode 6 and mode 9. Count 2 is PA4 pin of mode 9.
1315
1316 (% style="color:blue" %)**AT Command: AT+SETCNT**
1317
1318 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
1319 |=(% style="width: 155px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 197px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 158px;background-color:#4F81BD;color:white" %)**Response**
1320 |(% style="width:154px" %)AT+SETCNT=1,100|(% style="width:196px" %)Initialize the count value 1 to 100.|(% style="width:157px" %)OK
1321 |(% style="width:154px" %)AT+SETCNT=2,0|(% style="width:196px" %)Initialize the count value 2 to 0.|(% style="width:157px" %)OK
1322
1323 (% style="color:blue" %)**Downlink Command: 0x09**
1324
1325 Format: Command Code (0x09) followed by 5 bytes.
1326
1327 The first byte is to select which count value to initialize, and the next four bytes are the count value to be initialized.
1328
1329 * Example 1: Downlink Payload: 090100000000  **~-~-->**  AT+SETCNT=1,0
1330 * Example 2: Downlink Payload: 0902000003E8  **~-~-->**  AT+SETCNT=2,1000
1331
1332 === 3.3.7 Set Workmode ===
1333
1334
1335 Feature: Switch working mode.
1336
1337 (% style="color:blue" %)**AT Command: AT+MOD**
1338
1339 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
1340 |=(% style="width: 155px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 197px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 158px;background-color:#4F81BD;color:white" %)**Response**
1341 |(% style="width:154px" %)AT+MOD=?|(% style="width:196px" %)Get the current working mode.|(% style="width:157px" %)(((
1342 OK
1343 )))
1344 |(% style="width:154px" %)AT+MOD=4|(% style="width:196px" %)Set the working mode to 3DS18B20s.|(% style="width:157px" %)(((
1345 OK
1346 Attention:Take effect after ATZ
1347 )))
1348
1349 (% style="color:blue" %)**Downlink Command: 0x0A**
1350
1351 Format: Command Code (0x0A) followed by 1 bytes.
1352
1353 * Example 1: Downlink Payload: 0A01  **~-~-->**  AT+MOD=1
1354 * Example 2: Downlink Payload: 0A04  **~-~-->**  AT+MOD=4
1355
1356 === 3.3.8 PWM setting ===
1357
1358
1359 Feature: Set the time acquisition unit for PWM input capture.
1360
1361 (% style="color:blue" %)**AT Command: AT+PWMSET**
1362
1363 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
1364 |=(% style="width: 155px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 225px; background-color: #4F81BD;color:white" %)**Function**|=(% style="width: 130px; background-color:#4F81BD;color:white" %)**Response**
1365 |(% style="width:154px" %)AT+PWMSET=?|(% style="width:223px" %)0|(% style="width:130px" %)(((
1366 0(default)
1367 OK
1368 )))
1369 |(% style="width:154px" %)AT+PWMSET=0|(% style="width:223px" %)The unit of PWM capture time is microsecond. The capture frequency range is between 20HZ and 100000HZ.   |(% style="width:130px" %)(((
1370 OK
1371
1372 )))
1373 |(% style="width:154px" %)AT+PWMSET=1|(% style="width:223px" %)The unit of PWM capture time is millisecond.  The capture frequency range is between 5HZ and 250HZ. |(% style="width:130px" %)OK
1374
1375 (% style="color:blue" %)**Downlink Command: 0x0C**
1376
1377 Format: Command Code (0x0C) followed by 1 bytes.
1378
1379 * Example 1: Downlink Payload: 0C00  **~-~-->**  AT+PWMSET=0
1380 * Example 2: Downlink Payload: 0C01  **~-~-->**  AT+PWMSET=1
1381
1382 **Feature: Set PWM output time, output frequency and output duty cycle.**
1383
1384 (% style="color:blue" %)**AT Command: AT+PWMOUT**
1385
1386 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
1387 |=(% style="width: 183px; background-color: #4F81BD;color:white" %)**Command Example**|=(% style="width: 193px; background-color: #4F81BD;color:white" %)**Function**|=(% style="width: 134px; background-color: #4F81BD;color:white" %)**Response**
1388 |(% style="width:183px" %)AT+PWMOUT=?|(% style="width:193px" %)0|(% style="width:137px" %)(((
1389 0,0,0(default)
1390 OK
1391 )))
1392 |(% style="width:183px" %)AT+PWMOUT=0,0,0|(% style="width:193px" %)The default is PWM input detection|(% style="width:137px" %)(((
1393 OK
1394
1395 )))
1396 |(% style="width:183px" %)AT+PWMOUT=5,1000,50|(% style="width:193px" %)(((
1397 The PWM output time is 5ms, the output frequency is 1000HZ, and the output duty cycle is 50%.
1398
1399
1400 )))|(% style="width:137px" %)(((
1401 OK
1402 )))
1403
1404 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
1405 |=(% style="width: 155px; background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 112px; background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 243px; background-color:#4F81BD;color:white" %)**parameters**
1406 |(% colspan="1" rowspan="3" style="width:155px" %)(((
1407 AT+PWMOUT=a,b,c
1408
1409
1410 )))|(% colspan="1" rowspan="3" style="width:112px" %)(((
1411 Set PWM output time, output frequency and output duty cycle.
1412
1413 (((
1414
1415 )))
1416
1417 (((
1418
1419 )))
1420 )))|(% style="width:242px" %)(((
1421 a: Output time (unit: seconds)
1422 The value ranges from 0 to 65535.
1423 When a=65535, PWM will always output.
1424 )))
1425 |(% style="width:242px" %)(((
1426 b: Output frequency (unit: HZ)
1427
1428 range 5~~100000HZ
1429 )))
1430 |(% style="width:242px" %)(((
1431 c: Output duty cycle (unit: %)
1432 The value ranges from 0 to 100.
1433 )))
1434
1435 (% style="color:blue" %)**Downlink Command: 0x0B**
1436
1437 Format: Command Code (0x0B) followed by 6 bytes.
1438
1439 0B + Output frequency (3bytes)+ Output duty cycle (1bytes)+Output time (2bytes)
1440
1441 Downlink payload:0B bb cc aa **~-~--> **AT+PWMOUT=a,b,c
1442
1443 * Example 1: Downlink Payload: 0B 0003E8 32 0005 **~-~-->**  AT+PWMOUT=5,1000,50
1444 * Example 2: Downlink Payload: 0B 0007D0 3C 000A **~-~-->**  AT+PWMOUT=10,2000,60
1445
1446 = 4. Battery & Power Cons =
1447
1448
1449 SN50v3-LB use ER26500 + SPC1520 battery pack and SN50v3-LS use 3000mAh Recharable Battery with Solar Panel. See below link for detail information about the battery info and how to replace.
1450
1451 [[**Battery Info & Power Consumption Analyze**>>http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] .
1452
1453
1454 = 5. OTA Firmware update =
1455
1456
1457 (% class="wikigeneratedid" %)
1458 **User can change firmware SN50v3-LB/LS to:**
1459
1460 * Change Frequency band/ region.
1461 * Update with new features.
1462 * Fix bugs.
1463
1464 **Firmware and changelog can be downloaded from :** **[[Firmware download link>>https://www.dropbox.com/sh/4rov7bcp6u28exp/AACt-wAySd4si5AXi8DBmvSca?dl=0]]**
1465
1466 **Methods to Update Firmware:**
1467
1468 * (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/]]**
1469 * 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]]**.
1470
1471 = 6.  Developer Guide =
1472
1473 SN50v3 is an open source project, developer can use compile their firmware for customized applications. User can get the source code from:
1474
1475 * (((
1476 Software Source Code: [[Releases · dragino/SN50v3 (github.com)>>url:https://github.com/dragino/SN50v3/releases]]
1477 )))
1478 * (((
1479 Hardware Design files:  **[[Hardware Source Files>>https://github.com/dragino/Lora/tree/master/LSN50/v3.0]].**
1480 )))
1481 * (((
1482 Compile instruction:[[Compile instruction>>https://wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LA66%20LoRaWAN%20Module/Compile%20and%20Upload%20Code%20to%20ASR6601%20Platform/]]
1483 )))
1484
1485 **~1. If you want to change frequency, modify the Preprocessor Symbols.**
1486
1487 For example, change EU868 to US915
1488
1489 [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/1656318662202-530.png?rev=1.1||alt="1656318662202-530.png"]]
1490
1491 **2. Compile and build**
1492
1493 [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/image-20220627163212-17.png?rev=1.1||alt="image-20220627163212-17.png"]]
1494
1495 = 7. FAQ =
1496
1497 == 7.1 How to generate PWM Output in SN50v3-LB/LS? ==
1498
1499
1500 See this document: **[[Generate PWM Output on SN50v3>>https://www.dropbox.com/scl/fi/r3trcet2knujg40w0mgyn/Generate-PWM-Output-on-SN50v3.pdf?rlkey=rxsgmrhhrv62iiiwjq9sv10bn&dl=0]]**.
1501
1502
1503 == 7.2 How to put several sensors to a SN50v3-LB/LS? ==
1504
1505
1506 When we want to put several sensors to A SN50v3-LB/LS, the waterproof at the grand connector will become an issue. User can try to exchange the grand connector to below type.
1507
1508 [[Reference Supplier>>https://www.yscableglands.com/cable-glands/nylon-cable-glands/cable-gland-rubber-seal.html]].
1509
1510 [[image:image-20230810121434-1.png||height="242" width="656"]]
1511
1512
1513 = 8. Order Info =
1514
1515
1516 Part Number: (% style="color:blue" %)**SN50v3-LB-XX-YY**(%%) or (% style="color:blue" %)**SN50v3-LS-XX-YY**
1517
1518 (% style="color:red" %)**XX**(%%): The default frequency band
1519
1520 * (% style="color:red" %)**AS923**(%%): LoRaWAN AS923 band
1521 * (% style="color:red" %)**AU915**(%%): LoRaWAN AU915 band
1522 * (% style="color:red" %)**EU433**(%%): LoRaWAN EU433 band
1523 * (% style="color:red" %)**EU868**(%%): LoRaWAN EU868 band
1524 * (% style="color:red" %)**KR920**(%%): LoRaWAN KR920 band
1525 * (% style="color:red" %)**US915**(%%): LoRaWAN US915 band
1526 * (% style="color:red" %)**IN865**(%%): LoRaWAN IN865 band
1527 * (% style="color:red" %)**CN470**(%%): LoRaWAN CN470 band
1528
1529 (% style="color:red" %)**YY: ** (%%)Hole Option
1530
1531 * (% style="color:red" %)**12**(%%): With M12 waterproof cable hole
1532 * (% style="color:red" %)**16**(%%): With M16 waterproof cable hole
1533 * (% style="color:red" %)**20**(%%): With M20 waterproof cable hole
1534 * (% style="color:red" %)**NH**(%%): No Hole
1535
1536 = 9. ​Packing Info =
1537
1538
1539 (% style="color:#037691" %)**Package Includes**:
1540
1541 * SN50v3-LB or SN50v3-LS LoRaWAN Generic Node
1542
1543 (% style="color:#037691" %)**Dimension and weight**:
1544
1545 (% style="color:blue" %)**Package Size / pcs :**
1546
1547 * For SN50v3-LB: 140*80*50 mm
1548 * For SN50v3-LS: 160*105*45 mm
1549
1550 (% style="color:blue" %)**Weight / pcs :**(%%)** **
1551
1552 * For SN50v3-LB: 225 g
1553 * For SN50v3-LS: 290 g
1554
1555 = 10. Support =
1556
1557
1558 * 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.
1559
1560 * 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.cc>>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.cc]]