Version 75.2 by Xiaoling on 2023/11/01 15:42

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