Last modified by Saxer Lin on 2025/03/18 17:25

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