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