Version 90.1 by Mengting Qiu on 2025/05/12 15:35

Show last authors
1
2
3 (% style="text-align:center" %)
4 [[image:image-20220519085532-1.png||_mstalt="431171" height="429" width="366"]]
5
6
7
8
9
10 **Table of Contents:**
11
12 {{toc/}}
13
14
15
16
17
18
19 = 1. Introduction =
20
21 == 1.1 What is SW3L LoRaWAN Flow Sensor ==
22
23
24 (((
25 The Dragino SW3L is a (% style="color:#037691" %)**LoRaWAN Flow Sensor**(%%). It detects water flow volume and uplink to IoT server via LoRaWAN network. User can use this to** (% style="color:#037691" %)monitor the water usage for buildings.(%%)**
26 )))
27
28 (((
29 SW3L is powered by (% style="color:#037691" %)**8500mAh Li-SOCI2 battery**(%%), It is designed for long term use up to 10 years. (Actually Battery life depends on the use environment, update period.)
30 )))
31
32 (((
33 The SW3L will send water flow volume every 20 minutes. It can also (% style="color:#037691" %)**detect the water flow status**(%%) and (% style="color:#037691" %)**send Alarm**(%%), to avoid the waste for water usage such as broken toilet case.
34 )))
35
36 (((
37 SW3L is designed for both indoor and outdoor use. It has a weatherproof enclosure and industrial level battery to work in low to high temperatures.
38 )))
39
40 (((
41 Each SW3L is pre-load with a set of unique keys for LoRaWAN registration, register these keys to LoRaWAN server and it will auto connect after power on
42 )))
43
44 (((
45 *Battery life depends on how often to send data, please see battery analyzer.
46 )))
47
48
49 == 1.2 Features ==
50
51
52 * LoRaWAN v1.0.3 Class A protocol.
53 * Frequency Bands: CN470/EU433/KR920/US915/EU868/AS923/AU915/IN865/RU864
54 * Upload water flow volume
55 * Monitor water waste
56 * 8500mAh industrial battery(none-rechargeable)
57 * AT Commands to change parameters
58 * Uplink on periodically and open/close event
59 * Datalog feature
60 * Remote configure parameters via LoRa Downlink
61 * Firmware upgradable via program port
62 * Wall Mountable
63 * Outdoor Use
64
65 == 1.3 Installation ==
66
67
68 Each SW3L package is shipped with a flow sensor. Install the flow sensor into water pipe with correct flow direction to start monitoring.
69
70
71 == 1.4 Storage & Operation Temperature ==
72
73
74 -40°C to +85°C
75
76
77 == 1.5 Applications ==
78
79
80 * Flow Sensor application
81 * Water Control
82 * Toilet Flow Sensor
83 * Monitor Waste water
84
85 == 1.6 Flow Sensor Spec ==
86
87
88 (((
89 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:515px" %)
90 |=(% style="width: 103px; background-color:#4F81BD; color: white;" %)**Model**|=(% style="width: 103px; background-color:#4F81BD; color: white;" %)**SW3L-004**|=(% style="width: 103px; background-color:#4F81BD; color: white;" %)SW3L-006|=(% style="width: 103px; background-color:#4F81BD; color: white;" %)SW3L-010|=(% style="width: 103px; background-color:#4F81BD; color: white;" %)SW3L-020
91 |(% style="width:152px" %)**Probe #**|(% style="width:176px" %)DW-004|(% style="width:173px" %)DW-006|(% style="width:165px" %)DW-010|(% style="width:190px" %)DW-020
92 |(% style="width:152px" %)**Diameter**|(% style="width:176px" %)G1/2" / DN15|(% style="width:173px" %)G3/4" / DN20|(% style="width:165px" %)G1"  / DN25|(% style="width:190px" %)G2" / DN50
93 |(% style="width:152px" %)**Working Range**|(% style="width:176px" %)1~~30L/min|(% style="width:173px" %)1~~60L/min|(% style="width:165px" %)2~~100L/min|(% style="width:190px" %)10~~300L/min
94 |(% style="width:152px" %)**Measure**|(% style="width:176px" %)450 pulse = 1 L|(% style="width:173px" %)390 pulse = 1 L|(% style="width:165px" %)64 pulse = 1 L|(% style="width:190px" %)12 pulse = 1 L
95 |(% style="width:152px" %)**Accurancy**|(% style="width:176px" %)±5%|(% style="width:173px" %)±5%|(% style="width:165px" %)±5%|(% style="width:190px" %)±5%
96 |(% style="width:152px" %)**Power Consumption**|(% style="width:176px" %)1uA, 3.6v (Sensor Only)|(% style="width:173px" %)1uA, 3.6v (Sensor Only)|(% style="width:165px" %)1uA, 3.6v (Sensor Only)|(% style="width:190px" %)1uA, 3.6v (Sensor Only)
97 |(% style="width:152px" %)**Max Pressure**|(% style="width:176px" %)≤ 1.75Mpa|(% style="width:173px" %)≤ 1.75Mpa |(% style="width:165px" %)≤ 1.75Mpa|(% style="width:190px" %)≤ 1.75Mpa
98 |(% style="width:152px" %)**Temperature range**|(% style="width:176px" %)<80°C|(% style="width:173px" %)<80°C|(% style="width:165px" %)<80°C|(% style="width:190px" %)<80°C
99 |(% style="width:152px" %)**Humidity Range**|(% style="width:176px" %)35%~~90%RH (no frost)|(% style="width:173px" %)35%~~90%RH (no frost)|(% style="width:165px" %)35%~~90%RH (no frost)|(% style="width:190px" %)35%~~90%RH (no frost)
100 )))
101
102
103 == 1.7 Mechanical ==
104
105
106 [[image:1652922789057-479.png||_mstalt="299312"]]
107
108 [[image:1652922797548-885.png||_mstalt="300391"]]
109
110
111 (% style="color:blue" %)**004: DW-004 Flow Sensor: diameter: G1/2” / DN15.  450 pulse = 1 L**
112
113 [[image:image-20220519091350-1.png||_mstalt="429611" height="385" width="722"]]
114
115
116 (% style="color:blue" %)**006: DW-006 Flow Sensor: diameter: G3/4” / DN20.  390 pulse = 1 L**
117
118 [[image:image-20220519091423-2.png||_mstalt="5391646" height="258" width="723"]]
119
120
121 (% style="color:blue" %)**010: DW-010 Flow Sensor: diameter: G 1” / DN25. 64 pulse = 1 L**
122
123 [[image:image-20220519091423-3.png||_mstalt="5391971" height="448" width="724"]]
124
125
126 (% style="color:blue" %)**020: DW-020 Flow Sensor: diameter: G 2” / DN50. 12 pulse = 1 L**
127
128 [[image:image-20240125090604-1.png]]
129
130
131 == 1.8 Pin Definitions and Switch ==
132
133
134 [[image:1652923899427-927.png||_mstalt="299377" height="372" width="723"]]
135
136
137 === 1.8.1 Pin Definition ===
138
139
140 SW3L is pre-configured to connect to two external wires. The other pins are not used. If user wants to know more about other pins, please refer to the user manual of LSN50v2 at:
141
142 [[https:~~/~~/www.dropbox.com/sh/djkxs7mr17y94mi/AABVlWbM9uzK9OA3mXyAT10Za?dl=0>>https://www.dropbox.com/sh/djkxs7mr17y94mi/AABVlWbM9uzK9OA3mXyAT10Za?dl=0]]
143
144 (% style="color:red" %)**Add PA11 digital input and PA12 digital input(Since firmware v1.2.0)**
145
146
147 === 1.8.2 Jumper JP2(Power ON/OFF) ===
148
149
150 Power on Device when putting this jumper.
151
152
153 === 1.8.3 BOOT MODE / SW1 ===
154
155
156 (((
157 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. 
158 2) Flash: work mode, the device starts to work and send out console output for further debug
159 )))
160
161
162 === 1.8.4 Reset Button ===
163
164
165 Press to reboot the device.
166
167
168 === 1.8.5 LED ===
169
170
171 It will flash:
172 1) Boot the device in flash mode
173 2) Send an uplink packe
174
175
176 = 2. Operation Mode =
177
178 == 2.1 How it works? ==
179
180
181 Each SW3L is shipped with a worldwide unique set of OTAA keys. To use SW3L in a LoRaWAN network, user needs to input the OTAA keys in the LoRaWAN network server. So SW3L can join the LoRaWAN network and start to transmit sensor data.
182
183
184 == 2.2 Example to use for LoRaWAN network ==
185
186
187 This section shows an example of how to join the TTN V3 LoRaWAN IoT server. Usages with other LoRaWAN IoT servers are similar.
188
189 [[image:1652944563101-603.png||_mstalt="292279" height="321" width="729"]]
190
191
192 * In this use case, the SW3L is connected into water line to measure water flow and send the status to the LoRaWAN server. The SW3L will uplink different types of messages to the LoRaWAN server. See [[Uplink payload>>||anchor="H2.3UplinkPayload"]] for detail.
193
194 (((
195 Assume the DLOS8 is already set to connect to the [[TTN V3 network >>url:https://eu1.cloud.thethings.network]]. We need to add the SW3L device in TTN V3:
196
197
198 )))
199
200 (((
201 (% style="color:blue" %)**Step 1**(%%): Create a device in TTN V3 with the OTAA keys from SW3L.
202 )))
203
204 (((
205 Each SW3L is shipped with a sticker with the default device EUI as below:
206 )))
207
208 [[image:image-20230426085254-1.png||height="236" width="508"]]
209
210
211 You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:
212
213 **Create the application.**
214
215 [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/SAC01L_LoRaWAN_Temperature%26Humidity_Sensor_User_Manual/WebHome/image-20250423093843-1.png?width=756&height=264&rev=1.1||alt="image-20250423093843-1.png"]]
216
217 [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LTC2-LB--LoRaWAN_Temperature_Transmitter_User_Manual/WebHome/image-20240907111305-2.png?width=1000&height=572&rev=1.1||alt="image-20240907111305-2.png"]]
218
219
220 **Add devices to the created Application.**
221
222 [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LTC2-LB--LoRaWAN_Temperature_Transmitter_User_Manual/WebHome/image-20240907111659-3.png?width=977&height=185&rev=1.1||alt="image-20240907111659-3.png"]]
223
224 [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LTC2-LB--LoRaWAN_Temperature_Transmitter_User_Manual/WebHome/image-20240907111820-5.png?width=975&height=377&rev=1.1||alt="image-20240907111820-5.png"]]
225
226
227 **Enter end device specifics manually.**
228
229 [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LTC2-LB--LoRaWAN_Temperature_Transmitter_User_Manual/WebHome/image-20240907112136-6.png?width=697&height=687&rev=1.1||alt="image-20240907112136-6.png"]]
230
231
232 **Add DevEUI and AppKey. Customize a platform ID for the device.**
233
234 [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LTC2-LB--LoRaWAN_Temperature_Transmitter_User_Manual/WebHome/image-20240907112427-7.png?rev=1.1||alt="image-20240907112427-7.png"]]
235
236
237 (% style="color:blue" %)**Step 2**(%%):** Add decoder.**
238
239 In TTN, user can add a custom payload so it shows friendly reading.
240
241 Click this link to get the decoder: [[https:~~/~~/github.com/dragino/dragino-end-node-decoder/tree/main/>>url:https://github.com/dragino/dragino-end-node-decoder/tree/main/]]
242
243 Below is TTN screen shot:
244
245 [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LDS25-LBLDS25-LS--LoRaWAN_LiDAR_Distance_Auto-Clean_Sensor_User_Manual/WebHome/image-20241009140556-1.png?width=1184&height=488&rev=1.1||alt="image-20241009140556-1.png" height="488" width="1184"]]
246
247 [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LDS25-LBLDS25-LS--LoRaWAN_LiDAR_Distance_Auto-Clean_Sensor_User_Manual/WebHome/image-20241009140603-2.png?width=1168&height=562&rev=1.1||alt="image-20241009140603-2.png"]]
248
249
250 (% style="color:blue" %)**Step 3**(%%): Power on SW3L
251
252 [[image:image-20220519094347-1.png||_mstalt="432549" height="430" width="725"]]
253
254
255 (((
256 Put the jumper to power on SW3L and it will auto-join to the TTN V3 network. After join success, it will start to upload sensor data to TTN V3 and the user can see it in the panel.
257 )))
258
259 [[image:1652924675638-547.png||_mstalt="298363" height="254" width="732"]]
260
261
262 == 2.3 Uplink Payload ==
263
264
265 (((
266 Uplink payloads have two types:
267 )))
268
269 * (((
270 Open/Close Status: Use FPORT=2
271 )))
272 * (((
273 Other control commands: Use other FPORT fields.
274 )))
275
276 (((
277 The application server should parse the correct value based on FPORT settings.
278
279
280 )))
281
282 === 2.3.1 Device Status, FPORT~=5 ===
283
284
285 (((
286 (((
287 Include device configure status. Once SW3L Joined the network, it will uplink this message to the server. After that, SW3L will uplink Device Status every 12 hours.
288 )))
289 )))
290
291 (((
292 (((
293 Users can also use the downlink command(0x26 01) to ask SW3L to resend this uplink. This uplink payload also includes the DeviceTimeReq to get time.
294
295 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
296 |(% colspan="6" style="background-color:#4f81bd; color:white" %)**Device Status (FPORT=5)**
297 |(% style="width:103px" %)**Size (bytes)**|(% style="width:72px" %)**1**|**2**|(% style="width:91px" %)**1**|(% style="width:86px" %)**1**|(% style="width:44px" %)**2**
298 |(% style="width:103px" %)Value|(% style="width:72px" %)Sensor Model|Firmware Version|(% style="width:91px" %)Frequency Band|(% style="width:86px" %)Sub-band|(% style="width:44px" %)BAT
299 )))
300 )))
301
302
303 Example parse in TTNv3
304
305 [[image:1652925144491-755.png||_mstalt="296296" height="139" width="732"]]
306
307 * (% style="color:#037691" %)**Sensor Model**(%%): For SW3L, this value is 0x11
308
309 * (% style="color:#037691" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version
310
311 * (% style="color:#037691" %)**Frequency Band**(%%):
312
313 *0x01: EU868
314
315 *0x02: US915
316
317 *0x03: IN865
318
319 *0x04: AU915
320
321 *0x05: KZ865
322
323 *0x06: RU864
324
325 *0x07: AS923
326
327 *0x08: AS923-1
328
329 *0x09: AS923-2
330
331 *0x0a: AS923-3
332
333 *0x0b: CN470
334
335 *0x0c: EU433
336
337 *0x0d: KR920
338
339 *0x0e: MA869
340
341 * (((
342 (% style="color:#037691" %)**Sub-Band**:
343
344 * AU915 and US915:value 0x00 ~~ 0x08
345 * CN470: value 0x0B ~~ 0x0C
346 * Other Bands: Always 0x00
347
348
349 )))
350
351 * (% style="color:#037691" %)**Battery Info:**
352
353 Check the battery voltage.
354
355 **Ex1**: 0x0B45 = 2885mV
356
357 **Ex2**: 0x0B49 = 2889mV
358
359
360 === 2.3.2 Sensor Configuration, FPORT~=4 ===
361
362
363 SW3L will only send this command after getting the downlink command (0x26 02) from the server.
364
365 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
366 |(% style="background-color:#4f81bd; color:white; width:70px" %) **Size(bytes)**|(% style="background-color:#4f81bd; color:white; width:105px" %)**3**|(% style="background-color:#4f81bd; color:white; width:60px" %)**1**|(% style="background-color:#4f81bd; color:white; width:96px" %)**1**|(% style="background-color:#4f81bd; color:white; width:105px" %)**2**|(% style="background-color:#4f81bd; color:white; width:74px" %)**1**
367 |Value|(% style="width:104px" %)TDC(unit:sec)|(% style="width:43px" %)N/A|(% style="width:91px" %)Stop Timer|(% style="width:100px" %)Alarm Timer|(% style="width:69px" %)Reserve
368
369 * (% style="color:#037691" %)**TDC: (default: 0x0004B0)**
370
371 Uplink interval for the total pulse count, default value is 0x0004B0 which is 1200 seconds = 20 minutes.
372
373
374 * (% style="color:#037691" %)**STOP Duration & Alarm Timer**
375
376 Shows the configure value of [[Alarm for continuously water flow>>||anchor="H3.4Alarmforcontinuouslywaterflow"]]
377
378 [[image:image-20220519095747-2.png||_mstalt="434460" height="113" width="723"]]
379
380
381 === 2.3.3 Water Flow Value, Uplink FPORT~=2 ===
382
383
384 (((
385 SW3L will send this uplink **after** Device Status once join the LoRaWAN network successfully. And SW3L will:
386 )))
387
388 (((
389 periodically send this uplink every 20 minutes, this interval [[can be changed>>||anchor="H3.1SetTransmitIntervalTime"]].
390 )))
391
392 (((
393 Uplink Payload totals 11 bytes.
394 )))
395
396 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
397 |=(% colspan="6" style="width: 510px;background-color:#4F81BD;color:white" %)**Water Flow Value,  FPORT=2**
398 |(% style="width:60px" %)**Size(bytes)**|(% style="width:130px" %)**1**|(% style="width:130px" %)**4**|(% style="width:30px" %)**1**|(% style="width:50px" %)**1**|(% style="width:80px" %)**4**
399 |(% style="width:110px" %)Value|(% style="width:81px" %)Calculate Flag & [[Alarm>>||anchor="H3.4Alarmforcontinuouslywaterflow"]]|(% style="width:95px" %)(((
400 Total pulse Or Last Pulse
401 )))|(% style="width:55px" %)MOD|(% style="width:115px" %)Reserve(0x01)|(% style="width:129px" %)[[Unix TimeStamp>>||anchor="H2.4.1UnixTimeStamp"]]
402
403 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:470px" %)
404 |=(% colspan="4" style="width: 470px;background-color:#4F81BD;color:white" %)**Status & Alarm field**
405 |(% style="width:60px" %)**Size(bit)**|(% style="width:80px" %)**6**|(% style="width:310px" %)**1**|(% style="width:20px" %)**1**
406 |(% style="width:88px" %)Value|(% style="width:117px" %)Calculate Flag|(% style="width:221px" %)Alarm: 0: No Alarm; 1: Alarm|(% style="width:64px" %)N/A
407
408 [[image:image-20220519095946-3.png||_mstalt="435110" height="284" width="736"]]
409
410
411 * (((
412 (% style="color:#037691" %)**Calculate Flag**
413 )))
414
415 (((
416 The calculate flag is a user defined field, IoT server can use this flag to handle different meters with different pulse factors. For example, if there are 100 Flow Sensors, meters 1 ~~50 are 1 liter/pulse and meters 51 ~~ 100 has 1.5 liter/pulse.
417 )))
418
419 (((
420 **Example: in the default payload:**
421 )))
422
423 (((
424 * calculate flag=0: for SW3L-004 Flow Sensor: 450 pulse = 1 L
425 * calculate flag=1: for SW3L-006 Flow Sensor: 390 pulse = 1 L
426 * calculate flag=2: for SW3L-010 Flow Sensor: 64 pulse = 1 L
427
428 (% style="color:red" %)**Note: At present, the calculation flag can only be set to 0~~2, and probe types other than this can directly calculate water flow using different decoding.**
429 )))
430
431 (((
432 Default value: 0. 
433 )))
434
435 (((
436 Range (6 bits): (b)000000 ~~ (b) 111111
437
438 If user use with a meter for example is 0.02L/pulse. To proper decode the correct value in server,
439
440 1) User can set the Calculate Flag of this sensor to 3.
441
442 2) In server side, when a sensor data arrive, the decoder will check the value of Calculate Flag, It the value is 3, the total volume = 0.02 x Pulse Count.
443 )))
444
445 (((
446 (% style="color:red" %)**NOTE: User need to set Calculate Flag to proper value before use Flow Sensor. Downlink or AT Command see: **(%%)Refer: [[Set Calculate Flag>>||anchor="H3.6Setthecalculateflag"]]
447
448
449 )))
450
451 * (((
452 (% style="color:#037691" %)**Alarm**
453 )))
454
455 (((
456 See [[Alarm for continuously water flow>>||anchor="H3.4Alarmforcontinuouslywaterflow"]]
457 )))
458
459 [[image:image-20220519095946-4.png||_mstalt="435474" height="65" width="724"]]
460
461
462 * (((
463 (% style="color:#037691" %)**Total pulse**
464 )))
465
466 (((
467 Total pulse/counting since factory
468 )))
469
470 (((
471 Range (4 Bytes) : 0x00000000~~ 0xFFFFFFFF .
472
473
474 )))
475
476 * (((
477 (% style="color:#037691" %)**Last Pulse**
478 )))
479
480 (((
481 Total pulse since last FPORT=2 uplink. (Default 20 minutes)
482 )))
483
484 (((
485 Range (4 Bytes) : 0x00000000~~ 0xFFFFFFFF .
486
487
488 )))
489
490 * (((
491 (% style="color:#037691" %)**MOD: Default =0**
492 )))
493
494 (((
495 MOD=0 ~-~-> Uplink Total Pulse since factory
496 )))
497
498 (((
499 MOD=1 ~-~-> Uplink total pulse since last FPORT=2 uplink.
500
501
502 )))
503
504 * (((
505 (% style="color:#037691" %)**Water Flow Value**
506
507
508
509 )))
510
511 (((
512 Total Water Flow Volume = (Calculate Flag) x (Total Pulse)=9597/450=21.3L
513
514
515 )))
516
517 [[image:image-20220519095946-5.png||_mstalt="435838" height="50" width="727"]]
518
519
520
521 (((
522 Total Water Flow for TDC timer = (Calculate Flag) x (Last Pulse)=79/450=0.2L
523
524
525 )))
526
527 [[image:image-20220519095946-6.png||_mstalt="436202" height="43" width="733"]] ** **
528
529
530 === 2.3.4 Historical Water Flow Status, FPORT~=3 ===
531
532
533 (((
534 SW3L stores sensor values and users can retrieve these history values via the [[downlink command>>||anchor="H2.4DatalogFeature"]].
535 )))
536
537 (((
538 The historical payload includes one or multiplies entries and every entry has the same payload as Real-Time water flow status.
539 )))
540
541 * (((
542 Each data entry is 11 bytes and has the same structure as [[real time water flow status>>||anchor="H2.3.3A0WaterFlowValue2CUplinkFPORT3D2"]], to save airtime and battery, SW3L will send max bytes according to the current DR and Frequency bands.
543 )))
544
545 (((
546 For example, in the US915 band, the max payload for different DR is:
547 )))
548
549 (((
550 **a) DR0:** max is 11 bytes so one entry of data
551 )))
552
553 (((
554 **b) DR1:** max is 53 bytes so devices will upload 4 entries of data (total 44 bytes)
555 )))
556
557 (((
558 **c) DR2:** total payload includes 11 entries of data
559 )))
560
561 (((
562 **d) DR3:** total payload includes 22 entries of data.
563 )))
564
565 (((
566 If SW3L doesn't have any data in the polling time. It will uplink 11 bytes of 0
567
568
569 )))
570
571 (((
572 (% style="color:#037691" %)**Downlink:**
573 )))
574
575 (((
576 0x31 62 46 B1 F0 62 46 B3 94 07
577 )))
578
579 [[image:1652926690850-712.png||_mstalt="295178" height="115" width="726"]]
580
581
582 (((
583 (% style="color:#037691" %)**Uplink:**
584 )))
585
586 (((
587 00 00 01 00 00 00 00 62 46 B2 26 00 00 01 00 00 00 00 62 46 B2 5D 00 00 01 00 00 00 00 62 46 B2 99 00 00 01 00 00 00 00 62 46 B2 D5 00 00 01 00 00 01 15 62 46 B3 11 00 00 01 00 00 01 1F 62 46 B3 7E
588
589
590 )))
591
592 (((
593 (% style="color:#037691" %)**Parsed Value:**
594 )))
595
596 (((
597 [Alarm, Calculate Flag, MOD, Total pulse or Last Pulse,** **Water Flow Value, TIME]
598 )))
599
600 (((
601
602 )))
603
604 (((
605 [FALSE,0,0,0,0.0,2022-04-01 08:04:54],
606 )))
607
608 (((
609 [FALSE,0,0,0,0.0,2022-04-01 08:05:49],
610 )))
611
612 (((
613 [FALSE,0,0,0,0.0,2022-04-01 08:06:49],
614 )))
615
616 (((
617 [FALSE,0,0,0,0.0,2022-04-01 08:07:49],
618 )))
619
620 (((
621 [FALSE,0,0,277,0.6,2022-04-01 08:08:49],
622 )))
623
624 (((
625 [FALSE,0,0,287,0.6,2022-04-01 08:10:38],
626
627
628 )))
629
630 [[image:1652926777796-267.png||_mstalt="300183" height="279" width="724"]]
631
632
633 == 2.4 Datalog Feature ==
634
635
636 When a user wants to retrieve sensor value, he can send a poll command from the IoT platform to ask the sensor to send value in the required time slot.
637
638
639 === 2.4.1 Unix TimeStamp ===
640
641
642 SW3L uses Unix TimeStamp format based on
643
644 [[image:1652926852443-847.png||_mstalt="297427" height="112" width="724"]]
645
646 Users can get this time from the link:  [[https:~~/~~/www.epochconverter.com/>>url:https://www.epochconverter.com/]] :
647
648 Below is the converter example
649
650 [[image:1652926913271-611.png||_mstalt="293605" height="421" width="720"]]
651
652
653 === 2.4.2 Set Device Time ===
654
655
656 (% style="color:#4f81bd" %)**Through LoRaWAN MAC Command**
657
658 (((
659 Once SW3L Joined the LoRaWAN network, it will send the MAC command (DeviceTimeReq) and the server will reply with (DeviceTimeAns) to send the current time to SW3L. If SW3L fails to get the time from the server, SW3L will use the internal time and wait for the next time request ~[[[via Device Status (FPORT=5)>>||anchor="H2.3.1DeviceStatus2CFPORT3D5"]]].
660
661
662 )))
663
664 (((
665 (% style="color:red" %)**Note: LoRaWAN Server needs to support LoRaWAN v1.0.3(MAC v1.0.3) or higher to support this MAC command feature.**
666
667
668 )))
669
670 === 2.4.3 Poll sensor value ===
671
672
673 Users can poll sensor values based on timestamps. Below is the downlink command.
674
675 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:459px" %)
676 |=(% colspan="4" style="width: 456px;background-color:#4F81BD;color:white" %)**Downlink Command to poll Open/Close status (0x31)**
677 |(% style="width:62px" %)**1byte**|(% style="width:137px" %)**4bytes**|(% style="width:136px" %)**4bytes**|(% style="width:120px" %)**1byte**
678 |(% style="width:62px" %)31|(% style="width:137px" %)Timestamp start|(% style="width:136px" %)Timestamp end|(% style="width:120px" %)Uplink Interval
679
680 (((
681 Timestamp start and Timestamp end-use Unix TimeStamp format as mentioned above. Devices will reply with all data logs during this period, using the uplink interval.
682 )))
683
684 (((
685 For example, downlink command[[image:image-20220519152849-5.png||_mstalt="434772"]]
686 )))
687
688 (((
689 Is to check 2021/11/12 12:00:00 to 2021/11/12 15:00:00's data
690 )))
691
692 (((
693 Uplink Internal =5s,means CPL01 will send one packet every 5s. range 5~~255s.
694
695
696 )))
697
698 === 2.4.4 Decoder in TTN V3 ===
699
700
701 [[image:1652927365661-475.png||_mstalt="297089" height="359" width="723"]]
702
703 Please check the decoder from this link:  [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>https://github.com/dragino/dragino-end-node-decoder]]
704
705
706 == 2.5 Show data on Datacake ==
707
708
709 (((
710 Datacake IoT platform provides a human-friendly interface to show the sensor data, once we have sensor data in TTN V3, we can use Datacake to connect to TTN V3 and see the data in Datacake. Below are the steps:
711 )))
712
713 (((
714 (% style="color:blue" %)**Step 1**(%%): Link TTNv3 to Datacake [[https:~~/~~/docs.datacake.de/lorawan/lns/thethingsindustries#create-integration-on-tti>>url:https://docs.datacake.de/lorawan/lns/thethingsindustries#create-integration-on-tti]]
715 )))
716
717 (((
718 (% style="color:blue" %)**Step 2**(%%): Configure SW3L in Datacake  ​​​​
719
720
721 )))
722
723 [[image:image-20220519103234-7.png||_mstalt="430482" height="562" width="492"]]
724
725
726 [[image:image-20220519103234-8.png||_mstalt="430846" height="550" width="549"]]
727
728
729 [[image:image-20220519103234-9.png||_mstalt="431210" height="493" width="666"]]
730
731
732 [[image:image-20220519103234-10.png||_mstalt="451217" height="234" width="724"]]
733
734
735 [[image:image-20220519103234-11.png||_mstalt="451594" height="386" width="727"]]
736
737
738 [[image:image-20220519103234-12.png||_mstalt="451971" height="262" width="728"]]
739
740
741 [[image:image-20220519103234-13.png||_mstalt="452348" height="216" width="727"]]
742
743
744 [[image:image-20220519103234-14.png||_mstalt="452725" height="464" width="722"]]
745
746
747 [[image:image-20220519103234-15.png||_mstalt="453102" height="488" width="725"]]
748
749
750 [[image:image-20220519103234-16.png||_mstalt="453479" height="407" width="722"]]
751
752
753 = 3. Configure SW3L via AT Command or LoRaWAN Downlink =
754
755
756 Use can configure SW3L via AT Command or LoRaWAN Downlink.
757
758 * AT Command Connection: See [[FAQ>>||anchor="H5.FAQ"]].
759 * LoRaWAN Downlink instruction for different platforms: [[IoT LoRaWAN Server>>doc:Main.WebHome]]
760
761 There are two kinds of commands to configure SW3L, they are:
762
763
764 * (% style="color:#4f81bd" %)**General Commands**.
765
766 These commands are to configure:
767
768 * General system settings like uplink interval.
769 * LoRaWAN protocol & radio related command.
770
771 They are the same for all Dragino Devices which support DLWS-005 LoRaWAN Stack(Note~*~*). These commands can be found on the wiki: [[End Device AT Commands and Downlink Command>>doc:Main.End Device AT Commands and Downlink Command.WebHome]]
772
773
774 * (% style="color:#4f81bd" %)**Commands special design for SW3L**
775
776 These commands are only valid for SW3L, as below:
777
778
779 == 3.1 Set Transmit Interval Time ==
780
781
782 Feature: Change LoRaWAN End Node Transmit Interval.
783
784
785 (% style="color:#4f81bd" %)**AT Command: AT+TDC**
786
787 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
788 |=(% style="width: 160px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 140px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 210px;background-color:#4F81BD;color:white" %)**Response**
789 |(% style="width:156px" %)AT+TDC=?|(% style="width:137px" %)Show current transmit Interval|(((
790 30000
791 OK
792 the interval is 30000ms = 30s
793 )))
794 |(% style="width:156px" %)AT+TDC=60000|(% style="width:137px" %)Set Transmit Interval|(((
795 OK
796 Set transmit interval to 60000ms = 60 seconds
797 )))
798
799 (% style="color:#4f81bd" %)**Downlink Command: 0x01**
800
801 Format: Command Code (0x01) followed by 3 bytes time value.
802
803 If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01.
804
805 * **Example 1**: Downlink Payload: 0100001E  ~/~/  Set Transmit Interval (TDC) = 30 seconds
806 * **Example 2**: Downlink Payload: 0100003C  ~/~/  Set Transmit Interval (TDC) = 60 seconds
807
808 == 3.2 Set Password ==
809
810
811 Feature: Set device password, max 9 digits
812
813
814 (% style="color:#4f81bd" %)**AT Command: AT+PWORD**
815
816 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:405px" %)
817 |=(% style="width: 170px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 124px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 110px;background-color:#4F81BD;color:white" %)**Response**
818 |(% style="width:170px" %)(((
819 AT+PWORD=?
820 )))|(% style="width:123px" %)(((
821 Show password
822 )))|(% style="width:109px" %)(((
823 (((
824 123456
825 )))
826
827 (((
828 OK
829 )))
830 )))
831 |(% style="width:170px" %)(((
832 AT+PWORD=999999
833 )))|(% style="width:123px" %)(((
834 Set password
835 )))|(% style="width:109px" %)(((
836 OK
837 )))
838
839 (% style="color:#4f81bd" %)**Downlink Command:**
840
841 No downlink command for this feature.
842
843
844 == 3.3 Quit AT Command ==
845
846
847 (((
848 Feature: Quit AT Command mode, so user needs to input the password again before using AT Commands.
849 (% style="color:#4f81bd" %)**AT Command: AT+DISAT**
850 )))
851
852 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:452px" %)
853 |=(% style="width: 155px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 198px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 99px;background-color:#4F81BD;color:white" %)**Response**
854 |(% style="width:155px" %)AT+DISAT|(% style="width:198px" %)Quit AT Commands mode|(% style="width:96px" %)OK
855
856 (% style="color:#4f81bd" %)**Downlink Command:**
857
858 No downlink command for this feature.
859
860
861 == 3.4 Alarm for continuously water flow ==
862
863
864 (((
865 This feature is to monitor and send Alarm for continuously water flow.
866 )))
867
868 (((
869 Example case is for Toilet water monitoring, if some one push toilet button, the toilet will have water flow. If the toilet button has broken and can't returned to original state, the water flow will keep for hours or days which cause huge waste for water.
870 )))
871
872 (((
873 To monitor this faulty and send alarm, there are two settings:
874 )))
875
876 * (((
877 (% style="color:#4f81bd" %)**Stop Duration: Unit: Second**
878 )))
879
880 (((
881 Default: 15s, If SW3L didn't see any water flow in 15s, SW3L will consider stop of water flow event.
882 )))
883
884 * (((
885 (% style="color:#4f81bd" %)**Alarm Timer: Units: Minute; Default 0 minutes (means Alarm disable)**
886 )))
887
888 (((
889
890
891 **Example:** 3 minutes, if SW3L detect a start of water flow event and didn't detect a stop event within Alarm timer, SW3L will send an Alarm to indicate a water flow abnormal alarm.
892 )))
893
894 (((
895 So for example, If we set stop duration=15s and Alarm Timer=3minutes. If the toilet water flow continuously for more than 3 minutes, Sensor will send an alarm (in Confirmed MODE) to platform.
896 )))
897
898 (((
899 (% style="color:red" %)**Note:** **After this alarm is send, sensor will consider a stop of water flow and count for another new event. So if water flow waste last for 1 hour, Sensor will keep sending alarm every 3 minutes.**
900
901
902 )))
903
904 (((
905 (% style="color:#4f81bd" %)**AT Command**(%%) to configure:
906 )))
907
908 * (((
909 AT+PTRIG=15,3  ~-~-> Set Stop duration: 15s, Alarm Timer: 3 minutes.
910 )))
911 * (((
912 AT+ PTRIG=15,0  ~-~-> Default Value, disable water waste Alarm.
913 )))
914
915 (((
916
917
918 (% style="color:#4f81bd" %)**Downlink Command**(%%) to configure: 
919 )))
920
921 (((
922 Command: **0xAA aa bb cc**
923 )))
924
925 (((
926 AA: Command Type Code
927 )))
928
929 (((
930 aa: Stop duration
931 )))
932
933 (((
934 bb cc: Alarm Timer
935 )))
936
937 (((
938 If user send 0xAA 0F 00 03: equal to AT+PTRIG=15,3
939 )))
940
941
942 == 3.5 Clear Flash Record ==
943
944
945 Feature: Clear flash storage for data log feature.
946
947
948 (% style="color:#4f81bd" %)**AT Command: AT+CLRDTA**
949
950 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
951 |=(% style="width: 156px; background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 177px; background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 177px; background-color:#4F81BD;color:white" %)**Response**
952 |(% style="width:154px" %)AT+CLRDTA|(% style="width:177px" %)Clear flash storage for data log feature.|(% style="width:177px" %)Clear all stored sensor data... OK
953
954 (% style="color:#4f81bd" %)**Downlink Command:**
955
956 * **Example**: 0xA301  ~/~/  Same as AT+CLRDTA
957
958 == 3.6 Set the calculate flag ==
959
960
961 Feature: Set the calculate flag
962
963
964 (% style="color:#4f81bd" %)**AT Command: AT+CALCFLAG**
965
966 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:462px" %)
967 |=(% style="width: 161px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 204px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 97px;background-color:#4F81BD;color:white" %)**Response**
968 |(% style="width:161px" %)AT+CALCFLAG=1|(% style="width:202px" %)Set the calculate flag to 1.|(% style="width:95px" %)OK
969 |(% style="width:161px" %)AT+CALCFLAG=2|(% style="width:202px" %)Set the calculate flag to 2.|(% style="width:95px" %)OK
970
971 (% style="color:#4f81bd" %)**Downlink Command:**
972
973 * **Example**: 0XA501  ~/~/  Same as AT+CALCFLAG=1
974
975 == (% data-sider-select-id="e738628a-6dac-4911-8e57-1c07617a3bde" %)3.7 Set count number(%%) ==
976
977
978 Feature: Manually set the count number
979
980
981 (% style="color:#4f81bd" %)**AT Command: AT+SETCNT**
982
983 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:481px" %)
984 |=(% style="width: 162px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 224px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 95px;background-color:#4F81BD;color:white" %)**Response**
985 |(% style="width:162px" %)AT+SETCNT=0|(% style="width:222px" %)Set the count number to 0.|(% style="width:93px" %)OK
986 |(% style="width:162px" %)AT+SETCNT=100|(% style="width:222px" %)Set the count number to 100.|(% style="width:93px" %)OK
987
988 (% style="color:#4f81bd" %)**Downlink Command:**
989
990 * **Example**: 0xA600000001  ~/~/  Same as AT+SETCNT=1
991 * **Example**: 0xA600000064  ~/~/  Same as AT+SETCNT=100
992
993 == 3.8 Set work mode ==
994
995
996 Feature: Manually set the count mode.
997
998
999 (% style="color:#4f81bd" %)**AT Command: AT+MOD**
1000
1001 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:463px" %)
1002 |=(% style="width: 162px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 193px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 108px;background-color:#4F81BD;color:white" %)**Response**
1003 |(% style="width:162px" %)AT+MOD=0|(% style="width:191px" %)Set the work mode to 0: Accumulative (Default)|(% style="width:106px" %)OK
1004 |(% style="width:162px" %)AT+MOD=1|(% style="width:191px" %)Set the work mode to 1: Reset after uplink.|(% style="width:106px" %)OK
1005
1006 (% style="color:#4f81bd" %)**Downlink Command:**
1007
1008 * **Example: **0x0A00  ~/~/  Same as AT+MOD=0
1009 * **Example:** 0x0A01  ~/~/  Same as AT+MOD=1
1010
1011 Note: After hardware reset, the device will read the last saved count value as the initial value.
1012
1013
1014 = 4. Battery & Power Consumption =
1015
1016
1017 SW3L uses ER26500 + SPC1520 battery pack. See below link for detail information about the battery info and how to replace.
1018
1019 [[**Battery Info & Power Consumption Analyze**>>url:http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] .
1020
1021
1022 = 5. FAQ =
1023
1024 == 5.1 How to use AT Command to configure SW3 ==
1025
1026
1027 SW3L UART connection photo
1028
1029 [[image:1652943554687-149.png||_mstalt="298155" height="354" width="724"]]
1030
1031
1032 (((
1033 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:
1034 )))
1035
1036 [[image:1652943563580-704.png||_mstalt="295191" height="504" width="720"]]
1037
1038
1039 == 5.2 How to upgrade the firmware? ==
1040
1041
1042 (((
1043 A new firmware might be available for:
1044 )))
1045
1046 * (((
1047 Support new features
1048 )))
1049 * (((
1050 For bug fix
1051 )))
1052 * (((
1053 Change LoRaWAN bands.
1054 )))
1055
1056 (((
1057 Instruction for how to upgrade: [[Firmware Upgrade Instruction>>doc:Main.Firmware Upgrade Instruction for STM32 base products.WebHome||anchor="H2.HardwareUpgradeMethodSupportList" _mstmutation="1"]]
1058 )))
1059
1060 (((
1061 Firmware location:  [[https:~~/~~/www.dropbox.com/sh/jktldt8q674i87l/AADqk1zoUEekCjDR_4ic2Tg0a?dl=0>>https://www.dropbox.com/sh/jktldt8q674i87l/AADqk1zoUEekCjDR_4ic2Tg0a?dl=0]]
1062 )))
1063
1064
1065 == 5.3 How to change the LoRa Frequency Bands/Region? ==
1066
1067
1068 Users can follow the introduction for how to upgrade images. When downloading the images, choose the required image file for download.
1069
1070
1071 == 5.4 Can I connect 3rd party flow sensor other than the default one? ==
1072
1073
1074 If a user wants to connect SW3L to a 3rd party flow sensor such as a [[DN50 flow sensor>>https://valvesdirect.net/product/flow-sensor-2-inch-15-400lpm/]], that is possible. A flow sensor with pulse output is needed.
1075
1076 (% style="background-color:yellow" %)**Below is the notice for the connection:**
1077
1078 ~1. Connect the 3rd party flow meter to the pulse input and GND of SW3L.
1079
1080 2. Make sure the pulse output voltage of 3rd party flow sensor is less than 5v.
1081
1082 3. It is not recommended to use SW3L to power the external flow meter, unless you are sure the external flow sensor is low power ( several uA). Otherwise the battery of SW3L will be running out soon.
1083
1084 4. After connection, user needs to set the [[Calculator Flag and change the payload>>||anchor="H2.3.3A0WaterFlowValue2CUplinkFPORT3D2"]] so to get the correct reading in the platform.
1085
1086 **Connection:**
1087
1088 [[image:image-20240918182813-2.jpeg||height="487" width="697"]]
1089
1090
1091 == 5.5 What can I do if error in Flash Write operation is displayed on the serial port? ==
1092
1093
1094 When the STM32 module is running, sometimes there is no uplink data (FPORT=2). When we use the serial port to view the printing information, we will find that the serial port is printed as "error in Flash Write operation".
1095
1096 Example:
1097
1098 [[image:image-20250217163534-3.png||height="418" width="1068"]]
1099
1100 [[image:image-20250217163128-1.png||height="604" width="822"]]
1101
1102 The device will reset continuously, and we can use the **AT+CLRDTA** command to clear all stored sensor data. Then restart the device and the device will return to normal.
1103
1104 [[image:image-20250217163301-2.png]]
1105
1106 [[image:image-20250217164119-4.png||height="442" width="1135"]]
1107
1108
1109 = 6. Order Info =
1110
1111
1112 Part Number: (% style="color:#4f81bd" %)**SW3L-XXX-YYY**
1113
1114 (% style="color:#4f81bd" %)**XXX**(%%): The default frequency band
1115
1116 * (% style="color:red" %)**AS923**(%%): LoRaWAN AS923 band
1117 * (% style="color:red" %)**AU915**(%%): LoRaWAN AU915 band
1118 * (% style="color:red" %)**EU433**(%%): LoRaWAN EU433 band
1119 * (% style="color:red" %)**EU868**(%%): LoRaWAN EU868 band
1120 * (% style="color:red" %)**KR920**(%%): LoRaWAN KR920 band
1121 * (% style="color:red" %)**US915**(%%): LoRaWAN US915 band
1122 * (% style="color:red" %)**IN865**(%%): LoRaWAN IN865 band
1123 * (% style="color:red" %)**CN470**(%%): LoRaWAN CN470 band
1124
1125 (((
1126 (% style="color:#4f81bd" %)**YYY**(%%): Flow Sensor Model:
1127 )))
1128
1129 * 004: DW-004 Flow Sensor: diameter: G1/2” / DN15.  450 pulse = 1 L
1130 * 006: DW-006 Flow Sensor: diameter: G3/4” / DN20. 390 pulse = 1 L
1131 * 010: DW-010 Flow Sensor: diameter: G 1” / DN25. 64 pulse = 1 L
1132 * 020: DW-020 Flow Sensor: diameter: G 2” / DN50. 12 pulse = 1 L
1133
1134 = 7. Packing Info =
1135
1136
1137 **Package Includes**:
1138
1139 * SW3L Water Flow Sensor x 1
1140
1141 = 8. Support =
1142
1143
1144 * (((
1145 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.
1146 )))
1147 * (((
1148 Provide as much information as possible regarding your inquiry (product models, accurately describe your problem and steps to replicate it etc) and send a mail to [[support@dragino.com>>url:file:///D:/市场资料/说明书/LoRa/LT系列/support@dragino.com]].
1149
1150
1151
1152
1153 )))