<
From version < 5.1 >
edited by Edwin Chen
on 2023/05/11 20:23
To version < 37.1 >
edited by Saxer Lin
on 2023/05/13 12:52
>
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.Edwin
1 +XWiki.Saxer
Content
... ... @@ -42,7 +42,6 @@
42 42  * Downlink to change configure
43 43  * 8500mAh Battery for long term use
44 44  
45 -
46 46  == 1.3 Specification ==
47 47  
48 48  (% style="color:#037691" %)**Common DC Characteristics:**
... ... @@ -79,7 +79,6 @@
79 79  * Sleep Mode: 5uA @ 3.3v
80 80  * LoRa Transmit Mode: 125mA @ 20dBm, 82mA @ 14dBm
81 81  
82 -
83 83  == 1.4 Sleep mode and working mode ==
84 84  
85 85  (% style="color:blue" %)**Deep Sleep Mode: **(%%)Sensor doesn't have any LoRaWAN activate. This mode is used for storage and shipping to save battery life.
... ... @@ -106,7 +106,6 @@
106 106  )))
107 107  |(% style="width:167px" %)Fast press ACT 5 times.|(% style="width:117px" %)Deactivate Device|(% style="width:225px" %)(% style="color:red" %)**Red led**(%%) will solid on for 5 seconds. Means device is in Deep Sleep Mode.
108 108  
109 -
110 110  == 1.6 BLE connection ==
111 111  
112 112  
... ... @@ -122,37 +122,19 @@
122 122  If there is no activity connection on BLE in 60 seconds, sensor will shut down BLE module to enter low power mode.
123 123  
124 124  
125 -== 1.7  Pin Definitions ==
122 +== 1.7 Pin Definitions ==
126 126  
127 127  
128 -(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:510px" %)
129 -|=(% style="width: 102px;background-color:#D9E2F3;color:#0070C0" %)Model|=(% style="width: 190px;background-color:#D9E2F3;color:#0070C0" %)Photo|=(% style="width: 218px;background-color:#D9E2F3;color:#0070C0" %)Probe Info
130 -|(% style="width:102px" %)S31-LB|(% style="width:190px" %)[[image:S31.jpg]]|(% style="width:297px" %)(((
131 -1 x SHT31 Probe
125 +[[image:image-20230513102034-2.png]]
132 132  
133 -Cable Length : 2 meters
134 134  
135 -
136 -)))
137 -|(% style="width:102px" %)S31B-LB|(% style="width:190px" %)[[image:S31B.jpg]]|(% style="width:297px" %)(((
138 -1 x SHT31 Probe
139 -
140 -Installed in device.
141 -)))
142 -
143 -(% style="display:none" %)
144 -
145 -
146 -
147 147  == 1.8 Mechanical ==
148 148  
149 149  
150 150  [[image:Main.User Manual for LoRaWAN End Nodes.D20-LBD22-LBD23-LB_LoRaWAN_Temperature_Sensor_User_Manual.WebHome@1675143884058-338.png]]
151 151  
152 -
153 153  [[image:Main.User Manual for LoRaWAN End Nodes.D20-LBD22-LBD23-LB_LoRaWAN_Temperature_Sensor_User_Manual.WebHome@1675143899218-599.png]]
154 154  
155 -
156 156  [[image:Main.User Manual for LoRaWAN End Nodes.D20-LBD22-LBD23-LB_LoRaWAN_Temperature_Sensor_User_Manual.WebHome@1675143909447-639.png]]
157 157  
158 158  
... ... @@ -165,12 +165,12 @@
165 165  [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/1656298089706-973.png?rev=1.1||alt="1656298089706-973.png"]]
166 166  
167 167  
168 -= 2. Configure S31x-LB to connect to LoRaWAN network =
147 += 2. Configure SN50v3-LB to connect to LoRaWAN network =
169 169  
170 170  == 2.1 How it works ==
171 171  
172 172  
173 -The S31x-LB is configured as (% style="color:#037691" %)**LoRaWAN OTAA Class A**(%%) mode by default. It has OTAA keys to join LoRaWAN network. To connect a local LoRaWAN network, you need to input the OTAA keys in the LoRaWAN IoT server and press the button to activate the S31x-LB. It will automatically join the network via OTAA and start to send the sensor value. The default uplink interval is 20 minutes.
152 +The SN50v3-LB is configured as (% style="color:#037691" %)**LoRaWAN OTAA Class A**(%%) mode by default. It has OTAA keys to join LoRaWAN network. To connect a local LoRaWAN network, you need to input the OTAA keys in the LoRaWAN IoT server and press the button to activate the S31x-LB. It will automatically join the network via OTAA and start to send the sensor value. The default uplink interval is 20 minutes.
174 174  
175 175  
176 176  == 2.2 ​Quick guide to connect to LoRaWAN server (OTAA) ==
... ... @@ -181,11 +181,11 @@
181 181  The LPS8V2 is already set to connected to [[TTN network >>url:https://console.cloud.thethings.network/]], so what we need to now is configure the TTN server.
182 182  
183 183  
184 -(% style="color:blue" %)**Step 1:**(%%) Create a device in TTN with the OTAA keys from S31x-LB.
163 +(% style="color:blue" %)**Step 1:**(%%) Create a device in TTN with the OTAA keys from SN50v3-LB.
185 185  
186 -Each S31x-LB is shipped with a sticker with the default device EUI as below:
165 +Each SN50v3-LB is shipped with a sticker with the default device EUI as below:
187 187  
188 -[[image:image-20230426084152-1.png||alt="图片-20230426084152-1.png" height="233" width="502"]]
167 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/S31-LB_S31B-LB/WebHome/image-20230426084152-1.png?width=502&height=233&rev=1.1||alt="图片-20230426084152-1.png" height="233" width="502"]]
189 189  
190 190  
191 191  You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:
... ... @@ -212,10 +212,10 @@
212 212  [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50v2-S31-S31B%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20User%20Manual/WebHome/image-20220611161308-6.png?width=744&height=485&rev=1.1||alt="图片-20220611161308-6.png"]]
213 213  
214 214  
215 -(% style="color:blue" %)**Step 2:**(%%) Activate on S31x-LB
194 +(% style="color:blue" %)**Step 2:**(%%) Activate SN50v3-LB
216 216  
217 217  
218 -Press the button for 5 seconds to activate the S31x-LB.
197 +Press the button for 5 seconds to activate the SN50v3-LB.
219 219  
220 220  (% style="color:green" %)**Green led**(%%) will fast blink 5 times, device will enter (% style="color:blue" %)**OTA mode**(%%) for 3 seconds. And then start to JOIN LoRaWAN network. (% style="color:green" %)**Green led**(%%) will solidly turn on for 5 seconds after joined in network.
221 221  
... ... @@ -227,7 +227,7 @@
227 227  === 2.3.1 Device Status, FPORT~=5 ===
228 228  
229 229  
230 -Users can use the downlink command(**0x26 01**) to ask S31x-LB to send device configure detail, include device configure status. S31x-LB will uplink a payload via FPort=5 to server.
209 +Users can use the downlink command(**0x26 01**) to ask SN50v3 to send device configure detail, include device configure status. SN50v3 will uplink a payload via FPort=5 to server.
231 231  
232 232  The Payload format is as below.
233 233  
... ... @@ -239,11 +239,9 @@
239 239  
240 240  Example parse in TTNv3
241 241  
242 -[[image:image-20230421171614-1.png||alt="图片-20230421171614-1.png"]]
243 243  
222 +(% style="color:#037691" %)**Sensor Model**(%%): For SN50v3, this value is 0x1C
244 244  
245 -(% style="color:#037691" %)**Sensor Model**(%%): For S31x-LB, this value is 0x0A
246 -
247 247  (% style="color:#037691" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version
248 248  
249 249  (% style="color:#037691" %)**Frequency Band**:
... ... @@ -295,39 +295,391 @@
295 295  Ex2: 0x0B49 = 2889mV
296 296  
297 297  
298 -=== 2.3.2  Sensor Data. FPORT~=2 ===
275 +=== 2.3.2 Working Modes & Sensor Data. Uplink via FPORT~=2 ===
299 299  
300 300  
301 -Sensor Data is uplink via FPORT=2
278 +SN50v3 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 SN50v3 to different working modes.
302 302  
303 -(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:500px" %)
304 -|=(% style="width: 90px;background-color:#D9E2F3" %)(((
280 +For example:
281 +
282 + **AT+MOD=2  ** ~/~/ will set the SN50v3 to work in MOD=2 distance mode which target to measure distance via Ultrasonic Sensor.
283 +
284 +
285 +(% style="color:red" %) **Important Notice:**
286 +
287 +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 SN50v3 transmit in DR0 with 12 bytes payload.
288 +1. All modes share the same Payload Explanation from HERE.
289 +1. By default, the device will send an uplink message every 20 minutes.
290 +
291 +==== 2.3.2.1  MOD~=1 (Default Mode) ====
292 +
293 +In this mode, uplink payload includes in total 11 bytes. Uplink packets use FPORT=2.
294 +
295 +|**Size(bytes)**|**2**|**2**|**2**|(% style="width:216px" %)**1**|(% style="width:342px" %)**2**|(% style="width:171px" %)**2**
296 +|**Value**|Bat|(((
297 +Temperature(DS18B20)
298 +
299 +(PC13)
300 +)))|(((
301 +ADC
302 +
303 +(PA4)
304 +)))|(% style="width:216px" %)(((
305 +Digital in(PB15) &
306 +
307 +Digital Interrupt(PA8)
308 +
309 +
310 +)))|(% style="width:342px" %)(((
311 +Temperature
312 +
313 +(SHT20 or SHT31 or BH1750 Illumination Sensor)
314 +)))|(% style="width:171px" %)(((
315 +Humidity
316 +
317 +(SHT20 or SHT31)
318 +)))
319 +
320 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/image-20220627150949-6.png?rev=1.1||alt="image-20220627150949-6.png"]]
321 +
322 +
323 +==== 2.3.2.2  MOD~=2 (Distance Mode) ====
324 +
325 +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.
326 +
327 +|**Size(bytes)**|**2**|**2**|**2**|**1**|**2**|**2**
328 +|**Value**|BAT|(((
329 +Temperature(DS18B20)
330 +
331 +(PC13)
332 +)))|(((
333 +ADC
334 +
335 +(PA4)
336 +)))|(((
337 +Digital in(PB15) &
338 +
339 +Digital Interrupt(PA8)
340 +)))|(((
341 +Distance measure by:
342 +1) LIDAR-Lite V3HP
343 +Or
344 +2) Ultrasonic Sensor
345 +)))|Reserved
346 +
347 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/1656324539647-568.png?rev=1.1||alt="1656324539647-568.png"]]
348 +
349 +**Connection of LIDAR-Lite V3HP:**
350 +
351 +[[image:image-20230512173758-5.png||height="563" width="712"]]
352 +
353 +**Connection to Ultrasonic Sensor:**
354 +
355 +Need to remove R1 and R2 resistors to get low power,otherwise there will be 240uA standby current.
356 +
357 +[[image:image-20230512173903-6.png||height="596" width="715"]]
358 +
359 +For the connection to TF-Mini or TF-Luna , MOD2 payload is as below:
360 +
361 +|**Size(bytes)**|**2**|**2**|**1**|**2**|**2**|**2**
362 +|**Value**|BAT|(((
363 +Temperature(DS18B20)
364 +
365 +(PC13)
366 +)))|(((
367 +Digital in(PB15) &
368 +
369 +Digital Interrupt(PA8)
370 +)))|(((
371 +ADC
372 +
373 +(PA4)
374 +)))|(((
375 +Distance measure by:1)TF-Mini plus LiDAR
376 +Or 
377 +2) TF-Luna LiDAR
378 +)))|Distance signal  strength
379 +
380 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/1656376779088-686.png?rev=1.1||alt="1656376779088-686.png"]]
381 +
382 +**Connection to [[TF-Mini plus>>url:http://en.benewake.com/product/detail/5c345cd0e5b3a844c472329b.html]] LiDAR(UART version):**
383 +
384 +Need to remove R3 and R4 resistors to get low power,otherwise there will be 400uA standby current.
385 +
386 +[[image:image-20230512180609-7.png||height="555" width="802"]]
387 +
388 +**Connection to [[TF-Luna>>url:http://en.benewake.com/product/detail/5e1c1fd04d839408076b6255.html]] LiDAR (UART version):**
389 +
390 +Need to remove R3 and R4 resistors to get low power,otherwise there will be 400uA standby current.
391 +
392 +[[image:image-20230513105207-4.png||height="469" width="802"]]
393 +
394 +
395 +==== 2.3.2.3  MOD~=3 (3 ADC + I2C) ====
396 +
397 +This mode has total 12 bytes. Include 3 x ADC + 1x I2C
398 +
399 +(% style="width:1031px" %)
400 +|=(((
305 305  **Size(bytes)**
306 -)))|=(% style="width: 80px;background-color:#D9E2F3" %)2|=(% style="width: 90px;background-color:#D9E2F3" %)4|=(% style="width:80px;background-color:#D9E2F3" %)1|=(% style="width: 80px;background-color:#D9E2F3" %)**2**|=(% style="width: 80px;background-color:#D9E2F3" %)2
307 -|(% style="width:99px" %)**Value**|(% style="width:69px" %)(((
308 -[[Battery>>||anchor="HBattery:"]]
309 -)))|(% style="width:130px" %)(((
310 -[[Unix TimeStamp>>||anchor="H2.5.2UnixTimeStamp"]]
311 -)))|(% style="width:91px" %)(((
312 -[[Alarm Flag>>||anchor="HAlarmFlag26MOD:"]]
313 -)))|(% style="width:103px" %)(((
314 -[[Temperature>>||anchor="HTemperature:"]]
315 -)))|(% style="width:80px" %)(((
316 -[[Humidity>>||anchor="HHumidity:"]]
402 +)))|=(% style="width: 68px;" %)**2**|=(% style="width: 75px;" %)**2**|=**2**|=**1**|=(% style="width: 304px;" %)2|=(% style="width: 163px;" %)2|=(% style="width: 53px;" %)1
403 +|**Value**|(% style="width:68px" %)(((
404 +ADC1
405 +
406 +(PA4)
407 +)))|(% style="width:75px" %)(((
408 +ADC2
409 +
410 +(PA5)
411 +)))|(((
412 +ADC3
413 +
414 +(PA8)
415 +)))|(((
416 +Digital Interrupt(PB15)
417 +)))|(% style="width:304px" %)(((
418 +Temperature
419 +
420 +(SHT20 or SHT31 or BH1750 Illumination Sensor)
421 +)))|(% style="width:163px" %)(((
422 +Humidity
423 +
424 +(SHT20 or SHT31)
425 +)))|(% style="width:53px" %)Bat
426 +
427 +[[image:image-20230513110214-6.png]]
428 +
429 +
430 +==== 2.3.2.4 MOD~=4 (3 x DS18B20) ====
431 +
432 +[[image:image-20230512170701-3.png||height="565" width="743"]]
433 +
434 +This mode has total 11 bytes. As shown below:
435 +
436 +(% style="width:1017px" %)
437 +|**Size(bytes)**|**2**|(% style="width:186px" %)**2**|(% style="width:82px" %)**2**|(% style="width:210px" %)**1**|(% style="width:191px" %)**2**|(% style="width:183px" %)**2**
438 +|**Value**|BAT|(% style="width:186px" %)(((
439 +Temperature1(DS18B20)
440 +(PC13)
441 +)))|(% style="width:82px" %)(((
442 +ADC
443 +
444 +(PA4)
445 +)))|(% style="width:210px" %)(((
446 +Digital in(PB15) &
447 +
448 +Digital Interrupt(PA8) 
449 +)))|(% style="width:191px" %)Temperature2(DS18B20)
450 +(PB9)|(% style="width:183px" %)Temperature3(DS18B20)
451 +(PB8)
452 +
453 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/1656377606181-607.png?rev=1.1||alt="1656377606181-607.png"]]
454 +
455 +
456 +==== 2.3.2.5  MOD~=5(Weight Measurement by HX711) ====
457 +
458 +[[image:image-20230512164658-2.png||height="532" width="729"]]
459 +
460 +Each HX711 need to be calibrated before used. User need to do below two steps:
461 +
462 +1. Zero calibration. Don't put anything on load cell and run **AT+WEIGRE** to calibrate to Zero gram.
463 +1. Adjust calibration factor (default value 400): Put a known weight thing on load cell and run **AT+WEIGAP** to adjust the Calibration Factor.
464 +1. (((
465 +Weight has 4 bytes, the unit is g.
317 317  )))
318 318  
319 -==== (% style="color:#4472c4" %)**Battery**(%%) ====
468 +For example:
320 320  
321 -Sensor Battery Level.
470 +**AT+GETSENSORVALUE =0**
322 322  
472 +Response:  Weight is 401 g
473 +
474 +Check the response of this command and adjust the value to match the real value for thing.
475 +
476 +(% style="width:982px" %)
477 +|=(((
478 +**Size(bytes)**
479 +)))|=**2**|=(% style="width: 282px;" %)**2**|=(% style="width: 119px;" %)**2**|=(% style="width: 279px;" %)**1**|=(% style="width: 106px;" %)**4**
480 +|**Value**|BAT|(% style="width:282px" %)(((
481 +Temperature(DS18B20)
482 +
483 +(PC13)
484 +
485 +
486 +)))|(% style="width:119px" %)(((
487 +ADC
488 +
489 +(PA4)
490 +)))|(% style="width:279px" %)(((
491 +Digital in(PB15) &
492 +
493 +Digital Interrupt(PA8)
494 +)))|(% style="width:106px" %)Weight
495 +
496 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/image-20220820120036-2.png?width=1003&height=469&rev=1.1||alt="image-20220820120036-2.png" height="469" width="1003"]]
497 +
498 +
499 +==== 2.3.2.6  MOD~=6 (Counting Mode) ====
500 +
501 +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.
502 +
503 +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.
504 +
505 +[[image:image-20230512181814-9.png||height="543" width="697"]]
506 +
507 +**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 SN50_v3 to avoid this happen.
508 +
509 +(% style="width:961px" %)
510 +|=**Size(bytes)**|=**2**|=(% style="width: 256px;" %)**2**|=(% style="width: 108px;" %)**2**|=(% style="width: 126px;" %)**1**|=(% style="width: 145px;" %)**4**
511 +|**Value**|BAT|(% style="width:256px" %)(((
512 +Temperature(DS18B20)
513 +
514 +(PC13)
515 +)))|(% style="width:108px" %)(((
516 +ADC
517 +
518 +(PA4)
519 +)))|(% style="width:126px" %)(((
520 +Digital in
521 +
522 +(PB15)
523 +)))|(% style="width:145px" %)(((
524 +Count
525 +
526 +(PA8)
527 +)))
528 +
529 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/1656378441509-171.png?rev=1.1||alt="1656378441509-171.png"]]
530 +
531 +
532 +==== 2.3.2.7  MOD~=7 (Three interrupt contact modes) ====
533 +
534 +|=(((
535 +**Size(bytes)**
536 +)))|=**2**|=**2**|=**2**|=**1**|=**1**|=1|=2
537 +|**Value**|BAT|(((
538 +Temperature(DS18B20)
539 +
540 +(PC13)
541 +)))|(((
542 +ADC
543 +
544 +(PA5)
545 +)))|(((
546 +Digital Interrupt1(PA8)
547 +)))|Digital Interrupt2(PA4)|Digital Interrupt3(PB15)|Reserved
548 +
549 +[[image:image-20230513111203-7.png||height="324" width="975"]]
550 +
551 +==== 2.3.2.8  MOD~=8 (3ADC+1DS18B20) ====
552 +
553 +(% style="width:917px" %)
554 +|=(((
555 +**Size(bytes)**
556 +)))|=**2**|=(% style="width: 207px;" %)**2**|=(% style="width: 94px;" %)**2**|=(% style="width: 198px;" %)**1**|=(% style="width: 84px;" %)**2**|=(% style="width: 79px;" %)2
557 +|**Value**|BAT|(% style="width:207px" %)(((
558 +Temperature(DS18B20)
559 +
560 +(PC13)
561 +)))|(% style="width:94px" %)(((
562 +ADC1
563 +
564 +(PA4)
565 +)))|(% style="width:198px" %)(((
566 +Digital Interrupt(PB15)
567 +)))|(% style="width:84px" %)(((
568 +ADC2
569 +
570 +(PA5)
571 +)))|(% style="width:79px" %)(((
572 +ADC3
573 +
574 +(PA8)
575 +)))
576 +
577 +[[image:image-20230513111231-8.png||height="335" width="900"]]
578 +
579 +
580 +==== 2.3.2.9  MOD~=9 (3DS18B20+ two Interrupt count mode) ====
581 +
582 +(% style="width:1010px" %)
583 +|=(((
584 +**Size(bytes)**
585 +)))|=**2**|=**2**|=**2**|=**1**|=(% style="width: 193px;" %)**2**|=(% style="width: 78px;" %)4|=(% style="width: 78px;" %)4
586 +|**Value**|BAT|(((
587 +Temperature1(DS18B20)
588 +
589 +(PC13)
590 +)))|(((
591 +Temperature2(DS18B20)
592 +
593 +(PB9)
594 +)))|(((
595 +Digital Interrupt
596 +
597 +(PB15)
598 +)))|(% style="width:193px" %)(((
599 +Temperature3(DS18B20)
600 +
601 +(PB8)
602 +)))|(% style="width:78px" %)(((
603 +Count1
604 +
605 +(PA8)
606 +)))|(% style="width:78px" %)(((
607 +Count2
608 +
609 +(PA4)
610 +)))
611 +
612 +[[image:image-20230513111255-9.png||height="341" width="899"]]
613 +
614 +**The newly added AT command is issued correspondingly:**
615 +
616 +**~ AT+INTMOD1** ** PA8**  pin:  Corresponding downlink:  **06 00 00 xx**
617 +
618 +**~ AT+INTMOD2**  **PA4**  pin:  Corresponding downlink:**  06 00 01 xx**
619 +
620 +**~ AT+INTMOD3**  **PB15**  pin:  Corresponding downlink:  ** 06 00 02 xx**
621 +
622 +**AT+SETCNT=aa,bb** 
623 +
624 +When AA is 1, set the count of PA8 pin to BB Corresponding downlink:09 01 bb bb bb bb
625 +
626 +When AA is 2, set the count of PA4 pin to BB Corresponding downlink:09 02 bb bb bb bb
627 +
628 +
629 +
630 +=== 2.3.3  ​Decode payload ===
631 +
632 +While using TTN V3 network, you can add the payload format to decode the payload.
633 +
634 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/1656378466788-734.png?rev=1.1||alt="1656378466788-734.png"]]
635 +
636 +The payload decoder function for TTN V3 are here:
637 +
638 +SN50v3 TTN V3 Payload Decoder:  [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>url:https://github.com/dragino/dragino-end-node-decoder]]
639 +
640 +
641 +==== 2.3.3.1 Battery Info ====
642 +
643 +Check the battery voltage for SN50v3.
644 +
323 323  Ex1: 0x0B45 = 2885mV
324 324  
325 325  Ex2: 0x0B49 = 2889mV
326 326  
327 327  
650 +==== 2.3.3.2  Temperature (DS18B20) ====
328 328  
329 -==== (% style="color:#4472c4" %)**Temperature**(%%) ====
652 +If there is a DS18B20 connected to PB3 pin. The temperature will be uploaded in the payload.
330 330  
654 +More DS18B20 can check the [[3 DS18B20 mode>>url:http://wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/#2.3.4MOD3D4283xDS18B2029]]
655 +
656 +**Connection:**
657 +
658 +[[image:image-20230512180718-8.png||height="538" width="647"]]
659 +
331 331  **Example**:
332 332  
333 333  If payload is: 0105H:  (0105 & 8000 == 0), temp = 0105H /10 = 26.1 degree
... ... @@ -337,195 +337,208 @@
337 337  (FF3F & 8000:Judge whether the highest bit is 1, when the highest bit is 1, it is negative)
338 338  
339 339  
340 -==== (% style="color:#4472c4" %)**Humidity**(%%) ====
669 +==== 2.3.3.3 Digital Input ====
341 341  
671 +The digital input for pin PB15,
342 342  
343 -Read:0x(0197)=412    Value:  412 / 10=41.2, So 41.2%
673 +* When PB15 is high, the bit 1 of payload byte 6 is 1.
674 +* When PB15 is low, the bit 1 of payload byte 6 is 0.
344 344  
676 +(% class="wikigeneratedid" id="H2.3.3.4A0AnalogueDigitalConverter28ADC29" %)
677 +(((
678 +When the digital interrupt pin is set to AT+INTMODx=0, this pin is used as a digital input pin.
345 345  
346 -==== (% style="color:#4472c4" %)**Alarm Flag& MOD**(%%) ====
680 +**Note:**The maximum voltage input supports 3.6V.
681 +)))
347 347  
683 +==== 2.3.3.4  Analogue Digital Converter (ADC) ====
348 348  
349 -**Example:**
685 +The measuring range of the ADC is only about 0V to 1.1V The voltage resolution is about 0.24mv.
350 350  
351 -If payload & 0x01 = 0x01  **~-~->** This is an Alarm Message
687 +When the measured output voltage of the sensor is not within the range of 0V and 1.1V, the output voltage terminal of the sensor shall be divided The example in the following figure is to reduce the output voltage of the sensor by three times If it is necessary to reduce more times, calculate according to the formula in the figure and connect the corresponding resistance in series.
352 352  
353 -If payload & 0x01 = 0x00  **~-~->** This is a normal uplink message, no alarm
689 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20220628150112-1.png?width=285&height=241&rev=1.1||alt="image-20220628150112-1.png" height="241" width="285"]]
354 354  
355 -If payload >> 2 = 0x00  **~-~->**  means MOD=1, This is a sampling uplink message
691 +**Note:**If the ADC type sensor needs to be powered by SN50_v3, it is recommended to use +5V to control its switch.Only sensors with low power consumption can be powered with VDD.
356 356  
357 -If payload >> 2 = 0x3 **~-~->**  means MOD=31, this message is a reply message for polling, this message contains the alarm settings. see [[this link>>path:#HPolltheAlarmsettings:]] for detail. 
693 +==== 2.3.3.5 Digital Interrupt ====
358 358  
695 +Digital Interrupt refers to pin PA8, and there are different trigger methods. When there is a trigger, the SN50v3 will send a packet to the server.
359 359  
360 -== 2.4 Payload Decoder file ==
697 +**~ Interrupt connection method:**
361 361  
699 +[[image:image-20230513105351-5.png||height="147" width="485"]]
362 362  
363 -In TTN, use can add a custom payload so it shows friendly reading
701 +**Example to use with door sensor :**
364 364  
365 -In the page (% style="color:#037691" %)**Applications ~-~-> Payload Formats ~-~-> Custom ~-~-> decoder**(%%) to add the decoder from:
703 +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.
366 366  
367 -[[https:~~/~~/github.com/dragino/dragino-end-node-decoder/tree/main/LSN50v2-S31%26S31B >>https://github.com/dragino/dragino-end-node-decoder/tree/main/LSN50v2-S31%26S31B]]
705 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/1656379210849-860.png?rev=1.1||alt="1656379210849-860.png"]]
368 368  
707 +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 SN50_v3 interrupt interface to detect the status for the door or window.
369 369  
370 -== 2.5 Datalog Feature ==
709 +**~ Below is the installation example:**
371 371  
711 +Fix one piece of the magnetic sensor to the door and connect the two pins to SN50_v3 as follows:
372 372  
373 -Datalog Feature is to ensure IoT Server can get all sampling data from Sensor even if the LoRaWAN network is down. For each sampling, S31x-LB will store the reading for future retrieving purposes.
713 +* (((
714 +One pin to SN50_v3's PA8 pin
715 +)))
716 +* (((
717 +The other pin to SN50_v3's VDD pin
718 +)))
374 374  
720 +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 PA8 will be at the VCC voltage.
375 375  
376 -=== 2.5.1 Ways to get datalog via LoRaWAN ===
722 +Door sensors have two types: ** NC (Normal close)** and **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.
377 377  
724 +When door sensor is shorted, there will extra power consumption in the circuit, the extra current is 3v3/R14 = 3v3/1Mohm = 3uA which can be ignored.
378 378  
379 -Set [[PNACKMD=1>>||anchor="H2.5.4DatalogUplinkpayloadA028FPORT3D329"]], S31x-LB will wait for ACK for every uplink, when there is no LoRaWAN network,S31x-LB will mark these records with non-ack messages and store the sensor data, and it will send all messages (10s interval) after the network recovery.
726 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/1656379283019-229.png?rev=1.1||alt="1656379283019-229.png"]]
380 380  
381 -* a) S31x-LB will do an ACK check for data records sending to make sure every data arrive server.
382 -* b) S31x-LB will send data in **CONFIRMED Mode** when PNACKMD=1, but S31x-LB won't re-transmit the packet if it doesn't get ACK, it will just mark it as a NONE-ACK message. In a future uplink if S31x-LB gets a ACK, S31x-LB will consider there is a network connection and resend all NONE-ACK messages.
728 +The above photos shows the two parts of the magnetic switch fitted to a door.
383 383  
384 -Below is the typical case for the auto-update datalog feature (Set PNACKMD=1)
730 +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.
385 385  
386 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20220703111700-2.png?width=1119&height=381&rev=1.1||alt="图片-20220703111700-2.png" height="381" width="1119"]]
732 +The command is:
387 387  
388 -=== 2.5.2 Unix TimeStamp ===
734 +**AT+INTMOD1=1       **~/~/(more info about INMOD please refer** **[[**AT Command Manual**>>url:http://www.dragino.com/downloads/index.php?dir=LSN50-LoRaST/&file=DRAGINO_LSN50_AT_Commands_v1.5.1.pdf]]**. **)
389 389  
736 +Below shows some screen captures in TTN V3:
390 390  
391 -S31x-LB uses Unix TimeStamp format based on
738 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/1656379339508-835.png?rev=1.1||alt="1656379339508-835.png"]]
392 392  
393 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20220523001219-11.png?width=627&height=97&rev=1.1||alt="图片-20220523001219-11.png" height="97" width="627"]]
740 +In MOD=1, user can use byte 6 to see the status for door open or close. TTN V3 decoder is as below:
394 394  
395 -User can get this time from link:  [[https:~~/~~/www.epochconverter.com/>>url:https://www.epochconverter.com/]] :
742 +door= (bytes[6] & 0x80)? "CLOSE":"OPEN";
396 396  
397 -Below is the converter example
398 398  
399 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20220523001219-12.png?width=720&height=298&rev=1.1||alt="图片-20220523001219-12.png" height="298" width="720"]]
745 +==== 2.3.3.6 I2C Interface (SHT20 & SHT31) ====
400 400  
401 -So, we can use AT+TIMESTAMP=1611889405 or downlink 3060137afd00 to set the current time 2021 Jan ~-~- 29 Friday 03:03:25
747 +The SDA and SCK are I2C interface lines. You can use these to connect to an I2C device and get the sensor data.
402 402  
749 +We have made an example to show how to use the I2C interface to connect to the SHT20 Temperature and Humidity Sensor.
403 403  
404 -=== 2.5.3 Set Device Time ===
751 +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 SN50_v3 will be a good reference.
405 405  
753 +Below is the connection to SHT20/ SHT31. The connection is as below:
406 406  
407 -User need to set (% style="color:blue" %)**SYNCMOD=1**(%%) to enable sync time via MAC command.
408 408  
409 -Once S31x-LB Joined LoRaWAN network, it will send the MAC command (DeviceTimeReq) and the server will reply with (DeviceTimeAns) to send the current time to S31x-LB. If S31x-LB fails to get the time from the server, S31x-LB will use the internal time and wait for next time request (AT+SYNCTDC to set the time request period, default is 10 days).
756 +[[image:image-20230513103633-3.png||height="636" width="1017"]]
410 410  
411 -(% style="color:red" %)**Note: LoRaWAN Server need to support LoRaWAN v1.0.3(MAC v1.0.3) or higher to support this MAC command feature, Chirpstack,TTN V3 v3 and loriot support but TTN V3 v2 doesn't support. If server doesn't support this command, it will through away uplink packet with this command, so user will lose the packet with time request for TTN V3 v2 if SYNCMOD=1.**
758 +The device will be able to get the I2C sensor data now and upload to IoT Server.
412 412  
760 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/1656379664142-345.png?rev=1.1||alt="1656379664142-345.png"]]
413 413  
414 -=== 2.5.4 Datalog Uplink payload (FPORT~=3) ===
762 +Convert the read byte to decimal and divide it by ten.
415 415  
764 +**Example:**
416 416  
417 -The Datalog uplinks will use below payload format.
766 +Temperature Read:0116(H) = 278(D)  Value:  278 /10=27.8℃;
418 418  
419 -**Retrieval data payload:**
768 +Humidity:    Read:0248(H)=584(D)  Value:  584 / 10=58.4, So 58.4%
420 420  
421 -(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:510px" %)
422 -|=(% style="width: 80px;background-color:#D9E2F3" %)(((
423 -**Size(bytes)**
424 -)))|=(% style="width: 60px; background-color: rgb(217, 226, 243);" %)**2**|=(% style="width: 60px; background-color: rgb(217, 226, 243);" %)**2**|=(% style="width: 120px; background-color: rgb(217, 226, 243);" %)**2**|=(% style="width: 103px; background-color: rgb(217, 226, 243);" %)**1**|=(% style="width: 85px; background-color: rgb(217, 226, 243);" %)**4**
425 -|(% style="width:103px" %)**Value**|(% style="width:54px" %)(((
426 -[[Temp_Black>>||anchor="HTemperatureBlack:"]]
427 -)))|(% style="width:51px" %)[[Temp_White>>||anchor="HTemperatureWhite:"]]|(% style="width:89px" %)[[Temp_ Red or Temp _White>>||anchor="HTemperatureREDorTemperatureWhite:"]]|(% style="width:103px" %)Poll message flag & Ext|(% style="width:54px" %)[[Unix Time Stamp>>||anchor="H2.5.2UnixTimeStamp"]]
770 +If you want to use other I2C device, please refer the SHT20 part source code as reference.
428 428  
429 -**Poll message flag & Ext:**
430 430  
431 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20221006192726-1.png?width=754&height=112&rev=1.1||alt="图片-20221006192726-1.png" height="112" width="754"]]
773 +==== 2.3.3.7  ​Distance Reading ====
432 432  
433 -**No ACK Message**:  1: This message means this payload is fromn Uplink Message which doesn't get ACK from the server before ( for **PNACKMD=1** feature)
775 +Refer [[Ultrasonic Sensor section>>url:http://wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/#H2.4.8UltrasonicSensor]].
434 434  
435 -**Poll Message Flag**: 1: This message is a poll message reply.
436 436  
437 -* Poll Message Flag is set to 1.
778 +==== 2.3.3.8 Ultrasonic Sensor ====
438 438  
439 -* Each data entry is 11 bytes, to save airtime and battery, devices will send max bytes according to the current DR and Frequency bands.
780 +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]]
440 440  
441 -For example, in US915 band, the max payload for different DR is:
782 +The SN50_v3 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.
442 442  
443 -**a) DR0:** max is 11 bytes so one entry of data
784 +The working principle of this sensor is similar to the **HC-SR04** ultrasonic sensor.
444 444  
445 -**b) DR1:** max is 53 bytes so devices will upload 4 entries of data (total 44 bytes)
786 +The picture below shows the connection:
446 446  
447 -**c) DR2:** total payload includes 11 entries of data
788 +[[image:image-20230512173903-6.png||height="596" width="715"]]
448 448  
449 -**d) DR3: **total payload includes 22 entries of data.
790 +Connect to the SN50_v3 and run **AT+MOD=2** to switch to ultrasonic mode (ULT).
450 450  
451 -If devise doesn't have any data in the polling time. Device will uplink 11 bytes of 0   
792 +The ultrasonic sensor uses the 8^^th^^ and 9^^th^^ byte for the measurement value.
452 452  
453 -
454 454  **Example:**
455 455  
456 -If S31x-LB has below data inside Flash:
796 +Distance:  Read: 0C2D(Hex) = 3117(D)  Value:  3117 mm=311.7 cm
457 457  
458 -[[image:1682646494051-944.png]]
459 459  
460 -If user sends below downlink command: 3160065F9760066DA705
461 461  
462 -Where : Start time: 60065F97 = time 21/1/19 04:27:03
800 +==== 2.3.3.9  Battery Output - BAT pin ====
463 463  
464 - Stop time: 60066DA7= time 21/1/19 05:27:03
802 +The BAT pin of SN50v3 is connected to the Battery directly. If users want to use BAT pin to power an external sensor. User need to make sure the external sensor is of low power consumption. Because the BAT pin is always open. If the external sensor is of high power consumption. the battery of SN50v3-LB will run out very soon.
465 465  
466 466  
467 -**S31x-LB will uplink this payload.**
805 +==== 2.3.3.1 +5V Output ====
468 468  
469 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20220523001219-13.png?width=727&height=421&rev=1.1||alt="图片-20220523001219-13.png" height="421" width="727"]]
807 +SN50v3 will enable +5V output before all sampling and disable the +5v after all sampling
470 470  
471 -(((
472 -__**7FFF089801464160065F97**__ **__7FFF__ __088E__ __014B__ __41__ __60066009__** 7FFF0885014E41600660667FFF0875015141600662BE7FFF086B015541600665167FFF08660155416006676E7FFF085F015A41600669C67FFF0857015D4160066C1E
473 -)))
809 +The 5V output time can be controlled by AT Command.
474 474  
475 -(((
476 -Where the first 11 bytes is for the first entry:
477 -)))
811 +**AT+5VT=1000**
478 478  
479 -(((
480 -7FFF089801464160065F97
481 -)))
813 +Means set 5V valid time to have 1000ms. So the real 5V output will actually have 1000ms + sampling time for other sensors.
482 482  
483 -(((
484 -**Ext sensor data**=0x7FFF/100=327.67
485 -)))
815 +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.
486 486  
487 -(((
488 -**Temp**=0x088E/100=22.00
489 -)))
490 490  
491 -(((
492 -**Hum**=0x014B/10=32.6
493 -)))
494 494  
495 -(((
496 -**poll message flag & Ext**=0x41,means reply data,Ext=1
497 -)))
819 +==== 2.3.3.11  BH1750 Illumination Sensor ====
498 498  
499 -(((
500 -**Unix time** is 0x60066009=1611030423s=21/1/19 04:27:03
501 -)))
821 +MOD=1 support this sensor. The sensor value is in the 8^^th^^ and 9^^th^^ bytes.
502 502  
823 +[[image:image-20230512172447-4.png||height="593" width="1015"]]
503 503  
504 -(% aria-label="数据 URI 图像图像小部件" 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==||alt="数据 URI 图片" data-widget="image" draggable="true" height="15" role="presentation" title="单击并拖动以移动" width="15"]](% aria-label="数据 URI 图像图像小部件" 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==||alt="数据 URI 图片" draggable="true" height="15" role="presentation" title="单击并拖动以移动" width="15"]](% aria-label="数据 URI 图像图像小部件" 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="单击并拖动以调整大小" %)的(% aria-label="数据 URI 图像图像小部件" 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==||alt="数据 URI 图片" data-widget="image" draggable="true" height="15" role="presentation" title="单击并拖动以移动" width="15"]](% aria-label="数据 URI 图像图像小部件" 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==||alt="数据 URI 图片" draggable="true" height="15" role="presentation" title="单击并拖动以移动" width="15"]](% aria-label="数据 URI 图像图像小部件" 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="单击并拖动以调整大小" %)的
825 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50%20%26%20LSN50-V2%20-%20LoRaWAN%20Sensor%20Node%20User%20Manual/WebHome/image-20220628110012-12.png?rev=1.1||alt="image-20220628110012-12.png"]]
505 505  
506 -== 2.6 Temperature Alarm Feature ==
507 507  
828 +==== 2.3.3.12  Working MOD ====
508 508  
509 -S31x-LB work flow with Alarm feature.
830 +The working MOD info is contained in the Digital in & Digital Interrupt byte (7^^th^^ Byte).
510 510  
832 +User can use the 3^^rd^^ ~~ 7^^th^^  bit of this byte to see the working mod:
511 511  
512 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50v2-D20-D22-D23%20LoRaWAN%20Temperature%20Sensor%20User%20Manual/WebHome/image-20220623090437-1.png?rev=1.1||alt="图片-20220623090437-1.png"]]
834 +Case 7^^th^^ Byte >> 2 & 0x1f:
513 513  
836 +* 0: MOD1
837 +* 1: MOD2
838 +* 2: MOD3
839 +* 3: MOD4
840 +* 4: MOD5
841 +* 5: MOD6
842 +* 6: MOD7
843 +* 7: MOD8
844 +* 8: MOD9
514 514  
515 -== 2.7 Frequency Plans ==
846 +== 2.4 Payload Decoder file ==
516 516  
517 517  
518 -The S31x-LB uses OTAA mode and below frequency plans by default. If user want to use it with different frequency plan, please refer the AT command sets.
849 +In TTN, use can add a custom payload so it shows friendly reading
519 519  
851 +In the page (% style="color:#037691" %)**Applications ~-~-> Payload Formats ~-~-> Custom ~-~-> decoder**(%%) to add the decoder from:
852 +
853 +[[https:~~/~~/github.com/dragino/dragino-end-node-decoder/tree/main/LSN50v2-S31%26S31B >>https://github.com/dragino/dragino-end-node-decoder/tree/main/LSN50v2-S31%26S31B]]
854 +
855 +
856 +
857 +== 2.5 Frequency Plans ==
858 +
859 +
860 +The SN50v3-LB uses OTAA mode and below frequency plans by default. If user want to use it with different frequency plan, please refer the AT command sets.
861 +
520 520  [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/]]
521 521  
522 522  
523 -= 3. Configure S31x-LB =
865 += 3. Configure SN50v3-LB =
524 524  
525 525  == 3.1 Configure Methods ==
526 526  
527 527  
528 -S31x-LB supports below configure method:
870 +SN50v3-LB supports below configure method:
529 529  
530 530  * AT Command via Bluetooth Connection (**Recommended**): [[BLE Configure Instruction>>http://wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/]].
531 531  * AT Command via UART Connection : See [[UART Connection>>http://wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H2.3UARTConnectionforSN50v3basemotherboard]].
... ... @@ -544,7 +544,7 @@
544 544  [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/]]
545 545  
546 546  
547 -== 3.3 Commands special design for S31x-LB ==
889 +== 3.3 Commands special design for SN50v3-LB ==
548 548  
549 549  
550 550  These commands only valid for S31x-LB, as below:
... ... @@ -580,7 +580,6 @@
580 580  
581 581  === 3.3.2 Get Device Status ===
582 582  
583 -
584 584  Send a LoRaWAN downlink to ask device send Alarm settings.
585 585  
586 586  (% style="color:blue" %)**Downlink Payload:  **(%%)0x26 01
... ... @@ -588,112 +588,154 @@
588 588  Sensor will upload Device Status via FPORT=5. See payload section for detail.
589 589  
590 590  
591 -=== 3.3.3 Set Temperature Alarm Threshold ===
932 +=== 3.3.3 Set Interrupt Mode ===
592 592  
593 -* (% style="color:blue" %)**AT Command:**
594 594  
595 -(% style="color:#037691" %)**AT+SHTEMP=min,max**
935 +Feature, Set Interrupt mode for GPIO_EXIT.
596 596  
597 -* When min=0, and max≠0, Alarm higher than max
598 -* When min≠0, and max=0, Alarm lower than min
599 -* When min≠0 and max≠0, Alarm higher than max or lower than min
937 +(% style="color:blue" %)**AT Command: AT+INTMOD1,AT+INTMOD2,AT+INTMOD3**
600 600  
601 -Example:
939 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
940 +|=(% style="width: 154px;background-color:#D9E2F3" %)**Command Example**|=(% style="width: 196px;background-color:#D9E2F3" %)**Function**|=(% style="width: 157px;background-color:#D9E2F3" %)**Response**
941 +|(% style="width:154px" %)AT+INTMOD1=?|(% style="width:196px" %)Show current interrupt mode|(% style="width:157px" %)(((
942 +0
943 +OK
944 +the mode is 0 =Disable Interrupt
945 +)))
946 +|(% style="width:154px" %)AT+INTMOD1=2|(% style="width:196px" %)(((
947 +Set Transmit Interval
948 +0. (Disable Interrupt),
949 +~1. (Trigger by rising and falling edge)
950 +2. (Trigger by falling edge)
951 +3. (Trigger by rising edge)
952 +)))|(% style="width:157px" %)OK
953 +|(% style="width:154px" %)AT+INTMOD2=3|(% style="width:196px" %)(((
954 +Set Transmit Interval
602 602  
603 - AT+SHTEMP=0,30   ~/~/ Alarm when temperature higher than 30.
956 +trigger by rising edge.
957 +)))|(% style="width:157px" %)OK
958 +|(% style="width:154px" %)AT+INTMOD3=0|(% style="width:196px" %)Disable Interrupt|(% style="width:157px" %)OK
604 604  
605 -* (% style="color:blue" %)**Downlink Payload:**
960 +(% style="color:blue" %)**Downlink Command: 0x06**
606 606  
607 -(% style="color:#037691" %)**0x(0C 01 00 1E)**  (%%) ~/~/ Set AT+SHTEMP=0,30
962 +Format: Command Code (0x06) followed by 3 bytes.
608 608  
609 -(% style="color:red" %)**(note: 3^^rd^^ byte= 0x00 for low limit(not set), 4^^th^^ byte = 0x1E for high limit: 30)**
964 +This means that the interrupt mode of the end node is set to 0x000003=3 (rising edge trigger), and the type code is 06.
610 610  
966 +* Example 1: Downlink Payload: 06000000  **~-~-->**  AT+INTMOD1=0
967 +* Example 2: Downlink Payload: 06000003  **~-~-->**  AT+INTMOD1=3
968 +* Example 3: Downlink Payload: 06000102  **~-~-->**  AT+INTMOD2=2
969 +* Example 4: Downlink Payload: 06000201  **~-~-->**  AT+INTMOD3=1
611 611  
612 -=== 3.3.4 Set Humidity Alarm Threshold ===
971 +=== 3.3.4 Set Power Output Duration ===
613 613  
614 -* (% style="color:blue" %)**AT Command:**
973 +Control the output duration 5V . Before each sampling, device will
615 615  
616 -(% style="color:#037691" %)**AT+SHHUM=min,max**
975 +~1. first enable the power output to external sensor,
617 617  
618 -* When min=0, and max≠0, Alarm higher than max
619 -* When min≠0, and max=0, Alarm lower than min
620 -* When min≠0 and max≠0, Alarm higher than max or lower than min
977 +2. keep it on as per duration, read sensor value and construct uplink payload
621 621  
622 -Example:
979 +3. final, close the power output.
623 623  
624 - AT+SHHUM=70,0  ~/~/ Alarm when humidity lower than 70%.
981 +(% style="color:blue" %)**AT Command: AT+5VT**
625 625  
626 -* (% style="color:blue" %)**Downlink Payload:**
983 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
984 +|=(% style="width: 154px;background-color:#D9E2F3" %)**Command Example**|=(% style="width: 196px;background-color:#D9E2F3" %)**Function**|=(% style="width: 157px;background-color:#D9E2F3" %)**Response**
985 +|(% style="width:154px" %)AT+5VT=?|(% style="width:196px" %)Show 5V open time.|(% style="width:157px" %)(((
986 +500(default)
627 627  
628 -(% style="color:#037691" %)**0x(0C 02 46 00)**(%%)  ~/~/ Set AT+SHTHUM=70,0
988 +OK
989 +)))
990 +|(% style="width:154px" %)AT+5VT=1000|(% style="width:196px" %)(((
991 +Close after a delay of 1000 milliseconds.
992 +)))|(% style="width:157px" %)OK
629 629  
630 -(% style="color:red" %)**(note: 3^^rd^^ byte= 0x46 for low limit (70%), 4^^th^^ byte = 0x00 for high limit (not set))**
994 +(% style="color:blue" %)**Downlink Command: 0x07**
631 631  
996 +Format: Command Code (0x07) followed by 2 bytes.
632 632  
633 -=== 3.3.5 Set Alarm Interval ===
998 +The first and second bytes are the time to turn on.
634 634  
635 -The shortest time of two Alarm packet. (unit: min)
1000 +* Example 1: Downlink Payload: 070000  **~-~-->**  AT+5VT=0
1001 +* Example 2: Downlink Payload: 0701F4  **~-~-->**  AT+5VT=500
636 636  
637 -* (% style="color:blue" %)**AT Command:**
1003 +=== 3.3.5 Set Weighing parameters ===
638 638  
639 -(% style="color:#037691" %)**AT+ATDC=30** (%%) ~/~/ The shortest interval of two Alarm packets is 30 minutes, Means is there is an alarm packet uplink, there won't be another one in the next 30 minutes.
1005 +Feature: Working mode 5 is effective, weight initialization and weight factor setting of HX711.
640 640  
641 -* (% style="color:blue" %)**Downlink Payload:**
1007 +(% style="color:blue" %)**AT Command: AT+WEIGRE,AT+WEIGAP**
642 642  
643 -(% style="color:#037691" %)**0x(0D 00 1E)**(%%)     **~-~--> ** Set AT+ATDC=0x 00 1E = 30 minutes
1009 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
1010 +|=(% style="width: 154px;background-color:#D9E2F3" %)**Command Example**|=(% style="width: 196px;background-color:#D9E2F3" %)**Function**|=(% style="width: 157px;background-color:#D9E2F3" %)**Response**
1011 +|(% style="width:154px" %)AT+WEIGRE|(% style="width:196px" %)Weight is initialized to 0.|(% style="width:157px" %)OK
1012 +|(% style="width:154px" %)AT+WEIGAP=?|(% style="width:196px" %)400.0|(% style="width:157px" %)OK(default)
1013 +|(% style="width:154px" %)AT+WEIGAP=400.3|(% style="width:196px" %)Set the factor to 400.3.|(% style="width:157px" %)OK
644 644  
1015 +(% style="color:blue" %)**Downlink Command: 0x08**
645 645  
646 -=== 3.3.6 Get Alarm settings ===
647 647  
1018 +Format: Command Code (0x08) followed by 2 bytes or 4 bytes.
648 648  
649 -Send a LoRaWAN downlink to ask device send Alarm settings.
1020 +Use AT+WEIGRE when the first byte is 1, only 1 byte. When it is 2, use AT+WEIGAP, there are 3 bytes.
650 650  
651 -* (% style="color:#037691" %)**Downlink Payload **(%%)0x0E 01
1022 +The second and third bytes are multiplied by 10 times to be the AT+WEIGAP value.
652 652  
653 -**Example:**
1024 +* Example 1: Downlink Payload: 0801  **~-~-->**  AT+WEIGRE
1025 +* Example 2: Downlink Payload: 08020FA3  **~-~-->**  AT+WEIGAP=400.3
1026 +* Example 3: Downlink Payload: 08020FA0  **~-~-->**  AT+WEIGAP=400.0
654 654  
655 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50v2-D20-D22-D23%20LoRaWAN%20Temperature%20Sensor%20User%20Manual/WebHome/1655948182791-225.png?rev=1.1||alt="1655948182791-225.png"]]
1028 +=== 3.3.6 Set Digital pulse count value ===
656 656  
1030 +Feature: Set the pulse count value.
657 657  
658 -**Explain:**
1032 +Count 1 is PA8 pin of mode 6 and mode 9. Count 2 is PA4 pin of mode 9.
659 659  
660 -* Alarm & MOD bit is 0x7C, 0x7C >> 2 = 0x31: Means this message is the Alarm settings message.
1034 +(% style="color:blue" %)**AT Command: AT+SETCNT**
661 661  
662 -=== 3.3.7 Set Interrupt Mode ===
1036 +(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
1037 +|=(% style="width: 154px;background-color:#D9E2F3" %)**Command Example**|=(% style="width: 196px;background-color:#D9E2F3" %)**Function**|=(% style="width: 157px;background-color:#D9E2F3" %)**Response**
1038 +|(% style="width:154px" %)AT+SETCNT=1,100|(% style="width:196px" %)Initialize the count value 1 to 100.|(% style="width:157px" %)OK
1039 +|(% style="width:154px" %)AT+SETCNT=2,0|(% style="width:196px" %)Initialize the count value 2 to 0.|(% style="width:157px" %)OK
663 663  
1041 +(% style="color:blue" %)**Downlink Command: 0x09**
664 664  
665 -Feature, Set Interrupt mode for GPIO_EXIT.
666 666  
667 -(% style="color:blue" %)**AT Command: AT+INTMOD**
1044 +Format: Command Code (0x09) followed by 5 bytes.
668 668  
1046 +The first byte is to select which count value to initialize, and the next four bytes are the count value to be initialized.
1047 +
1048 +* Example 1: Downlink Payload: 090100000000  **~-~-->**  AT+SETCNT=1,0
1049 +* Example 2: Downlink Payload: 0902000003E8  **~-~-->**  AT+SETCNT=2,1000
1050 +
1051 +=== 3.3.7 Set Workmode ===
1052 +
1053 +Feature: Switch working mode.
1054 +
1055 +(% style="color:blue" %)**AT Command: AT+MOD**
1056 +
669 669  (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
670 670  |=(% style="width: 154px;background-color:#D9E2F3" %)**Command Example**|=(% style="width: 196px;background-color:#D9E2F3" %)**Function**|=(% style="width: 157px;background-color:#D9E2F3" %)**Response**
671 -|(% style="width:154px" %)AT+INTMOD=?|(% style="width:196px" %)Show current interrupt mode|(% style="width:157px" %)(((
672 -0
1059 +|(% style="width:154px" %)AT+MOD=?|(% style="width:196px" %)Get the current working mode.|(% style="width:157px" %)(((
673 673  OK
674 -the mode is 0 =Disable Interrupt
675 675  )))
676 -|(% style="width:154px" %)AT+INTMOD=2|(% style="width:196px" %)(((
677 -Set Transmit Interval
678 -0. (Disable Interrupt),
679 -~1. (Trigger by rising and falling edge)
680 -2. (Trigger by falling edge)
681 -3. (Trigger by rising edge)
682 -)))|(% style="width:157px" %)OK
1062 +|(% style="width:154px" %)AT+MOD=4|(% style="width:196px" %)Set the working mode to 3DS18B20s.|(% style="width:157px" %)(((
1063 +OK
683 683  
684 -(% style="color:blue" %)**Downlink Command: 0x06**
1065 +Attention:Take effect after ATZ
1066 +)))
685 685  
686 -Format: Command Code (0x06) followed by 3 bytes.
1068 +(% style="color:blue" %)**Downlink Command: 0x0A**
687 687  
688 -This means that the interrupt mode of the end node is set to 0x000003=3 (rising edge trigger), and the type code is 06.
689 689  
690 -* Example 1: Downlink Payload: 06000000  ~/~/  Turn off interrupt mode
691 -* Example 2: Downlink Payload: 06000003  ~/~/  Set the interrupt mode to rising edge trigger
1071 +Format: Command Code (0x0A) followed by 1 bytes.
692 692  
1073 +* Example 1: Downlink Payload: 0A01  **~-~-->**  AT+MOD=1
1074 +* Example 2: Downlink Payload: 0A04  **~-~-->**  AT+MOD=4
1075 +
693 693  = 4. Battery & Power Consumption =
694 694  
695 695  
696 -S31x-LB use ER26500 + SPC1520 battery pack. See below link for detail information about the battery info and how to replace.
1079 +SN50v3-LB use ER26500 + SPC1520 battery pack. See below link for detail information about the battery info and how to replace.
697 697  
698 698  [[**Battery Info & Power Consumption Analyze**>>http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] .
699 699  
... ... @@ -702,7 +702,7 @@
702 702  
703 703  
704 704  (% class="wikigeneratedid" %)
705 -User can change firmware S31x-LB to:
1088 +User can change firmware SN50v3-LB to:
706 706  
707 707  * Change Frequency band/ region.
708 708  * Update with new features.
... ... @@ -718,47 +718,45 @@
718 718  
719 719  = 6. FAQ =
720 720  
1104 +== 6.1 Where can i find source code of SN50v3-LB? ==
721 721  
1106 +* **[[Hardware Source Files>>https://github.com/dragino/Lora/tree/master/LSN50/v3.0]].**
1107 +* **[[Software Source Code & Compile instruction>>https://github.com/dragino/SN50v3]].**
722 722  
723 723  = 7. Order Info =
724 724  
725 725  
726 -Part Number: (% style="color:blue" %)**S31-LB-XX  / S31B-LB-XX**
1112 +Part Number: (% style="color:blue" %)**SN50v3-LB-XX-YY**
727 727  
728 728  (% style="color:red" %)**XX**(%%): The default frequency band
729 729  
730 730  * (% style="color:red" %)**AS923**(%%): LoRaWAN AS923 band
731 -
732 732  * (% style="color:red" %)**AU915**(%%): LoRaWAN AU915 band
733 -
734 734  * (% style="color:red" %)**EU433**(%%): LoRaWAN EU433 band
735 -
736 736  * (% style="color:red" %)**EU868**(%%): LoRaWAN EU868 band
737 -
738 738  * (% style="color:red" %)**KR920**(%%): LoRaWAN KR920 band
739 -
740 740  * (% style="color:red" %)**US915**(%%): LoRaWAN US915 band
741 -
742 742  * (% style="color:red" %)**IN865**(%%): LoRaWAN IN865 band
743 -
744 744  * (% style="color:red" %)**CN470**(%%): LoRaWAN CN470 band
745 745  
746 -= =
1125 +(% style="color:red" %)**YY: ** (%%)Hole Option
747 747  
1127 +* (% style="color:red" %)**12**(%%): With M12 waterproof cable hole
1128 +* (% style="color:red" %)**16**(%%): With M16 waterproof cable hole
1129 +* (% style="color:red" %)**20**(%%): With M20 waterproof cable hole
1130 +* (% style="color:red" %)**NH**(%%): No Hole
1131 +
748 748  = 8. ​Packing Info =
749 749  
750 750  (% style="color:#037691" %)**Package Includes**:
751 751  
752 -* S31x-LB LoRaWAN Temperature & Humidity Sensor
1136 +* SN50v3-LB LoRaWAN Generic Node
753 753  
754 754  (% style="color:#037691" %)**Dimension and weight**:
755 755  
756 756  * Device Size: cm
757 -
758 758  * Device Weight: g
759 -
760 760  * Package Size / pcs : cm
761 -
762 762  * Weight / pcs : g
763 763  
764 764  = 9. Support =
image-20230511203450-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Edwin
Size
... ... @@ -1,0 +1,1 @@
1 +679.1 KB
Content
image-20230512163509-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Saxer
Size
... ... @@ -1,0 +1,1 @@
1 +1.5 MB
Content
image-20230512164658-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Saxer
Size
... ... @@ -1,0 +1,1 @@
1 +2.0 MB
Content
image-20230512170701-3.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Saxer
Size
... ... @@ -1,0 +1,1 @@
1 +2.5 MB
Content
image-20230512172447-4.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Saxer
Size
... ... @@ -1,0 +1,1 @@
1 +2.0 MB
Content
image-20230512173758-5.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Saxer
Size
... ... @@ -1,0 +1,1 @@
1 +2.1 MB
Content
image-20230512173903-6.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Saxer
Size
... ... @@ -1,0 +1,1 @@
1 +2.3 MB
Content
image-20230512180609-7.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Saxer
Size
... ... @@ -1,0 +1,1 @@
1 +2.3 MB
Content
image-20230512180718-8.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Saxer
Size
... ... @@ -1,0 +1,1 @@
1 +2.3 MB
Content
image-20230512181814-9.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Saxer
Size
... ... @@ -1,0 +1,1 @@
1 +2.2 MB
Content
image-20230513084523-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Saxer
Size
... ... @@ -1,0 +1,1 @@
1 +611.3 KB
Content
image-20230513102034-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Saxer
Size
... ... @@ -1,0 +1,1 @@
1 +607.1 KB
Content
image-20230513103633-3.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Saxer
Size
... ... @@ -1,0 +1,1 @@
1 +595.5 KB
Content
image-20230513105207-4.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Saxer
Size
... ... @@ -1,0 +1,1 @@
1 +384.7 KB
Content
image-20230513105351-5.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Saxer
Size
... ... @@ -1,0 +1,1 @@
1 +37.6 KB
Content
image-20230513110214-6.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Saxer
Size
... ... @@ -1,0 +1,1 @@
1 +172.7 KB
Content
image-20230513111203-7.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Saxer
Size
... ... @@ -1,0 +1,1 @@
1 +79.9 KB
Content
image-20230513111231-8.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Saxer
Size
... ... @@ -1,0 +1,1 @@
1 +64.9 KB
Content
image-20230513111255-9.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Saxer
Size
... ... @@ -1,0 +1,1 @@
1 +70.4 KB
Content
Copyright ©2010-2024 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0