Version 113.2 by Xiaoling on 2025/03/29 09:03

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