Version 407.4 by Xiaoling on 2022/06/28 15:15

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
120
121
122
123 == ​1.3  Features ==
124
125 * LoRaWAN 1.0.3 Class A, Class C
126 * STM32L072CZT6 MCU
127 * SX1276/78 Wireless Chip
128 * Pre-load bootloader on USART1/USART2
129 * MDK-ARM Version 5.24a IDE
130 * I2C, LPUSART1, USB, SPI2
131 * 3x12bit ADC, 1x12bit DAC
132 * 20xDigital I/Os
133 * LoRa™ Modem
134 * Preamble detection
135 * Baud rate configurable
136 * CN470/EU433/KR920/US915/IN865
137 * EU868/AS923/AU915
138 * Open-source hardware / software
139 * Available Band:433/868/915/920 Mhz
140 * IP66 Waterproof Enclosure
141 * Ultra-Low Power consumption
142 * AT Commands to change parameters
143 * 4000mAh or 8500mAh Battery for long term use。
144
145
146
147
148
149 == 1.4 ​ Applications ==
150
151 * Smart Buildings & Home Automation
152 * Logistics and Supply Chain Management
153 * Smart Metering
154 * Smart Agriculture
155 * Smart Cities
156 * Smart Factory
157
158
159
160
161
162 == 1.5  Pin Definitions and Switch ==
163
164 (% class="wikigeneratedid" %)
165 [[image:1656295519542-152.png||height="413" width="728"]]
166
167
168 (% class="wikigeneratedid" %)
169 [[image:1656295532863-613.png||height="371" width="721"]]
170
171
172 (% class="wikigeneratedid" %)
173 [[image:image-20220627101527-1.png]]
174
175
176
177 === 1.5.1 Jumper JP2 ===
178
179 Power on Device when put this jumper.
180
181
182 === 1.5.2 BOOT MODE / SW1 ===
183
184 (((
185 ~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.
186 )))
187
188 (((
189 2. Flash:  work mode, device starts to work and send out console output for further debug
190 )))
191
192
193 === 1.5.3 Reset Button ===
194
195 Press to reboot the device.
196
197
198 === 1.5.4 LED ===
199
200 It will flash:
201
202 1. When boot the device in flash mode
203 1. Send an uplink packet
204
205
206
207
208
209 === 1.6  Hardware Change log ===
210
211 Note: Hardware version is marked in the PCB.
212
213 (% style="color:#4472c4" %)**LSN50 v2.1:**
214
215 1. Change R14 to 1M ohm
216 1. Change R3, R4 to 4.7Kohm. So no need to modify them for 3 DS18B20 connection.
217 1. Add ESD to each I/O
218
219 (% style="color:#4472c4" %)**LSN50 v2.0:**
220
221 * Change to a new enclosure. Improve with external antenna, IP68, ear hook.
222
223 (% style="color:#4472c4" %)**LSN50 v1.3**:
224
225 * Add P-MOS to control 5V output
226
227 (% style="color:#4472c4" %)**LSN50 v1.2**:
228
229 * Add LED. Turn on for every LoRa transmit
230 * Add pin PA4, PB13, NRST
231 * Add 5V Output, on/off control by PB5(Low to Enable, High to Disable)
232
233
234
235
236
237 == 1.7  Hole Option ==
238
239 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:
240
241 [[image:image-20220627104757-1.png]]
242
243
244 [[image:1656298089706-973.png]]
245
246
247
248 = 2.  Use LSN50 with LoRaWAN firmware =
249
250 == 2.1  How it works ==
251
252 (((
253 (((
254 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.
255 )))
256
257 (((
258
259 )))
260
261 (((
262 The diagram below shows the working flow in default firmware (ver 1.7.0): 
263 )))
264
265
266 [[image:image-20220627104855-2.png]]
267
268
269 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.
270 )))
271
272
273 == 2.2  ​Quick guide to connect to LoRaWAN server (OTAA) ==
274
275 (((
276 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. 
277
278 (% 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]]
279
280
281 )))
282
283 (% 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" %)​(%%)​
284
285 (((
286
287
288 (% style="color:blue" %)**Step 1**(%%): Create a device in TTN with the OTAA keys from LSN50.
289
290 Each LSN50is shipped with a sticker with the default device EUI as below:
291 )))
292
293 (((
294
295 )))
296
297 (% 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" %)​(%%)​
298
299
300 (((
301 You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:
302
303 **Register the device:**
304 )))
305
306 (% 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" %)​​
307
308 (% 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" %)​
309
310
311 **Add APP EUI and DEV EUI:**
312
313
314 (% 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" %)​
315
316
317
318 **Add APP EUI in the application:**
319
320
321 (% 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" %)​
322
323
324 **Add APP KEY**
325
326 (% 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" %)​
327
328 (% 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" %)​
329
330 (% 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" %)​(%%)​
331
332 (% style="color:blue" %)**Step 2**(%%)**:** Power on LSN50
333
334 Put a Jumper on JP2 to power on the device.(% style="display:none" %)
335
336 [[image:image-20220627145643-5.png]](% style="display:none" %)
337
338 (% style="display:none" %)
339
340
341 (% style="display:none" %) (%%)
342
343 **For LSn50v2:**
344
345 [[image:1656313034748-905.png]](% style="display:none" %)
346
347
348 (% 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" %)​(%%)​
349
350 (((
351 (((
352 (% 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.
353 )))
354 )))
355
356 (% 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"]]
357
358 ​(% 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" %)​​
359
360
361 == 2.3  ​Working Mode & Uplink Payload ==
362
363 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.
364
365 For example:
366
367 (% 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.
368
369
370 (% style="color:red" %)**NOTE:**
371
372 (% 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.
373 2. All modes share the same Payload Explanation from HERE.
374 3. By default, the device will send an uplink message every 5 minutes.
375
376
377
378 === 2.3.1  MOD~=1 (Default Mode) ===
379
380 (((
381 In this mode, uplink payload includes in total 11 bytes. Uplink packets use FPORT=2.
382 [[image:image-20220627171207-27.png]]
383
384 [[image:image-20220627150949-6.png]]
385
386
387 )))
388
389
390 === 2.3.2 MOD~=2 (Distance Mode) ===
391
392 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.
393
394 [[image:image-20220627180835-31.png]]
395
396
397 [[image:1656324539647-568.png]]
398
399
400
401 (% style="color:red" %)**Connection of LIDAR-Lite V3HP:**
402
403 [[image:1656324581381-162.png]]
404
405
406 (% style="color:red" %)**Connection to Ultrasonic Sensor:**
407
408 [[image:1656324598488-204.png]]
409
410
411 For the connection to TF-Mini or TF-Luna , MOD2 payload is as below:
412
413 [[image:image-20220628083801-1.png]]
414
415 [[image:1656376779088-686.png]]
416
417
418 (% style="color:red" %)**Connection to [[TF-Mini plus>>url:http://en.benewake.com/product/detail/5c345cd0e5b3a844c472329b.html]] LiDAR(UART version):**
419
420 Need to remove R3 and R4 resistors to get low power. Since firmware v1.7.0
421
422 [[image:1656376795715-436.png]]
423
424
425 (% style="color:red" %)**Connection to [[TF-Luna>>url:http://en.benewake.com/product/detail/5e1c1fd04d839408076b6255.html]] LiDAR (UART version):**
426
427 Need to remove R3 and R4 resistors to get low power. Since firmware v1.7.0
428
429 [[image:1656376865561-355.png]]
430
431
432 (((
433 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.
434 )))
435
436
437
438 === 2.3.3 MOD~=3 (3 ADC + I2C) ===
439
440
441 This mode has total 12 bytes. Include 3 x ADC + 1x I2C
442
443 [[image:image-20220628085009-2.png]]
444
445 [[image:1656377431497-975.png]]
446
447
448
449 === 2.3.4 MOD~=4 (3 x DS18B20) ===
450
451
452 This mode is supported in firmware version since v1.6.1. Software set to AT+MOD=4
453
454 Hardware connection is as below,
455
456 (% style="color:red" %)**(Note:**
457
458 * 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.
459 * In hardware version v2.1 no need to change R3 , R4, by default, they are 4.7k ohm already.
460
461 See [[here>>||anchor="H1.6A0HardwareChangelog"]] for hardware changelog.
462
463 (% style="color:red" %)**) **
464
465 [[image:1656377461619-156.png]]
466
467
468 This mode has total 11 bytes. As shown below:
469
470 [[image:image-20220628085248-3.png]]
471
472 [[image:1656377606181-607.png]]
473
474
475
476 === 2.3.5 MOD~=5(Weight Measurement by HX711) ===
477
478
479 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.
480
481 [[image:1656378224664-860.png]]
482
483
484 Each HX711 need to be calibrated before used. User need to do below two steps:
485
486 1. Zero calibration. Don’t put anything on load cell and run **AT+WEIGRE** to calibrate to Zero gram.
487 1. Adjust calibration factor (default value 400): Put a known weight thing on load cell and run **AT+WEIGAP** to adjust the Calibration Factor.
488
489 For example:
490
491
492 (% style="color:#4472c4" %)**AT+WEIGAP =403.0**
493
494 Response:  Weight is 401 g
495
496
497 Check the response of this command and adjust the value to match the real value for thing.
498
499
500 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:510px" %)
501 |=(% style="width: 97px;" %)**Size(bytes)**|=(% style="width: 44px;" %)**2**|=(% style="width: 172px;" %)**2**|=(% style="width: 51px;" %)**2**|=(% style="width: 206px;" %)**1**|=(% style="width: 72px;" %)**2**|=(% style="width: 81px;" %)**2**
502 |(% style="width:97px" %)**Value**|(% style="width:44px" %)[[BAT>>||anchor="H2.4.1BatteryInfo"]]|(% style="width:172px" %)(((
503 [[Temperature(DS18B20)>>||anchor="H2.4.2Temperature28DS18B2029"]]
504 )))|(% 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
505
506 [[image:1656378323863-824.png]]
507
508
509
510 === 2.3.6 MOD~=6(Counting Mode, Since firmware v1.6.5) ===
511
512 (((
513 (((
514 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.
515 )))
516 )))
517
518 (((
519 (((
520 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.
521 )))
522 )))
523
524
525 [[image:1656378351863-572.png]]
526
527 **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.
528
529 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:510px" %)
530 |=(% style="width: 97px;" %)**Size(bytes)**|=(% style="width: 44px;" %)**2**|=(% style="width: 172px;" %)**2**|=(% style="width: 51px;" %)**2**|=(% style="width: 206px;" %)**1**|=(% style="width: 72px;" %)**4**
531 |(% style="width:97px" %)**Value**|(% style="width:44px" %)[[BAT>>||anchor="H2.4.1BatteryInfo"]]|(% style="width:172px" %)(((
532 [[Temperature(DS18B20)>>||anchor="H2.4.2Temperature28DS18B2029"]]
533 )))|(% style="width:51px" %)[[ADC>>||anchor="H2.4.4AnalogueDigitalConverter28ADC29"]]|(% style="width:206px" %)[[Digital in>>||anchor="H2.4.3DigitalInput"]]|(% style="width:72px" %)Count
534
535 [[image:1656378441509-171.png]]
536
537
538
539 === 2.3.7 ​Decode payload in The Things Network ===
540
541 While using TTN V3 network, you can add the payload format to decode the payload.
542
543
544 [[image:1656378466788-734.png]]
545
546
547 (((
548 The payload decoder function for TTN V3 are here:
549 )))
550
551 (((
552 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/]]
553 )))
554
555
556
557 == 2.4 Payload Explanation and Sensor Interface ==
558
559 === 2.4.1 Battery Info ===
560
561 Check the battery voltage for LSN50.
562
563 Ex1: 0x0B45 = 2885mV
564
565 Ex2: 0x0B49 = 2889mV
566
567
568
569 === 2.4.2 Temperature (DS18B20) ===
570
571 If there is a DS18B20 connected to PB3 pin. The temperature will be uploaded in the payload.
572
573 More DS18B20 can check the [[3 DS18B20 mode>>||anchor="2.3.4MOD3D4283xDS18B2029"]]
574
575
576 (% style="color:#4472c4" %)**Connection:**
577
578 [[image:1656378573379-646.png]]
579
580
581 (% style="color:#4472c4" %)**Example**:
582
583 If payload is: 0105H:  (0105 & FC00 == 0), temp = 0105H /10 = 26.1 degree
584
585 If payload is: FF3FH :  (FF3F & FC00 == 1) , temp = (FF3FH - 65536)/10 = -19.3 degrees.
586
587
588
589 === 2.4.3 Digital Input ===
590
591 The digital input for pin PA12,
592
593 * When PA12 is high, the bit 1 of payload byte 6 is 1.
594 * When PA12 is low, the bit 1 of payload byte 6 is 0.
595
596
597
598
599
600 === 2.4.4 Analogue Digital Converter (ADC) ===
601
602 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.
603
604
605 The ADC monitors the voltage on the PA0 line, in mV.
606
607 Ex: 0x021F = 543mv,
608
609
610 (% style="color:#4472c4" %)** Example1:** (%%) Reading an Oil Sensor (Read a resistance value):
611
612 [[image:image-20220627172409-28.png]]
613
614
615 In the LSN50, we can use PB4 and PA0 pin to calculate the resistance for the oil sensor.
616
617
618 (% style="color:blue" %)**Steps:**
619
620 1. Solder a 10K resistor between PA0 and VCC.
621 1. Screw oil sensor's two pins to PA0 and PB4.
622
623
624
625
626 The equipment circuit is as below:
627
628 [[image:image-20220627172500-29.png]]
629
630
631 According to above diagram:
632
633 [[image:image-20220628091043-4.png]]
634
635 So
636
637 [[image:image-20220628091344-6.png]]
638
639
640 [[image:image-20220628091621-8.png]] is the reading of ADC. So if ADC=0x05DC=0.9 v and VCC (BAT) is 2.9v
641
642
643 The [[image:image-20220628091702-9.png]] 4.5K ohm
644
645 Since the Bouy is linear resistance from 10 ~~ 70cm.
646
647
648 The position of Bouy is [[image:image-20220628091824-10.png]] , from the bottom of Bouy.
649
650
651
652 === 2.4.5 Digital Interrupt ===
653
654 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.
655
656
657 (((
658 (% style="color:#4472c4" %)** Interrupt connection method:**
659 )))
660
661 [[image:1656379178634-321.png]]
662
663
664 (% style="color:#4472c4" %)** Example to use with door sensor :**(%%)
665 (% style="color:#4472c4" %)(Requires firmware > 1.5.1)
666
667
668 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.
669
670 [[image:1656379210849-860.png]]
671
672
673 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.
674
675
676 (% style="color:#4472c4" %)** Below is the installation example:**
677
678 Fix one piece of the magnetic sensor to the door and connect the two pins to LSN50 as follows:
679
680 * One pin to LSN50's PB14 pin
681 * The other pin to LSN50's VCC pin
682
683 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.
684
685
686 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.
687
688 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.
689
690
691 [[image:1656379283019-229.png]]
692
693
694 (((
695 The above photos shows the two parts of the magnetic switch fitted to a door.
696 )))
697
698
699 (((
700 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.
701 )))
702
703
704 The command is:
705
706 (% 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]]**. **)
707
708
709 Below shows some screen captures in TTN V3:
710
711
712 [[image:1656379339508-835.png]]
713
714
715 In MOD=1, user can use byte 6 to see the status for door open or close. TTN V3 decoder is as below:
716
717 (% style="background-color:#dcdcdc" %)door= (bytes[6] & 0x80)? "CLOSE":"OPEN";
718
719
720 (% style="color:red" %)**Notice for hardware version LSN50 v1 < v1.3**(%%) (produced before 2018-Nov).
721
722 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.
723
724 [[image:1656379563303-771.png]]
725
726
727
728 === 2.4.6 I2C Interface (SHT20) ===
729
730 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.
731
732 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).**
733
734 Below is the connection to SHT20.
735
736
737 [[image:1656379593307-549.png]]
738
739
740 The device will be able to get the I2C sensor data now and upload to IoT Server.
741
742
743 [[image:1656379664142-345.png]]
744
745 Convert the read byte to decimal and divide it by ten.
746
747
748 (% style="color:blue" %)**Example:**
749
750 Temperature:  Read:0116(H) = 278(D)  Value:  278 /10=27.8℃;
751
752 Humidity:    Read:0248(H)=584(D)  Value:  584 / 10=58.4, So 58.4%
753
754
755 If you want to use other I2C device, please refer the SHT20 part source code as reference.
756
757
758
759 === 2.4.7 ​Distance Reading ===
760
761 Refer [[Ultrasonic Sensor section>>||anchor="H2.4.8UltrasonicSensor"]].
762
763
764 === 2.4.8 Ultrasonic Sensor ===
765
766 (((
767 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]]
768 )))
769
770
771 (((
772 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.
773 )))
774
775
776 (((
777 The picture below shows the connection:
778 )))
779
780 [[image:1656380061365-178.png]]
781
782
783
784 Connect to the LSN50 and run (% style="color:blue" %)**AT+MOD=2**(%%) to switch to ultrasonic mode (ULT).
785
786 The ultrasonic sensor uses the 8^^th^^ and 9^^th^^ byte for the measurement value.
787
788
789 (% style="color:blue" %)**Example:**
790
791 Distance:  Read:0C2D(Hex) = 3117(D)  Value:  3117 mm=311.7 cm
792
793
794 [[image:1656384895430-327.png]]
795
796
797 [[image:1656384913616-455.png]]
798
799
800 You can see the serial output in ULT mode as below:
801
802 [[image:1656384939855-223.png]]
803
804
805 In TTN V3 server:
806
807
808 [[image:1656384961830-307.png]]
809
810
811 [[image:1656384973646-598.png]]
812
813
814 === 2.4.9 +5V Output ===
815
816 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. 
817
818
819 Since firmware (% style="color:red" %)**v1.6.3**(%%), The 5V output time can be controlled by AT Command.
820
821 (% style="color:#4472c4" %)**AT+5VT=1000**
822
823 Means set 5V valid time to have 1000ms. So the real 5V output will actually have 1000ms + sampling time for other sensors.
824
825
826 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.
827
828
829
830 === 2.4.10 Weigh Sensor HX711 ===
831
832 Since v1.6.2 firmware, LSN50 support Weigh Sensor HX711.
833
834
835 === 2.4.11  BH1750 Illumination Sensor ===
836
837 Since v1.7.0 firmware, MOD=1 support this sensor. The sensor value is in the 8^^th^^ and 9^^th^^ bytes.
838
839
840 [[image:image-20220628110012-11.jpeg]]
841
842
843 [[image:image-20220628110012-12.png]]
844
845
846
847 === 2.4.12 Working MOD ===
848
849 The working MOD info is contained in the Digital in & Digital Interrupt byte (7^^th^^ Byte).
850
851 User can use the 3^^rd^^ ~~ 7^^th^^  bit of this byte to see the working mod:
852
853 Case 7^^th^^ Byte >> 2 & 0x1f:
854
855 * 0: MOD1
856 * 1: MOD2
857 * 2: MOD3
858 * 3: MOD4
859 * 4:MOD5
860 * 5:MOD6
861
862
863
864
865
866 == 2.5 Configure LSN50 via AT or Downlink ==
867
868 User can configure LSN50 via [[AT Commands >>||anchor="H3.A0UsingtheATCommands"]]or LoRaWAN Downlink Commands
869
870 There are two kinds of Commands:
871
872 * (% 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]]
873
874 * (% style="color:#4472c4" %)**Sensor Related Commands**(%%): These commands are special designed for LSN50.  User can see these commands below:
875
876
877 === 2.5.1 Common Commands: ===
878
879 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]]
880
881
882 === 2.5.2 Sensor related commands: ===
883
884
885 (% style="color:#4472c4" %)**Set work mode:**
886
887 * (% style="color:#037691" %)**AT Command:**
888
889 (((
890 (% 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)
891 )))
892
893 (((
894 (% style="background-color:#dcdcdc" %)**AT+MOD=?** (%%) ~/~/  Get current work MOD
895 )))
896
897
898 * (% style="color:#037691" %)**Downlink Payload:**
899
900 (% style="background-color:#dcdcdc" %)**0x0A aa** (%%) ~/~/ Same as AT+MOD=aa
901
902
903
904 (% style="color:#4472c4" %)**Set the trigger interrupt mode:**
905
906 * (% style="color:#037691" %)**AT Command:**
907
908 (((
909 (% style="background-color:#dcdcdc" %)**AT+INTMOD=2**  (%%) ~/~/ Set INTMOD =2. (0:Disable,1:falling or rising,2:falling,3:rising)
910 )))
911
912 (((
913 (% style="background-color:#dcdcdc" %)**AT+INTMOD=?**  (%%) ~/~/  Get current INTMOD
914 )))
915
916
917 * (% style="color:#037691" %)**Downlink Payload:**
918
919 (% style="background-color:#dcdcdc" %)**0x06 000003**      (%%) ~/~/ Set AT+INTMOD=3
920
921
922
923 (% style="color:#4472c4" %)**Set the 5V power open time during sampling:**
924
925 * (% style="color:#037691" %)**AT Command:**
926
927 (((
928 (% style="background-color:#dcdcdc" %)**AT+5VT=1000** (%%) ~/~/ Set 5v open time to 1000ms
929 )))
930
931 (((
932 (% style="background-color:#dcdcdc" %)**AT+5VT=?**    (%%) ~/~/  Check current 5v open duration
933 )))
934
935
936 * (% style="color:#037691" %)**Downlink Payload:**
937
938 (% style="background-color:#dcdcdc" %)**0x07 aa bb**    (%%) ~/~/ Equal AT+5VT=0x(aa bb)
939
940
941
942 (% style="color:#4472c4" %)**Set the weight to 0g (Zero Calibration)**
943
944 * (% style="color:#037691" %)**AT Command:**
945
946 (% style="background-color:#dcdcdc" %)**AT+WEIGRE** ** **(%%)** **~/~/ Set the weight to 0g
947
948
949 * (% style="color:#037691" %)**Downlink Payload:**
950
951 (% style="background-color:#dcdcdc" %)**0x08 01** (%%) ~/~/ Set the weight to 0g
952
953
954
955 (% style="color:#4472c4" %)**Get or Set the GAP Value (calibrate factor) of measurement**
956
957 * (% style="color:#037691" %)**AT Command:**
958
959 (((
960 (% style="background-color:#dcdcdc" %)**AT+WEIGAP=403.0**  (%%) ~/~/ Set GAP Value =403.0 (response: Weight: xx g)
961 )))
962
963 (((
964 (% style="background-color:#dcdcdc" %)**AT+WEIGAP=?**  (%%) ~/~/  Get current GAP Value
965 )))
966
967
968 * (% style="color:#037691" %)**Downlink Payload:**
969
970 (% style="background-color:#dcdcdc" %)**0x08 02 aa bb** (%%) ~/~/ Equal to AT+WEIGAP=0x(aa bb)/10
971
972
973
974 == 2.6 Show Data in Datacake IoT Server ==
975
976 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:
977
978
979 (% style="color:blue" %)**Step 1**(%%)**:** Be sure that your device is programmed and properly connected to the network at this time.
980
981 (% 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:
982
983
984 [[image:1656385623971-339.png]]
985
986
987 [[image:1656385646347-395.png]]
988
989
990 [[image:1656385662459-942.png]]
991
992
993 (% style="color:blue" %)**Step 3**(%%)**: **Create an account or log in Datacake.
994
995 (% style="color:blue" %)**Step 4**(%%)**:** Search the LSN50 and add DevEUI.
996
997 [[image:1656385688973-317.png]]
998
999
1000
1001 == 2.7 ​Firmware Change Log ==
1002
1003
1004 **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/]]
1005
1006 **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/]]
1007
1008
1009 == 2.8 Use VDD or +5V to Power External Sensor ==
1010
1011 (((
1012 User can use VDD or +5V to power external sensor.
1013 )))
1014
1015 (((
1016 (% style="color:red" %)**Note:**
1017 )))
1018
1019 1. (((
1020 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.
1021 )))
1022 1. (((
1023 +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"]].
1024 )))
1025
1026 (((
1027 (% style="color:red" %)Note: Always test the actually current pass by the JP2 jumper when connect to a new type of sensor.
1028 )))
1029
1030
1031
1032
1033
1034
1035 == 2.9  Battery Analysis ==
1036
1037 === 2.9.1  Battery Type ===
1038
1039 (((
1040 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.
1041 )))
1042
1043 (((
1044 The battery is designed to last for more than 5 years for the LSN50.
1045 )))
1046
1047
1048 (((
1049 The battery related documents as below:
1050 )))
1051
1052 * [[Battery Dimension>>https://www.dragino.com/downloads/index.php?dir=datasheet/Battery/]],
1053 * [[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/]]
1054 * [[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/]]
1055
1056 [[image:image-20220627175349-30.png]]
1057
1058
1059 === 2.9.2 ​Power consumption Analyze ===
1060
1061 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.
1062
1063 A victor VC86E is recommended.
1064
1065 [[image:1656323400306-359.png]]
1066
1067
1068 In a minimum system with DS18B20 and Oil Sensor and default firmware, the power consumption includes:
1069
1070
1071 ~1. Deep Sleep (Stop mode) for STM32. ~~ 5uA
1072
1073 2. Sampling current while reading DS18B20 and Oil Sensor
1074
1075 * Oil Sensor sampling time: 200us, current: 0.3mA
1076 * DS18B20 sampling time: 750ms, current: 0.64mA
1077 * Above power should add 8mA CPU power in working mode.
1078
1079 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]].
1080
1081
1082 In a typical LoRaWAN data transmit. The energy profile is as below:
1083
1084
1085 [[image:1656323450362-299.png]]
1086
1087 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:
1088
1089 1. Lower power LoRa radio. Device has a good signal to gateway
1090 1. Higher power LoRa radio. Device has a poor signal to gateway
1091
1092 (% style="color:blue" %)**Low Power Case**:
1093
1094 * Radio Parameter: SF7, 125kHz, 20dbm
1095 * Transmit interval: 15 minutes.
1096 * Payload: 8 Bytes.
1097
1098 (% style="color:blue" %)**High Power Case**:
1099
1100 * Radio Parameter: SF10, 125kHz, 20dbm
1101 * Transmit interval: 15 minutes.
1102 * Payload: 8 Bytes.
1103
1104 To simplify the calculation, we can:
1105
1106 * Combine oil sensor and DS18B20 sampling energy together to (% style="color:#4472c4" %)**751ms@8.64ma**
1107
1108 * Combine the two RX windows together.
1109
1110 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.
1111
1112
1113 [[image:1656323531520-949.png]]
1114
1115 [[image:1656323549994-233.png]]
1116
1117
1118 (% style="color:red" %)**Note: Ignore the 18 year result, because the battery has a max 2% discharge per year.**
1119
1120
1121 === 2.9.3 ​Battery Note ===
1122
1123 (((
1124 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.
1125 )))
1126
1127
1128 === 2.9.4 Replace the battery ===
1129
1130 (((
1131 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.
1132 )))
1133
1134 (((
1135 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).
1136 )))
1137
1138
1139
1140 = 3.  Using the AT Commands =
1141
1142 == 3.1  Access AT Commands ==
1143
1144 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.
1145
1146
1147 (% style="color:#4472c4" %)**LSN50 v1 UART connection photo**
1148
1149 [[image:image-20220627165424-24.png||height="495" width="486"]]
1150
1151
1152 (% style="color:#4472c4" %)**LSN50 v2 UART connection photo**
1153
1154 [[image:image-20220627165424-25.png||height="437" width="894"]]
1155
1156
1157 (((
1158 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:
1159 )))
1160
1161
1162 [[image:image-20220627165531-26.png||height="624" width="893"]](% style="display:none" %)
1163
1164
1165
1166 == 3.2  Common AT Command Sequence ==
1167
1168
1169 === 3.2.1  Multi-channel ABP mode (Use with SX1301/LG308) ===
1170
1171 (% style="color:#037691" %)**If device has not joined network via OTAA:**
1172
1173 (% style="background-color:#dcdcdc" %)AT+FDR
1174
1175 (% style="background-color:#dcdcdc" %)AT+NJM=0
1176
1177 (% style="background-color:#dcdcdc" %)ATZ
1178
1179
1180 (% style="color:#037691" %)**If device already joined network:**
1181
1182 (% style="background-color:#dcdcdc" %)AT+NJM=0
1183
1184 (% style="background-color:#dcdcdc" %)ATZ
1185
1186
1187 === 3.2.2  Single-channel ABP mode (Use with LG01/LG02) ===
1188
1189 See [[Sect 6.7>>||anchor="H6.7A0HowtoconfiguretheEUIkeysinLSN503F"]]
1190
1191
1192
1193 = 4.  Upload Firmware =
1194
1195 (% style="color:red" %)**Notes**:
1196
1197 * 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.
1198 * Always run AT+FDR to reset parameters to factory default after an update image.
1199 If the update is from image >= v1.3 to another image version >=v1.3, then the keys will be kept after running AT+FDR.
1200 Otherwise (e.g. from v1.2 to v1.3), AT+FDR may erase the keys.
1201
1202 == 4.1  Upload Firmware via Serial Port ==
1203
1204 The LSN50's AT Command port can be used for firmware upgrade. The hardware connection for upgrade firmware is as below:
1205
1206
1207 [[image:image-20220627163506-18.png||height="426" width="418"]]
1208
1209
1210 (% 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]].
1211
1212 (% style="color:blue" %)**Step2**(%%)**:** Download the [[LSN50 Image files>>url:https://github.com/dragino/LoRa_STM32/tree/master/LSN50.hex]].
1213
1214 (% style="color:blue" %)**Step3**(%%)**: **Open flashloader; choose the correct COM port to update
1215
1216 [[image:image-20220627163821-19.png]]
1217
1218
1219 [[image:image-20220627163930-20.png||height="450" width="751"]]
1220
1221
1222 [[image:image-20220627164030-21.png||height="459" width="750"]]
1223
1224
1225 (((
1226 (% style="color:blue" %)**Step4**(%%)**: **Switch SW1 back to flash state and push the RESET button.
1227 )))
1228
1229 (((
1230 The LSN50 will then run the new firmware.
1231 )))
1232
1233
1234 == 4.2  Upload Firmware via ST-Link V2 ==
1235
1236 You can use ST-LINK to upgrade firmware into LSN50. The hardware connection for upgrade firmware is as below:
1237
1238 [[image:1656319349131-664.png]]
1239
1240 (% style="color:blue" %)**Connection:**
1241
1242 * (% style="background-color:yellow" %)**ST-LINK v2 GND  <~-~-> LSN50 GND**
1243 * (% style="background-color:yellow" %)**ST-LINK v2 SWCLK <~-~-> LSN50 PA14**
1244 * (% style="background-color:yellow" %)**ST-LINK v2 SWDIO <~-~-> LSN50 PA13**
1245 * (% style="background-color:yellow" %)**ST-LINK v2 RST  <~-~->  LSN50 NRST**
1246
1247 (% 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]]
1248
1249 (% style="color:blue" %)**Step2**(%%): Download the [[LSN50 Image files>>url:https://github.com/dragino/LoRa_STM32/tree/master/LSN50.hex]].
1250
1251 (% style="color:blue" %)**Step3:**(%%)** **Open ST-LINK utility, (% style="color:blue" %)**file ~-~-> open file**(%%) to select the image to be upgraded.
1252
1253 (% style="color:blue" %)**Step4:**(%%)** **Click the “(% style="color:blue" %)**Program Verify**”(%%) button on ST-LINK.
1254
1255
1256 [[image:image-20220627164303-22.png]]
1257
1258
1259 (% 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.
1260
1261 (% 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.
1262
1263
1264 [[image:image-20220627164303-23.png]]
1265
1266
1267
1268 = 5.  Developer Guide =
1269
1270 * Software Source Code Download : [[https:~~/~~/github.com/dragino/LoRa_STM32/tree/master/STM32CubeExpansion_LRWAN>>https://github.com/dragino/LoRa_STM32/tree/master/STM32CubeExpansion_LRWAN]]
1271 * Hardware Source Code Download: [[https:~~/~~/github.com/dragino/Lora/tree/master/LSN50>>https://github.com/dragino/Lora/tree/master/LSN50]]
1272
1273 LSN50 is an open source project, developer can use compile their firmware for customized applications. User can get the source code from:
1274
1275 * Software Source Code: [[https:~~/~~/github.com/dragino/LoRa_STM32/tree/master/STM32CubeExpansion_LRWAN>>url:https://github.com/dragino/LoRa_STM32/tree/master/STM32CubeExpansion_LRWAN]]
1276 * Hardware Design files:  [[https:~~/~~/github.com/dragino/Lora/tree/master/LSN50>>url:https://github.com/dragino/Lora/tree/master/LSN50]]
1277 * 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/]]
1278
1279 Use Keil to open project file:
1280
1281 STM32CubeExpansion_LRWAN/Projects/Multi/Applications/LoRa/DRAGINO-LRWAN(AT)/MDK-ARM/STM32L072CZ-Nucleo/Lora.uvprojx
1282
1283
1284 In Keil, you can see what frequency band the code support.
1285
1286 [[image:image-20220627162417-15.png]]
1287
1288
1289 **~1. If you want to change frequency, modify the Preprocessor Symbols.**
1290
1291
1292 For example, change EU868 to US915
1293
1294 [[image:1656318662202-530.png]]
1295
1296
1297 **2. Compile and build**
1298
1299 [[image:image-20220627163212-17.png]]
1300
1301
1302
1303 = 6.  FAQ =
1304
1305 == 6.1  Why there is 433/868/915 version? ==
1306
1307 (((
1308 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.
1309 )))
1310
1311
1312 == 6.2 What is the frequency range of LT LoRa part? ? ==
1313
1314 Different LT version supports different frequency range, below is the table for the working frequency and recommend bands for each model:
1315
1316 [[image:image-20220627155456-9.png]]
1317
1318
1319
1320 == 6.3  How to change the LoRa Frequency Bands/Region? ==
1321
1322 You can follow the instructions for [[how to upgrade image>>||anchor="H2.7200BFirmwareChangeLog"]].
1323 When downloading the images, choose the required image file for download.
1324
1325
1326 == 6.4  Can I use Private LoRa protocol? ==
1327
1328 (((
1329 (((
1330 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.
1331 )))
1332
1333 (((
1334 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.
1335 )))
1336
1337
1338 )))
1339
1340 (% style="color:#4472c4" %)**LoRa Shield + UNO**:
1341
1342 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.
1343
1344
1345 Refs:
1346
1347 [[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]]
1348
1349 [[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]]
1350
1351
1352 Open the serial monitor to Arduino. The device acts as a LoRa Receiver and listen on the frequency 868.3Mhz by default.
1353
1354
1355 (% style="color:#4472c4" %)**LSN50**:
1356
1357 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
1358
1359 Compile it and Upload it to LSN50, the LSN50 will transfer on the frequency 868.3Mhz.
1360
1361 In the Arduino Console, it will see the received packets as below.
1362
1363
1364 [[image:image-20220627160116-10.png]]
1365
1366
1367 == 6.5  How to set up LSN50 to work in 8 channel mode ==
1368
1369 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.
1370
1371 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.
1372
1373
1374 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.
1375
1376 [[image:image-20220627160940-13.png]]
1377
1378
1379 When you use the TTN V3 network, the US915 frequency bands use are:
1380
1381 * 903.9 - SF7BW125 to SF10BW125
1382 * 904.1 - SF7BW125 to SF10BW125
1383 * 904.3 - SF7BW125 to SF10BW125
1384 * 904.5 - SF7BW125 to SF10BW125
1385 * 904.7 - SF7BW125 to SF10BW125
1386 * 904.9 - SF7BW125 to SF10BW125
1387 * 905.1 - SF7BW125 to SF10BW125
1388 * 905.3 - SF7BW125 to SF10BW125
1389 * 904.6 - SF8BW500
1390
1391 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:
1392
1393 (% style="color:blue" %)**AT+CHE=2**
1394
1395 (% style="color:blue" %)**ATZ**
1396
1397
1398 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.
1399
1400 The (% style="color:blue" %)**AU915**(%%) band is similar. Below are the AU915 Uplink Channels.
1401
1402 [[image:image-20220627161124-14.png]]
1403
1404
1405 == 6.6  How to set up LSN50 to work with Single Channel Gateway such as LG01/LG02? ==
1406
1407 In this case, users need to set LSN50 to work in ABP mode and transmit in only one frequency.
1408
1409 Assume we have a LG02 working in the frequency 868400000 now, below is the steps.
1410
1411
1412 (% 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.
1413
1414
1415 [[image:image-20220627160542-11.png]]
1416
1417
1418 (% 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.
1419
1420
1421 (% 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]].
1422
1423
1424 (% style="color:blue" %)**Step2:  **(%%)Run AT commands to make the LSN50 work in Single frequency and ABP mode. Below are the AT commands:
1425
1426
1427 (% style="background-color:#dcdcdc" %)AT+FDR(%%)  Reset Parameters to Factory Default, Keys Reserve
1428
1429 (% style="background-color:#dcdcdc" %)AT+NJM=0(%%)  Set to ABP mode
1430
1431 (% style="background-color:#dcdcdc" %)AT+ADR=0(%%)  Set the Adaptive Data Rate Off
1432
1433 (% style="background-color:#dcdcdc" %)AT+DR=5(%%)  Set Data Rate (Set AT+DR=3 for 915 band)
1434
1435 (% style="background-color:#dcdcdc" %)AT+TDC=300000(%%)  Set transmit interval to 5 minutes
1436
1437 (% style="background-color:#dcdcdc" %)AT+CHS=868400000(%%)  Set transmit frequency to 868.4Mhz
1438
1439 (% style="background-color:#dcdcdc" %)AT+DADDR=26 01 1A F1(%%)  Set Device Address to 26 01 1A F1
1440
1441 (% style="background-color:#dcdcdc" %)ATZ(%%)  Reset MCU
1442
1443
1444 As shown  below:
1445
1446 [[image:image-20220627160542-12.png]]
1447
1448
1449 == 6.7  How to configure the EUI keys in LSN50? ==
1450
1451 The early version of LSN50 firmware doesn't have pre-configured keys.
1452 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.
1453
1454 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]].
1455
1456
1457 = 7.  Trouble Shooting =
1458
1459 == 7.1  Connection problem when uploading firmware. ==
1460
1461 (% 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.
1462
1463
1464 (% style="color:green" %)**Checklist**:
1465
1466 ~1. Double check if follow up exactly the steps as manual.
1467
1468 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.
1469
1470 3. If you use Windows10 system. Please change the flash loader to run in Windows7 compatibility mode.
1471
1472
1473 [[image:image-20220627153421-8.png]]
1474
1475
1476 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.
1477
1478
1479 == 7.2  Why I can't join TTN V3 in US915 / AU915 bands? ==
1480
1481 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.
1482
1483
1484 == 7.3  AT Command input doesn't work ==
1485
1486 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.
1487
1488
1489
1490 = 8.  Order Info =
1491
1492 Part Number: (% style="color:blue" %)**LSN50-XX-YY  **(%%)**or  (% style="color:blue" %)LSN50-XX-YY-ZZ(%%)**
1493
1494 (% style="color:blue" %)**XX**(%%): The default frequency band
1495
1496 * (% style="color:red" %)**AS923 **(%%)**:** LoRaWAN AS923 band
1497 * (% style="color:red" %)**AU915 **(%%)**:** LoRaWAN AU915 band
1498 * (% style="color:red" %)**EU433 **(%%)**:** LoRaWAN EU433 band
1499 * (% style="color:red" %)**EU868 **(%%)**:** LoRaWAN EU868 band
1500 * (% style="color:red" %)**KR920 **(%%)**:** LoRaWAN KR920 band
1501 * (% style="color:red" %)**US915 **(%%)**:** LoRaWAN US915 band
1502 * (% style="color:red" %)**IN865 **(%%)**:**  LoRaWAN IN865 band
1503 * (% style="color:red" %)**CN470 **(%%)**:** LoRaWAN CN470 band
1504
1505 (% style="color:blue" %)**YY**(%%)**: **Hole Option
1506
1507 * (% style="color:red" %)**12**(%%): With M12 waterproof cable hole
1508 * (% style="color:red" %)**16**(%%): With M16 waterproof cable hole
1509 * (% style="color:red" %)**20**(%%): With M20 waterproof cable hole (LSN50 v2 doesn’t have this version)
1510 * (% style="color:red" %)**NH**(%%): No Hole
1511
1512 (% style="color:blue" %)**ZZ**(%%)**: **Battery Option ( Only valid for v2 model)
1513
1514 * (% style="color:red" %)**4**(%%): with 4000mAh battery
1515 * (% style="color:red" %)**8**(%%): with 8500mAg battery
1516
1517
1518
1519 = 9. ​ Packing Info =
1520
1521
1522 (% style="color:blue" %)**For LSN50**(%%)**:**
1523
1524 **Package Includes**:
1525
1526 * LSN50 LoRa Sensor Node x 1
1527
1528 **Dimension and weight**:
1529
1530 * Device Size: 8 x 6.5 x 5 cm
1531 * Device Weight: 137g
1532 * Package Size / pcs : 9 x 7 x 6cm
1533 * Weight / pcs : 160g
1534
1535 (% style="color:blue" %)**For LSN50 v2**(%%)**:**
1536
1537 **Package Includes**:
1538
1539 * LSN50 v2 LoRa Sensor Node x 1
1540 * External antenna x 1
1541 * Spring Antenna (evaluate purpose)
1542
1543 **Dimension and weight**:
1544
1545 * Device Size: 9.7 x 6.5 x 4.7 cm
1546 * Device Weight: 150g
1547 * Package Size / pcs : 14.0 x 8x 5 cm
1548 * Weight / pcs : 180g
1549
1550
1551
1552 = 10.  ​Support =
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 * 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]].
1556
1557
1558
1559 = 11.  References =
1560
1561 * [[Product Page>>url:http://www.dragino.com/products/lora/item/128-lsn50.html]]
1562 * [[Data Sheet>>url:http://www.dragino.com/downloads/index.php?dir=datasheet/EN/&file=Datasheet_LoRaSensorNode.pdf]]
1563 * [[Image Download>>url:https://github.com/dragino/LoRa_STM32/tree/master/LSN50.hex]]
1564 * [[Mechanical Drawing>>http://www.dragino.com/downloads/index.php?dir=LSN50-LoRaST/Mechanical_Drawing/]]
1565
1566