Version 130.2 by Xiaoling on 2025/04/27 09:44

Show last authors
1
2
3
4 (% style="text-align:center" %)
5 [[image:image-20240109154731-4.png||height="546" width="769"]]
6
7
8
9
10
11
12
13 **Table of Contents :**
14
15 {{toc/}}
16
17
18
19
20
21
22 = 1. Introduction =
23
24 == 1.1 What is LoRaWAN Pressure Sensor ==
25
26
27 (((
28 The Dragino PS-LB/LS series sensors are (% style="color:blue" %)**LoRaWAN Pressure Sensor**(%%) for Internet of Things solution. PS-LB/LS can measure Air, Water pressure and liquid level and upload the sensor data via wireless to LoRaWAN IoT server.
29 )))
30
31 (((
32 The PS-LB/LS series sensors include (% style="color:blue" %)**Thread Installation Type**(%%) and (% style="color:blue" %)**Immersion Type**(%%), it supports different pressure range which can be used for different measurement requirement.
33 )))
34
35 (((
36 The LoRa wireless technology used in PS-LB/LS allows device to send data and reach extremely long ranges at low data-rates. It provides ultra-long range spread spectrum communication and high interference immunity whilst minimizing current consumption.
37 )))
38
39 (((
40 PS-LB/LS supports BLE configure and wireless OTA update which make user easy to use.
41 )))
42
43 (((
44 PS-LB/LS is powered by (% style="color:blue" %)**8500mAh Li-SOCI2 battery **(%%)or (% style="color:blue" %)**solar powered + Li-ion battery **(%%), it is designed for long term use up to 5 years.
45 )))
46
47 (((
48 Each PS-LB/LS is pre-load with a set of unique keys for LoRaWAN registrations, register these keys to local LoRaWAN server and it will auto connect after power on.
49 )))
50
51
52 == 1.2 ​Features ==
53
54
55 * LoRaWAN 1.0.3 Class A
56 * Ultra-low power consumption
57 * Measure air / gas or water pressure
58 * Different pressure range available
59 * Thread Installation Type or Immersion Type
60 * Monitor Battery Level
61 * Bands: CN470/EU433/KR920/US915/EU868/AS923/AU915/IN865
62 * Support Bluetooth v5.1 and LoRaWAN remote configure
63 * Support wireless OTA update firmware
64 * Uplink on periodically
65 * Downlink to change configure
66 * Controllable 3.3v,5v and 12v output to power external sensor
67 * 8500mAh Li/SOCl2 Battery (PS-LB)
68 * Solar panel + 3000mAh Li-ion battery (PS-LS)
69
70 == 1.3 Specification ==
71
72
73 (% style="color:#037691" %)**Micro Controller:**
74
75 * MCU: 48Mhz ARM
76 * Flash: 256KB
77 * RAM: 64KB
78
79 (% style="color:#037691" %)**Common DC Characteristics:**
80
81 * Supply Voltage: Built-in Battery , 2.5v ~~ 3.6v
82 * Operating Temperature: -40 ~~ 85°C
83
84 (% style="color:#037691" %)**LoRa Spec:**
85
86 * Frequency Range,  Band 1 (HF): 862 ~~ 1020 Mhz,Band 2 (LF): 410 ~~ 528 Mhz
87 * Max +22 dBm constant RF output vs.
88 * RX sensitivity: down to -139 dBm.
89 * Excellent blocking immunity
90
91 (% style="color:#037691" %)**Current Input Measuring :**
92
93 * Range: 0 ~~ 20mA
94 * Accuracy: 0.02mA
95 * Resolution: 0.001mA
96
97 (% style="color:#037691" %)**Voltage Input Measuring:**
98
99 * Range: 0 ~~ 30v
100 * Accuracy: 0.02v
101 * Resolution: 0.001v
102
103 (% style="color:#037691" %)**Battery:**
104
105 * Li/SOCI2 un-chargeable battery
106 * Capacity: 8500mAh
107 * Self-Discharge: <1% / Year @ 25°C
108 * Max continuously current: 130mA
109 * Max boost current: 2A, 1 second
110
111 (% style="color:#037691" %)**Power Consumption**
112
113 * Sleep Mode: 5uA @ 3.3v
114 * LoRa Transmit Mode: 125mA @ 20dBm, 82mA @ 14dBm
115
116 == 1.4 Probe Types ==
117
118 === 1.4.1 Thread Installation Type ===
119
120
121 [[image:1675071448299-229.png]]
122
123 * Hersman Pressure Transmitter
124 * Measuring Range: -0.1 ~~ 0 ~~ 60MPa, see order info.
125 * Accuracy: 0.2% F.S
126 * Long-Term Stability: 0.2% F.S ±0.05%
127 * Overload 200% F.S
128 * Zero Temperature Drift: 0.03% FS/℃(≤100Kpa), 0.02%FS/℃(>100Kpa)
129 * FS Temperature Drift: 0.003% FS/℃(≤100Kpa), 0.002%FS/℃(>100Kpa)
130 * Storage temperature: -30℃~~80℃
131 * Operating temperature: -20℃~~60℃
132 * Connector Type: Various Types, see order info
133
134 === 1.4.2 Immersion Type ===
135
136
137 [[image:image-20240109160445-5.png||height="199" width="150"]]
138
139 * Immersion Type, Probe IP Level: IP68
140 * Measuring Range: Measure range can be customized, up to 100m.
141 * Accuracy: 0.2% F.S
142 * Long-Term Stability: ±0.2% F.S / Year
143 * Storage temperature: -30°C~~80°C
144 * Operating temperature: 0°C~~50°C
145 * Material: 316 stainless steels
146
147 === 1.4.3 Wireless Differential Air Pressure Sensor ===
148
149 [[image:image-20240511174954-1.png||height="193" width="193"]]
150
151 * Measuring Range: -100KPa~~0~~100KPa(Optional measuring range).
152 * Accuracy: 0.5% F.S, resolution is 0.05%.
153 * Overload: 300% F.S
154 * Zero temperature drift: ±0.03%F.S/°C
155 * Operating temperature: -20°C~~60°C
156 * Storage temperature:  -20°C~~60°C
157 * Compensation temperature: 0~~50°C
158
159 == 1.5 Application and Installation ==
160
161 === 1.5.1 Thread Installation Type ===
162
163
164 (% style="color:blue" %)**Application:**
165
166 * Hydraulic Pressure
167 * Petrochemical Industry
168 * Health and Medical
169 * Food & Beverage Processing
170 * Auto-controlling house
171 * Constant Pressure Water Supply
172 * Liquid Pressure measuring
173
174 Order the suitable thread size and install to measure the air / liquid pressure
175
176 [[image:1675071670469-145.png]]
177
178
179 === 1.5.2 Immersion Type ===
180
181
182 (% style="color:blue" %)**Application:**
183
184 Liquid & Water Pressure / Level detect.
185
186 [[image:1675071725288-579.png]]
187
188
189 Below is the wiring to for connect the probe to the device.
190
191 The Immersion Type Sensor has different variant which defined by Ixx. For example, this means two points:
192
193 * Cable Length: 10 Meters
194 * Water Detect Range: 0 ~~ 10 Meters.
195
196 [[image:1675071736646-450.png]]
197
198
199 [[image:1675071776102-240.png]]
200
201 Size of immersion type water depth sensor:
202
203 [[image:image-20250401102131-1.png||height="268" width="707"]]
204
205
206 === 1.5.3 Wireless Differential Air Pressure Sensor ===
207
208
209 (% style="color:blue" %)**Application:**
210
211 Indoor Air Control & Filter clogging Detect.
212
213 [[image:image-20240513100129-6.png]]
214
215 [[image:image-20240513100135-7.png]]
216
217
218 Below is the wiring to for connect the probe to the device.
219
220 [[image:image-20240513093957-1.png]]
221
222
223 Size of wind pressure transmitter:
224
225 [[image:image-20240513094047-2.png||height="462" width="518"]]
226
227 (% style="color:red" %)**Note: The above dimensions are measured by hand, and the numerical error of the shell is within ±0.2mm.**
228
229
230 == 1.6 Sleep mode and working mode ==
231
232
233 **Deep Sleep Mode:** Sensor doesn't have any LoRaWAN activate. This mode is used for storage and shipping to save battery life.
234
235 **Working Mode: **In this mode, Sensor will work as LoRaWAN Sensor to Join LoRaWAN network and send out sensor data to server. Between each sampling/tx/rx periodically, sensor will be in IDLE mode), in IDLE mode, sensor has the same power consumption as Deep Sleep mode.
236
237
238 == 1.7 Button & LEDs ==
239
240
241 [[image:image-20250419092225-1.jpeg]]
242
243 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
244 |=(% style="width: 167px;background-color:#4F81BD;color:white" %)Behavior on ACT|=(% style="width: 117px;background-color:#4F81BD;color:white" %)Function|=(% style="width: 226px;background-color:#4F81BD;color:white" %)Action
245 |(% style="background-color:#f2f2f2; width:167px" %)Pressing ACT between 1s < time < 3s|(% style="background-color:#f2f2f2; width:117px" %)Send an uplink|(% style="background-color:#f2f2f2; width:225px" %)(((
246
247
248 If sensor is already Joined to LoRaWAN network, sensor will send an uplink packet, blue led will blink once.
249 Meanwhile, BLE module will be active and user can connect via BLE to configure device.
250 )))
251 |(% style="background-color:#f2f2f2; width:167px" %)Pressing ACT for more than 3s|(% style="background-color:#f2f2f2; width:117px" %)Active Device|(% style="background-color:#f2f2f2; width:225px" %)(((
252
253
254 Green led will fast blink 5 times, device will enter OTA mode for 3 seconds. And then start to JOIN LoRaWAN network.
255 Green led will solidly turn on for 5 seconds after joined in network.
256 Once sensor is active, BLE module will be active and user can connect via BLE to configure device, no matter if device join or not join LoRaWAN network.
257 )))
258 |(% style="background-color:#f2f2f2; width:167px" %)Fast press ACT 5 times.|(% style="background-color:#f2f2f2; width:117px" %)Deactivate Device|(% style="background-color:#f2f2f2; width:225px" %)Red led will solid on for 5 seconds. Means PS-LB is in Deep Sleep Mode.
259
260 == 1.8 Pin Mapping ==
261
262
263 [[image:1675072568006-274.png]]
264
265
266 == 1.9 BLE connection ==
267
268
269 PS-LB/LS support BLE remote configure.
270
271
272 BLE can be used to configure the parameter of sensor or see the console output from sensor. BLE will be only activate on below case:
273
274 * Press button to send an uplink
275 * Press button to active device.
276 * Device Power on or reset.
277
278 If there is no activity connection on BLE in 60 seconds, sensor will shut down BLE module to enter low power mode.
279
280
281 == 1.10 Mechanical ==
282
283 === 1.10.1 for LB version ===
284
285
286 [[image:image-20250401163530-1.jpeg]]
287
288
289 === 1.10.2 for LS version ===
290
291
292 [[image:image-20250401163539-2.jpeg]]
293
294
295 = 2. Configure PS-LB/LS to connect to LoRaWAN network =
296
297 == 2.1 How it works ==
298
299
300 The PS-LB/LS is configured as LoRaWAN OTAA Class A mode by default. It has OTAA keys to join LoRaWAN network. To connect a local LoRaWAN network, you need to input the OTAA keys in the LoRaWAN IoT server and activate the PS-LB/LS. It will automatically join the network via OTAA and start to send the sensor value. The default uplink interval is 20 minutes.
301
302
303 == 2.2 ​Quick guide to connect to LoRaWAN server (OTAA) ==
304
305
306 Following is an example for how to join the [[TTN v3 LoRaWAN Network>>url:https://console.cloud.thethings.network/]]. Below is the network structure; we use the [[LPS8v2>>url:https://www.dragino.com/products/lora-lorawan-gateway/item/228-lps8v2.html]] as a LoRaWAN gateway in this example.
307
308 [[image:image-20250419162538-1.png]]
309
310
311 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.
312
313
314 **Step 1: Create a device in TTN with the OTAA keys from PS-LB/LS.**
315
316 Each PS-LB/LS is shipped with a sticker with the default device EUI as below:
317
318 [[image:image-20230426085320-1.png||height="234" width="504"]]
319
320
321 You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:
322
323 **Create the application.**
324
325 [[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"]]
326
327 [[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"]]
328
329
330 **Add devices to the created Application.**
331
332 [[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"]]
333
334 [[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"]]
335
336
337 **Enter end device specifics manually.**
338
339 [[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"]]
340
341
342 **Add DevEUI and AppKey. Customize a platform ID for the device.**
343
344 [[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"]]
345
346
347 **Step 2: Add decoder.**
348
349 In TTN, user can add a custom payload so it shows friendly reading.
350
351 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/]]
352
353 Below is TTN screen shot:
354
355 [[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"]]
356
357 [[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" height="562" width="1168"]]
358
359
360 **Step 3: Activate on PS-LB/LS**
361
362 Press the button for 5 seconds to activate the PS-LB/LS.
363
364 Green led will fast blink 5 times, device will enter OTA mode for 3 seconds. And then start to JOIN LoRaWAN network. Green led will solidly turn on for 5 seconds after joined in network.
365
366 After join success, it will start to upload messages to TTN and you can see the messages in the panel.
367
368
369 == 2.3 ​Uplink Payload ==
370
371 === 2.3.1 Device Status, FPORT~=5 ===
372
373
374 Include device configure status. Once PS-LB/LS Joined the network, it will uplink this message to the server.
375
376 Users can also use the downlink command(0x26 01) to ask PS-LB/LS to resend this uplink.
377
378 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
379 |(% colspan="6" style="background-color:#4f81bd; color:white" %)Device Status (FPORT=5)
380 |(% style="background-color:#f2f2f2; width:103px" %)Size (bytes)|(% style="background-color:#f2f2f2; width:72px" %)1|(% style="background-color:#f2f2f2" %)2|(% style="background-color:#f2f2f2; width:91px" %)1|(% style="background-color:#f2f2f2; width:86px" %)1|(% style="background-color:#f2f2f2; width:44px" %)2
381 |(% style="background-color:#f2f2f2; width:103px" %)Value|(% style="background-color:#f2f2f2; width:72px" %)Sensor Model|(% style="background-color:#f2f2f2" %)Firmware Version|(% style="background-color:#f2f2f2; width:91px" %)Frequency Band|(% style="background-color:#f2f2f2; width:86px" %)Sub-band|(% style="background-color:#f2f2f2; width:44px" %)BAT
382
383 Example parse in TTNv3
384
385 [[image:1675144504430-490.png]]
386
387
388 Sensor Model: For PS-LB/LS, this value is 0x16
389
390 Firmware Version: 0x0100, Means: v1.0.0 version
391
392 Frequency Band:
393
394 *0x01: EU868
395
396 *0x02: US915
397
398 *0x03: IN865
399
400 *0x04: AU915
401
402 *0x05: KZ865
403
404 *0x06: RU864
405
406 *0x07: AS923
407
408 *0x08: AS923-1
409
410 *0x09: AS923-2
411
412 *0x0a: AS923-3
413
414 *0x0b: CN470
415
416 *0x0c: EU433
417
418 *0x0d: KR920
419
420 *0x0e: MA869
421
422
423 Sub-Band:
424
425 AU915 and US915:value 0x00 ~~ 0x08
426
427 CN470: value 0x0B ~~ 0x0C
428
429 Other Bands: Always 0x00
430
431
432 Battery Info:
433
434 Check the battery voltage.
435
436 Ex1: 0x0B45 = 2885mV
437
438 Ex2: 0x0B49 = 2889mV
439
440
441 === 2.3.2 Sensor value, FPORT~=2 ===
442
443
444 Uplink payload includes in total 9 bytes.
445
446
447 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
448 |(% style="background-color:#4f81bd; color:white; width:97px" %)(((
449
450
451 Size(bytes)
452 )))|(% style="background-color:#4f81bd; color:white; width:50px" %)2|(% style="background-color:#4f81bd; color:white; width:71px" %)2|(% style="background-color:#4f81bd; color:white; width:98px" %)2|(% style="background-color:#4f81bd; color:white; width:73px" %)2|(% style="background-color:#4f81bd; color:white; width:122px" %)1
453 |(% style="width:97px" %)Value|(% style="width:48px" %)[[BAT>>||anchor="H2.3.3BatteryInfo"]]|(% style="width:71px" %)[[Probe Model>>||anchor="H2.3.4ProbeModel"]]|(% style="width:98px" %)[[0 ~~~~ 20mA value>>||anchor="H2.3.507E20mAvalue28IDC_IN29"]]|(% style="width:73px" %)[[0 ~~~~ 30v value>>||anchor="H2.3.607E30Vvalue28pinVDC_IN29"]]|(% style="width:122px" %)[[IN1 &IN2 Interrupt  flag>>||anchor="H2.3.7IN126IN226INTpin"]]
454
455 [[image:1675144608950-310.png]]
456
457
458 === 2.3.3 Battery Info ===
459
460
461 Check the battery voltage for PS-LB/LS.
462
463 Ex1: 0x0B45 = 2885mV
464
465 Ex2: 0x0B49 = 2889mV
466
467
468 === 2.3.4 Probe Model ===
469
470
471 PS-LB/LS has different kind of probe, 4~~20mA represent the full scale of the measuring range. So a 12mA output means different meaning for different probe. 
472
473
474 For example.
475
476 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
477 |(% style="background-color:#4f81bd; color:white" %)Part Number|(% style="background-color:#4f81bd; color:white" %)Probe Used|(% style="background-color:#4f81bd; color:white" %)4~~20mA scale|(% style="background-color:#4f81bd; color:white" %)Example: 12mA meaning
478 |(% style="background-color:#f2f2f2" %)PS-LB/LS-I3|(% style="background-color:#f2f2f2" %)immersion type with 3 meters cable|(% style="background-color:#f2f2f2" %)0~~3 meters|(% style="background-color:#f2f2f2" %)1.5 meters pure water
479 |(% style="background-color:#f2f2f2" %)PS-LB/LS-I5|(% style="background-color:#f2f2f2" %)immersion type with 5 meters cable|(% style="background-color:#f2f2f2" %)0~~5 meters|(% style="background-color:#f2f2f2" %)2.5 meters pure water
480 |(% style="background-color:#f2f2f2" %)PS-LB/LS-T20-B|(% style="background-color:#f2f2f2" %)T20 threaded probe|(% style="background-color:#f2f2f2" %)0~~1MPa|(% style="background-color:#f2f2f2" %)0.5MPa air / gas or water pressure
481
482 The probe model field provides the convenient for server to identical how it should parse the 4~~20mA sensor value and get the correct value.
483
484
485 === 2.3.5 0~~20mA value (IDC_IN) ===
486
487
488 The output value from Pressure Probe, use together with Probe Model to get the pressure value or water level.
489
490 Example:
491
492 27AE(H) = 10158 (D)/1000 = 10.158mA.
493
494
495 Instead of pressure probe, User can also connect a general 4~~20mA in this port to support different types of 4~~20mA sensors. below is the connection example:
496
497 [[image:image-20230225154759-1.png||height="408" width="741"]]
498
499
500 === 2.3.6 0~~30V value (pin VDC_IN) ===
501
502
503 Measure the voltage value. The range is 0 to 30V.
504
505 Example:
506
507 138E(H) = 5006(D)/1000= 5.006V
508
509
510 === 2.3.7 IN1&IN2&INT pin ===
511
512
513 IN1 and IN2 are used as digital input pins.
514
515 Example:
516
517 09 (H): (0x09&0x08)>>3=1    IN1 pin is high level.
518
519 09 (H): (0x09&0x04)>>2=0    IN2 pin is low level.
520
521
522 This data field shows if this packet is generated by Interrupt Pin or not. [[Click here>>||anchor="H3.3.2SetInterruptMode"]] for the hardware and software set up. Note: The Internet Pin is a separate pin in the screw terminal.
523
524 Example:
525
526 09 (H): (0x09&0x02)>>1=1    The level of the interrupt pin.
527
528 09 (H): 0x09&0x01=1              0x00: Normal uplink packet.
529
530 0x01: Interrupt Uplink Packet.
531
532
533 === 2.3.8 Sensor value, FPORT~=7 ===
534
535
536 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:500px" %)
537 |(% style="background-color:#4f81bd; color:white; width:65px" %)(((
538
539
540 Size(bytes)
541 )))|(% style="background-color:#4f81bd; color:white; width:35px" %)2|(% style="background-color:#4f81bd; color:white; width:400px" %)n
542 |(% style="width:94px" %)Value|(% style="width:43px" %)[[BAT>>||anchor="H2.3.3BatteryInfo"]]|(% style="width:367px" %)(((
543
544
545 Voltage value, each 2 bytes is a set of voltage values.
546 )))
547
548 [[image:image-20230220171300-1.png||height="207" width="863"]]
549
550 Multiple sets of data collected are displayed in this form:
551
552 [voltage value1], [voltage value2], [voltage value3],…[voltage value n/2]
553
554
555 === 2.3.9 ​Decode payload in The Things Network ===
556
557
558 While using TTN network, you can add the payload format to decode the payload.
559
560 [[image:1675144839454-913.png]]
561
562
563 PS-LB/LS TTN Payload Decoder: [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>url:https://github.com/dragino/dragino-end-node-decoder]]
564
565
566 == 2.4 Uplink Interval ==
567
568
569 The PS-LB/LS by default uplink the sensor data every 20 minutes. User can change this interval by AT Command or LoRaWAN Downlink Command. See this link: [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/#H4.1ChangeUplinkInterval>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/#H4.1ChangeUplinkInterval||style="background-color: rgb(255, 255, 255);"]]
570
571
572 == 2.5 Show Data in DataCake IoT Server ==
573
574
575 [[DATACAKE>>url:https://datacake.co/]] provides a human friendly interface to show the sensor data, once we have data in TTN, we can use [[DATACAKE>>url:https://datacake.co/]] to connect to TTN and see the data in DATACAKE. Below are the steps:
576
577 Step 1: Be sure that your device is programmed and properly connected to the network at this time.
578
579 Step 2: To configure the Application to forward data to DATACAKE you will need to add integration. To add the DATACAKE integration, perform the following steps:
580
581 [[image:1675144951092-237.png]]
582
583
584 [[image:1675144960452-126.png]]
585
586
587 Step 3: Create an account or log in Datacake.
588
589 Step 4: Create PS-LB/LS product.
590
591 [[image:1675145004465-869.png]]
592
593
594 [[image:1675145018212-853.png]]
595
596
597 [[image:1675145029119-717.png]]
598
599
600 Step 5: add payload decode
601
602 [[image:1675145051360-659.png]]
603
604
605 [[image:1675145060812-420.png]]
606
607
608 After added, the sensor data arrive TTN, it will also arrive and show in Datacake.
609
610 [[image:1675145081239-376.png]]
611
612
613 == 2.6 Datalog Feature (Since V1.1) ==
614
615
616 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.
617
618
619 === 2.6.1 Unix TimeStamp ===
620
621
622 PS-LB uses Unix TimeStamp format based on
623
624 [[image:image-20250401163826-3.jpeg]]
625
626 Users can get this time from the link:  [[https:~~/~~/www.epochconverter.com/>>url:https://www.epochconverter.com/]] :
627
628 Below is the converter example:
629
630 [[image:image-20250401163906-4.jpeg]]
631
632
633 === 2.6.2 Set Device Time ===
634
635
636 There are two ways to set the device's time:
637
638
639 ~1. Through LoRaWAN MAC Command (Default settings)
640
641 Users need to set SYNCMOD=1 to enable sync time via the MAC command.
642
643 Once CPL01 Joined the LoRaWAN network, it will send the MAC command (DeviceTimeReq) and the server will reply with (DeviceTimeAns) to send the current time to CPL01. If CPL01 fails to get the time from the server, CPL01 will use the internal time and wait for the next time request ~[[[via Device Status (FPORT=5)>>url:http://wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/CPL01%20LoRaWAN%20Outdoor%20PulseContact%20%20Sensor%20Manual/#H2.3.1DeviceStatus2CFPORT3D5]]].
644
645 Note: LoRaWAN Server needs to support LoRaWAN v1.0.3(MAC v1.0.3) or higher to support this MAC command feature.
646
647
648 2. Manually Set Time
649
650 Users need to set SYNCMOD=0 to manual time, otherwise, the user set time will be overwritten by the time set by the server.
651
652
653 === 2.6.3 Poll sensor value ===
654
655 Users can poll sensor values based on timestamps. Below is the downlink command.
656
657 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:470px" %)
658 |=(% colspan="4" style="width: 160px; background-color:#4F81BD;color:white" %)Downlink Command to poll Open/Close status (0x31)
659 |(% style="background-color:#f2f2f2; width:67px" %)1byte|(% style="background-color:#f2f2f2; width:145px" %)4bytes|(% style="background-color:#f2f2f2; width:133px" %)4bytes|(% style="background-color:#f2f2f2; width:163px" %)1byte
660 |(% style="background-color:#f2f2f2; width:67px" %)31|(% style="background-color:#f2f2f2; width:145px" %)Timestamp start|(% style="background-color:#f2f2f2; width:133px" %)(((
661 Timestamp end
662 )))|(% style="background-color:#f2f2f2; width:163px" %)Uplink Interval
663
664 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.
665
666 For example, downlink command[[image:image-20250117104812-1.png]]
667
668 Is to check 2024/12/20 09:34:59 to 2024/12/20 14:34:59's data
669
670 Uplink Internal =5s,means PS-LB will send one packet every 5s. range 5~~255s.
671
672
673 === 2.6.4 Datalog Uplink payload (FPORT~=3) ===
674
675
676 The Datalog uplinks will use below payload format.
677
678 Retrieval data payload:
679
680 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
681 |=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
682 Size(bytes)
683 )))|=(% style="width: 70px; background-color:#4F81BD;color:white" %)2|=(% style="width: 70px; background-color:#4F81BD;color:white" %)2|=(% style="width: 80px; background-color: rgb(79, 129, 189); color: white;" %)2|=(% style="width: 150px; background-color: rgb(79, 129, 189); color: white;" %)1|=(% style="width: 80px; background-color: rgb(79, 129, 189); color: white;" %)4
684 |(% style="width:103px" %)Value|(% style="width:68px" %)(((
685 Probe_mod
686 )))|(% style="width:104px" %)(((
687 VDC_intput_V
688 )))|(% style="width:83px" %)(((
689 IDC_intput_mA
690 )))|(% style="width:201px" %)(((
691 IN1_pin_level& IN2_pin_level& Exti_pin_level&Exti_status
692 )))|(% style="width:86px" %)Unix Time Stamp
693
694 IN1_pin_level & IN2_pin_level & Exti_pin_level & Exti_status:
695
696 [[image:image-20250117104847-4.png]]
697
698
699 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)
700
701 Poll Message Flag: 1: This message is a poll message reply.
702
703 * Poll Message Flag is set to 1.
704
705 * Each data entry is 11 bytes, to save airtime and battery, devices will send max bytes according to the current DR and Frequency bands.
706
707 For example, in US915 band, the max payload for different DR is:
708
709 a) DR0: max is 11 bytes so one entry of data
710
711 b) DR1: max is 53 bytes so devices will upload 4 entries of data (total 44 bytes)
712
713 c) DR2: total payload includes 11 entries of data
714
715 d) DR3: total payload includes 22 entries of data.
716
717 If devise doesn't have any data in the polling time. Device will uplink 11 bytes of 0   
718
719 Example:
720
721 If PS-LB-NA has below data inside Flash:
722
723 [[image:image-20250117104837-3.png]]
724
725
726 If user sends below downlink command: 316788D9BF6788DB6305
727
728 Where : Start time: 6788D9BF = time 25/1/16 10:04:47
729
730 Stop time: 6788DB63 = time 25/1/16 10:11:47
731
732
733 PA-LB-NA will uplink this payload.
734
735 [[image:image-20250117104827-2.png]]
736
737
738 00001B620000406788D9BF  00000D130000406788D9FB  00000D120000406788DA37  00000D110000406788DA73  00000D100000406788DAAF  00000D100000406788DAEB  00000D0F0000406788DB27  00000D100000406788DB63
739
740
741 Where the first 11 bytes is for the first entry :
742
743
744 0000  0D10  0000  40  6788DB63
745
746
747 Probe_mod = 0x0000 = 0000
748
749
750 VDC_intput_V = 0x0D10/1000=3.344V
751
752 IDC_intput_mA = 0x0000/1000=0mA
753
754
755 IN1_pin_level = (0x40& 0x08)? "High":"Low" = 0(Low)
756
757 IN2_pin_level = (0x40& 0x04)? "High":"Low" = 0(Low)
758
759 Exti_pin_level = (0x40& 0x02)? "High":"Low" = 0(Low)
760
761 Exti_status = (0x40& 0x01)? "True":"False" = 0(False)
762
763
764 Unix time is 0x6788DB63 = 1737022307s = 2025/1/16 10:11:47
765
766 Its data format is:
767
768 [Probe_mod, VDC_intput_V, IDC_intput_mA, IN1_pin_level, IN2_pin_level, Exti_pin_level, water_deep, Data_time],[Probe_mod, VDC_intput_V, IDC_intput_mA, IN1_pin_level, IN2_pin_level, Exti_pin_level, water_deep, Data_time],...
769
770 Note: water_deep in the data needs to be converted using decoding to get it.
771
772
773 === 2.6.5 Decoder in TTN V3 ===
774
775 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/CPL01%20LoRaWAN%20Outdoor%20PulseContact%20%20Sensor%20Manual/WebHome/1652862574387-195.png?width=722&height=359&rev=1.1||alt="1652862574387-195.png" height="359" width="722"]]
776
777 Please check the decoder from this link: [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>url:https://github.com/dragino/dragino-end-node-decoder]]
778
779
780 == 2.7 Frequency Plans ==
781
782
783 The PS-LB/LS uses OTAA mode and below frequency plans by default. Each frequency band use different firmware, user update the firmware to the corresponding band for their country.
784
785 [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/a>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/]]
786
787
788 == 2.8 Report on Change Feature (Since firmware V1.2) ==
789
790 === 2.8.1 Uplink payload(Enable ROC) ===
791
792
793 Used to Monitor the IDC and VDC increments, and send ROC uplink when the IDC or VDC changes exceed.
794
795 With ROC enabled, the payload is as follows:
796
797 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
798 |(% style="background-color:#4f81bd; color:white; width:97px" %)(((
799 Size(bytes)
800 )))|(% style="background-color:#4f81bd; color:white; width:48px" %)2|(% style="background-color:#4f81bd; color:white; width:71px" %)2|(% style="background-color:#4f81bd; color:white; width:98px" %)2|(% style="background-color:#4f81bd; color:white; width:73px" %)2|(% style="background-color:#4f81bd; color:white; width:122px" %)1
801 |(% style="width:98px" %)Value|(% style="width:48px" %)[[BAT>>||anchor="H2.3.3BatteryInfo"]]|(% style="width:71px" %)[[Probe Model>>||anchor="H2.3.4ProbeModel"]]|(% style="width:98px" %)[[0 ~~~~ 20mA value>>||anchor="H2.3.507E20mAvalue28IDC_IN29"]]|(% style="width:73px" %)[[0 ~~~~ 30v value>>||anchor="H2.3.607E30Vvalue28pinVDC_IN29"]]|(% style="width:122px" %)(((
802 [[IN1 &IN2 Interrupt  flag>>||anchor="H2.3.7IN126IN226INTpin"]] & ROC_flag
803 )))
804
805 IN1 &IN2 , Interrupt  flag , ROC_flag:
806
807 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:515px" %)
808 |(% style="background-color:#4f81bd; color:white; width:50px" %)Size(bit)|(% style="background-color:#4f81bd; color:white; width:60px" %)bit7|(% style="background-color:#4f81bd; color:white; width:62px" %)bit6|(% style="background-color:#4f81bd; color:white; width:62px" %)bit5|(% style="background-color:#4f81bd; color:white; width:65px" %)bit4|(% style="background-color:#4f81bd; color:white; width:56px" %)bit3|(% style="background-color:#4f81bd; color:white; width:55px" %)bit2|(% style="background-color:#4f81bd; color:white; width:55px" %)bit1|(% style="background-color:#4f81bd; color:white; width:50px" %)bit0
809 |(% style="width:75px" %)Value|(% style="width:89px" %)IDC_Roc_flagL|(% style="width:46.5834px" %)IDC_Roc_flagH|(% style="width:1px" %)VDC_Roc_flagL|(% style="width:89px" %)VDC_Roc_flagH|(% style="width:89px" %)IN1_pin_level|(% style="width:103px" %)IN2_pin_level|(% style="width:103px" %)Exti_pin_level|(% style="width:103px" %)Exti_status
810
811 * IDC_Roc_flagL
812
813 80 (H): (0x80&0x80)=80(H)=1000 0000(B)  bit7=1, "TRUE", This uplink is triggered when the decrease in the IDC compared to the last ROC refresh exceeds the set threshold.
814
815 60 (H): (0x60&0x80)=0  bit7=0, "FALSE", This uplink is not triggered when the decrease in the IDC compared to the last ROC refresh exceeds the set threshold.
816
817
818 * IDC_Roc_flagH
819
820 60 (H): (0x60&0x40)=60(H)=01000 0000(B)  bit6=1, "TRUE", This uplink is triggered when the increase in the value of the IDC compared to the last ROC refresh exceeds the set threshold.
821
822 80 (H): (0x80&0x40)=0  bit6=0, "FALSE", This uplink is not triggered when the increase in the value of the IDC compared to the last ROC refresh exceeds the set threshold.
823
824
825 * VDC_Roc_flagL
826
827 20 (H): (0x20&0x20)=20(H)=0010 0000(B)  bit5=1, "TRUE", This uplink is triggered when the decrease in the VDC compared to the last ROC refresh exceeds the set threshold.
828
829 90 (H): (0x90&0x20)=0  bit5=0, "FALSE", This uplink is not triggered when the decrease in the VDC compared to the last ROC refresh exceeds the set threshold.
830
831
832 * VDC_Roc_flagH
833
834 90 (H): (0x90&0x10)=10(H)=0001 0000(B)  bit4=1, "TRUE", This uplink is triggered when the increase in the value of the VDC compared to the last ROC refresh exceeds the set threshold.
835
836 20 (H): (0x20&0x10)=0  bit4=0, "FALSE", This uplink is not triggered when the increase in the value of the VDC compared to the last ROC refresh exceeds the set threshold.
837
838
839 * IN1_pin_level & IN2_pin_level
840
841 IN1 and IN2 are used as digital input pins.
842
843 80 (H): (0x80&0x08)=0  IN1 pin is low level.
844
845 80 (H): (0x09&0x04)=0    IN2 pin is low level.
846
847
848 * Exti_pin_level &Exti_status
849
850 This data field shows whether the packet is generated by an interrupt pin.
851
852 Note: The Internet pin of the old motherboard is a separate pin in the screw terminal, and the interrupt pin of the new motherboard(SIB V1.3) is the GPIO_EXTI pin.
853
854 Exti_pin_level:  80 (H): (0x80&0x02)=0  "low", The level of the interrupt pin.
855
856 Exti_status: 80 (H): (0x80&0x01)=0  "False", Normal uplink packet.
857
858
859 === 2.8.2 Set the Report on Change ===
860
861
862 Feature: Get or Set the Report on Change.
863
864
865 ==== 2.8.2.1 Wave alarm mode ====
866
867
868 Feature: By setting the detection period and a change value, the IDC/VDC variable is monitored whether it exceeds the set change value. If this change value is exceeded, the ROC uplink is sent and the comparison value is flushed.
869
870 * Change value: The amount by which the next detection value increases/decreases relative to the previous detection value.
871 * Comparison value: A parameter to compare with the latest ROC test.
872
873 AT Command: AT+ROC
874
875 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
876 |=(% style="width: 163px; background-color: rgb(79, 129, 189); color: white;" %)Command Example|=(% style="width: 154px; background-color: rgb(79, 129, 189); color: white;" %)Parameters|=(% style="width: 193px; background-color: rgb(79, 129, 189); color: white;" %)Response/Explanation
877 |(% style="width:143px" %)AT+ROC=?|(% style="width:154px" %)Show current ROC setting|(% style="width:197px" %)(((
878 0,0,0,0(default)
879 OK
880 )))
881 |(% colspan="1" rowspan="4" style="width:143px" %)(((
882 AT+ROC=a,b,c,d
883 )))|(% style="width:154px" %)(((
884 **a:** Enable or disable the ROC
885 )))|(% style="width:197px" %)(((
886 **0:** off
887 **1:** Turn on the wave alarm mode, send the ROC uplink when the increment exceeds the set parameter and refresh the comparison value.
888 **2:** Turn on the wave alarm mode, send the ROC uplink when the increment exceeds the set parameter and refresh the comparison value. In addition, the comparison value is refreshed when the device sends packets ([[TDC>>||anchor="H3.3.1SetTransmitIntervalTime"]] or [[ACT>>||anchor="H1.7Button26LEDs"]]).
889 )))
890 |(% style="width:154px" %)**b:** Set the detection interval|(% style="width:197px" %)(((
891 Range:  0~~65535s
892 )))
893 |(% style="width:154px" %)**c:** Setting the IDC change value|(% style="width:197px" %)Unit: uA
894 |(% style="width:154px" %)**d:** Setting the VDC change value|(% style="width:197px" %)Unit: mV
895
896 Example:
897
898 * AT+ROC=0,0,0,0  ~/~/ The ROC function is not used.
899 * AT+ROC=1,60,3000, 500  ~/~/ Check value every 60 seconds. lf there is change in IDC (>3mA) or VDC (>500mV), sends an ROC uplink, and the comparison value is refreshed.
900 * AT+ROC=1,60,3000,0  ~/~/ Check value every 60 seconds. lf there is change in IDC (>3mA), send an ROC uplink and the comparison value of IDC is refreshed. dd=0 Means doesn't monitor Voltage.
901 * AT+ROC=2,60,3000,0  ~/~/ Check value every 60 seconds. lf there is change in IDC (>3mA), send an ROC uplink and the comparison value of IDC is refreshed. dd=0 Means doesn't monitor Voltage. In addition, if the change in the IDC does not exceed 3mA, then the ROC uplink is not sent, and the comparison value is not refreshed by the ROC uplink packet. However, if the device TDC time arrives, or if the user manually sends packets, then the IDC comparison value is also refreshed.
902
903 Downlink Command: 0x09 aa bb cc dd
904
905 Format: Function code (0x09) followed by 4 bytes.
906
907 aa: 1 byte; Set the wave alarm mode.
908
909 bb: 2 bytes; Set the detection interval. (second)
910
911 cc: 2 bytes; Setting the IDC change threshold. (uA)
912
913 dd: 2 bytes; Setting the VDC change threshold. (mV)
914
915 Example:
916
917 * Downlink Payload: 09 01 00 3C 0B B8 01 F4  ~/~/ Equal to AT+ROC=1,60,3000, 500
918 * Downlink Payload: 09 01 00 3C 0B B8 00 00  ~/~/ Equal to AT+ROC=1,60,3000,0
919 * Downlink Payload: 09 02 00 3C 0B B8 00 00  ~/~/ Equal to AT+ROC=2,60,3000,0
920
921 Screenshot of parsing example in TTN:
922
923 * AT+ROC=1,60,3000, 500.
924
925 [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/PS-LB-NA--LoRaWAN_Analog_Sensor_User_Manual/WebHome/image-20241019170902-1.png?width=1454&height=450&rev=1.1||alt="image-20241019170902-1.png"]]
926
927
928 ==== 2.8.2.2 Over-threshold alarm mode ====
929
930
931 Feature: Monitors whether the IDC/VDC exceeds the threshold by setting the detection period and threshold. Alarm if the threshold is exceeded.
932
933 AT Command: AT+ROC=3,a,b,c,d,e
934
935 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
936 |=(% style="width: 163px; background-color: rgb(79, 129, 189); color: white;" %)Command Example|=(% style="width: 160px; background-color: rgb(79, 129, 189); color: white;" %)Parameters|=(% style="width: 187px; background-color: rgb(79, 129, 189); color: white;" %)Response/Explanation
937 |(% style="width:143px" %)AT+ROC=?|(% style="width:160px" %)Show current ROC setting|(% style="width:185px" %)(((
938 0,0,0,0(default)
939 OK
940 )))
941 |(% colspan="1" rowspan="5" style="width:143px" %)(((
942 AT+ROC=3,a,b,c,d,e
943 )))|(% style="width:160px" %)(((
944 **a:** Set the detection interval
945 )))|(% style="width:185px" %)(((
946 Range:  0~~65535s
947 )))
948 |(% style="width:160px" %)**b:** Set the IDC alarm trigger condition|(% style="width:185px" %)(((
949 **0:** Less than the set IDC threshold, Alarm
950 **1:** Greater than the set IDC threshold, Alarm
951 )))
952 |(% style="width:160px" %)(((
953 **c: ** IDC alarm threshold
954 )))|(% style="width:185px" %)(((
955 Unit: uA
956 )))
957 |(% style="width:160px" %)**d:** Set the VDC alarm trigger condition|(% style="width:185px" %)(((
958 **0:** Less than the set VDC threshold, Alarm
959 **1:** Greater than the set VDC threshold, Alarm
960 )))
961 |(% style="width:160px" %)**e:** VDC alarm threshold|(% style="width:185px" %)Unit: mV
962
963 Example:
964
965 * AT+ROC=3,60,0,3000,0,5000  ~/~/ The data is checked every 60 seconds. If the IDC is less than 3mA or the VDC is less than 5000mV, an alarm is generated.
966 * AT+ROC=3,180,1,3000,1,5000  ~/~/ The data is checked every 180 seconds. If the IDC is greater than 3mA or the VDC is greater than 5000mV, an alarm is generated.
967 * AT+ROC=3,300,0,3000,1,5000  ~/~/ The data is checked every 300 seconds. If the IDC is less than 3mA or the VDC is greater than 5000mV, an alarm is generated.
968
969 Downlink Command: 0x09 03 aa bb cc dd ee
970
971 Format: Function code (0x09) followed by 03 and the remaining 5 bytes.
972
973 aa: 2 bytes; Set the detection interval.(second)
974
975 bb: 1 byte; Set the IDC alarm trigger condition.
976
977 cc: 2 bytes; IDC alarm threshold.(uA)
978
979
980 dd: 1 byte; Set the VDC alarm trigger condition.
981
982 ee: 2 bytes; VDC alarm threshold.(mV)
983
984 Example:
985
986 * Downlink Payload: 09 03 00 3C 00 0B B8 00 13 38 ~/~/ Equal to AT+ROC=3,60,0,3000,0,5000
987 * Downlink Payload: 09 03 00 b4 01 0B B8 01 13 38  ~/~/ Equal to AT+ROC=3,60,1,3000,1,5000
988 * Downlink Payload: 09 03 01 2C 00 0B B8 01 13 38  ~/~/ Equal to AT+ROC=3,60,0,3000,1,5000
989
990 Screenshot of parsing example in TTN:
991
992 * AT+ROC=3,60,0,3000,0,5000
993
994 [[image:image-20250116180030-2.png]]
995
996
997 == 2.9 ​Firmware Change Log ==
998
999
1000 Firmware download link:
1001
1002 [[https:~~/~~/www.dropbox.com/sh/gf1glloczbzz19h/AABbuYI4WY6VdAmpXo6o1V2Ka?dl=0>>url:https://www.dropbox.com/sh/gf1glloczbzz19h/AABbuYI4WY6VdAmpXo6o1V2Ka?dl=0]]
1003
1004
1005 = 3. Configure PS-LB/LS =
1006
1007 == 3.1 Configure Methods ==
1008
1009
1010 PS-LB/LS supports below configure method:
1011
1012 * AT Command via Bluetooth Connection (Recommand Way): [[BLE Configure Instruction>>url:http://wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/]].
1013 * AT Command via UART Connection : See [[FAQ>>||anchor="H6.FAQ"]].
1014 * LoRaWAN Downlink.  Instruction for different platforms: See [[IoT LoRaWAN Server>>url:http://wiki.dragino.com/xwiki/bin/view/Main/]] section.
1015
1016 == 3.2 General Commands ==
1017
1018
1019 These commands are to configure:
1020
1021 * General system settings like: uplink interval.
1022 * LoRaWAN protocol & radio related command.
1023
1024 They are same for all Dragino Devices which support DLWS-005 LoRaWAN Stack. These commands can be found on the wiki:
1025
1026 [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/>>url:http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/]]
1027
1028
1029 == 3.3 Commands special design for PS-LB/LS ==
1030
1031
1032 These commands only valid for PS-LB/LS, as below:
1033
1034
1035 === 3.3.1 Set Transmit Interval Time ===
1036
1037
1038 Feature: Change LoRaWAN End Node Transmit Interval.
1039
1040 AT Command: AT+TDC
1041
1042 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
1043 |=(% style="width: 160px; background-color:#4F81BD;color:white" %)Command Example|=(% style="width: 160px; background-color:#4F81BD;color:white" %)Function|=(% style="width: 190px;background-color:#4F81BD;color:white" %)Response
1044 |(% style="background-color:#f2f2f2; width:157px" %)AT+TDC=?|(% style="background-color:#f2f2f2; width:166px" %)Show current transmit Interval|(% style="background-color:#f2f2f2" %)(((
1045 30000
1046 OK
1047 the interval is 30000ms = 30s
1048 )))
1049 |(% style="background-color:#f2f2f2; width:157px" %)AT+TDC=60000|(% style="background-color:#f2f2f2; width:166px" %)Set Transmit Interval|(% style="background-color:#f2f2f2" %)(((
1050 OK
1051 Set transmit interval to 60000ms = 60 seconds
1052 )))
1053
1054 Downlink Command: 0x01
1055
1056 Format: Command Code (0x01) followed by 3 bytes time value.
1057
1058 If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01.
1059
1060 * Example 1: Downlink Payload: 0100001E  ~/~/  Set Transmit Interval (TDC) = 30 seconds
1061 * Example 2: Downlink Payload: 0100003C  ~/~/  Set Transmit Interval (TDC) = 60 seconds
1062
1063 === 3.3.2 Set Interrupt Mode ===
1064
1065
1066 Feature, Set Interrupt mode for GPIO_EXIT.
1067
1068 AT Command: AT+INTMOD
1069
1070 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
1071 |=(% style="width: 154px;background-color:#4F81BD;color:white" %)Command Example|=(% style="width: 196px;background-color:#4F81BD;color:white" %)Function|=(% style="width: 160px;background-color:#4F81BD;color:white" %)Response
1072 |(% style="background-color:#f2f2f2; width:154px" %)AT+INTMOD=?|(% style="background-color:#f2f2f2; width:196px" %)Show current interrupt mode|(% style="background-color:#f2f2f2; width:157px" %)(((
1073 0
1074 OK
1075 the mode is 0 =Disable Interrupt
1076 )))
1077 |(% style="background-color:#f2f2f2; width:154px" %)AT+INTMOD=2|(% style="background-color:#f2f2f2; width:196px" %)(((
1078 Set Transmit Interval
1079 0. (Disable Interrupt),
1080 ~1. (Trigger by rising and falling edge)
1081 2. (Trigger by falling edge)
1082 3. (Trigger by rising edge)
1083 )))|(% style="background-color:#f2f2f2; width:157px" %)OK
1084
1085 Downlink Command: 0x06
1086
1087 Format: Command Code (0x06) followed by 3 bytes.
1088
1089 This means that the interrupt mode of the end node is set to 0x000003=3 (rising edge trigger), and the type code is 06.
1090
1091 * Example 1: Downlink Payload: 06000000  ~/~/  Turn off interrupt mode
1092 * Example 2: Downlink Payload: 06000003  ~/~/  Set the interrupt mode to rising edge trigger
1093
1094 === 3.3.3 Set the output time ===
1095
1096
1097 Feature, Control the output 3V3 , 5V or 12V.
1098
1099 AT Command: AT+3V3T
1100
1101 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:474px" %)
1102 |=(% style="width: 154px;background-color:#4F81BD;color:white" %)Command Example|=(% style="width: 201px;background-color:#4F81BD;color:white" %)Function|=(% style="width: 119px;background-color:#4F81BD;color:white" %)Response
1103 |(% style="background-color:#f2f2f2; width:154px" %)AT+3V3T=?|(% style="background-color:#f2f2f2; width:201px" %)Show 3V3 open time.|(% style="background-color:#f2f2f2; width:116px" %)(((
1104 0
1105 OK
1106 )))
1107 |(% style="background-color:#f2f2f2; width:154px" %)AT+3V3T=0|(% style="background-color:#f2f2f2; width:201px" %)Normally open 3V3 power supply.|(% style="background-color:#f2f2f2; width:116px" %)(((
1108 OK
1109 default setting
1110 )))
1111 |(% style="background-color:#f2f2f2; width:154px" %)AT+3V3T=1000|(% style="background-color:#f2f2f2; width:201px" %)Close after a delay of 1000 milliseconds.|(% style="background-color:#f2f2f2; width:116px" %)(((
1112 OK
1113 )))
1114 |(% style="background-color:#f2f2f2; width:154px" %)AT+3V3T=65535|(% style="background-color:#f2f2f2; width:201px" %)Normally closed 3V3 power supply.|(% style="background-color:#f2f2f2; width:116px" %)(((
1115 OK
1116 )))
1117
1118 AT Command: AT+5VT
1119
1120 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:470px" %)
1121 |=(% style="width: 155px;background-color:#4F81BD;color:white" %)Command Example|=(% style="width: 196px;background-color:#4F81BD;color:white" %)Function|=(% style="width: 119px;background-color:#4F81BD;color:white" %)Response
1122 |(% style="background-color:#f2f2f2; width:155px" %)AT+5VT=?|(% style="background-color:#f2f2f2; width:196px" %)Show 5V open time.|(% style="background-color:#f2f2f2; width:114px" %)(((
1123 0
1124 OK
1125 )))
1126 |(% style="background-color:#f2f2f2; width:155px" %)AT+5VT=0|(% style="background-color:#f2f2f2; width:196px" %)Normally closed 5V power supply.|(% style="background-color:#f2f2f2; width:114px" %)(((
1127 OK
1128 default setting
1129 )))
1130 |(% style="background-color:#f2f2f2; width:155px" %)AT+5VT=1000|(% style="background-color:#f2f2f2; width:196px" %)Close after a delay of 1000 milliseconds.|(% style="background-color:#f2f2f2; width:114px" %)(((
1131 OK
1132 )))
1133 |(% style="background-color:#f2f2f2; width:155px" %)AT+5VT=65535|(% style="background-color:#f2f2f2; width:196px" %)Normally open 5V power supply.|(% style="background-color:#f2f2f2; width:114px" %)(((
1134 OK
1135 )))
1136
1137 AT Command: AT+12VT
1138
1139 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:443px" %)
1140 |=(% style="width: 156px;background-color:#4F81BD;color:white" %)Command Example|=(% style="width: 199px;background-color:#4F81BD;color:white" %)Function|=(% style="width: 88px;background-color:#4F81BD;color:white" %)Response
1141 |(% style="background-color:#f2f2f2; width:156px" %)AT+12VT=?|(% style="background-color:#f2f2f2; width:199px" %)Show 12V open time.|(% style="background-color:#f2f2f2; width:83px" %)(((
1142 0
1143 OK
1144 )))
1145 |(% style="background-color:#f2f2f2; width:156px" %)AT+12VT=0|(% style="background-color:#f2f2f2; width:199px" %)Normally closed 12V power supply.|(% style="background-color:#f2f2f2; width:83px" %)OK
1146 |(% style="background-color:#f2f2f2; width:156px" %)AT+12VT=500|(% style="background-color:#f2f2f2; width:199px" %)Close after a delay of 500 milliseconds.|(% style="background-color:#f2f2f2; width:83px" %)(((
1147 OK
1148 )))
1149
1150 Downlink Command: 0x07
1151
1152 Format: Command Code (0x07) followed by 3 bytes.
1153
1154 The first byte is which power, the second and third bytes are the time to turn on.
1155
1156 * Example 1: Downlink Payload: 070101F4  ~-~-->  AT+3V3T=500
1157 * Example 2: Downlink Payload: 0701FFFF   ~-~-->  AT+3V3T=65535
1158 * Example 3: Downlink Payload: 070203E8  ~-~-->  AT+5VT=1000
1159 * Example 4: Downlink Payload: 07020000  ~-~-->  AT+5VT=0
1160 * Example 5: Downlink Payload: 070301F4  ~-~-->  AT+12VT=500
1161 * Example 6: Downlink Payload: 07030000  ~-~-->  AT+12VT=0
1162
1163 Note: Before v1.2, the maximum settable time of 3V3T, 5VT and 12VT is 65535 milliseconds. After v1.2, the maximum settable time of 3V3T, 5VT and 12VT is 180 seconds.
1164
1165 Therefore, the corresponding downlink command is increased by one byte to five bytes.
1166
1167 Example:
1168
1169 * 120s=120000ms(D) =0x01D4C0(H), Downlink Payload: 07 01 01 D4 C0  ~-~-->  AT+3V3T=120000
1170 * 100s=100000ms(D) =0x0186A0(H), Downlink Payload: 07 02 01 86 A0  ~-~-->  AT+5VT=100000
1171 * 80s=80000ms(D) =0x013880(H), Downlink Payload: 07 03 01 38 80  ~-~-->  AT+12VT=80000
1172
1173 === 3.3.4 Set the Probe Model ===
1174
1175
1176 Users need to configure this parameter according to the type of external probe. In this way, the server can decode according to this value, and convert the current value output by the sensor into water depth or pressure value.
1177
1178 AT Command: AT +PROBE
1179
1180 AT+PROBE=aabb
1181
1182 When aa=00, it is the water depth mode, and the current is converted into the water depth value; bb is the probe at a depth of several meters.
1183
1184 When aa=01, it is the pressure mode, which converts the current into a pressure value;
1185
1186 bb represents which type of pressure sensor it is.
1187
1188 (A->01,B->02,C->03,D->04,E->05,F->06,G->07,H->08,I->09,J->0A,K->0B,L->0C)
1189
1190 When aa=02, it is the Differential Pressure Sensor , which converts the current into a pressure value;
1191
1192 bb represents which type of pressure sensor it is.
1193
1194 (0~~100Pa->01,0~~200Pa->02,0~~300Pa->03,0~~1KPa->04,0~~2KPa->05,0~~3KPa->06,0~~4KPa->07,0~~5KPa->08,0~~10KPa->09,-100~~ 100Pa->0A,-200~~ 200Pa->0B,-1~~ 1KPa->0C)
1195
1196 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
1197 |(% style="background-color:#4f81bd; color:white; width:154px" %)Command Example|(% style="background-color:#4f81bd; color:white; width:269px" %)Function|(% style="background-color:#4f81bd; color:white" %)Response
1198 |(% style="background-color:#f2f2f2; width:154px" %)AT+PROBE=?|(% style="background-color:#f2f2f2; width:269px" %)Get or Set the probe model.|(% style="background-color:#f2f2f2" %)0
1199 OK
1200 |(% style="background-color:#f2f2f2; width:154px" %)AT+PROBE=0003|(% style="background-color:#f2f2f2; width:269px" %)Set water depth sensor mode, 3m type.|(% style="background-color:#f2f2f2" %)OK
1201 |(% style="background-color:#f2f2f2; width:154px" %)(((
1202 AT+PROBE=000A
1203 )))|(% style="background-color:#f2f2f2; width:269px" %)Set water depth sensor mode, 10m type.|(% style="background-color:#f2f2f2" %)OK
1204 |(% style="background-color:#f2f2f2; width:154px" %)AT+PROBE=0064|(% style="background-color:#f2f2f2; width:269px" %)Set water depth sensor mode, 100m type.|(% style="background-color:#f2f2f2" %)OK
1205 |(% style="background-color:#f2f2f2; width:154px" %)AT+PROBE=0101|(% style="background-color:#f2f2f2; width:269px" %)Set pressure transmitters mode, first type(A).|(% style="background-color:#f2f2f2" %)OK
1206 |(% style="background-color:#f2f2f2; width:154px" %)AT+PROBE=0000|(% style="background-color:#f2f2f2; width:269px" %)Initial state, no settings.|(% style="background-color:#f2f2f2" %)OK
1207
1208 Downlink Command: 0x08
1209
1210 Format: Command Code (0x08) followed by 2 bytes.
1211
1212 * Example 1: Downlink Payload: 080003  ~-~-->  AT+PROBE=0003
1213 * Example 2: Downlink Payload: 080101  ~-~-->  AT+PROBE=0101
1214
1215 === 3.3.5 Multiple collections are one uplink (Since firmware V1.1) ===
1216
1217
1218 Added AT+STDC command to collect the voltage of VDC_INPUT/IDC_INPUT multiple times and upload it at one time.
1219
1220 AT Command: AT +STDC
1221
1222 AT+STDC=aa,bb,bb
1223
1224 aa:
1225 0: means disable this function and use TDC to send packets.
1226 1: means that the function is enabled to send packets by collecting VDC data for multiple times.
1227 2: means that the function is enabled to send packets by collecting IDC data for multiple times.
1228 bb: Each collection interval (s), the value is 1~~65535
1229 cc: the number of collection times, the value is 1~~120
1230
1231 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
1232 |(% style="background-color:#4f81bd; color:white; width:160px" %)Command Example|(% style="background-color:#4f81bd; color:white; width:215px" %)Function|(% style="background-color:#4f81bd; color:white" %)Response
1233 |(% style="background-color:#f2f2f2; width:160px" %)AT+STDC=?|(% style="background-color:#f2f2f2; width:215px" %)Get the mode of multiple acquisitions and one uplink.|(% style="background-color:#f2f2f2" %)1,10,18
1234 OK
1235 |(% style="background-color:#f2f2f2; width:160px" %)AT+STDC=1,10,18|(% style="background-color:#f2f2f2; width:215px" %)Set the mode of multiple acquisitions and one uplink, collect once every 10 seconds, and report after 18 times.|(% style="background-color:#f2f2f2" %)(((
1236 Attention:Take effect after ATZ
1237 OK
1238 )))
1239 |(% style="background-color:#f2f2f2; width:160px" %)AT+STDC=0, 0,0|(% style="background-color:#f2f2f2; width:215px" %)(((
1240
1241
1242 Use the TDC interval to send packets.(default)
1243
1244
1245 )))|(% style="background-color:#f2f2f2" %)(((
1246 Attention:Take effect after ATZ
1247 OK
1248 )))
1249
1250 Downlink Command: 0xAE
1251
1252 Format: Command Code (0xAE) followed by 4 bytes.
1253
1254 * Example 1: Downlink Payload: AE 01 02 58 12 ~-~-->  AT+STDC=1,600,18
1255
1256 = 4. Battery & Power Consumption =
1257
1258
1259 PS-LB use ER26500 + SPC1520 battery pack and PS-LS use 3000mAh Recharable Battery with Solar Panel. See below link for detail information about the battery info and how to replace.
1260
1261 [[Battery Info & Power Consumption Analyze>>url:http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] .
1262
1263
1264 = 5. OTA firmware update =
1265
1266
1267 Please see this link for how to do OTA firmware update: [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/Firmware%20OTA%20Update%20for%20Sensors/>>url:http://wiki.dragino.com/xwiki/bin/view/Main/Firmware%20OTA%20Update%20for%20Sensors/]]
1268
1269
1270 = 6. FAQ =
1271
1272 == 6.1 How to use AT Command via UART to access device? ==
1273
1274
1275 See: [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H1.LoRaSTv4baseHardware>>url:http://wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H1.LoRaSTv4baseHardware]]
1276
1277
1278 == 6.2 How to update firmware via UART port? ==
1279
1280
1281 See: [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H1.LoRaSTv4baseHardware>>url:http://wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H1.LoRaSTv4baseHardware]]
1282
1283
1284 == 6.3 How to change the LoRa Frequency Bands/Region? ==
1285
1286
1287 You can follow the instructions for [[how to upgrade image>>doc:Main.Firmware Upgrade Instruction for STM32 base products.WebHome]].
1288 When downloading the images, choose the required image file for download. ​
1289
1290
1291 == 6.4 How to measure the depth of other liquids other than water? ==
1292
1293
1294 Test the current values at the depth of different liquids and convert them to a linear scale.
1295 Replace its ratio with the ratio of water to current in the decoder.
1296
1297 Example:
1298
1299 Measure the corresponding current of the sensor when the liquid depth is 2.04m and 0.51m.
1300
1301 Calculate scale factor:
1302 Use these two data to calculate the current and depth scaling factors:(7.888-5.035)/(2.04-0.51)=1.86470588235294
1303
1304 Calculation formula:
1305
1306 Use the calibration formula:(Current current - Minimum calibration current)/Scale factor + Minimum actual calibration height
1307
1308 Actual calculations:
1309
1310 Use this formula to calculate the value corresponding to the current at a depth of 1.5 meters: (6.918-5.035)/1.86470588235294+0.51=1.519810726
1311
1312 Error:
1313
1314 0.009810726
1315
1316
1317 [[image:image-20240329175044-1.png]]
1318
1319
1320 = 7. Troubleshooting =
1321
1322 == 7.1 Water Depth Always shows 0 in payload ==
1323
1324
1325 If your device's IDC_intput_mA is normal, but your reading always shows 0, please refer to the following points:
1326
1327 ~1. Please set it to mod1
1328
1329 2. Please set the command [[AT+PROBE>>http://wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/PS-LB%20--%20LoRaWAN%20Pressure%20Sensor/#H3.3.4SettheProbeModel]] according to the model of your sensor
1330
1331 3. Check the connection status of the sensor
1332
1333
1334 = 8. Order Info =
1335
1336 == 8.1 Thread Installation Type & Immersion Type Pressure Sensor ==
1337
1338
1339 Part Number: (% style="color:blue" %)**PS-NB/NS-Txx-YY  or  PS-NB/NS-Ixx-YY**
1340
1341 (% style="color:blue" %)**XX:**(%%)** Pressure Range and Thread Type **
1342
1343 (% style="color:blue" %)**YY:**(%%)** The default frequency band**
1344
1345 * YY: Frequency Bands, options: EU433,CN470,EU868,IN865,KR920,AS923,AU915,US915
1346
1347 [[image:image-20241021093209-1.png]]
1348
1349
1350 == 8.2 Wireless Differential Air Pressure Sensor ==
1351
1352
1353 Part Number: (% style="color:blue" %)**PS-LB-Dxx-YY  or  PS-LS-Dxx-YY **
1354
1355 (% style="color:blue" %)**XX:**(%%)** Differential Pressure Range**
1356
1357 (% style="color:blue" %)**YY:**(%%)** The default frequency band**
1358
1359 * YY: Frequency Bands, options: EU433,CN470,EU868,IN865,KR920,AS923,AU915,US915
1360
1361 [[image:image-20250401174215-1.png||height="486" width="656"]]
1362
1363
1364 = 9. ​Packing Info =
1365
1366
1367 Package Includes:
1368
1369 * PS-LB/LS-Txx/Ixx, PS-LB/LS-Dxx   LoRaWAN Pressure Sensor
1370
1371 Dimension and weight:
1372
1373 * Device Size: cm
1374 * Device Weight: g
1375 * Package Size / pcs : cm
1376 * Weight / pcs : g
1377
1378 = 10. Support =
1379
1380
1381 * 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.
1382
1383 * Provide as much information as possible regarding your enquiry (product models, accurately describe your problem and steps to replicate it etc) and send a mail to [[Support@dragino.cc>>mailto:Support@dragino.cc]].