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