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