Version 443.1 by Bei Jinggeng on 2023/02/01 10:55

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