Version 409.7 by Xiaoling on 2022/06/28 16:36

Show last authors
1 (% style="display:none" %) (%%) ​​​(% style="display:none" %)
2
3 (% style="text-align:center" %)
4 [[image:image-20220627094803-5.png||height="366" width="804"]]
5
6
7 (% style="display:none" %) (%%)
8
9
10
11
12
13
14
15 **Table of Contents:**
16
17 (% aria-label="macro:toc widget" contenteditable="false" role="region" tabindex="-1" %)
18 (((
19 (% style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||height="15" role="presentation" title="Click and drag to move" width="15"]]
20 )))
21
22 {{toc/}}
23
24
25
26
27
28
29
30
31
32
33
34 = 1.  Introduction =
35
36 == 1.1 ​ What is LSN50 LoRa Sensor Node ==
37
38
39 (((
40 (((
41 LSN50 is a Long Range LoRaWAN Sensor Node. It is designed for (% style="color:#4472c4" %)**outdoor data logging **(%%)and powered by (% style="color:#4472c4" %)**Li/SOCl2 battery**(%%) for long term use and secure data transmission. It is designed to facilitate developers to quickly deploy industrial level LoRa and IoT solutions. It helps 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.
42 )))
43
44 (((
45 It is based on SX1276/SX1278 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 minimizing current consumption. It targets professional wireless sensor network applications such as irrigation systems, smart metering, smart cities, smartphone detection, building automation, and so on.
46 )))
47
48 (((
49 (% style="color:#4472c4" %)**LSN50**(%%) uses STM32l0x chip from ST, STML0x is the (% style="color:#4472c4" %)**ultra-low-power**(%%) STM32L072xx microcontrollers incorporate the connectivity power of the universal serial bus (USB 2.0 crystal-less) with the high-performance ARM® Cortex®-M0+ 32-bit RISC core operating at a 32 MHz frequency, a memory protection unit (MPU), high-speed embedded memories (192 Kbytes of Flash program memory, 6 Kbytes of data EEPROM and 20 Kbytes of RAM) plus an extensive range of enhanced I/Os and peripherals.
50 )))
51
52 (((
53 LSN50 is an (% style="color:#4472c4" %)**open source product**(%%), it is based on the STM32Cube HAL drivers and lots of libraries can be found in ST site for rapid development.
54 )))
55 )))
56
57
58 [[image:1656294562709-486.png]]
59
60
61
62 == 1.2  Specifications ==
63
64
65 (% style="color:#037691" %)**Micro Controller:**
66
67 * STM32L072CZT6 MCU
68 * MCU: STM32L072CZT6
69 * Flash: 192KB
70 * RAM: 20KB
71 * EEPROM: 6KB
72 * Clock Speed: 32Mhz
73
74 (% style="color:#037691" %)**Common DC Characteristics:**
75
76 * Supply Voltage: 2.1v ~~ 3.6v
77 * Operating Temperature: -40 ~~ 85°C
78 * I/O pins: Refer to STM32L072 datasheet
79
80 (% style="color:#037691" %)**LoRa Spec:**
81
82 * Frequency Range, 
83 ** Band 1 (HF): 862 ~~ 1020 Mhz
84
85 or
86
87 *
88 ** Band 2 (LF): 410 ~~ 528 Mhz
89 * 168 dB maximum link budget.
90 * +20 dBm - 100 mW constant RF output vs.
91 * +14 dBm high efficiency PA.
92 * Programmable bit rate up to 300 kbps.
93 * High sensitivity: down to -148 dBm.
94 * Bullet-proof front end: IIP3 = -12.5 dBm.
95 * Excellent blocking immunity.
96 * Low RX current of 10.3 mA, 200 nA register retention.
97 * Fully integrated synthesizer with a resolution of 61 Hz .
98 * FSK, GFSK, MSK, GMSK, LoRaTM and OOK modulation.
99 * Built-in bit synchronizer for clock recovery.
100 * Preamble detection.
101 * 127 dB Dynamic Range RSSI.
102 * Automatic RF Sense and CAD with ultra-fast AFC.
103 * Packet engine up to 256 bytes with CRC.
104 * LoRaWAN 1.0.2 Specification
105
106 (% style="color:#037691" %)**Battery:**
107
108 * Li/SOCI2 un-chargeable battery
109 * Capacity: 4000mAh
110 * Self Discharge: <1% / Year @ 25°C
111 * Max continuously current: 130mA
112 * Max boost current: 2A, 1 second
113
114 (% style="color:#037691" %)**Power Consumption**
115
116 * STOP Mode: 2.7uA @ 3.3v
117 * LoRa Transmit Mode: 125mA @ 20dBm 44mA @ 14dBm
118
119 == ​1.3  Features ==
120
121 * LoRaWAN 1.0.3 Class A, Class C
122 * STM32L072CZT6 MCU
123 * SX1276/78 Wireless Chip
124 * Pre-load bootloader on USART1/USART2
125 * MDK-ARM Version 5.24a IDE
126 * I2C, LPUSART1, USB, SPI2
127 * 3x12bit ADC, 1x12bit DAC
128 * 20xDigital I/Os
129 * LoRa™ Modem
130 * Preamble detection
131 * Baud rate configurable
132 * CN470/EU433/KR920/US915/IN865
133 * EU868/AS923/AU915
134 * Open-source hardware / software
135 * Available Band:433/868/915/920 Mhz
136 * IP66 Waterproof Enclosure
137 * Ultra-Low Power consumption
138 * AT Commands to change parameters
139 * 4000mAh or 8500mAh Battery for long term use。
140
141 == 1.4 ​ Applications ==
142
143 * Smart Buildings & Home Automation
144 * Logistics and Supply Chain Management
145 * Smart Metering
146 * Smart Agriculture
147 * Smart Cities
148 * Smart Factory
149
150 == 1.5  Pin Definitions and Switch ==
151
152 (% class="wikigeneratedid" %)
153 [[image:1656295519542-152.png||height="413" width="728"]]
154
155
156 (% class="wikigeneratedid" %)
157 [[image:1656295532863-613.png||height="371" width="721"]]
158
159
160 (% class="wikigeneratedid" %)
161 [[image:image-20220627101527-1.png]]
162
163
164
165 === 1.5.1 Jumper JP2 ===
166
167 Power on Device when put this jumper.
168
169
170 === 1.5.2 BOOT MODE / SW1 ===
171
172 (((
173 ~1. ISP:  upgrade mode, device won't have any signal in this mode. but ready for upgrade firmware. LED won't work. Firmware won't run.
174 )))
175
176 (((
177 2. Flash:  work mode, device starts to work and send out console output for further debug
178 )))
179
180
181 === 1.5.3 Reset Button ===
182
183 Press to reboot the device.
184
185
186 === 1.5.4 LED ===
187
188 It will flash:
189
190 1. When boot the device in flash mode
191 1. Send an uplink packet
192
193 === 1.6  Hardware Change log ===
194
195 (% style="color:red" %)Note: Hardware version is marked in the PCB.
196
197 (% style="color:#4472c4" %)**LSN50 v2.1:**
198
199 1. Change R14 to 1M ohm
200 1. Change R3, R4 to 4.7Kohm. So no need to modify them for 3 DS18B20 connection.
201 1. Add ESD to each I/O
202
203 (% style="color:#4472c4" %)**LSN50 v2.0:**
204
205 * Change to a new enclosure. Improve with external antenna, IP68, ear hook.
206
207 (% style="color:#4472c4" %)**LSN50 v1.3**:
208
209 * Add P-MOS to control 5V output
210
211 (% style="color:#4472c4" %)**LSN50 v1.2**:
212
213 * Add LED. Turn on for every LoRa transmit
214 * Add pin PA4, PB13, NRST
215 * Add 5V Output, on/off control by PB5(Low to Enable, High to Disable)
216
217 == 1.7  Hole Option ==
218
219 The LSN50 provides different hole size options for different size sensor cable. The options provided are M12, M16 and M20. The definition is as below:
220
221 [[image:image-20220627104757-1.png]]
222
223
224 [[image:1656298089706-973.png]]
225
226
227
228 = 2.  Use LSN50 with LoRaWAN firmware =
229
230 == 2.1  How it works ==
231
232 (((
233 (((
234 The LSN50 is pre-loaded with a firmware and is configured as LoRaWAN OTAA Class A mode by default. It has OTAA keys to join LoRaWAN network. To connect a local LoRaWAN network, you just need to input the OTAA keys in the LoRaWAN IoT server and power on the LSN50. It will automatically join the network via OTAA.
235 )))
236
237 (((
238
239 )))
240
241 (((
242 The diagram below shows the working flow in default firmware (ver 1.7.0): 
243 )))
244
245
246 [[image:image-20220627104855-2.png]]
247
248
249 (((
250 In case you can't set the OTAA keys in the LoRaWAN OTAA server, and you have to use the keys from the server, you can [[use AT Commands>>||anchor="H3.A0UsingtheATCommands"]] to set the keys in the LSN50.
251 )))
252 )))
253
254
255 == 2.2  ​Quick guide to connect to LoRaWAN server (OTAA) ==
256
257 (((
258 Following is an example for how to join the [[TTN V3 LoRaWAN Network>>url:http://www.thethingsnetwork.org/]]. Below is the network structure; we use the [[LG308>>url:http://www.dragino.com/products/lora/item/140-lg308.html]] as a LoRaWAN gateway in this example. 
259
260 (% style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]][[image:1655891470063-521.png]](% title="Click and drag to resize" %)​[[image:1656298385089-555.png]]
261
262
263 )))
264
265 (% title="Click and drag to resize" %)​(%%)The LG308 is already set to connected to [[TTN V3 network >>url:https://www.thethingsnetwork.org/]], so what we need to now is configure the TTN V3 server.(% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220, 220, 220, 0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||data-widget="image" draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]][[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% title="Click and drag to resize" %)​(% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" %)​(%%)​
266
267 (((
268
269
270 (% style="color:blue" %)**Step 1**(%%): Create a device in TTN with the OTAA keys from LSN50.
271
272 Each LSN50is shipped with a sticker with the default device EUI as below:
273 )))
274
275 (((
276
277 )))
278
279 (% aria-label="image-20220607170145-1.jpeg image widget" contenteditable="false" role="region" tabindex="-1" %)[[image:image-20220607170145-1.jpeg||data-widget="image"]](% style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% title="Click and drag to resize" %)​(% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||data-widget="image" draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220, 220, 220, 0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" title="Click and drag to resize" %)​(% title="Click and drag to resize" %)​(% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||data-widget="image" draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220, 220, 220, 0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" title="Click and drag to resize" %)​(% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220, 220, 220, 0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||data-widget="image" draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]][[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% title="Click and drag to resize" %)​(% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" %)​(%%)​
280
281
282 (((
283 (((
284 You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:
285 )))
286
287 (((
288 **Register the device:**
289 )))
290 )))
291
292 (% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||data-widget="image" draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220, 220, 220, 0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" title="Click and drag to resize" %)​(% title="Click and drag to resize" %)​(% aria-label="1654935135620-998.png image widget" contenteditable="false" role="region" tabindex="-1" %)[[image:1654935135620-998.png||data-widget="image"]](% style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](%%)​(% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||data-widget="image" draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220, 220, 220, 0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" title="Click and drag to resize" %)​(% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||data-widget="image" draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220, 220, 220, 0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" title="Click and drag to resize" %)​(% title="Click and drag to resize" %)​​
293
294 (% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||data-widget="image" draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220, 220, 220, 0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" title="Click and drag to resize" %)​(% title="Click and drag to resize" %)​
295
296
297 **Add APP EUI and DEV EUI:**
298
299
300 (% aria-label="image-20220611161308-4.png image widget" contenteditable="false" role="region" tabindex="-1" %)[[image:image-20220611161308-4.png||data-widget="image" height="551" width="753"]](% style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% title="Click and drag to resize" %)​
301
302
303
304 **Add APP EUI in the application:**
305
306
307 (% aria-label="image-20220611161308-5.png image widget" contenteditable="false" role="region" tabindex="-1" %)[[image:image-20220611161308-5.png||data-widget="image" height="601" width="742"]](% style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% title="Click and drag to resize" %)​
308
309
310 **Add APP KEY**
311
312 (% aria-label="image-20220611161308-6.png image widget" contenteditable="false" role="region" tabindex="-1" %)[[image:image-20220611161308-6.png||data-widget="image" height="485" width="744"]](% style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% title="Click and drag to resize" %)​
313
314 (% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||data-widget="image" draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220, 220, 220, 0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" title="Click and drag to resize" %)​(% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||data-widget="image" draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220, 220, 220, 0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" title="Click and drag to resize" %)​
315
316 (% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||data-widget="image" draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220, 220, 220, 0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" title="Click and drag to resize" %)​(% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220, 220, 220, 0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||data-widget="image" draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]][[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% title="Click and drag to resize" %)​(% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" %)​(%%)​
317
318 (% style="color:blue" %)**Step 2**(%%)**:** Power on LSN50
319
320 Put a Jumper on JP2 to power on the device.(% style="display:none" %)
321
322 [[image:image-20220627145643-5.png]](% style="display:none" %)
323
324 (% style="display:none" %)
325
326
327 (% style="display:none" %) (%%)
328
329 **For LSn50v2:**
330
331 [[image:1656313034748-905.png]](% style="display:none" %)
332
333
334 (% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||data-widget="image" draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220, 220, 220, 0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" title="Click and drag to resize" %)​(%%)​(% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||data-widget="image" draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220, 220, 220, 0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" title="Click and drag to resize" %)​(% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220, 220, 220, 0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||data-widget="image" draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]][[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% title="Click and drag to resize" %)​(% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" %)​(%%)​
335
336 (((
337 (((
338 (% style="color:blue" %)**Step 3**(%%)**:**  The LSN50 will auto join to the TTN V3 network. After join success, it will start to upload messages to TTN V3 and you can see the messages in the panel.
339 )))
340 )))
341
342 (% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||data-widget="image" draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220, 220, 220, 0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" title="Click and drag to resize" %)​(% title="Click and drag to resize" %)​[[image:1656312908855-552.png]](% style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]]
343
344 ​(% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||data-widget="image" draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220, 220, 220, 0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" title="Click and drag to resize" %)​(% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||data-widget="image" draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220, 220, 220, 0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% aria-label="Data URI image image widget" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" title="Click and drag to resize" %)​(% title="Click and drag to resize" %)​​
345
346
347 == 2.3  ​Working Mode & Uplink Payload ==
348
349 (((
350 LSN50 has different working mode for the connections of different type of sensors. This section describes these modes. Use can use the AT Command AT+MOD to set LSN50 to different working modes.
351 )))
352
353 (((
354 For example:
355 )))
356
357 (((
358 (% style="color:red" %)**AT+MOD=2**(%%) ~/~/ will set the LSN50 to work in MOD=2 distance mode which target to measure distance via Ultrasonic Sensor.
359 )))
360
361 (((
362
363 )))
364
365 (((
366 (% style="color:red" %)**NOTE:**
367 )))
368
369 (((
370 (% style="color:red" %)1. Some working modes has payload more than 12 bytes, The US915/AU915/AS923 frequency bands’ definition has maximum 11 bytes in **DR0**. Server sides will see NULL payload while LSn50 transmit in DR0 with 12 bytes payload.
371 2. All modes share the same Payload Explanation from HERE.
372 3. By default, the device will send an uplink message every 5 minutes.
373 )))
374
375
376
377 === 2.3.1  MOD~=1 (Default Mode) ===
378
379 (((
380 In this mode, uplink payload includes in total 11 bytes. Uplink packets use FPORT=2.
381 [[image:image-20220627171207-27.png]]
382
383 [[image:image-20220627150949-6.png]]
384
385
386 )))
387
388
389 === 2.3.2 MOD~=2 (Distance Mode) ===
390
391 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.
392
393 [[image:image-20220627180835-31.png]]
394
395
396 [[image:1656324539647-568.png]]
397
398
399
400 (% style="color:red" %)**Connection of LIDAR-Lite V3HP:**
401
402 [[image:1656324581381-162.png]]
403
404
405 (% style="color:red" %)**Connection to Ultrasonic Sensor:**
406
407 [[image:1656324598488-204.png]]
408
409
410 For the connection to TF-Mini or TF-Luna , MOD2 payload is as below:
411
412 [[image:image-20220628083801-1.png]]
413
414 [[image:1656376779088-686.png]]
415
416
417 (% style="color:red" %)**Connection to [[TF-Mini plus>>url:http://en.benewake.com/product/detail/5c345cd0e5b3a844c472329b.html]] LiDAR(UART version):**
418
419 Need to remove R3 and R4 resistors to get low power. Since firmware v1.7.0
420
421 [[image:1656376795715-436.png]]
422
423
424 (% style="color:red" %)**Connection to [[TF-Luna>>url:http://en.benewake.com/product/detail/5e1c1fd04d839408076b6255.html]] LiDAR (UART version):**
425
426 Need to remove R3 and R4 resistors to get low power. Since firmware v1.7.0
427
428 [[image:1656376865561-355.png]]
429
430
431 (((
432 Please use firmware version > 1.6.5 when use MOD=2, in this firmware version, user can use LSn50 v1 to power the ultrasonic sensor directly and with low power consumption.
433 )))
434
435
436
437 === 2.3.3 MOD~=3 (3 ADC + I2C) ===
438
439 This mode has total 12 bytes. Include 3 x ADC + 1x I2C
440
441 [[image:image-20220628085009-2.png]]
442
443 [[image:1656377431497-975.png]]
444
445
446
447 === 2.3.4 MOD~=4 (3 x DS18B20) ===
448
449 This mode is supported in firmware version since v1.6.1. Software set to AT+MOD=4
450
451 Hardware connection is as below,
452
453 (% style="color:red" %)**( Note:**
454
455 * In hardware version v1.x and v2.0 , R3 & R4 should change from 10k to 4.7k ohm to support the other 2 x DS18B20 probes.
456 * In hardware version v2.1 no need to change R3 , R4, by default, they are 4.7k ohm already.
457
458 See [[here>>||anchor="H1.6A0HardwareChangelog"]] for hardware changelog. (% style="color:red" %)**) **
459
460 [[image:1656377461619-156.png]]
461
462
463 This mode has total 11 bytes. As shown below:
464
465 [[image:image-20220628085248-3.png]]
466
467 [[image:1656377606181-607.png]]
468
469
470
471 === 2.3.5 MOD~=5(Weight Measurement by HX711) ===
472
473 (((
474 This mode is supported in firmware version since v1.6.2. Please use v1.6.5 firmware version so user no need to use extra LDO for connection.
475 )))
476
477 [[image:1656378224664-860.png]]
478
479
480 Each HX711 need to be calibrated before used. User need to do below two steps:
481
482 1. Zero calibration. Don’t put anything on load cell and run **AT+WEIGRE** to calibrate to Zero gram.
483 1. Adjust calibration factor (default value 400): Put a known weight thing on load cell and run **AT+WEIGAP** to adjust the Calibration Factor.
484
485 For example:
486
487 (% style="color:#4472c4" %)**AT+WEIGAP =403.0**
488
489 Response:  Weight is 401 g
490
491
492 Check the response of this command and adjust the value to match the real value for thing.
493
494
495 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:510px" %)
496 |=(% style="width: 70px;" %)**Size(bytes)**|=(% style="width: 44px;" %)**2**|=(% style="width: 110px;" %)**2**|=(% style="width: 51px;" %)**2**|=(% style="width: 110px;" %)**1**|=(% style="width: 50px;" %)**2**|=(% style="width: 60px;" %)**2**
497 |(% style="width:97px" %)**Value**|(% style="width:44px" %)[[BAT>>||anchor="H2.4.1BatteryInfo"]]|(% style="width:172px" %)(((
498 [[Temperature(DS18B20)>>||anchor="H2.4.2Temperature28DS18B2029"]]
499 )))|(% style="width:51px" %)[[ADC>>||anchor="H2.4.4AnalogueDigitalConverter28ADC29"]]|(% style="width:206px" %)[[Digital in & Digital Interrupt>>||anchor="H2.4.3DigitalInput"]]|(% style="width:72px" %)Weight|(% style="width:81px" %)Reserved
500
501 [[image:1656378323863-824.png]]
502
503
504
505 === 2.3.6 MOD~=6(Counting Mode, Since firmware v1.6.5) ===
506
507 (((
508 (((
509 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.
510 )))
511 )))
512
513 (((
514 (((
515 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.
516 )))
517 )))
518
519
520 [[image:1656378351863-572.png]]
521
522
523 (((
524 (% 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 LSN50 to avoid this happen.
525 )))
526
527 (((
528
529 )))
530
531 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:410px" %)
532 |=(% style="width: 60px;" %)**Size(bytes)**|=(% style="width: 44px;" %)**2**|=(% style="width: 110px;" %)**2**|=(% style="width: 51px;" %)**2**|=(% style="width: 70px;" %)**1**|=(% style="width: 50px;" %)**4**
533 |(% style="width:80px" %)**Value**|(% style="width:44px" %)[[BAT>>||anchor="H2.4.1BatteryInfo"]]|(% style="width:172px" %)(((
534 [[Temperature(DS18B20)>>||anchor="H2.4.2Temperature28DS18B2029"]]
535 )))|(% style="width:51px" %)[[ADC>>||anchor="H2.4.4AnalogueDigitalConverter28ADC29"]]|(% style="width:206px" %)[[Digital in>>||anchor="H2.4.3DigitalInput"]]|(% style="width:72px" %)Count
536
537 [[image:1656378441509-171.png]]
538
539
540
541 === 2.3.7 ​Decode payload in The Things Network ===
542
543 While using TTN V3 network, you can add the payload format to decode the payload.
544
545
546 [[image:1656378466788-734.png]]
547
548
549 (((
550 The payload decoder function for TTN V3 are here:
551 )))
552
553 (((
554 LSN50 TTN V3 Payload Decoder: [[http:~~/~~/www.dragino.com/downloads/downloads/LSN50-LoRaST/Payload_decoder/>>url:http://www.dragino.com/downloads/downloads/LSN50-LoRaST/Payload_decoder/]]
555 )))
556
557
558
559 == 2.4 Payload Explanation and Sensor Interface ==
560
561 === 2.4.1 Battery Info ===
562
563 (((
564 Check the battery voltage for LSN50.
565 )))
566
567 (((
568 Ex1: 0x0B45 = 2885mV
569 )))
570
571 (((
572 Ex2: 0x0B49 = 2889mV
573 )))
574
575
576
577 === 2.4.2 Temperature (DS18B20) ===
578
579 If there is a DS18B20 connected to PB3 pin. The temperature will be uploaded in the payload.
580
581 More DS18B20 can check the [[3 DS18B20 mode>>||anchor="2.3.4MOD3D4283xDS18B2029"]]
582
583
584 (% style="color:#4472c4" %)**Connection:**
585
586 [[image:1656378573379-646.png]]
587
588
589 (% style="color:#4472c4" %)**Example**:
590
591 If payload is: 0105H:  (0105 & FC00 == 0), temp = 0105H /10 = 26.1 degree
592
593 If payload is: FF3FH :  (FF3F & FC00 == 1) , temp = (FF3FH - 65536)/10 = -19.3 degrees.
594
595
596
597 === 2.4.3 Digital Input ===
598
599 The digital input for pin PA12,
600
601 * When PA12 is high, the bit 1 of payload byte 6 is 1.
602 * When PA12 is low, the bit 1 of payload byte 6 is 0.
603
604
605
606
607
608 === 2.4.4 Analogue Digital Converter (ADC) ===
609
610 (((
611 The ADC pins in LSN50 can measure range from 0~~3.3v, it use reference voltage from STM32. If user need to measure a voltage >3.3v, please use resistors to divide this voltage to lower than 3.3v, otherwise, it may destroy the ADC pin.
612 )))
613
614
615 (((
616 The ADC monitors the voltage on the PA0 line, in mV.
617 )))
618
619 (((
620 Ex: 0x021F = 543mv,
621 )))
622
623
624 (((
625 (% style="color:#4472c4" %)** Example1:** (%%) Reading an Oil Sensor (Read a resistance value):
626 )))
627
628 [[image:image-20220627172409-28.png]]
629
630
631 In the LSN50, we can use PB4 and PA0 pin to calculate the resistance for the oil sensor.
632
633
634 (% style="color:blue" %)**Steps:**
635
636 1. Solder a 10K resistor between PA0 and VCC.
637 1. Screw oil sensor's two pins to PA0 and PB4.
638
639 The equipment circuit is as below:
640
641 [[image:image-20220627172500-29.png]]
642
643
644 According to above diagram:
645
646 [[image:image-20220628091043-4.png]]
647
648 So
649
650 [[image:image-20220628091344-6.png]]
651
652
653 [[image:image-20220628091621-8.png]] is the reading of ADC. So if ADC=0x05DC=0.9 v and VCC (BAT) is 2.9v
654
655
656 The [[image:image-20220628091702-9.png]] 4.5K ohm
657
658 Since the Bouy is linear resistance from 10 ~~ 70cm.
659
660
661 The position of Bouy is [[image:image-20220628091824-10.png]] , from the bottom of Bouy.
662
663
664
665 === 2.4.5 Digital Interrupt ===
666
667 Digital Interrupt refers to pin PB14, and there are different trigger methods. When there is a trigger, the LSN50 will send a packet to the server.
668
669
670 (((
671 (% style="color:#4472c4" %)** Interrupt connection method:**
672 )))
673
674 [[image:1656379178634-321.png]]
675
676
677 (((
678 (% style="color:#4472c4" %)**Example to use with door sensor :**(%%)
679 (% style="color:#4472c4" %)(Requires firmware > 1.5.1)
680 )))
681
682
683 (((
684 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.
685 )))
686
687 [[image:1656379210849-860.png]]
688
689
690 (((
691 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 LSN50 interrupt interface to detect the status for the door or window.
692 )))
693
694
695 (((
696 (% style="color:#4472c4" %)** Below is the installation example:**
697 )))
698
699 (((
700 Fix one piece of the magnetic sensor to the door and connect the two pins to LSN50 as follows:
701 )))
702
703 * (((
704 One pin to LSN50's PB14 pin
705 )))
706 * (((
707 The other pin to LSN50's VCC pin
708 )))
709
710 (((
711 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 PB14 will be at the VCC voltage.
712 )))
713
714
715 (((
716 Door sensors have two types: ** (% style="color:#4472c4" %)NC (Normal close)(%%)** and (% style="color:#4472c4" %)**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.
717 )))
718
719 (((
720 When door sensor is shorted, there will extra power consumption in the circuit, the extra current is 3v3/R14 = 3v2/1Mohm = 0.3uA which can be ignored.
721 )))
722
723
724 [[image:1656379283019-229.png]]
725
726
727 (((
728 The above photos shows the two parts of the magnetic switch fitted to a door.
729 )))
730
731
732 (((
733 (((
734 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.
735 )))
736 )))
737
738
739 (((
740 The command is:
741 )))
742
743 (((
744 (% style="color:blue" %)**AT+INTMOD=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]]**. **)
745 )))
746
747
748 (((
749 Below shows some screen captures in TTN V3:
750 )))
751
752
753 [[image:1656379339508-835.png]]
754
755
756 In MOD=1, user can use byte 6 to see the status for door open or close. TTN V3 decoder is as below:
757
758 (% style="background-color:#dcdcdc" %)door= (bytes[6] & 0x80)? "CLOSE":"OPEN";
759
760
761 (% style="color:red" %)**Notice for hardware version LSN50 v1 < v1.3**(%%) (produced before 2018-Nov).
762
763 In this hardware version, there is no R14 resistance solder. When use the latest firmware, it should set AT+INTMOD=0 to close the interrupt. If user need to use Interrupt in this hardware version, user need to solder R14 with 10M resistor and C1 (0.1uF) on board.
764
765 [[image:1656379563303-771.png]]
766
767
768
769 === 2.4.6 I2C Interface (SHT20) ===
770
771 (((
772 The PB6(SDA) and PB7(SCK) are I2C interface lines. You can use these to connect to an I2C device and get the sensor data.
773 )))
774
775 (((
776 We have made an example to show how to use the I2C interface to connect to the SHT20 Temperature and Humidity Sensor. This is supported in the stock firmware since v1.5 with (% style="color:#4472c4" %)**AT+MOD=1 (default value).**
777 )))
778
779 (((
780 Below is the connection to SHT20.
781 )))
782
783
784 [[image:1656379593307-549.png]]
785
786
787 The device will be able to get the I2C sensor data now and upload to IoT Server.
788
789
790 [[image:1656379664142-345.png]]
791
792 Convert the read byte to decimal and divide it by ten.
793
794
795 (% style="color:blue" %)**Example:**
796
797 Temperature:  Read:0116(H) = 278(D)  Value:  278 /10=27.8℃;
798
799 Humidity:    Read:0248(H)=584(D)  Value:  584 / 10=58.4, So 58.4%
800
801
802 If you want to use other I2C device, please refer the SHT20 part source code as reference.
803
804
805
806 === 2.4.7 ​Distance Reading ===
807
808 Refer [[Ultrasonic Sensor section>>||anchor="H2.4.8UltrasonicSensor"]].
809
810
811 === 2.4.8 Ultrasonic Sensor ===
812
813 (((
814 The LSN50 v1.5 firmware supports ultrasonic sensor (with AT+MOD=2) such as SEN0208 from DF-Robot. 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]]
815 )))
816
817
818 (((
819 The LSN50 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.
820 )))
821
822
823 (((
824 The picture below shows the connection:
825 )))
826
827 [[image:1656380061365-178.png]]
828
829
830
831 Connect to the LSN50 and run (% style="color:blue" %)**AT+MOD=2**(%%) to switch to ultrasonic mode (ULT).
832
833 The ultrasonic sensor uses the 8^^th^^ and 9^^th^^ byte for the measurement value.
834
835
836 (% style="color:blue" %)**Example:**
837
838 Distance:  Read:0C2D(Hex) = 3117(D)  Value:  3117 mm=311.7 cm
839
840
841 [[image:1656384895430-327.png]]
842
843
844 [[image:1656384913616-455.png]]
845
846
847 You can see the serial output in ULT mode as below:
848
849 [[image:1656384939855-223.png]]
850
851
852 In TTN V3 server:
853
854
855 [[image:1656384961830-307.png]]
856
857
858 [[image:1656384973646-598.png]]
859
860
861 === 2.4.9 +5V Output ===
862
863 Since v1.2 hardware version, a +5v output is added in the hardware. The +5V output will be valid for every sampling.  LSN50 will enable +5V output before all sampling and disable the +5v after all sampling. 
864
865
866 (((
867 Since firmware (% style="color:red" %)**v1.6.3**(%%), The 5V output time can be controlled by AT Command.
868 )))
869
870 (((
871 (% style="color:#4472c4" %)**AT+5VT=1000**
872 )))
873
874 (((
875 Means set 5V valid time to have 1000ms. So the real 5V output will actually have 1000ms + sampling time for other sensors.
876 )))
877
878
879 (((
880 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.
881 )))
882
883
884
885 === 2.4.10 Weigh Sensor HX711 ===
886
887 Since v1.6.2 firmware, LSN50 support Weigh Sensor HX711.
888
889
890 === 2.4.11  BH1750 Illumination Sensor ===
891
892 Since v1.7.0 firmware, MOD=1 support this sensor. The sensor value is in the 8^^th^^ and 9^^th^^ bytes.
893
894
895 [[image:image-20220628110012-11.jpeg]]
896
897
898 [[image:image-20220628110012-12.png]]
899
900
901
902 === 2.4.12 Working MOD ===
903
904 (((
905 The working MOD info is contained in the Digital in & Digital Interrupt byte (7^^th^^ Byte).
906 )))
907
908 (((
909 User can use the 3^^rd^^ ~~ 7^^th^^  bit of this byte to see the working mod:
910 )))
911
912 (((
913 Case 7^^th^^ Byte >> 2 & 0x1f:
914 )))
915
916 * 0: MOD1
917 * 1: MOD2
918 * 2: MOD3
919 * 3: MOD4
920 * 4:MOD5
921 * 5:MOD6
922
923
924
925
926
927 == 2.5 Configure LSN50 via AT or Downlink ==
928
929 (((
930 User can configure LSN50 via [[AT Commands >>||anchor="H3.A0UsingtheATCommands"]]or LoRaWAN Downlink Commands
931 )))
932
933 (((
934 There are two kinds of Commands:
935 )))
936
937 * (% style="color:#4472c4" %)**Common Commands**(%%): They should be available for each sensor, such as: change uplink interval, reset device. For firmware v1.7.0, user can find what common commands it supports:  [[End Device AT Commands>>doc:Main.End Device AT Commands and Downlink Command.WebHome]]
938
939 * (% style="color:#4472c4" %)**Sensor Related Commands**(%%): These commands are special designed for LSN50.  User can see these commands below:
940
941
942
943
944
945 === 2.5.1 Common Commands: ===
946
947 They should be available for each of Dragino Sensors, such as: change uplink interval, reset device. For firmware v1.7.0, user can find what common commands it supports: [[End Device AT Commands>>doc:Main.End Device AT Commands and Downlink Command.WebHome]]
948
949
950 === 2.5.2 Sensor related commands: ===
951
952
953 (% style="color:#4472c4" %)**Set work mode:**
954
955 * (% style="color:#037691" %)**AT Command:**
956
957 (((
958 (% style="background-color:#dcdcdc" %)**AT+MOD=2 **(%%) ~/~/ Set work MOD =2. (1:IIC mode,2:Distance mode,3:3ADC mode, 4:3DS18B20 mode,5:weight mode)
959 )))
960
961 (((
962 (% style="background-color:#dcdcdc" %)**AT+MOD=?** (%%) ~/~/  Get current work MOD
963 )))
964
965
966 * (% style="color:#037691" %)**Downlink Payload:**
967
968 (% style="background-color:#dcdcdc" %)**0x0A aa** (%%) ~/~/ Same as AT+MOD=aa
969
970
971
972 (% style="color:#4472c4" %)**Set the trigger interrupt mode:**
973
974 * (% style="color:#037691" %)**AT Command:**
975
976 (((
977 (% style="background-color:#dcdcdc" %)**AT+INTMOD=2**  (%%) ~/~/ Set INTMOD =2. (0:Disable,1:falling or rising,2:falling,3:rising)
978 )))
979
980 (((
981 (% style="background-color:#dcdcdc" %)**AT+INTMOD=?**  (%%) ~/~/  Get current INTMOD
982 )))
983
984
985 * (% style="color:#037691" %)**Downlink Payload:**
986
987 (% style="background-color:#dcdcdc" %)**0x06 000003**      (%%) ~/~/ Set AT+INTMOD=3
988
989
990
991 (% style="color:#4472c4" %)**Set the 5V power open time during sampling:**
992
993 * (% style="color:#037691" %)**AT Command:**
994
995 (((
996 (% style="background-color:#dcdcdc" %)**AT+5VT=1000** (%%) ~/~/ Set 5v open time to 1000ms
997 )))
998
999 (((
1000 (% style="background-color:#dcdcdc" %)**AT+5VT=?**    (%%) ~/~/  Check current 5v open duration
1001 )))
1002
1003
1004 * (% style="color:#037691" %)**Downlink Payload:**
1005
1006 (% style="background-color:#dcdcdc" %)**0x07 aa bb**    (%%) ~/~/ Equal AT+5VT=0x(aa bb)
1007
1008
1009
1010 (% style="color:#4472c4" %)**Set the weight to 0g (Zero Calibration)**
1011
1012 * (% style="color:#037691" %)**AT Command:**
1013
1014 (% style="background-color:#dcdcdc" %)**AT+WEIGRE** ** **(%%)** **~/~/ Set the weight to 0g
1015
1016
1017 * (% style="color:#037691" %)**Downlink Payload:**
1018
1019 (% style="background-color:#dcdcdc" %)**0x08 01** (%%) ~/~/ Set the weight to 0g
1020
1021
1022
1023 (% style="color:#4472c4" %)**Get or Set the GAP Value (calibrate factor) of measurement**
1024
1025 * (% style="color:#037691" %)**AT Command:**
1026
1027 (((
1028 (% style="background-color:#dcdcdc" %)**AT+WEIGAP=403.0**  (%%) ~/~/ Set GAP Value =403.0 (response: Weight: xx g)
1029 )))
1030
1031 (((
1032 (% style="background-color:#dcdcdc" %)**AT+WEIGAP=?**  (%%) ~/~/  Get current GAP Value
1033 )))
1034
1035
1036 * (% style="color:#037691" %)**Downlink Payload:**
1037
1038 (% style="background-color:#dcdcdc" %)**0x08 02 aa bb** (%%) ~/~/ Equal to AT+WEIGAP=0x(aa bb)/10
1039
1040
1041
1042 == 2.6 Show Data in Datacake IoT Server ==
1043
1044 (((
1045 Datacake provides a human friendly interface to show the sensor data, once we have data in TTN V3, we can use Datacake to connect to TTN V3 and see the data in Datacake. Below are the steps:
1046 )))
1047
1048 (((
1049
1050 )))
1051
1052 (((
1053 (% style="color:blue" %)**Step 1**(%%)**:** Be sure that your device is programmed and properly connected to the network at this time.
1054 )))
1055
1056 (((
1057 (% style="color:blue" %)**Step 2**(%%)**:** To configure the Application to forward data to Datacake you will need to add integration. To add the Datacake integration, perform the following steps:
1058 )))
1059
1060
1061 [[image:1656385623971-339.png]]
1062
1063
1064 [[image:1656385646347-395.png]]
1065
1066
1067 [[image:1656385662459-942.png]]
1068
1069
1070 (% style="color:blue" %)**Step 3**(%%)**: **Create an account or log in Datacake.
1071
1072 (% style="color:blue" %)**Step 4**(%%)**:** Search the LSN50 and add DevEUI.
1073
1074 [[image:1656385688973-317.png]]
1075
1076
1077
1078 == 2.7 ​Firmware Change Log ==
1079
1080
1081 (((
1082 **Firmware download: ** [[http:~~/~~/www.dragino.com/downloads/index.php?dir=LSN50-LoRaST/Firmware/LSN50.hex/>>url:http://www.dragino.com/downloads/index.php?dir=LSN50-LoRaST/Firmware/LSN50.hex/]]
1083 )))
1084
1085 (((
1086 **Firmware Change Log: **[[http:~~/~~/www.dragino.com/downloads/index.php?dir=LSN50-LoRaST/Firmware/LSN50.hex/>>url:http://www.dragino.com/downloads/index.php?dir=LSN50-LoRaST/Firmware/LSN50.hex/]]
1087 )))
1088
1089
1090 == 2.8 Use VDD or +5V to Power External Sensor ==
1091
1092 (((
1093 User can use VDD or +5V to power external sensor.
1094 )))
1095
1096 (((
1097 (% style="color:red" %)**Note:**
1098 )))
1099
1100 1. (((
1101 VDD is 2.5~~3.3v from the battery + diode, the VDD is always on, so when use VDD to power external sensor, make sure the sensor has a low power consumption in sleep mode ( less 50 uA) to get a long battery life.
1102 )))
1103 1. (((
1104 +5V output is only ON when sampling. And MCU will turn off it after sampling. So if sensor can support 5v, +5V out is the best choice. [[See here for more info>>||anchor="H2.4.92B5VOutput"]].
1105 )))
1106
1107 (((
1108 (% style="color:red" %)Note: Always test the actually current pass by the JP2 jumper when connect to a new type of sensor.
1109 )))
1110
1111
1112
1113
1114
1115
1116 == 2.9  Battery Analysis ==
1117
1118 === 2.9.1  Battery Type ===
1119
1120 (((
1121 The LSN50 battery is a combination of a 4000mAh or 8500mAh Li/SOCI2 Battery and a Super Capacitor. The battery is non-rechargeable battery type with a low discharge rate (<2% per year). This type of battery is commonly used in IoT devices such as water meter.
1122 )))
1123
1124 (((
1125 The battery is designed to last for more than 5 years for the LSN50.
1126 )))
1127
1128
1129 (((
1130 The battery related documents as below:
1131 )))
1132
1133 * [[Battery Dimension>>https://www.dragino.com/downloads/index.php?dir=datasheet/Battery/]],
1134 * [[Lithium-Thionyl Chloride Battery datasheet>>https://www.dragino.com/downloads/index.php?dir=datasheet/Battery/]], [[Tech Spec>>https://www.dragino.com/downloads/index.php?dir=datasheet/Battery/]]
1135 * [[Lithium-ion Battery-Capacitor datasheet>>https://www.dragino.com/downloads/index.php?dir=datasheet/Battery/]], [[Tech Spec>>https://www.dragino.com/downloads/index.php?dir=datasheet/Battery/]]
1136
1137 [[image:image-20220627175349-30.png]]
1138
1139
1140 === 2.9.2 ​Power consumption Analyze ===
1141
1142 When connect to different sensors, it is good to test the power consumption with the sensor working. User can remove the ON/OFF Jumper of LSN50, and connect a multimeter between the two pins of this header and measure the current to know the whole system power consumption. Because the sleep mode will have as low as 10uA, at least 4.5 digit multimeter is required to measure this level of current.
1143
1144 (((
1145 A victor VC86E is recommended.
1146 )))
1147
1148 [[image:1656323400306-359.png]]
1149
1150
1151 (((
1152 In a minimum system with DS18B20 and Oil Sensor and default firmware, the power consumption includes:
1153 )))
1154
1155 (((
1156
1157 )))
1158
1159 (((
1160 ~1. Deep Sleep (Stop mode) for STM32. ~~ 5uA
1161 )))
1162
1163 (((
1164 2. Sampling current while reading DS18B20 and Oil Sensor
1165 )))
1166
1167 * (((
1168 Oil Sensor sampling time: 200us, current: 0.3mA
1169 )))
1170 * (((
1171 DS18B20 sampling time: 750ms, current: 0.64mA
1172 )))
1173 * (((
1174 Above power should add 8mA CPU power in working mode.
1175 )))
1176
1177 (((
1178 3. LoRaWAN transmit and receive time consumption. The LoRa TX / RX time and power can be found in the [[LoRa calculator tool>>url:https://www.semtech.com/uploads/documents/SX1272LoRaCalculatorSetup1_1.zip]].
1179 )))
1180
1181
1182 (((
1183 In a typical LoRaWAN data transmit. The energy profile is as below:
1184 )))
1185
1186
1187 [[image:1656323450362-299.png]]
1188
1189 (((
1190 In the LoRaWAN protocol, the device will transfer in different LoRa Radio, and have different energy profile in LoRa part. We can calculate the battery life in two cases:
1191 )))
1192
1193 1. Lower power LoRa radio. Device has a good signal to gateway
1194 1. Higher power LoRa radio. Device has a poor signal to gateway
1195
1196
1197 (% style="color:blue" %)**Low Power Case**:
1198
1199 * Radio Parameter: SF7, 125kHz, 20dbm
1200 * Transmit interval: 15 minutes.
1201 * Payload: 8 Bytes.
1202
1203
1204 (% style="color:blue" %)**High Power Case**:
1205
1206 * Radio Parameter: SF10, 125kHz, 20dbm
1207 * Transmit interval: 15 minutes.
1208 * Payload: 8 Bytes.
1209
1210
1211 To simplify the calculation, we can:
1212
1213 * Combine oil sensor and DS18B20 sampling energy together to (% style="color:#4472c4" %)**751ms@8.64ma**
1214
1215 * Combine the two RX windows together.
1216
1217 There is a [[power consumption tool>>url:http://www.dragino.com/downloads/index.php?dir=LSN50-LoRaST/&file=Battery_Calculator_v1.0.xlsx]] for easy analysis. Below is the analysis result.
1218
1219
1220 [[image:1656323531520-949.png]]
1221
1222 [[image:1656323549994-233.png]]
1223
1224
1225 (% style="color:red" %)**Note: Ignore the 18 year result, because the battery has a max 2% discharge per year.**
1226
1227
1228 === 2.9.3 ​Battery Note ===
1229
1230 (((
1231 The Li-SICO battery is designed for small current / long period application. It is not good to use a high current, short period transmit method. The recommended minimum period for use of this battery is 5 minutes. If you use a shorter period time to transmit LoRa, then the battery life may be decreased.
1232 )))
1233
1234
1235 === 2.9.4 Replace the battery ===
1236
1237 (((
1238 You can change the battery in the LSN50.The type of battery is not limited as long as the output is between 3v to 3.6v. On the main board, there is a diode (D1) between the battery and the main circuit. If you need to use a battery with less than 3.3v, please remove the D1 and shortcut the two pads of it so there won’t be voltage drop between battery and main board.
1239 )))
1240
1241 (((
1242 The default battery pack of LSN50 includes a ER18505 plus super capacitor. If user can't find this pack locally, they can find ER18505 or equivalence, which will also work in most case. The SPC can enlarge the battery life for high frequency use (update period below 5 minutes).
1243 )))
1244
1245
1246
1247 = 3.  Using the AT Commands =
1248
1249 == 3.1  Access AT Commands ==
1250
1251 LSN50 supports AT Command set in the stock firmware. You can use a USB to TTL adapter to connect to LSN50 for using AT command, as below.
1252
1253
1254 (% style="color:#4472c4" %)**LSN50 v1 UART connection photo**
1255
1256 [[image:image-20220627165424-24.png||height="495" width="486"]]
1257
1258
1259 (% style="color:#4472c4" %)**LSN50 v2 UART connection photo**
1260
1261 [[image:image-20220627165424-25.png||height="437" width="894"]]
1262
1263
1264 (((
1265 In the PC, you need to set the serial baud rate to (% style="color:green" %)**9600**(%%) to access the serial console for LSN50. LSN50 will output system info once power on as below:
1266 )))
1267
1268
1269 [[image:image-20220627165531-26.png||height="624" width="893"]](% style="display:none" %)
1270
1271
1272
1273 == 3.2  Common AT Command Sequence ==
1274
1275
1276 === 3.2.1  Multi-channel ABP mode (Use with SX1301/LG308) ===
1277
1278 (((
1279 (% style="color:#037691" %)**If device has not joined network via OTAA:**
1280 )))
1281
1282 (((
1283 (% style="background-color:#dcdcdc" %)AT+FDR
1284 )))
1285
1286 (((
1287 (% style="background-color:#dcdcdc" %)AT+NJM=0
1288 )))
1289
1290 (((
1291 (% style="background-color:#dcdcdc" %)ATZ
1292 )))
1293
1294
1295 (((
1296 (% style="color:#037691" %)**If device already joined network:**
1297 )))
1298
1299 (((
1300 (% style="background-color:#dcdcdc" %)AT+NJM=0
1301 )))
1302
1303 (((
1304 (% style="background-color:#dcdcdc" %)ATZ
1305 )))
1306
1307
1308 === 3.2.2  Single-channel ABP mode (Use with LG01/LG02) ===
1309
1310 See [[Sect 6.7>>||anchor="H6.7A0HowtoconfiguretheEUIkeysinLSN503F"]]
1311
1312
1313
1314 = 4.  Upload Firmware =
1315
1316 (% style="color:red" %)**Notes**:
1317
1318 * Since image v1.3, the firmware will show version info during boot. If your device doesn't show version info, you may have a very old image version.
1319 * Always run AT+FDR to reset parameters to factory default after an update image.
1320 If the update is from image >= v1.3 to another image version >=v1.3, then the keys will be kept after running AT+FDR.
1321 Otherwise (e.g. from v1.2 to v1.3), AT+FDR may erase the keys.
1322
1323
1324
1325 == 4.1  Upload Firmware via Serial Port ==
1326
1327 The LSN50's AT Command port can be used for firmware upgrade. The hardware connection for upgrade firmware is as below:
1328
1329
1330 [[image:image-20220627163506-18.png||height="426" width="418"]]
1331
1332
1333 (% style="color:blue" %)**Step1**(%%)**:** Download [[flash loader>>url:https://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-programmers/flasher-stm32.html]].
1334
1335 (% style="color:blue" %)**Step2**(%%)**:** Download the [[LSN50 Image files>>url:https://github.com/dragino/LoRa_STM32/tree/master/LSN50.hex]].
1336
1337 (% style="color:blue" %)**Step3**(%%)**: **Open flashloader; choose the correct COM port to update
1338
1339 [[image:image-20220627163821-19.png]]
1340
1341
1342 [[image:image-20220627163930-20.png||height="450" width="751"]]
1343
1344
1345 [[image:image-20220627164030-21.png||height="459" width="750"]]
1346
1347
1348 (((
1349 (% style="color:blue" %)**Step4**(%%)**: **Switch SW1 back to flash state and push the RESET button.
1350 )))
1351
1352 (((
1353 The LSN50 will then run the new firmware.
1354 )))
1355
1356
1357 == 4.2  Upload Firmware via ST-Link V2 ==
1358
1359 You can use ST-LINK to upgrade firmware into LSN50. The hardware connection for upgrade firmware is as below:
1360
1361 [[image:1656319349131-664.png]]
1362
1363 (% style="color:blue" %)**Connection:**
1364
1365 * (% style="background-color:yellow" %)**ST-LINK v2 GND  <~-~-> LSN50 GND**
1366 * (% style="background-color:yellow" %)**ST-LINK v2 SWCLK <~-~-> LSN50 PA14**
1367 * (% style="background-color:yellow" %)**ST-LINK v2 SWDIO <~-~-> LSN50 PA13**
1368 * (% style="background-color:yellow" %)**ST-LINK v2 RST  <~-~->  LSN50 NRST**
1369
1370 (% style="color:blue" %)**Step1:**(%%) Install [[ST-LINK driver>>url:https://www.stmicroelectronics.com.cn/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-utilities/stsw-link009.html]] first and then install [[ST-LINK Utility>>url:https://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-programmers/stsw-link004.html]]
1371
1372 (% style="color:blue" %)**Step2**(%%): Download the [[LSN50 Image files>>url:https://github.com/dragino/LoRa_STM32/tree/master/LSN50.hex]].
1373
1374 (% style="color:blue" %)**Step3:**(%%)** **Open ST-LINK utility, (% style="color:blue" %)**file ~-~-> open file**(%%) to select the image to be upgraded.
1375
1376 (% style="color:blue" %)**Step4:**(%%)** **Click the “(% style="color:blue" %)**Program Verify**”(%%) button on ST-LINK.
1377
1378
1379 [[image:image-20220627164303-22.png]]
1380
1381
1382 (((
1383 (% style="color:blue" %)**Step5:**(%%)** **The led on the ST-LINK adapter will now blinking, and the ST-Link utility will pop up a download window. Click the start button to download the image to LSN50.
1384 )))
1385
1386 (((
1387 (% style="color:red" %)NOTE: If this step fails, ST-LINK can't establish connection to LSN50, please try to swap SWDIO & SWCLK pin. Some ST-LINK v2 devices are incorrectly marked.
1388 )))
1389
1390
1391 [[image:image-20220627164303-23.png]]
1392
1393
1394
1395 = 5.  Developer Guide =
1396
1397 * (((
1398 Software Source Code Download : [[https:~~/~~/github.com/dragino/LoRa_STM32/tree/master/STM32CubeExpansion_LRWAN>>https://github.com/dragino/LoRa_STM32/tree/master/STM32CubeExpansion_LRWAN]]
1399 )))
1400 * (((
1401 Hardware Source Code Download: [[https:~~/~~/github.com/dragino/Lora/tree/master/LSN50>>https://github.com/dragino/Lora/tree/master/LSN50]]
1402 )))
1403
1404 (((
1405 LSN50 is an open source project, developer can use compile their firmware for customized applications. User can get the source code from:
1406 )))
1407
1408 * (((
1409 Software Source Code: [[https:~~/~~/github.com/dragino/LoRa_STM32/tree/master/STM32CubeExpansion_LRWAN>>url:https://github.com/dragino/LoRa_STM32/tree/master/STM32CubeExpansion_LRWAN]]
1410 )))
1411 * (((
1412 Hardware Design files:  [[https:~~/~~/github.com/dragino/Lora/tree/master/LSN50>>url:https://github.com/dragino/Lora/tree/master/LSN50]]
1413 )))
1414 * (((
1415 Compile instruction:  [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/Firmware%20Compile%20Instruction%20~~-~~-%20STM32/>>http://wiki.dragino.com/xwiki/bin/view/Main/Firmware%20Compile%20Instruction%20--%20STM32/]]
1416 )))
1417
1418 (((
1419 Use Keil to open project file:
1420 )))
1421
1422 (((
1423 STM32CubeExpansion_LRWAN/Projects/Multi/Applications/LoRa/DRAGINO-LRWAN(AT)/MDK-ARM/STM32L072CZ-Nucleo/Lora.uvprojx
1424 )))
1425
1426 (((
1427
1428 )))
1429
1430 (((
1431 In Keil, you can see what frequency band the code support.
1432 )))
1433
1434 [[image:image-20220627162417-15.png]]
1435
1436
1437 **~1. If you want to change frequency, modify the Preprocessor Symbols.**
1438
1439
1440 For example, change EU868 to US915
1441
1442 [[image:1656318662202-530.png]]
1443
1444
1445 **2. Compile and build**
1446
1447 [[image:image-20220627163212-17.png]]
1448
1449
1450
1451 = 6.  FAQ =
1452
1453 == 6.1  Why there is 433/868/915 version? ==
1454
1455 (((
1456 Different countries have different rules for the ISM band for LoRa. Although the LoRa chip can support a wide range of Frequencies, we provide different versions of the hardware for best tune of the LoRa hardware part.
1457 )))
1458
1459
1460 == 6.2 What is the frequency range of LT LoRa part? ? ==
1461
1462 Different LT version supports different frequency range, below is the table for the working frequency and recommend bands for each model:
1463
1464 [[image:image-20220627155456-9.png]]
1465
1466
1467
1468 == 6.3  How to change the LoRa Frequency Bands/Region? ==
1469
1470 You can follow the instructions for [[how to upgrade image>>||anchor="H2.7200BFirmwareChangeLog"]].
1471 When downloading the images, choose the required image file for download.
1472
1473
1474 == 6.4  Can I use Private LoRa protocol? ==
1475
1476 (((
1477 (((
1478 The stock firmware is based on LoRaWAN protocol. You can use a private LoRa protocol in LSN50. This section describes an example for base LoRa transfer. It is a reference/demo and we do not provide further software development support on this topic.
1479 )))
1480
1481 (((
1482 In this demo, we will show the communication between LoRa Shield and LSN50, both of them using the basic LoRa library. LSN50 will send a message to a LoRa Shield and the LoRa Shield will print it to the console.
1483 )))
1484
1485
1486 )))
1487
1488 (% style="color:#4472c4" %)**LoRa Shield + UNO**:
1489
1490 Use the [[LoRa Library>>url:http://www.dragino.com/downloads/index.php?dir=LSN50-LoRaST/LoRa_Raw_Example/Arduino/&file=LoRa.zip]] and upload the [[LoRa Receive>>http://www.dragino.com/downloads/downloads/LSN50-LoRaST/LoRa_Raw_Example/Arduino/LoRaReceiver.ino]] Sketch to Arduino.
1491
1492
1493 Refs:
1494
1495 [[http:~~/~~/www.dragino.com/downloads/index.php?dir=LSN50-LoRaST/LoRa_Raw_Example/Arduino/&file=LoRa.zip>>url:http://www.dragino.com/downloads/index.php?dir=LSN50-LoRaST/LoRa_Raw_Example/Arduino/&file=LoRa.zip]]
1496
1497 [[http:~~/~~/www.dragino.com/downloads/downloads/LSN50-LoRaST/LoRa_Raw_Example/Arduino/LoRaReceiver.ino>>url:http://www.dragino.com/downloads/downloads/LSN50-LoRaST/LoRa_Raw_Example/Arduino/LoRaReceiver.ino]]
1498
1499
1500 Open the serial monitor to Arduino. The device acts as a LoRa Receiver and listen on the frequency 868.3Mhz by default.
1501
1502
1503 (% style="color:#4472c4" %)**LSN50**:
1504
1505 Use the <[[LoRa RAW code>>url:http://www.dragino.com/downloads/index.php?dir=LSN50-LoRaST/LoRa_Raw_Example/LSN50/&file=lora_send.zip]]> . The project file is in: MDK-ARM\STM32L072CZ-Nucleo\ Lora.uvprojx
1506
1507 Compile it and Upload it to LSN50, the LSN50 will transfer on the frequency 868.3Mhz.
1508
1509 In the Arduino Console, it will see the received packets as below.
1510
1511
1512 [[image:image-20220627160116-10.png]]
1513
1514
1515 == 6.5  How to set up LSN50 to work in 8 channel mode ==
1516
1517 (((
1518 By default, the frequency bands US915, AU915, CN470 work in 72 frequencies. Many gateways are 8 channel gateways, and in this case, the OTAA join time and uplink schedule is long and unpredictable while the end node is hopping in 72 frequencies.
1519 )))
1520
1521 (((
1522 You can configure the end node to work in 8 channel mode by using the AT+CHE command. The 500kHz channels are always included for OTAA.
1523 )))
1524
1525 (((
1526
1527 )))
1528
1529 (((
1530 For example, in (% style="color:blue" %)**US915**(%%) band, the frequency table is as below. By default, the end node will use all channels (0~~71) for OTAA Join process. After the OTAA Join, the end node will use these all channels (0~~71) to send uplink packets.
1531 )))
1532
1533 [[image:image-20220627160940-13.png]]
1534
1535
1536 (((
1537 When you use the TTN V3 network, the US915 frequency bands use are:
1538 )))
1539
1540 * (((
1541 903.9 - SF7BW125 to SF10BW125
1542 )))
1543 * (((
1544 904.1 - SF7BW125 to SF10BW125
1545 )))
1546 * (((
1547 904.3 - SF7BW125 to SF10BW125
1548 )))
1549 * (((
1550 904.5 - SF7BW125 to SF10BW125
1551 )))
1552 * (((
1553 904.7 - SF7BW125 to SF10BW125
1554 )))
1555 * (((
1556 904.9 - SF7BW125 to SF10BW125
1557 )))
1558 * (((
1559 905.1 - SF7BW125 to SF10BW125
1560 )))
1561 * (((
1562 905.3 - SF7BW125 to SF10BW125
1563 )))
1564 * (((
1565 904.6 - SF8BW500
1566 )))
1567
1568 (((
1569 Because the end node is now hopping in 72 frequency, it makes it difficult for the devices to Join the TTN V3 network and uplink data. To solve this issue, you can access the device via the AT commands and run:
1570 )))
1571
1572 (((
1573 (% style="color:blue" %)**AT+CHE=2**
1574 )))
1575
1576 (((
1577 (% style="color:blue" %)**ATZ**
1578 )))
1579
1580
1581 (((
1582 to set the end node to work in 8 channel mode. The device will work in Channel 8-15 & 64-71 for OTAA, and channel 8-15 for Uplink.
1583 )))
1584
1585 (((
1586 The (% style="color:blue" %)**AU915**(%%) band is similar. Below are the AU915 Uplink Channels.
1587 )))
1588
1589 [[image:image-20220627161124-14.png]]
1590
1591
1592 == 6.6  How to set up LSN50 to work with Single Channel Gateway such as LG01/LG02? ==
1593
1594 (((
1595 In this case, users need to set LSN50 to work in ABP mode and transmit in only one frequency.
1596 )))
1597
1598 (((
1599 Assume we have a LG02 working in the frequency 868400000 now, below is the steps.
1600 )))
1601
1602
1603 (((
1604 (% style="color:blue" %)**Step1: **(%%)Log in TTN V3, Create an ABP device in the application and input the network session key (NETSKEY), app session key (APPSKEY) from the device.
1605 )))
1606
1607
1608 [[image:image-20220627160542-11.png]]
1609
1610
1611 (((
1612 (% style="color:red" %)Note: You need to make sure the above three keys match in the device and in TTN V3. You can change them either in TTN V3 or in the Device to make them match. In TTN V3, NETSKEY and APPSKEY can be configured in the setting page, but the Device Addr is generated by TTN V3.
1613 )))
1614
1615
1616 (((
1617 (% style="color:red" %)You can also change the Device ADDR in TTN V3 by using the [[The Things Network CLI>>url:https://www.thethingsnetwork.org/docs/network/cli/quick-start.html]].
1618 )))
1619
1620
1621 (((
1622 (% style="color:blue" %)**Step2:  **(%%)Run AT commands to make the LSN50 work in Single frequency and ABP mode. Below are the AT commands:
1623 )))
1624
1625
1626 (((
1627 (% style="background-color:#dcdcdc" %)AT+FDR(%%)  Reset Parameters to Factory Default, Keys Reserve
1628 )))
1629
1630 (((
1631 (% style="background-color:#dcdcdc" %)AT+NJM=0(%%)  Set to ABP mode
1632 )))
1633
1634 (((
1635 (% style="background-color:#dcdcdc" %)AT+ADR=0(%%)  Set the Adaptive Data Rate Off
1636 )))
1637
1638 (((
1639 (% style="background-color:#dcdcdc" %)AT+DR=5(%%)  Set Data Rate (Set AT+DR=3 for 915 band)
1640 )))
1641
1642 (((
1643 (% style="background-color:#dcdcdc" %)AT+TDC=300000(%%)  Set transmit interval to 5 minutes
1644 )))
1645
1646 (((
1647 (% style="background-color:#dcdcdc" %)AT+CHS=868400000(%%)  Set transmit frequency to 868.4Mhz
1648 )))
1649
1650 (((
1651 (% style="background-color:#dcdcdc" %)AT+DADDR=26 01 1A F1(%%)  Set Device Address to 26 01 1A F1
1652 )))
1653
1654 (((
1655 (% style="background-color:#dcdcdc" %)ATZ(%%)  Reset MCU
1656 )))
1657
1658
1659 (((
1660 As shown  below:
1661 )))
1662
1663 [[image:image-20220627160542-12.png]]
1664
1665
1666 == 6.7  How to configure the EUI keys in LSN50? ==
1667
1668 (((
1669 The early version of LSN50 firmware doesn't have pre-configured keys.
1670 It is recommended that you update the image to the latest version before configure the keys. Refer [[upgrade_image>>||anchor="H2.7200BFirmwareChangeLog"]] to update the firmware to the latest version.
1671 )))
1672
1673 (((
1674 Run AT commands to set the keys to desired keys; refer [[AT Command manual>>https://www.dragino.com/downloads/downloads/LSN50-LoRaST/DRAGINO_LSN50_AT_Commands_v1.6.3.pdf]].
1675 )))
1676
1677
1678 = 7.  Trouble Shooting =
1679
1680 == 7.1  Connection problem when uploading firmware. ==
1681
1682 (((
1683 (% style="color:red" %)**Issue**(%%): While using USB to TTL to upload firmware via UART interface. It works for several times but most of times it fails.
1684 )))
1685
1686 (((
1687
1688 )))
1689
1690 (((
1691 (% style="color:green" %)**Checklist**:
1692 )))
1693
1694 (((
1695 ~1. Double check if follow up exactly the steps as manual.
1696 )))
1697
1698 (((
1699 2. Check if hardware works fine: a) check if AT command works, b) check if ISP / flash switch works: PA12 will have different output level while set the ISP/Flash Switch in different position. c) check if reset button works.
1700 )))
1701
1702 (((
1703 3. If you use Windows10 system. Please change the flash loader to run in Windows7 compatibility mode.
1704 )))
1705
1706
1707 [[image:image-20220627153421-8.png]]
1708
1709
1710 (((
1711 4. We have seen cases where the FT232 USB TTL adapter has a reliability issue with the PC USB chipset (Intel). In this case, even though points 1 and 2 above work, it still has a reliability issue for uploading. If this happens, change to a different PC or change the USB to TTL adapter to solve the issue.
1712 )))
1713
1714
1715 == 7.2  Why I can't join TTN V3 in US915 / AU915 bands? ==
1716
1717 It is due to channel mapping. Please see the [[Eight Channel Mode>>doc:Main.End Device AT Commands and Downlink Command.WebHome||anchor="H7.19EightChannelMode"]] section above for details.
1718
1719
1720 == 7.3  AT Command input doesn't work ==
1721
1722 In the case if user can see the console output but can't type input to the device. Please check if you already include the (% style="color:red" %)**ENTER**(%%) while sending out the command. Some serial tool doesn't send (% style="color:red" %)**ENTER**(%%) while press the send key, user need to add ENTER in their string.
1723
1724
1725
1726 = 8.  Order Info =
1727
1728 Part Number: (% style="color:blue" %)**LSN50-XX-YY  **(%%)**or  (% style="color:blue" %)LSN50-XX-YY-ZZ(%%)**
1729
1730 (% style="color:blue" %)**XX**(%%): The default frequency band
1731
1732 * (% style="color:red" %)**AS923 **(%%)**:** LoRaWAN AS923 band
1733 * (% style="color:red" %)**AU915 **(%%)**:** LoRaWAN AU915 band
1734 * (% style="color:red" %)**EU433 **(%%)**:** LoRaWAN EU433 band
1735 * (% style="color:red" %)**EU868 **(%%)**:** LoRaWAN EU868 band
1736 * (% style="color:red" %)**KR920 **(%%)**:** LoRaWAN KR920 band
1737 * (% style="color:red" %)**US915 **(%%)**:** LoRaWAN US915 band
1738 * (% style="color:red" %)**IN865 **(%%)**:**  LoRaWAN IN865 band
1739 * (% style="color:red" %)**CN470 **(%%)**:** LoRaWAN CN470 band
1740
1741 (% style="color:blue" %)**YY**(%%)**: **Hole Option
1742
1743 * (% style="color:red" %)**12**(%%): With M12 waterproof cable hole
1744 * (% style="color:red" %)**16**(%%): With M16 waterproof cable hole
1745 * (% style="color:red" %)**20**(%%): With M20 waterproof cable hole (LSN50 v2 doesn’t have this version)
1746 * (% style="color:red" %)**NH**(%%): No Hole
1747
1748 (% style="color:blue" %)**ZZ**(%%)**: **Battery Option ( Only valid for v2 model)
1749
1750 * (% style="color:red" %)**4**(%%): with 4000mAh battery
1751 * (% style="color:red" %)**8**(%%): with 8500mAg battery
1752
1753
1754
1755
1756 = 9. ​ Packing Info =
1757
1758
1759 (% style="color:blue" %)**For LSN50**(%%)**:**
1760
1761 **Package Includes**:
1762
1763 * LSN50 LoRa Sensor Node x 1
1764
1765 **Dimension and weight**:
1766
1767 * Device Size: 8 x 6.5 x 5 cm
1768 * Device Weight: 137g
1769 * Package Size / pcs : 9 x 7 x 6cm
1770 * Weight / pcs : 160g
1771
1772 (% style="color:blue" %)**For LSN50 v2**(%%)**:**
1773
1774 **Package Includes**:
1775
1776 * LSN50 v2 LoRa Sensor Node x 1
1777 * External antenna x 1
1778 * Spring Antenna (evaluate purpose)
1779
1780 **Dimension and weight**:
1781
1782 * Device Size: 9.7 x 6.5 x 4.7 cm
1783 * Device Weight: 150g
1784 * Package Size / pcs : 14.0 x 8x 5 cm
1785 * Weight / pcs : 180g
1786
1787
1788
1789
1790 = 10.  ​Support =
1791
1792 * 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.
1793 * 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.com>>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.com]].
1794
1795
1796
1797
1798 = 11.  References =
1799
1800 * [[Product Page>>url:http://www.dragino.com/products/lora/item/128-lsn50.html]]
1801 * [[Data Sheet>>url:http://www.dragino.com/downloads/index.php?dir=datasheet/EN/&file=Datasheet_LoRaSensorNode.pdf]]
1802 * [[Image Download>>url:https://github.com/dragino/LoRa_STM32/tree/master/LSN50.hex]]
1803 * [[Mechanical Drawing>>http://www.dragino.com/downloads/index.php?dir=LSN50-LoRaST/Mechanical_Drawing/]]
1804
1805