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 (% _mstaria-label="285168" 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 = 1.  Introduction =
34
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 * or
85 ** Band 2 (LF): 410 ~~ 528 Mhz
86 * 168 dB maximum link budget.
87 * +20 dBm - 100 mW constant RF output vs.
88 * +14 dBm high efficiency PA.
89 * Programmable bit rate up to 300 kbps.
90 * High sensitivity: down to -148 dBm.
91 * Bullet-proof front end: IIP3 = -12.5 dBm.
92 * Excellent blocking immunity.
93 * Low RX current of 10.3 mA, 200 nA register retention.
94 * Fully integrated synthesizer with a resolution of 61 Hz .
95 * FSK, GFSK, MSK, GMSK, LoRaTM and OOK modulation.
96 * Built-in bit synchronizer for clock recovery.
97 * Preamble detection.
98 * 127 dB Dynamic Range RSSI.
99 * Automatic RF Sense and CAD with ultra-fast AFC.
100 * Packet engine up to 256 bytes with CRC.
101 * LoRaWAN 1.0.2 Specification
102
103 (% style="color:#037691" %)**Battery:**
104
105 * Li/SOCI2 un-chargeable battery
106 * Capacity: 4000mAh
107 * Self Discharge: <1% / Year @ 25°C
108 * Max continuously current: 130mA
109 * Max boost current: 2A, 1 second
110
111 (% style="color:#037691" %)**Power Consumption**
112
113 * STOP Mode: 2.7uA @ 3.3v
114 * LoRa Transmit Mode: 125mA @ 20dBm 44mA @ 14dBm
115
116
117
118 == ​1.3  Features ==
119
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/MA869
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
142
143 == 1.4 ​ Applications ==
144
145
146 * Smart Cities
147 * Smart Factory
148 * Smart Metering
149 * Smart Agriculture
150 * Smart Buildings & Home Automation
151 * Logistics and Supply Chain Management
152
153
154
155 == 1.5  Pin Definitions and Switch ==
156
157
158 (% class="wikigeneratedid" %)
159 [[image:1656295519542-152.png||height="413" width="728"]]
160
161
162 (% class="wikigeneratedid" %)
163 [[image:1656295532863-613.png||height="371" width="721"]]
164
165
166 (% class="wikigeneratedid" %)
167 [[image:image-20220627101527-1.png]]
168
169
170
171 === 1.5.1 Jumper JP2 ===
172
173
174 Power on Device when put this jumper.
175
176
177
178 === 1.5.2 BOOT MODE / SW1 ===
179
180
181 (((
182 ~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.
183 )))
184
185 (((
186 2. Flash:  work mode, device starts to work and send out console output for further debug
187 )))
188
189
190
191 === 1.5.3 Reset Button ===
192
193
194 Press to reboot the device.
195
196
197
198 === 1.5.4 LED ===
199
200
201 It will flash:
202
203 ~1. When boot the device in flash mode
204
205 2. Send an uplink packet
206
207
208
209 === 1.6  Hardware Change log ===
210
211
212 (% style="color:red" %)**Note: Hardware version is marked in the PCB.**
213
214
215 (% style="color:#4472c4" %)**LSN50 v2.1:**
216
217 1. Change R14 to 1M ohm
218 1. Change R3, R4 to 4.7Kohm. So no need to modify them for 3 DS18B20 connection.
219 1. Add ESD to each I/O
220
221 (% style="color:#4472c4" %)**LSN50 v2.0:**
222
223 * Change to a new enclosure. Improve with external antenna, IP68, ear hook.
224
225 (% style="color:#4472c4" %)**LSN50 v1.3**:
226
227 * Add P-MOS to control 5V output
228
229 (% style="color:#4472c4" %)**LSN50 v1.2**:
230
231 * Add LED. Turn on for every LoRa transmit
232 * Add pin PA4, PB13, NRST
233 * Add 5V Output, on/off control by PB5(Low to Enable, High to Disable)
234
235
236
237 == 1.7  Hole Option ==
238
239
240 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:
241
242 [[image:image-20220627104757-1.png]]
243
244
245 [[image:1656298089706-973.png]]
246
247
248
249 = 2.  Use LSN50 with LoRaWAN firmware =
250
251
252 == 2.1  How it works ==
253
254
255 (((
256 (((
257 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.
258 )))
259
260 (((
261
262 )))
263
264 (((
265 The diagram below shows the working flow in default firmware (ver 1.8.0): 
266
267
268 )))
269
270 [[image:image-20220823174408-9.png||height="890" width="657"]]
271
272
273
274 (((
275 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.
276 )))
277 )))
278
279
280
281 == 2.2  ​Quick guide to connect to LoRaWAN server (OTAA) ==
282
283
284 (((
285 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. 
286
287
288 (% 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]]
289
290
291 )))
292
293 (% _mstmutation="1" title="Click and drag to resize" %)​(%%)The LG308 is already set to connected to [[TTN V3 network >>url:https://www.thethingsnetwork.org/||_mstmutation="1"]], so what we need to now is configure the TTN V3 server.(% _mstaria-label="548795" 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" %)​(% _mstaria-label="548795" 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" %)​(%%)​
294
295 (((
296
297
298 (% style="color:blue" %)**Step 1**(%%): Create a device in TTN with the OTAA keys from LSN50.
299
300 Each LSN50is shipped with a sticker with the default device EUI as below:
301 )))
302
303 (((
304
305 )))
306
307 (% _mstaria-label="1059162" 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" %)​(% _mstaria-label="548795" 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"]](% _mstaria-label="548795" 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"]](% _mstaria-label="548795" 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" %)​(% _mstaria-label="548795" 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"]](% _mstaria-label="548795" 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"]](% _mstaria-label="548795" 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" %)​(% _mstaria-label="548795" 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" %)​(% _mstaria-label="548795" 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" %)​(%%)​
308
309
310 (((
311 (((
312 You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:
313 )))
314
315 (((
316 **Register the device:**
317 )))
318 )))
319
320 (% _mstaria-label="548795" 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"]](% _mstaria-label="548795" 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"]](% _mstaria-label="548795" 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" %)​(% _mstaria-label="795587" 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"]](%%)​(% _mstaria-label="548795" 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"]](% _mstaria-label="548795" 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"]](% _mstaria-label="548795" 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" %)​(% _mstaria-label="548795" 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"]](% _mstaria-label="548795" 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"]](% _mstaria-label="548795" 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" %)​​
321
322 (% _mstaria-label="548795" 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"]](% _mstaria-label="548795" 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"]](% _mstaria-label="548795" 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" %)​
323
324
325 **Add APP EUI and DEV EUI:**
326
327
328 (% _mstaria-label="1002404" 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" %)​
329
330
331
332 **Add APP EUI in the application:**
333
334
335 (% _mstaria-label="1002768" 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" %)​
336
337
338 **Add APP KEY**
339
340 (% _mstaria-label="1003132" 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" %)​
341
342 (% _mstaria-label="548795" 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"]](% _mstaria-label="548795" 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"]](% _mstaria-label="548795" 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" %)​(% _mstaria-label="548795" 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"]](% _mstaria-label="548795" 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"]](% _mstaria-label="548795" 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" %)​
343
344 (% _mstaria-label="548795" 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"]](% _mstaria-label="548795" 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"]](% _mstaria-label="548795" 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" %)​(% _mstaria-label="548795" 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" %)​(% _mstaria-label="548795" 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" %)​(%%)​
345
346 (% style="color:blue" %)**Step 2**(%%)**:** Power on LSN50
347
348
349 Put a Jumper on JP2 to power on the device.(% style="display:none" %)
350
351 [[image:image-20220627145643-5.png]](% style="display:none" %)
352
353 (% style="display:none" %)
354
355
356 (% style="display:none" %) (%%)
357
358 **For LSn50v2:**
359
360 [[image:1656313034748-905.png]](% style="display:none" %)
361
362
363 (% _mstaria-label="548795" 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"]](% _mstaria-label="548795" 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"]](% _mstaria-label="548795" 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" %)​(%%)​(% _mstaria-label="548795" 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"]](% _mstaria-label="548795" 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"]](% _mstaria-label="548795" 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" %)​(% _mstaria-label="548795" 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" %)​(% _mstaria-label="548795" 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" %)​(%%)​
364
365 (((
366 (((
367 (% 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.
368
369
370 )))
371 )))
372
373 (% _mstaria-label="548795" 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"]](% _mstaria-label="548795" 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"]](% _mstaria-label="548795" 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"]]
374
375 ​(% _mstaria-label="548795" 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"]](% _mstaria-label="548795" 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"]](% _mstaria-label="548795" 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" %)​(% _mstaria-label="548795" 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"]](% _mstaria-label="548795" 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"]](% _mstaria-label="548795" 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" %)​​
376
377
378 == 2.3  ​Working Mode & Uplink Payload ==
379
380
381 (((
382 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.
383 )))
384
385 (((
386 For example:
387 )))
388
389 (((
390 (% _mstmutation="1" 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.
391 )))
392
393 (((
394
395 )))
396
397 (((
398 (% style="color:red" %)**NOTE:**
399 )))
400
401 (((
402 ~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.
403
404 2. All modes share the same Payload Explanation from HERE.
405
406 3. By default, the device will send an uplink message every 5 minutes.
407 )))
408
409
410
411 === 2.3.1  MOD~=1 (Default Mode) ===
412
413
414 (((
415 In this mode, uplink payload includes in total 11 bytes. Uplink packets use FPORT=2.
416
417
418 [[image:image-20220627171207-27.png]]
419
420
421 [[image:image-20220627150949-6.png]]
422
423
424 )))
425
426
427 === 2.3.2 MOD~=2 (Distance Mode) ===
428
429
430 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.
431
432 [[image:image-20220627180835-31.png]]
433
434
435 [[image:1656324539647-568.png]]
436
437
438
439 (% style="color:red" %)**Connection of LIDAR-Lite V3HP:**
440
441
442 [[image:1656324581381-162.png]]
443
444
445
446 (% style="color:red" %)**Connection to Ultrasonic Sensor:**
447
448
449 [[image:1656324598488-204.png]]
450
451
452
453 For the connection to TF-Mini or TF-Luna , MOD2 payload is as below:
454
455
456 [[image:image-20220628083801-1.png]]
457
458
459 [[image:1656376779088-686.png]]
460
461
462
463 (% style="color:red" %)**Connection to [[TF-Mini plus>>url:http://en.benewake.com/product/detail/5c345cd0e5b3a844c472329b.html]] LiDAR(UART version):**
464
465
466 Need to remove R3 and R4 resistors to get low power. Since firmware v1.7.0
467
468
469 [[image:1656376795715-436.png]]
470
471
472
473 (% style="color:red" %)**Connection to [[TF-Luna>>url:http://en.benewake.com/product/detail/5e1c1fd04d839408076b6255.html]] LiDAR (UART version):**
474
475
476 Need to remove R3 and R4 resistors to get low power. Since firmware v1.7.0
477
478
479 [[image:1656376865561-355.png]]
480
481
482 (((
483 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.
484 )))
485
486
487
488 === 2.3.3 MOD~=3 (3 ADC + I2C) ===
489
490
491 This mode has total 12 bytes. Include 3 x ADC + 1x I2C
492
493 [[image:image-20220628085009-2.png]]
494
495
496 [[image:1656377431497-975.png]]
497
498
499
500 === 2.3.4 MOD~=4 (3 x DS18B20) ===
501
502
503 This mode is supported in firmware version since v1.6.1. Software set to AT+MOD=4
504
505 Hardware connection is as below,
506
507 (% style="color:red" %)**( Note:**
508
509 * 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.
510 * In hardware version v2.1 no need to change R3 , R4, by default, they are 4.7k ohm already.
511
512 See [[here>>||anchor="H1.6A0HardwareChangelog" _mstmutation="1"]] for hardware changelog. (% style="color:red" %)**) **
513
514 [[image:1656377461619-156.png]]
515
516
517 This mode has total 11 bytes. As shown below:
518
519 [[image:image-20220628085248-3.png]]
520
521
522 [[image:1656377606181-607.png]]
523
524
525
526 === 2.3.5 MOD~=5(Weight Measurement by HX711) ===
527
528
529 (((
530 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.
531
532
533 )))
534
535 [[image:1656378224664-860.png]]
536
537
538 Each HX711 need to be calibrated before used. User need to do below two steps:
539
540 1. Zero calibration. Don't put anything on load cell and run **AT+WEIGRE** to calibrate to Zero gram.
541 1. Adjust calibration factor (default value 400): Put a known weight thing on load cell and run **AT+WEIGAP** to adjust the Calibration Factor.
542 1. (((
543 Remove the limit of plus or minus 5Kg in mode 5, and expand from 2 bytes to 4 bytes, the unit is g.(Since v1.8.0)
544 )))
545
546 For example:
547
548 (% style="color:#4472c4" %)**AT+WEIGAP =403.0**
549
550 Response:  Weight is 401 g
551
552
553 Check the response of this command and adjust the value to match the real value for thing.
554
555 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:480px" %)
556 |=(% style="width: 60px;" %)(((
557 **Size(bytes)**
558 )))|=(% style="width: 30px;" %)**2**|=(% style="width: 120px;" %)**2**|=(% style="width: 60px;" %)**2**|=(% style="width: 160px;" %)**1**|=(% style="width: 40px;" %)**4**
559 |(% style="width:97px" %)**Value**|(% style="width:46px" %)Bat|(% style="width:123px" %)Temperature(DS18B20)|(% style="width:108px" %)ADC|(% style="width:133px" %)Digital Input and Digitak Interrupt|(% style="width:159px" %)Weight
560
561 [[image:image-20220820120036-2.png||height="469" width="1003"]]
562
563
564
565 === 2.3.6 MOD~=6 (Counting Mode, Since firmware v1.6.5) ===
566
567
568 (((
569 (((
570 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.
571 )))
572 )))
573
574 (((
575 (((
576 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.
577 )))
578 )))
579
580
581 [[image:1656378351863-572.png]]
582
583
584 (((
585 (% 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.
586 )))
587
588 (((
589
590 )))
591
592 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:410px" %)
593 |=(% 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**
594 |(% style="width:80px" %)**Value**|(% style="width:44px" %)[[BAT>>||anchor="H2.4.1BatteryInfo"]]|(% style="width:172px" %)(((
595 [[Temperature(DS18B20)>>||anchor="H2.4.2Temperature28DS18B2029"]]
596 )))|(% style="width:51px" %)[[ADC>>||anchor="H2.4.4AnalogueDigitalConverter28ADC29"]]|(% style="width:206px" %)[[Digital in>>||anchor="H2.4.3DigitalInput"]]|(% style="width:72px" %)Count
597
598 [[image:1656378441509-171.png]]
599
600
601
602 === 2.3.7  MOD~=7 Three interrupt contact modes (the hardware version needs to support three interrupt versions, Since firmware v1.8.0) ===
603
604
605 [[image:image-20220820140109-3.png]]
606
607
608 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:500px" %)
609 |=(% style="width: 60px;" %)(((
610 **Size(bytes)**
611 )))|=(% style="width: 30px;" %)**2**|=(% style="width: 100px;" %)**2**|=(% style="width: 30px;" %)**2**|=(% style="width: 80px;" %)**1**|=(% style="width: 70px;" %)**1**|=(% style="width: 70px;" %)1|=(% style="width: 50px;" %)2
612 |(% style="width:97px" %)**Value**|(% style="width:46px" %)BAT|(% style="width:123px" %)Temperature(DS18B20)|(% style="width:108px" %)ADC|(% style="width:133px" %)(((
613 Digital in
614
615 & Digital Interrupt1(PB14)
616 )))|(% style="width:159px" %)Digital Interrupt2(PB15)|(% style="width:159px" %)Digital Interrupt3(PA4)|(% style="width:159px" %)Reserved
617
618
619
620 === 2.3.8  MOD~=8 (3ADC+1DS18B20, Since firmware v1.8.0) ===
621
622
623 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:480px" %)
624 |=(% style="width: 60px;" %)(((
625 **Size(bytes)**
626 )))|=(% style="width: 30px;" %)**2**|=(% style="width: 100px;" %)**2**|=(% style="width: 60px;" %)**2**|=(% style="width: 100px;" %)**1**|=(% style="width: 60px;" %)**2**|=(% style="width: 60px;" %)2
627 |(% style="width:97px" %)**Value**|(% style="width:46px" %)BAT|(% style="width:123px" %)Temperature(DS18B20)|(% style="width:108px" %)(((
628 ADC1(PA0)
629 )))|(% style="width:133px" %)(((
630 Digital in
631
632 & Digital Interrupt(PB14)
633 )))|(% style="width:159px" %)(((
634 ADC2(PA1)
635 )))|(% style="width:159px" %)(((
636 ADC3(PA4)
637 )))
638
639 [[image:image-20220823164903-2.png]]
640
641
642
643 === 2.3.9  MOD~=9 3DS18B20+ two Interrupt count mode (the hardware version needs to support 3 interrupt versions, Since firmware v1.8.0) ===
644
645
646 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:520px" %)
647 |=(% style="width: 60px;" %)(((
648 **Size(bytes)**
649 )))|=(% style="width: 30px;" %)**2**|=(% style="width: 80px;" %)**2**|=(% style="width: 80px;" %)**2**|=(% style="width: 70px;" %)**1**|=(% style="width: 80px;" %)**2**|=(% style="width: 60px;" %)4|=(% style="width: 60px;" %)4
650 |(% style="width:97px" %)**Value**|(% style="width:46px" %)BAT|(% style="width:123px" %)(((
651 Temperature1(PB3)
652 )))|(% style="width:108px" %)(((
653 Temperature2(PA9)
654 )))|(% style="width:133px" %)(((
655 Digital in
656
657 & Digital Interrupt(PA4)
658 )))|(% style="width:159px" %)(((
659 Temperature3(PA10)
660 )))|(% style="width:159px" %)(((
661 Count1(PB14)
662 )))|(% style="width:159px" %)(((
663 Count2(PB15)
664 )))
665
666 (% class="wikigeneratedid" id="H" %)
667 [[image:image-20220823165322-3.png]]
668
669
670 (% style="color:blue" %)**The newly added AT command is issued correspondingly:**
671
672 (% style="color:#4472c4" %)** AT+INTMOD1**(%%) (% style="background-color:yellow" %)** PB14**(%%)  pin:  Corresponding downlink:  (% style="background-color:yellow" %)**06 00 00 xx**
673
674 (% style="color:#4472c4" %)** AT+INTMOD2**(%%)  (% style="background-color:yellow" %)**PB15**(%%) pin:  Corresponding downlink:**  (% style="background-color:yellow" %)06 00 01 xx(%%)**
675
676 (% style="color:#4472c4" %)** AT+INTMOD3** (%%) (% style="background-color:yellow" %)**PA4** (%%) pin:  Corresponding downlink:  ** (% style="background-color:yellow" %)06 00 02 xx(%%)**
677
678
679 (% style="color:blue" %)**AT+SETCNT=aa,bb** 
680
681 When AA is 1, set the count of PB14 pin to BB Corresponding downlink:09 01 bb bb bb bb
682
683 When AA is 2, set the count of PB15 pin to BB Corresponding downlink:09 02 bb bb bb bb
684
685
686
687 === 2.3.10  ​Decode payload in The Things Network ===
688
689
690 While using TTN V3 network, you can add the payload format to decode the payload.
691
692
693 [[image:1656378466788-734.png]]
694
695
696 (((
697 The payload decoder function for TTN V3 are here:
698 )))
699
700 (((
701 LSN50 TTN V3 Payload Decoder:  [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>https://github.com/dragino/dragino-end-node-decoder]]
702 )))
703
704
705
706 == 2.4 Payload Explanation and Sensor Interface ==
707
708
709 === 2.4.1 Battery Info ===
710
711
712 (((
713 Check the battery voltage for LSN50.
714 )))
715
716 (((
717 Ex1: 0x0B45 = 2885mV
718 )))
719
720 (((
721 Ex2: 0x0B49 = 2889mV
722 )))
723
724
725
726 === 2.4.2 Temperature (DS18B20) ===
727
728
729 If there is a DS18B20 connected to PB3 pin. The temperature will be uploaded in the payload.
730
731 More DS18B20 can check the [[3 DS18B20 mode>>||anchor="2.3.4MOD3D4283xDS18B2029"]]
732
733
734 (% style="color:#4472c4" %)**Connection:**
735
736 [[image:1656378573379-646.png]]
737
738
739 (% style="color:#4472c4" %)**Example**:
740
741 If payload is: 0105H:  (0105 & FC00 == 0), temp = 0105H /10 = 26.1 degree
742
743 If payload is: FF3FH :  (FF3F & FC00 == 1) , temp = (FF3FH - 65536)/10 = -19.3 degrees.
744
745
746
747 === 2.4.3 Digital Input ===
748
749
750 The digital input for pin PA12,
751
752 * When PA12 is high, the bit 1 of payload byte 6 is 1.
753 * When PA12 is low, the bit 1 of payload byte 6 is 0.
754
755
756
757 === 2.4.4 Analogue Digital Converter (ADC) ===
758
759
760 (((
761 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.
762 )))
763
764
765 (((
766 The ADC monitors the voltage on the PA0 line, in mV.
767 )))
768
769 (((
770 Ex: 0x021F = 543mv,
771 )))
772
773
774 (((
775 (% style="color:#4472c4" %)** Example1:** (%%) Reading an Oil Sensor (Read a resistance value):
776
777
778 )))
779
780 [[image:image-20220627172409-28.png]]
781
782
783 In the LSN50, we can use PB4 and PA0 pin to calculate the resistance for the oil sensor.
784
785
786 (% style="color:blue" %)**Steps:**
787
788 1. Solder a 10K resistor between PA0 and VCC.
789 1. Screw oil sensor's two pins to PA0 and PB4.
790
791 The equipment circuit is as below:
792
793
794 [[image:image-20220627172500-29.png]]
795
796
797 According to above diagram:
798
799 [[image:image-20220628091043-4.png]]
800
801 So
802
803 [[image:image-20220628091344-6.png]]
804
805
806 [[image:image-20220628091621-8.png]] is the reading of ADC. So if ADC=0x05DC=0.9 v and VCC (BAT) is 2.9v
807
808
809 The [[image:image-20220628091702-9.png]] 4.5K ohm
810
811 Since the Bouy is linear resistance from 10 ~~ 70cm.
812
813
814 The position of Bouy is [[image:image-20220628091824-10.png]] , from the bottom of Bouy.
815
816
817
818 === 2.4.5 Digital Interrupt ===
819
820
821 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.
822
823
824 (((
825 (% style="color:#4472c4" %)** Interrupt connection method:**
826 )))
827
828 [[image:1656379178634-321.png]]
829
830
831 (((
832 (% style="color:#4472c4" %)**Example to use with door sensor : (Requires firmware > 1.5.1)**
833 )))
834
835
836 (((
837 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.
838 )))
839
840 [[image:1656379210849-860.png]]
841
842
843 (((
844 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.
845 )))
846
847
848 (((
849 (% style="color:#4472c4" %)** Below is the installation example:**
850 )))
851
852 (((
853 Fix one piece of the magnetic sensor to the door and connect the two pins to LSN50 as follows:
854 )))
855
856 * (((
857 One pin to LSN50's PB14 pin
858 )))
859 * (((
860 The other pin to LSN50's VCC pin
861 )))
862
863 (((
864 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.
865 )))
866
867
868 (((
869 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.
870 )))
871
872 (((
873 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.
874 )))
875
876
877 [[image:1656379283019-229.png]]
878
879
880 (((
881 The above photos shows the two parts of the magnetic switch fitted to a door.
882 )))
883
884
885 (((
886 (((
887 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.
888 )))
889 )))
890
891
892 (((
893 The command is:
894 )))
895
896 (((
897 (% _mstmutation="1" style="color:blue" %)**AT+INTMOD=1 **(% _mstmutation="1" %)** **(%%)~/~/(more info about INMOD please refer(% _mstmutation="1" %)** **(%%)[[**AT Command Manual**>>url:http://www.dragino.com/downloads/index.php?dir=LSN50-LoRaST/&file=DRAGINO_LSN50_AT_Commands_v1.5.1.pdf||_mstmutation="1"]](% _mstmutation="1" %)**. **(%%))
898 )))
899
900
901 (((
902 Below shows some screen captures in TTN V3:
903 )))
904
905
906 [[image:1656379339508-835.png]]
907
908
909 In MOD=1, user can use byte 6 to see the status for door open or close. TTN V3 decoder is as below:
910
911 (% style="background-color:#dcdcdc" %)door= (bytes[6] & 0x80)? "CLOSE":"OPEN";
912
913
914 (% style="color:red" %)**Notice for hardware version LSN50 v1 < v1.3**(%%) (produced before 2018-Nov).
915
916 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.
917
918 [[image:1656379563303-771.png]]
919
920
921
922 === 2.4.6 I2C Interface (SHT20) ===
923
924
925 (((
926 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.
927 )))
928
929 (((
930 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).**
931 )))
932
933 (((
934 Below is the connection to SHT20/ SHT31. The connection is as below:
935 )))
936
937
938 [[image:image-20220902163605-2.png]]
939
940
941 The device will be able to get the I2C sensor data now and upload to IoT Server.
942
943
944 [[image:1656379664142-345.png]]
945
946 Convert the read byte to decimal and divide it by ten.
947
948
949 (% style="color:blue" %)**Example:**
950
951 Temperature:  Read:0116(H) = 278(D)  Value:  278 /10=27.8℃;
952
953 Humidity:    Read:0248(H)=584(D)  Value:  584 / 10=58.4, So 58.4%
954
955
956 If you want to use other I2C device, please refer the SHT20 part source code as reference.
957
958
959
960 === 2.4.7 ​Distance Reading ===
961
962
963 Refer [[Ultrasonic Sensor section>>||anchor="H2.4.8UltrasonicSensor"]].
964
965
966
967 === 2.4.8 Ultrasonic Sensor ===
968
969
970 (((
971 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]]
972 )))
973
974
975 (((
976 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.
977 )))
978
979
980 (((
981 The picture below shows the connection:
982 )))
983
984 [[image:1656380061365-178.png]]
985
986
987 Connect to the LSN50 and run (% style="color:blue" %)**AT+MOD=2**(%%) to switch to ultrasonic mode (ULT).
988
989 The ultrasonic sensor uses the 8^^th^^ and 9^^th^^ byte for the measurement value.
990
991
992 (% style="color:blue" %)**Example:**
993
994 Distance:  Read: 0C2D(Hex) = 3117(D)  Value:  3117 mm=311.7 cm
995
996
997 [[image:1656384895430-327.png]]
998
999
1000 [[image:1656384913616-455.png]]
1001
1002
1003 You can see the serial output in ULT mode as below:
1004
1005 [[image:1656384939855-223.png]]
1006
1007
1008 **In TTN V3 server:**
1009
1010
1011 [[image:1656384961830-307.png]]
1012
1013
1014 [[image:1656384973646-598.png]]
1015
1016
1017
1018 === 2.4.9  Battery Output - VDD pin ===
1019
1020
1021 The VDD pin of LSN50v2 is connected to the Battery directly. If users want to use VDD pin to power an external sensor. User need to make sure the external sensor is of low power consumption. Because the VDD pin is always open. If the external sensor is of high power consumption. the battery of LSN50v2 will run out very soon.
1022
1023
1024
1025 === 2.4.10  +5V Output ===
1026
1027
1028 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. 
1029
1030
1031 (((
1032 Since firmware (% style="color:red" %)**v1.6.3**(%%), The 5V output time can be controlled by AT Command.
1033 )))
1034
1035 (((
1036 (% style="color:#4472c4" %)**AT+5VT=1000**
1037 )))
1038
1039 (((
1040 Means set 5V valid time to have 1000ms. So the real 5V output will actually have 1000ms + sampling time for other sensors.
1041 )))
1042
1043
1044 (((
1045 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.
1046 )))
1047
1048
1049
1050 === 2.4.11  Weigh Sensor HX711 ===
1051
1052
1053 Since v1.6.2 firmware, LSN50 support Weigh Sensor HX711.
1054
1055
1056
1057 === 2.4.12  BH1750 Illumination Sensor ===
1058
1059
1060 Since v1.7.0 firmware, MOD=1 support this sensor. The sensor value is in the 8^^th^^ and 9^^th^^ bytes.
1061
1062
1063 [[image:image-20220628110012-11.jpeg]]
1064
1065
1066 [[image:image-20220628110012-12.png]]
1067
1068
1069
1070 === 2.4.13  Working MOD ===
1071
1072
1073 (((
1074 The working MOD info is contained in the Digital in & Digital Interrupt byte (7^^th^^ Byte).
1075 )))
1076
1077 (((
1078 User can use the 3^^rd^^ ~~ 7^^th^^  bit of this byte to see the working mod:
1079 )))
1080
1081 (((
1082 Case 7^^th^^ Byte >> 2 & 0x1f:
1083 )))
1084
1085 * 0: MOD1
1086 * 1: MOD2
1087 * 2: MOD3
1088 * 3: MOD4
1089 * 4: MOD5
1090 * 5: MOD6
1091
1092
1093
1094 == 2.5 Configure LSN50 via AT or Downlink ==
1095
1096
1097 (((
1098 User can configure LSN50 via [[AT Commands >>||anchor="H3.A0UsingtheATCommands"]]or LoRaWAN Downlink Commands
1099 )))
1100
1101 (((
1102 There are two kinds of Commands:
1103 )))
1104
1105 * (% _mstmutation="1" style="color:blue" %)**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||_mstmutation="1"]]
1106
1107 * (% style="color:blue" %)**Sensor Related Commands**(%%): These commands are special designed for LSN50.  User can see these commands below:
1108
1109
1110
1111 === 2.5.1 Common Commands: ===
1112
1113
1114 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]]
1115
1116
1117
1118 === 2.5.2 Sensor related commands: ===
1119
1120
1121 (% style="color:blue" %)**Set work mode:**
1122
1123 * (% style="color:#037691" %)**AT Command:**
1124
1125 (((
1126 (% _mstmutation="1" 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)
1127 )))
1128
1129 (((
1130 (% _mstmutation="1" style="background-color:#dcdcdc" %)**AT+MOD=?** (%%) ~/~/  Get current work MOD
1131 )))
1132
1133
1134 * (% style="color:#037691" %)**Downlink Payload:**
1135
1136 (% style="background-color:#dcdcdc" %)**0x0A aa** (%%) ~/~/ Same as AT+MOD=aa
1137
1138
1139
1140 (% style="color:blue" %)**Set the trigger interrupt mode:**
1141
1142 * (% style="color:#037691" %)**AT Command:**
1143
1144 (((
1145 (% _mstmutation="1" style="background-color:#dcdcdc" %)**AT+INTMOD=2**  (%%) ~/~/ Set INTMOD =2. (0: Disable, 1:falling or rising, 2: falling, 3: rising)
1146 )))
1147
1148 (((
1149 (% _mstmutation="1" style="background-color:#dcdcdc" %)**AT+INTMOD=?**  (%%) ~/~/  Get current INTMOD
1150 )))
1151
1152
1153 * (% style="color:#037691" %)**Downlink Payload:**
1154
1155 (% style="background-color:#dcdcdc" %)**0x06 000003**      (%%) ~/~/ Set AT+INTMOD=3
1156
1157
1158
1159 (% style="color:blue" %)**Set the 5V power open time during sampling:**
1160
1161 * (% style="color:#037691" %)**AT Command:**
1162
1163 (((
1164 (% _mstmutation="1" style="background-color:#dcdcdc" %)**AT+5VT=1000** (%%) ~/~/ Set 5v open time to 1000ms
1165 )))
1166
1167 (((
1168 (% _mstmutation="1" style="background-color:#dcdcdc" %)**AT+5VT=?**    (%%) ~/~/  Check current 5v open duration
1169 )))
1170
1171
1172 * (% style="color:#037691" %)**Downlink Payload:**
1173
1174 (% style="background-color:#dcdcdc" %)**0x07 aa bb**    (%%) ~/~/ Equal AT+5VT=0x(aa bb)
1175
1176
1177
1178 (% style="color:blue" %)**Set the weight to 0g (Zero Calibration):**
1179
1180 * (% style="color:#037691" %)**AT Command:**
1181
1182 (% style="background-color:#dcdcdc" %)**AT+WEIGRE** ** **(%%)** **~/~/ Set the weight to 0g
1183
1184
1185 * (% style="color:#037691" %)**Downlink Payload:**
1186
1187 (% style="background-color:#dcdcdc" %)**0x08 01** (%%) ~/~/ Set the weight to 0g
1188
1189
1190
1191 (% style="color:blue" %)**Get or Set the GAP Value (calibrate factor) of measurement:**
1192
1193 * (% style="color:#037691" %)**AT Command:**
1194
1195 (((
1196 (% _mstmutation="1" style="background-color:#dcdcdc" %)**AT+WEIGAP=403.0**  (%%) ~/~/ Set GAP Value =403.0 (response: Weight: xx g)
1197 )))
1198
1199 (((
1200 (% _mstmutation="1" style="background-color:#dcdcdc" %)**AT+WEIGAP=?**  (%%) ~/~/  Get current GAP Value
1201 )))
1202
1203
1204 * (% style="color:#037691" %)**Downlink Payload:**
1205
1206 (% style="background-color:#dcdcdc" %)**0x08 02 aa bb** (%%) ~/~/ Equal to AT+WEIGAP=0x(aa bb)/10
1207
1208
1209
1210 (% style="color:blue" %)**Encrypt upload:**
1211
1212 * (% style="color:#037691" %)**AT Command:**
1213
1214 (((
1215 (% _mstmutation="1" style="background-color:#dcdcdc" %)**AT+DECRYPT=1**  (%%) ~/~/ The payload is uploaded without encryption
1216 )))
1217
1218 (((
1219 (% _mstmutation="1" style="background-color:#dcdcdc" %)**AT+DECRYPT=0**  (%%) ~/~/  Encrypt when uploading payload (default)
1220 )))
1221
1222
1223
1224 (% style="color:blue" %)**Get data:**
1225
1226 * (% style="color:#037691" %)**AT Command:**
1227
1228 (((
1229 (% _mstmutation="1" style="background-color:#dcdcdc" %)**AT+GETSENSORVALUE=0** (%%) ~/~/ The serial port gets the reading of the current sensor
1230 )))
1231
1232 (((
1233 (% _mstmutation="1" style="background-color:#dcdcdc" %)**AT+GETSENSORVALUE=1** (%%) ~/~/  The serial port gets the current sensor reading and uploads it.
1234
1235
1236
1237 (% style="color:blue" %)**Resets the downlink packet count:**
1238
1239 * (% style="color:#037691" %)**AT Command:**
1240
1241 (((
1242 (% _mstmutation="1" style="background-color:#dcdcdc" %)**AT+DISFCNTCHECK=0**(% _mstmutation="1" %)**     **(%%) ~/~/(% _mstmutation="1" %)** **(%%)When the downlink packet count sent by the server is less than the node downlink packet count or exceeds 16384, the node will no longer receive downlink packets (default)
1243 )))
1244
1245 (((
1246 (% _mstmutation="1" style="background-color:#dcdcdc" %)**AT+DISFCNTCHECK=1** (%%) ~/~/  When the downlink packet count sent by the server is less than the node downlink packet count or exceeds 16384, the node resets the downlink packet count and keeps it consistent with the server downlink packet count
1247 )))
1248
1249
1250
1251 (% style="color:blue" %)**When the limit bytes are exceeded, upload in batches:**
1252
1253 * (% style="color:#037691" %)**AT Command:**
1254
1255 (((
1256 (% _mstmutation="1" style="background-color:#dcdcdc" %)**AT+DISMACANS=0**(%%)  ~/~/ When the MACANS of the reply server plus the payload exceeds the maximum number of bytes of 11 bytes (DR0 of US915, DR2 of AS923, DR2 of AU195), the node will send a packet with a payload of 00 and a port of 4. (default)
1257 )))
1258
1259 (((
1260 (% _mstmutation="1" style="background-color:#dcdcdc" %)**AT+DISMACANS=1** (%%) ~/~/ When the MACANS of the reply server plus the payload exceeds the maximum number of bytes of the DR, the node will ignore the MACANS and not reply, and only upload the payload part.
1261 )))
1262
1263 * (% style="color:#037691" %)**Downlink Payload:**
1264
1265 (% class="wikigeneratedid" %)
1266 (% style="background-color:#dcdcdc" %)**0x21 00 01 ** (%%) ~/~/ Set  the DISMACANS=1
1267
1268
1269
1270 (% style="color:blue" %)**Copy downlink to uplink:**
1271
1272 * (% style="color:#037691" %)**AT Command:**
1273
1274 (((
1275 (% _mstmutation="1" style="background-color:#dcdcdc" %)**AT+RPL=5**(%%)  ~/~/ After receiving the package from the server, it will immediately upload the content of the package to the server, the port number is 100.
1276 )))
1277
1278 (% class="wikigeneratedid" %)
1279 Example:(% style="background-color:#dcdcdc" %)**aa xx xx xx xx** (%%) ~/~/ aa indicates whether the configuration has changed, 00 is yes, 01 is no; xx xx xx xx are the bytes sent.
1280
1281
1282 (% class="wikigeneratedid" %)
1283 [[image:image-20220823173747-6.png||height="165" width="1124"]]
1284
1285 **For example, sending 11 22 33 44 55 66 77 will return invalid configuration 00 11 22 33 44 55 66 77.**
1286
1287
1288
1289 [[image:image-20220823173833-7.png||height="149" width="1124"]]
1290
1291 **For example, if 01 00 02 58 is issued, a valid configuration of 01 01 00 02 58 will be returned.**
1292
1293
1294
1295 (% style="color:blue" %)**Query version number and frequency band 、TDC:**
1296
1297 * (((
1298 (% style="color:#037691" %)**Downlink: 26 01  **(%%) ~/~/  Downlink 26 01 can query device upload frequency, frequency band, software version number, TDC time.
1299 )))
1300
1301 **Example:**
1302
1303
1304 [[image:image-20220823173929-8.png||height="76" width="1205"]]
1305
1306
1307
1308 (% style="color:blue" %)**Add rejoin feature if device offline:**
1309
1310 * (% style="color:#037691" %)**AT Command:**
1311
1312 **AT+DDETECT=<Flag>,<ACK_Timout_1>,<ACK_Timout_2>    (Default Value: AT+DDETECT=1,1440,2880)**
1313
1314 (% style="color:red" %)**Flag:** (%%) 1 Enable online detect,0: Disable online detect
1315
1316 (% style="color:red" %)**ACK_Timout_1:**(%%) Unit: min
1317
1318 (% style="color:red" %)**ACK_Timout_2:**(%%) Unit: min
1319
1320
1321 **Example: AT+DDETECT=1,1440,2880**
1322
1323 Enable Online Detect, if end node doesn't receive any downlink within ACK_Timout_1( 1440 minutes or 24 hours). End node will use confirmed uplink to send packets during ACK_Timout_1 (the 24th hour) to ACK_Timout_2 ( the 48th hour).
1324
1325 If from the 24th to 48th hour, end node got an downlink from server, it will switch back to unconfirmed uplink. end node will restart ACK_Timout_1.
1326
1327 If from the 24th to 48th hour, end node still not got any downlink, means device doesn't get ACK in 48 hours. Device will process rejoin, rejoin request interval is AT+RJTDC period. For AU915/ US915, device will use the sub-band used for last join.
1328
1329
1330 * (((
1331 (% style="color:#037691" %)**Downlink: 0x32 01 05A0 0B40 **
1332
1333 0x01 : Flag
1334
1335 0x05A0: ACK_Timout_1
1336
1337 0x0B40: ACK_Timout_2
1338
1339
1340
1341 )))
1342
1343 (% class="wikigeneratedid" %)
1344 (% style="color:blue" %)**Add new feature to control NBTrans for unconfirmed uplink mode:**
1345
1346 * (% style="color:#037691" %)**AT Command:**
1347
1348 (% style="background-color:#dcdcdc" %)** AT+SETMAXNBTRANS=value1,value2   **(%%)** **~/~/ NBTrans specified how many re-transmission for each packet. If LoRaWAN LinkADR from server set NBTrans to high value. The battery will consume fast.
1349
1350 **AT+SETMAXNBTRANS=value1,value2 Default Value: AT+SETMAXNBTRANS=1,0**
1351
1352 (% style="color:red" %)**value1:** (%%) Set max NBTrans. For example, if value1(NBTrans)=1, end node set NBTrans max to 1 , even downlink LinkADR request end node to set NBTrans to higher value such as 6.
1353
1354 (% style="color:red" %)**value2:** (%%) 0: uplink fcnt doesn't change for each NBTrans;  1: uplink fcnt increase by 1 for each NBTrans.
1355
1356 set value2 to 1 for Chirpstack server, because Chirpstack will ignore same FCNT in re-transmission.
1357
1358
1359 **Example: AT+SETMAXNBTRANS=2,1**
1360
1361 Set max NBTrans to 2, fcnt will increase +1 for each NBTrans
1362
1363
1364 * (((
1365 (% style="color:#037691" %)**Downlink: 0x33 02 01**
1366
1367 value1=0x02
1368 )))
1369
1370 (% class="wikigeneratedid" %)
1371 value2=0x01
1372
1373
1374
1375 == 2.6 Show Data in Datacake IoT Server ==
1376
1377
1378 (((
1379 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:
1380 )))
1381
1382 (((
1383
1384 )))
1385
1386 (((
1387 (% style="color:blue" %)**Step 1**(%%)**:** Be sure that your device is programmed and properly connected to the network at this time.
1388 )))
1389
1390 (((
1391 (% 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:
1392 )))
1393
1394
1395 [[image:1656385623971-339.png]]
1396
1397
1398 [[image:1656385646347-395.png]]
1399
1400
1401 [[image:1656385662459-942.png]]
1402
1403
1404 (% style="color:blue" %)**Step 3**(%%)**: **Create an account or log in Datacake.
1405
1406
1407 (% style="color:blue" %)**Step 4**(%%)**:** Search the LSN50 and add DevEUI.
1408
1409
1410 [[image:1656385688973-317.png]]
1411
1412
1413
1414 == 2.7 ​Firmware Change Log ==
1415
1416
1417 (((
1418 **Firmware download: ** [[https:~~/~~/www.dropbox.com/sh/9k0a6sn8a94dc03/AAD54woDmnmAMUMY2WfKfjxoa?dl=0>>https://www.dropbox.com/sh/9k0a6sn8a94dc03/AAD54woDmnmAMUMY2WfKfjxoa?dl=0]]
1419 )))
1420
1421 (((
1422 **Firmware Change Log: **[[https:~~/~~/www.dropbox.com/sh/9k0a6sn8a94dc03/AAD54woDmnmAMUMY2WfKfjxoa?dl=0>>https://www.dropbox.com/sh/9k0a6sn8a94dc03/AAD54woDmnmAMUMY2WfKfjxoa?dl=0]]
1423
1424
1425
1426 )))
1427
1428 == 2.8 Use VDD or +5V to Power External Sensor ==
1429
1430
1431 (((
1432 User can use VDD or +5V to power external sensor.
1433 )))
1434
1435 (((
1436 (% style="color:red" %)**Note:**
1437 )))
1438
1439 1. (((
1440 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.
1441 )))
1442 1. (((
1443 +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"]].
1444 )))
1445
1446 (((
1447 (% style="color:red" %)**Note: Always test the actually current pass by the JP2 jumper when connect to a new type of sensor.**
1448 )))
1449
1450
1451
1452 == 2.9  Battery Analysis ==
1453
1454
1455 === 2.9.1  Battery Type ===
1456
1457
1458 (((
1459 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.
1460 )))
1461
1462 (((
1463 The battery is designed to last for more than 5 years for the LSN50.
1464 )))
1465
1466
1467 (((
1468 The battery related documents as below:
1469 )))
1470
1471 * [[Battery Dimension>>https://www.dragino.com/downloads/index.php?dir=datasheet/Battery/]],
1472 * [[Lithium-Thionyl Chloride Battery datasheet>>https://www.dragino.com/downloads/index.php?dir=datasheet/Battery/||_mstmutation="1"]], [[Tech Spec>>https://www.dragino.com/downloads/index.php?dir=datasheet/Battery/||_mstmutation="1"]]
1473 * [[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/]]
1474
1475 [[image:image-20220627175349-30.png]]
1476
1477
1478
1479 === 2.9.2 ​Power consumption Analyze ===
1480
1481
1482 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.
1483
1484 (((
1485 A victor VC86E is recommended.
1486 )))
1487
1488 [[image:1656323400306-359.png]]
1489
1490
1491 (((
1492 In a minimum system with DS18B20 and Oil Sensor and default firmware, the power consumption includes:
1493 )))
1494
1495 (((
1496
1497 )))
1498
1499 (((
1500 ~1. Deep Sleep (Stop mode) for STM32. ~~ 5uA
1501 )))
1502
1503 (((
1504 2. Sampling current while reading DS18B20 and Oil Sensor
1505 )))
1506
1507 * (((
1508 Oil Sensor sampling time: 200us, current: 0.3mA
1509 )))
1510 * (((
1511 DS18B20 sampling time: 750ms, current: 0.64mA
1512 )))
1513 * (((
1514 Above power should add 8mA CPU power in working mode.
1515 )))
1516
1517 (((
1518 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]].
1519 )))
1520
1521
1522 (((
1523 In a typical LoRaWAN data transmit. The energy profile is as below:
1524 )))
1525
1526
1527 [[image:1656323450362-299.png]]
1528
1529
1530 (((
1531 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:
1532 )))
1533
1534 1. Lower power LoRa radio. Device has a good signal to gateway
1535 1. Higher power LoRa radio. Device has a poor signal to gateway
1536
1537 (% style="color:blue" %)**Low Power Case**:
1538
1539 * Radio Parameter: SF7, 125kHz, 20dbm
1540 * Transmit interval: 15 minutes.
1541 * Payload: 8 Bytes.
1542
1543 (% style="color:blue" %)**High Power Case**:
1544
1545 * Radio Parameter: SF10, 125kHz, 20dbm
1546 * Transmit interval: 15 minutes.
1547 * Payload: 8 Bytes.
1548
1549 To simplify the calculation, we can:
1550
1551 * Combine oil sensor and DS18B20 sampling energy together to (% style="color:#4472c4" %)**751ms@8.64ma**
1552
1553 * Combine the two RX windows together.
1554
1555 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.
1556
1557
1558 [[image:1656323531520-949.png]]
1559
1560
1561 [[image:1656323549994-233.png]]
1562
1563
1564 (% style="color:red" %)**Note:  Ignore the 18 year result, because the battery has a max 2% discharge per year.**
1565
1566
1567
1568 === 2.9.3 ​Battery Note ===
1569
1570
1571 (((
1572 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.
1573 )))
1574
1575
1576
1577 === 2.9.4 Replace the battery ===
1578
1579
1580 (((
1581 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.
1582 )))
1583
1584 (((
1585 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).
1586 )))
1587
1588
1589
1590 = 3.  Using the AT Commands =
1591
1592
1593 == 3.1  Access AT Commands ==
1594
1595
1596 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.
1597
1598
1599 (% style="color:#4472c4" %)**LSN50 v1 UART connection photo**
1600
1601 [[image:image-20220627165424-24.png||height="495" width="486"]]
1602
1603
1604
1605 (% style="color:#4472c4" %)**LSN50 v2 UART connection photo**
1606
1607 [[image:image-20220627165424-25.png||height="437" width="894"]]
1608
1609
1610
1611 (((
1612 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:
1613 )))
1614
1615
1616 [[image:image-20220627165531-26.png||height="624" width="893"]](% style="display:none" %)
1617
1618
1619
1620 == 3.2  Common AT Command Sequence ==
1621
1622
1623 === 3.2.1  Multi-channel ABP mode (Use with SX1301/LG308) ===
1624
1625
1626 (((
1627 (% style="color:#037691" %)**If device has not joined network via OTAA:**
1628 )))
1629
1630 (((
1631 (% style="background-color:#dcdcdc" %)**AT+FDR**
1632 )))
1633
1634 (((
1635 (% style="background-color:#dcdcdc" %)**AT+NJM=0**
1636 )))
1637
1638 (((
1639 (% style="background-color:#dcdcdc" %)**ATZ**
1640 )))
1641
1642
1643 (((
1644 (% style="color:#037691" %)**If device already joined network:**
1645 )))
1646
1647 (((
1648 (% style="background-color:#dcdcdc" %)**AT+NJM=0**
1649 )))
1650
1651 (((
1652 (% style="background-color:#dcdcdc" %)**ATZ**
1653 )))
1654
1655
1656
1657 === 3.2.2  Single-channel ABP mode (Use with LG01/LG02) ===
1658
1659
1660 See [[Sect 6.7>>||anchor="H6.7A0HowtoconfiguretheEUIkeysinLSN503F"]]
1661
1662
1663
1664 = 4.  Upload Firmware =
1665
1666
1667 (% style="color:red" %)**Notes**:
1668
1669 * 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.
1670 * Always run AT+FDR to reset parameters to factory default after an update image.
1671 If the update is from image >= v1.3 to another image version >=v1.3, then the keys will be kept after running AT+FDR.
1672 Otherwise (e.g. from v1.2 to v1.3), AT+FDR may erase the keys.
1673
1674
1675
1676 == 4.1  Upload Firmware via Serial Port ==
1677
1678
1679 The LSN50's AT Command port can be used for firmware upgrade. The hardware connection for upgrade firmware is as below:
1680
1681
1682 [[image:image-20220627163506-18.png||height="426" width="418"]]
1683
1684
1685 (% 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]].
1686
1687
1688 (% style="color:blue" %)**Step2**(%%)**:** Download the [[LSN50 Image files>>url:https://www.dropbox.com/sh/g99v0fxcltn9r1y/AADnMzn1IN0LssOQNHlvooTta/LSN50%20%26%20LSN50-v2/Firmware/LSN50.hex?dl=0&subfolder_nav_tracking=1]].
1689
1690
1691 (% style="color:blue" %)**Step3**(%%)**: **Open flashloader; choose the correct COM port to update
1692
1693
1694 [[image:image-20220627163821-19.png]]
1695
1696
1697 [[image:image-20220627163930-20.png||height="450" width="751"]]
1698
1699
1700 [[image:image-20220627164030-21.png||height="459" width="750"]]
1701
1702
1703 (((
1704 (% style="color:blue" %)**Step4**(%%)**: **Switch SW1 back to flash state and push the RESET button.
1705 )))
1706
1707 (((
1708 The LSN50 will then run the new firmware.
1709 )))
1710
1711
1712
1713 == 4.2  Upload Firmware via ST-Link V2 ==
1714
1715
1716 You can use ST-LINK to upgrade firmware into LSN50. The hardware connection for upgrade firmware is as below:
1717
1718
1719 [[image:1656319349131-664.png]]
1720
1721
1722 (% style="color:blue" %)**Connection:**
1723
1724 * (% style="background-color:yellow" %)**ST-LINK v2 GND  <~-~-> LSN50 GND**
1725 * (% style="background-color:yellow" %)**ST-LINK v2 SWCLK <~-~-> LSN50 PA14**
1726 * (% style="background-color:yellow" %)**ST-LINK v2 SWDIO <~-~-> LSN50 PA13**
1727 * (% style="background-color:yellow" %)**ST-LINK v2 RST  <~-~->  LSN50 NRST**
1728
1729 (% 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]]
1730
1731
1732 (% style="color:blue" %)**Step2**(%%): Download the [[LSN50 Image files>>url:https://github.com/dragino/LoRa_STM32/tree/master/LSN50.hex]].
1733
1734
1735 (% style="color:blue" %)**Step3:**(%%)** **Open ST-LINK utility, (% style="color:blue" %)**file ~-~-> open file**(%%) to select the image to be upgraded.
1736
1737
1738 (% style="color:blue" %)**Step4:**(%%)** **Click the “(% style="color:blue" %)**Program Verify**”(%%) button on ST-LINK.
1739
1740
1741 [[image:image-20220627164303-22.png]]
1742
1743
1744 (((
1745 (% 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.
1746 )))
1747
1748 (((
1749 (% 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.**
1750 )))
1751
1752
1753
1754 [[image:image-20220627164303-23.png]]
1755
1756
1757
1758 = 5.  Developer Guide =
1759
1760
1761 * (((
1762 Software Source Code Download : [[https:~~/~~/github.com/dragino/LoRa_STM32/tree/master/STM32CubeExpansion_LRWAN>>https://github.com/dragino/LoRa_STM32/tree/master/STM32CubeExpansion_LRWAN]]
1763 )))
1764 * (((
1765 Hardware Source Code Download: [[https:~~/~~/github.com/dragino/Lora/tree/master/LSN50>>https://github.com/dragino/Lora/tree/master/LSN50]]
1766 )))
1767
1768 (((
1769 LSN50 is an open source project, developer can use compile their firmware for customized applications. User can get the source code from:
1770 )))
1771
1772 * (((
1773 Software Source Code: [[https:~~/~~/github.com/dragino/LoRa_STM32/tree/master/STM32CubeExpansion_LRWAN>>url:https://github.com/dragino/LoRa_STM32/tree/master/STM32CubeExpansion_LRWAN||_mstmutation="1"]]
1774 )))
1775 * (((
1776 Hardware Design files:  [[https:~~/~~/github.com/dragino/Lora/tree/master/LSN50>>url:https://github.com/dragino/Lora/tree/master/LSN50]]
1777 )))
1778 * (((
1779 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/]]
1780 )))
1781
1782 (((
1783 Use Keil to open project file:
1784 )))
1785
1786 (((
1787 STM32CubeExpansion_LRWAN/Projects/Multi/Applications/LoRa/DRAGINO-LRWAN(AT)/MDK-ARM/STM32L072CZ-Nucleo/Lora.uvprojx
1788 )))
1789
1790 (((
1791
1792 )))
1793
1794 (((
1795 In Keil, you can see what frequency band the code support.
1796 )))
1797
1798 [[image:image-20220627162417-15.png]]
1799
1800
1801 **~1. If you want to change frequency, modify the Preprocessor Symbols.**
1802
1803
1804 For example, change EU868 to US915
1805
1806 [[image:1656318662202-530.png]]
1807
1808
1809 **2. Compile and build**
1810
1811 [[image:image-20220627163212-17.png]]
1812
1813
1814
1815 = 6.  FAQ =
1816
1817
1818 == 6.1  Why there is 433/868/915 version? ==
1819
1820
1821 (((
1822 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.
1823 )))
1824
1825
1826
1827 == 6.2 What is the frequency range of LT LoRa part? ==
1828
1829
1830 Different LT version supports different frequency range, below is the table for the working frequency and recommend bands for each model:
1831
1832 [[image:image-20220627155456-9.png]]
1833
1834
1835
1836 == 6.3  How to change the LoRa Frequency Bands/Region? ==
1837
1838
1839 You can follow the instructions for [[how to upgrade image>>||anchor="H2.7200BFirmwareChangeLog"]].
1840 When downloading the images, choose the required image file for download.
1841
1842
1843
1844 == 6.4  Can I use Private LoRa protocol? ==
1845
1846
1847 (((
1848 (((
1849 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.
1850 )))
1851
1852 (((
1853 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.
1854 )))
1855
1856
1857 )))
1858
1859 (% style="color:#4472c4" %)**LoRa Shield + UNO**:
1860
1861 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.
1862
1863
1864 Refs:  [[https:~~/~~/www.dropbox.com/sh/u9s41qdx5yujwcb/AAAT5r4QkMaeOogWrzJt7Wn4a?dl=0>>https://www.dropbox.com/sh/u9s41qdx5yujwcb/AAAT5r4QkMaeOogWrzJt7Wn4a?dl=0]]
1865
1866
1867 Open the serial monitor to Arduino. The device acts as a LoRa Receiver and listen on the frequency 868.3Mhz by default.
1868
1869
1870 (% style="color:#4472c4" %)**LSN50**:
1871
1872 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
1873
1874 Compile it and Upload it to LSN50, the LSN50 will transfer on the frequency 868.3Mhz.
1875
1876 In the Arduino Console, it will see the received packets as below.
1877
1878
1879 [[image:image-20220627160116-10.png]]
1880
1881
1882
1883 == 6.5  How to set up LSN50 to work in 8 channel mode ==
1884
1885
1886 (((
1887 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.
1888 )))
1889
1890 (((
1891 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.
1892 )))
1893
1894 (((
1895
1896 )))
1897
1898 (((
1899 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.
1900 )))
1901
1902 [[image:image-20220627160940-13.png]]
1903
1904
1905 (((
1906 When you use the TTN V3 network, the US915 frequency bands use are:
1907 )))
1908
1909 * (((
1910 903.9 - SF7BW125 to SF10BW125
1911 )))
1912 * (((
1913 904.1 - SF7BW125 to SF10BW125
1914 )))
1915 * (((
1916 904.3 - SF7BW125 to SF10BW125
1917 )))
1918 * (((
1919 904.5 - SF7BW125 to SF10BW125
1920 )))
1921 * (((
1922 904.7 - SF7BW125 to SF10BW125
1923 )))
1924 * (((
1925 904.9 - SF7BW125 to SF10BW125
1926 )))
1927 * (((
1928 905.1 - SF7BW125 to SF10BW125
1929 )))
1930 * (((
1931 905.3 - SF7BW125 to SF10BW125
1932 )))
1933 * (((
1934 904.6 - SF8BW500
1935 )))
1936
1937 (((
1938 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:
1939 )))
1940
1941 (((
1942 (% style="color:blue" %)**AT+CHE=2**
1943 )))
1944
1945 (((
1946 (% style="color:blue" %)**ATZ**
1947 )))
1948
1949
1950 (((
1951 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.
1952 )))
1953
1954 (((
1955 The (% style="color:blue" %)**AU915**(%%) band is similar. Below are the AU915 Uplink Channels.
1956 )))
1957
1958 [[image:image-20220627161124-14.png]]
1959
1960
1961
1962 == 6.6  How to set up LSN50 to work with Single Channel Gateway such as LG01/LG02? ==
1963
1964
1965 (((
1966 In this case, users need to set LSN50 to work in ABP mode and transmit in only one frequency.
1967 )))
1968
1969 (((
1970 Assume we have a LG02 working in the frequency 868400000 now, below is the steps.
1971 )))
1972
1973
1974 (((
1975 (% 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.
1976 )))
1977
1978
1979 [[image:image-20220627160542-11.png]]
1980
1981
1982 (((
1983 (% 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.**
1984 )))
1985
1986
1987 (((
1988 (% 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]].**
1989 )))
1990
1991
1992
1993 (((
1994 (% style="color:blue" %)**Step2:  **(%%)Run AT commands to make the LSN50 work in Single frequency and ABP mode. Below are the AT commands:
1995 )))
1996
1997
1998 (((
1999 (% style="background-color:#dcdcdc" %)AT+FDR(%%)  :  Reset Parameters to Factory Default, Keys Reserve
2000 )))
2001
2002 (((
2003 (% style="background-color:#dcdcdc" %)AT+NJM=0(%%) : Set to ABP mode
2004 )))
2005
2006 (((
2007 (% style="background-color:#dcdcdc" %)AT+ADR=0(%%) : Set the Adaptive Data Rate Off
2008 )))
2009
2010 (((
2011 (% style="background-color:#dcdcdc" %)AT+DR=5(%%)  : Set Data Rate (Set AT+DR=3 for 915 band)
2012 )))
2013
2014 (((
2015 (% style="background-color:#dcdcdc" %)AT+TDC=300000(%%)  :  Set transmit interval to 5 minutes
2016 )))
2017
2018 (((
2019 (% style="background-color:#dcdcdc" %)AT+CHS=868400000(%%) : Set transmit frequency to 868.4Mhz
2020 )))
2021
2022 (((
2023 (% style="background-color:#dcdcdc" %)AT+DADDR=26 01 1A F1(%%)  :Set Device Address to 26 01 1A F1
2024 )))
2025
2026 (((
2027 (% style="background-color:#dcdcdc" %)ATZ(%%)  :  Reset MCU
2028 )))
2029
2030
2031 (((
2032 As shown  below:
2033 )))
2034
2035 [[image:image-20220627160542-12.png]]
2036
2037
2038
2039 == 6.7  How to configure the EUI keys in LSN50? ==
2040
2041
2042 (((
2043 The early version of LSN50 firmware doesn't have pre-configured keys.
2044 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.
2045 )))
2046
2047 (((
2048 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]].
2049 )))
2050
2051
2052
2053 = 7.  Trouble Shooting =
2054
2055
2056 == 7.1  Connection problem when uploading firmware. ==
2057
2058
2059 (((
2060 (% 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.
2061 )))
2062
2063 (((
2064
2065 )))
2066
2067 (((
2068 (% style="color:green" %)**Checklist**:
2069 )))
2070
2071 (((
2072 ~1. Double check if follow up exactly the steps as manual.
2073 )))
2074
2075 (((
2076 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.
2077 )))
2078
2079 (((
2080 3. If you use Windows10 system. Please change the flash loader to run in Windows7 compatibility mode.
2081 )))
2082
2083
2084 [[image:image-20220627153421-8.png]]
2085
2086
2087 (((
2088 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.
2089 )))
2090
2091
2092
2093 == 7.2  Why I can't join TTN V3 in US915 / AU915 bands? ==
2094
2095
2096 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.
2097
2098
2099
2100 == 7.3  AT Command input doesn't work ==
2101
2102
2103 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.
2104
2105
2106
2107 = 8.  Order Info =
2108
2109
2110 Part Number: (% style="color:blue" %)**LSN50-XX-YY  **(%%)**or  (% style="color:blue" %)LSN50-v2-XX-YY-ZZ(%%)**
2111
2112 (% style="color:blue" %)**XX**(%%): The default frequency band
2113
2114 * (% style="color:red" %)**AS923 **(%%)**:** LoRaWAN AS923 band
2115 * (% style="color:red" %)**AU915 **(%%)**:** LoRaWAN AU915 band
2116 * (% style="color:red" %)**EU433 **(%%)**:** LoRaWAN EU433 band
2117 * (% style="color:red" %)**EU868 **(%%)**:** LoRaWAN EU868 band
2118 * (% style="color:red" %)**KR920 **(%%)**:** LoRaWAN KR920 band
2119 * (% style="color:red" %)**US915 **(%%)**:** LoRaWAN US915 band
2120 * (% style="color:red" %)**IN865 **(%%)**:**  LoRaWAN IN865 band
2121 * (% style="color:red" %)**CN470 **(%%)**:** LoRaWAN CN470 band
2122
2123 (% style="color:blue" %)**YY**(%%)**: **Hole Option
2124
2125 * (% style="color:red" %)**12**(%%): With M12 waterproof cable hole
2126 * (% style="color:red" %)**16**(%%): With M16 waterproof cable hole
2127 * (% style="color:red" %)**20**(%%): With M20 waterproof cable hole (LSN50 v2 doesn't have this version)
2128 * (% style="color:red" %)**NH**(%%): No Hole
2129
2130 (% style="color:blue" %)**ZZ**(%%)**: **Battery Option ( Only valid for v2 model)
2131
2132 * (% style="color:red" %)**4**(%%): with 4000mAh battery
2133 * (% style="color:red" %)**8**(%%): with 8500mAg battery
2134
2135
2136
2137 = 9. ​ Packing Info =
2138
2139
2140 (% style="color:blue" %)**For LSN50**(%%)**:**
2141
2142 **Package Includes**:
2143
2144 * LSN50 LoRa Sensor Node x 1
2145
2146 **Dimension and weight**:
2147
2148 * Device Size: 8 x 6.5 x 5 cm
2149 * Device Weight: 137g
2150 * Package Size / pcs : 9 x 7 x 6cm
2151 * Weight / pcs : 160g
2152
2153
2154
2155 (% style="color:blue" %)**For LSN50 v2**(%%)**:**
2156
2157 **Package Includes**:
2158
2159 * LSN50 v2 LoRa Sensor Node x 1
2160 * External antenna x 1
2161 * Spring Antenna (evaluate purpose)
2162
2163 **Dimension and weight**:
2164
2165 * Device Size: 9.7 x 6.5 x 4.7 cm
2166 * Device Weight: 150g
2167 * Package Size / pcs : 14.0 x 8x 5 cm
2168 * Weight / pcs : 180g
2169
2170
2171
2172 = 10.  ​Support =
2173
2174
2175 * 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.
2176 * 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]].
2177
2178
2179
2180 = 11.  References =
2181
2182
2183 * [[Product Page>>url:http://www.dragino.com/products/lora/item/128-lsn50.html]]
2184 * [[Data Sheet, Document Base>>https://www.dropbox.com/sh/djkxs7mr17y94mi/AABVlWbM9uzK9OA3mXyAT10Za?dl=0]]
2185 * [[Image Download>>url:https://github.com/dragino/LoRa_STM32/tree/master/LSN50.hex]]
2186
2187
2188 )))
Copyright ©2010-2022 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0