Version 108.3 by Xiaoling on 2025/04/25 14:07

Show last authors
1 (% style="text-align:center" %)
2 [[image:1654592399090-860.png||height="521" width="483"]]
3
4
5
6
7
8
9
10
11
12 **Table of Contents:**
13
14 {{toc/}}
15
16
17
18
19
20
21 = 1. Introduction =
22
23 == 1.1 ​What is LoRaWAN Soil pH Sensor ==
24
25
26 (((
27 The Dragino LSPH01 is a (% style="color:blue" %)**LoRaWAN Soil pH Sensor**(%%) for IoT of Agriculture. It is designed to measure the (% style="color:blue" %)**soil PH and soil temperature**(%%), so to send to the platform to analyze the soil acid or alkali level. The probe is IP68 waterproof.
28 )))
29
30 (((
31 LSPH01 probe is made by Solid AgCl reference electrode and Pure metal pH sensitive electrode. It can detect (% style="color:blue" %)**soil's pH **(%%)with high accuracy and stable value. The LSPH01 probe can be buried into soil for long time use.
32 )))
33
34 (((
35 The LoRa wireless technology used in LSPH01 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.
36 )))
37
38 (((
39 LSPH01 is powered by (% style="color:blue" %)**8500mAh Li-SOCI2 battery**(%%), it is designed for long term use up to 5 years.
40 )))
41
42 (((
43 Each LSPH01 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.
44 )))
45
46
47 [[image:1654592435432-887.png]]
48
49
50 == ​1.2 Features ==
51
52
53 * LoRaWAN 1.0.3 Class A
54 * Ultra-low power consumption
55 * Monitor soil pH with temperature compensation.
56 * Monitor soil temperature
57 * Monitor Battery Level
58 * Support pH calibration by end user
59 * Bands: CN470/EU433/KR920/US915/EU868/AS923/AU915/IN865
60 * AT Commands to change parameters
61 * Uplink on periodically
62 * Downlink to change configure
63 * IP66 Waterproof Enclosure
64 * IP68 rate for the Sensor Probe
65 * 8500mAh Battery for long term use
66
67 == 1.3 Probe Specification ==
68
69
70 (% style="color:#4f81bd" %)**Soil pH:**
71
72 * Range: 3 ~~ 10 pH
73 * Resolution: 0.01 pH
74 * Accuracy: ±2% under (0~~50 ℃, Accuracy will poor under 0 due to frozen)
75 * Temperature Compensation Range: 0 ~~ 50℃
76 * IP68 Protection
77 * Length: 3.5 meters
78
79 (% style="color:#4f81bd" %)**Soil Temperature:**
80
81 * Range -40℃~85℃
82 * Resolution: 0.1℃
83 * Accuracy: <±0.5℃(-10℃~40℃),<±0.8℃ (others)
84 * IP68 Protection
85 * Length: 3.5 meters
86
87 == 1.4 ​Applications ==
88
89
90 * Smart Agriculture
91
92 == 1.5 Pin mapping and power on ==
93
94
95 [[image:1654592472094-134.png]]
96
97
98 = 2. Configure LSPH01 to connect to LoRaWAN network =
99
100 == 2.1 How it works ==
101
102
103 (((
104 The LSPH01 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 power on the LSPH01. It will automatically join the network via OTAA and start to send the sensor value. The default uplink interval is 20 minutes.
105 )))
106
107 (((
108 In case you can't set the OTAA keys in the LoRaWAN OTAA server, and you have to use the keys from the server, you can [[use AT Commands >>||anchor="H5.UseATCommand"]]to set the keys in the LSPH01.
109 )))
110
111
112 == 2.2 ​Quick guide to connect to LoRaWAN server (OTAA) ==
113
114
115 (((
116 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 [[LG308>>url:http://www.dragino.com/products/lora/item/140-lg308.html]] as a LoRaWAN gateway in this example.
117 )))
118
119 (((
120 [[image:1654592492399-921.png]]
121
122
123 )))
124
125 (((
126 The LG308 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.
127
128
129 )))
130
131 (((
132 (% style="color:blue" %)**Step 1**(%%): Create a device in TTN with the OTAA keys from LSPH01.
133 )))
134
135 (((
136 Each LSPH01 is shipped with a sticker with the default device EUI as below:
137 )))
138
139 [[image:image-20230426084737-1.png||height="207" width="446"]](% style="display:none" %)
140
141 (% style="display:none" %) (%%)
142
143 You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot:
144
145 **Create the application.**
146
147 [[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"]]
148
149 [[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"]]
150
151
152 **Add devices to the created Application.**
153
154 [[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"]]
155
156 [[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"]]
157
158
159 **Enter end device specifics manually.**
160
161 [[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"]]
162
163
164 **Add DevEUI and AppKey. Customize a platform ID for the device.**
165
166 [[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"]]
167
168
169 (% style="color:blue" %)**Step 2**(%%):** Add decoder.**
170
171 In TTN, user can add a custom payload so it shows friendly reading.
172
173 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/]]
174
175 Below is TTN screen shot:
176
177 [[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"]]
178
179 [[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"]]
180
181
182 (% style="color:blue" %)**Step 3**(%%): Power on LSPH01
183
184 Put a Jumper on JP2 to power on the device. ( The Switch must be in FLASH position).
185
186 [[image:image-20220607170442-2.png]]
187
188 The LSPH01 will auto join to the TTN network. After join success, it will start to upload messages to TTN and you can see the messages in the panel.
189
190 (((
191
192 )))
193
194 [[image:1654592697690-910.png]]
195
196
197 == 2.3 ​Uplink Payload ==
198
199
200 (((
201 LSPH01 will uplink payload via LoRaWAN with below payload format: 
202 )))
203
204 (((
205 Uplink payload includes in total 11 bytes.
206 )))
207
208 (((
209 Normal uplink payload:
210 )))
211
212 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:470px" %)
213 |=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
214 **Size(bytes)**
215 )))|=(% style="width: 30px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 70px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 50px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 60px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 70px;background-color:#4F81BD;color:white" %)**1**|=(% style="width: 50px;background-color:#4F81BD;color:white" %)**1**|=(% style="width: 80px;background-color:#4F81BD;color:white" %)**1**
216 |(% style="width:62.5px" %)Value|(% style="width:62.5px" %)[[BAT>>||anchor="H2.3.1BatteryInfo"]]|(% style="width:62.5px" %)(((
217 [[Temperature (Optional)>>||anchor="H2.3.2DS18B20Temperaturesensor"]]
218 )))|[[Soil pH>>||anchor="H2.3.3SoilpH"]]|[[Soil Temperature>>||anchor="H2.3.4SoilTemperature"]]|(((
219 [[Digital Interrupt (Optional)>>||anchor="H2.3.5InterruptPin"]]
220 )))|Reserve|(((
221 [[Message Type>>||anchor="H2.3.6MessageType"]]
222 )))
223
224 [[image:1654592721645-318.png]]
225
226
227 === 2.3.1 Battery Info ===
228
229
230 Check the battery voltage for LSPH01.
231
232 Ex1: 0x0B45 = 2885mV
233
234 Ex2: 0x0B49 = 2889mV
235
236
237 === 2.3.2 DS18B20 Temperature sensor ===
238
239
240 This is optional, user can connect external DS18B20 sensor to the +3.3v, 1-wire and GND pin . and this field will report temperature.
241
242
243 **Example**:
244
245 If payload is: 0105H:  (0105 & FC00 == 0), temp = 0105H /10 = 26.1 degree
246
247 If payload is: FF3FH :  (FF3F & FC00 == 1) , temp = (FF3FH - 65536)/10 = -19.3 degrees.
248
249
250 === 2.3.3 Soil pH ===
251
252
253 Range: 0 ~~ 14 pH
254
255 **Example:**
256
257 (% style="color:#037691" %)** 0x02B7(H) = 695(D) = 6.95pH**
258
259
260 === 2.3.4 Soil Temperature ===
261
262
263 Get Soil Temperature 
264
265
266 **Example**:
267
268 If payload is: **0105H**:  (0105 & FC00 == 0), temp = 0105H /10 = 26.1 degree
269
270 If payload is: **FF3FH** :  (FF3F & FC00 == 1) , temp = (FF3FH - 65536)/10 = -19.3 degrees.
271
272
273 === 2.3.5 Interrupt Pin ===
274
275
276 This data field shows if this packet is generated by interrupt or not. [[Click here>>||anchor="H3.2SetInterruptMode"]] for the hardware and software set up.
277
278
279 **Example:**
280
281 0x00: Normal uplink packet.
282
283 0x01: Interrupt Uplink Packet.
284
285
286 === 2.3.6 Message Type ===
287
288
289 (((
290 For a normal uplink payload, the message type is always 0x01.
291 )))
292
293 (((
294 Valid Message Type:
295 )))
296
297
298 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:496px" %)
299 |=(% style="width: 160px;background-color:#4F81BD;color:white" %)**Message Type Code**|=(% style="width: 163px;background-color:#4F81BD;color:white" %)**Description**|=(% style="width: 173px;background-color:#4F81BD;color:white" %)**Payload**
300 |(% style="width:160px" %)0x01|(% style="width:163px" %)Normal Uplink|(% style="width:173px" %)[[Normal Uplink Payload>>||anchor="H2.3200BUplinkPayload"]]
301 |(% style="width:160px" %)0x02|(% style="width:163px" %)Reply configures info|(% style="width:173px" %)[[Configure Info Payload>>||anchor="H3.4GetFirmwareVersionInfo"]]
302 |(% style="width:160px" %)0x03|(% style="width:163px" %)Reply Calibration Info|(% style="width:173px" %)[[Calibration Payload>>||anchor="H2.7Calibration"]]
303
304 === 2.3.7 Decode payload in The Things Network ===
305
306
307 While using TTN network, you can add the payload format to decode the payload.
308
309
310 [[image:1654592762713-715.png]]
311
312 (((
313 The payload decoder function for TTN is here:
314 )))
315
316 (((
317 LSPH01 TTN Payload Decoder:  [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>https://github.com/dragino/dragino-end-node-decoder]]
318 )))
319
320
321 == 2.4 Uplink Interval ==
322
323
324 The LSPH01 by default uplink the sensor data every 20 minutes. User can change this interval by AT Command or LoRaWAN Downlink Command. See this link: [[Change Uplink Interval>>doc:Main.End Device AT Commands and Downlink Command.WebHome||anchor="H4.1ChangeUplinkInterval"]]
325
326
327 == 2.5 ​Show Data in DataCake IoT Server ==
328
329
330 (((
331 [[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:
332 )))
333
334 (((
335
336 )))
337
338 (((
339 (% style="color:blue" %)**Step 1**(%%)**: Be sure that your device is programmed and properly connected to the network at this time.**
340 )))
341
342 (((
343 (% style="color:blue" %)**Step 2**(%%)**: To configure the Application to forward data to DATACAKE you will need to add integration. To add the DATACAKE integration, perform the following steps:**
344 )))
345
346
347 [[image:1654592790040-760.png]]
348
349
350 [[image:1654592800389-571.png]]
351
352
353 (% style="color:blue" %)**Step 3**(%%)**: Create an account or log in Datacake.**
354
355 (% style="color:blue" %)**Step 4**(%%)**: Create LSPH01 product.**
356
357 [[image:1654592819047-535.png]]
358
359
360 [[image:1654592833877-762.png]]
361
362
363 [[image:1654592856403-259.png]]
364
365
366 (((
367 (% style="color:blue" %)**Step 5**(%%)**: add payload decode**
368 )))
369
370 (((
371 Download Datacake decoder from: [[https:~~/~~/www.dropbox.com/sh/pj7cgmgqg3gx3ta/AABYFbg1DVOOR9Hmr1mLSBkga?dl=0>>url:https://www.dropbox.com/sh/pj7cgmgqg3gx3ta/AABYFbg1DVOOR9Hmr1mLSBkga?dl=0]]
372 )))
373
374
375 [[image:1654592878525-845.png]]
376
377 [[image:1654592892967-474.png]]
378
379
380 [[image:1654592905354-123.png]]
381
382
383 After added, the sensor data arrive TTN, it will also arrive and show in Mydevices.
384
385
386 [[image:1654592917530-261.png]]
387
388
389 == 2.6 Installation and Maintain ==
390
391 === 2.6.1 Before measurement ===
392
393
394 (((
395 If the LSPH01 has more than 7 days not use or just clean the pH probe. User should put the probe inside pure water for more than 24 hours for activation. If no put in water, user need to put inside soil for more than 24 hours to ensure the measurement accuracy. 
396 )))
397
398
399 === 2.6.2 Measurement ===
400
401
402 (((
403 (% style="color:blue" %)**Measurement the soil surface:**
404 )))
405
406 (((
407 [[image:1654592946732-634.png]]
408 )))
409
410 (((
411 Choose the proper measuring position. Split the surface soil according to the measured deep.
412 )))
413
414 (((
415 Put pure water, or rainwater to make the soil of measurement point to moist mud. Remove rocks or hard things.
416 )))
417
418 (((
419 Slowly insert the probe to the measure point. Don't use large force which will break the probe. Make sure not shake when inserting.
420 )))
421
422 (((
423 Put soil over the probe after insert. And start to measure.
424 )))
425
426 (((
427
428 )))
429
430 (((
431 (% style="color:blue" %)**Measurement inside soil:**
432 )))
433
434 (((
435 Dig a hole with diameter > 20CM.
436 )))
437
438 (((
439 Insert the probe inside, method like measure the surface.
440 )))
441
442
443 === 2.6.3 Maintain Probe ===
444
445
446 (((
447 ~1. pH probe electrode is fragile and no strong. User must avoid strong force or hitting it.
448 )))
449
450 (((
451 2. After long time use (3~~ 6  months). The probe electrode needs to be clean; user can use high grade sandpaper to polish it or put in 5% hydrochloric acid for several minutes. After the metal probe looks like new, user can use pure water to wash it.
452 )))
453
454 (((
455 3. Probe reference electrode is also no strong, need to avoid strong force or hitting.
456 )))
457
458 (((
459 4. User should keep reference electrode wet while not use.
460 )))
461
462 (((
463 5. Avoid the probes to touch oily matter. Which will cause issue in accuracy.
464 )))
465
466 (((
467 6. The probe is IP68 can be put in water.
468
469
470 )))
471
472 == 2.7 Calibration ==
473
474
475 (% style="color:blue" %)**Step1 :**(%%)** Clean probe**
476
477 user can use high grade sandpaper to polish it or put in 5% hydrochloric acid for several minutes. After the metal probe looks new, users can clean it to remove hydrochloric acid or other liquids from the surface.
478
479 (% style="color:blue" %)**Step2 :**(%%)** Immerse the sensor in ph buffer solution to make the sensor values stable**
480
481 (((
482 User can do calibration for the probe. It is limited to use below pH buffer solution to calibrate: 4.00, 6.86, 9.18. When calibration, user need to clean the electrode and put the probe in the pH buffer solution to wait the value stable ( a new clean electrode might need max 24 hours to be stable).
483
484 (% style="color:red" %)**Note: Only one ph buffer with one of the ph values needs to be calibrated during calibration. Wait for the sensor measurement value to be stable, it does not need to be the same as the ph marked by the ph buffer**
485
486
487 (% style="color:blue" %)**Step3 :**(%%)** The numerically stable sensors were calibrated using commands**
488 )))
489
490 (((
491 User can use below command to calibrate.
492
493 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
494 |(% style="background-color:#4f81bd; color:white; width:120px" %)**pH buffer solution**|(% style="background-color:#4f81bd; color:white; width:150px" %)**AT Command to calibrate**|(% style="background-color:#4f81bd; color:white; width:145px" %)**Downlink Command**|(% style="background-color:#4f81bd; color:white; width:95px" %)**Read Cal Value**
495 |(% style="width:149px" %)4.00|(% style="width:197px" %)AT+PHCAL=4|(% style="width:206px" %)(((
496 0x13 04
497 Reply with Calibrate payload
498 )))|(% style="width:136px" %)(((
499 AT+PHCAL=?
500 Example 41,61,91
501 )))
502 |(% style="width:149px" %)6.86|(% style="width:197px" %)AT+PHCAL=6|(% style="width:206px" %)(((
503 0x13 06
504 Reply with Calibrate payload
505 )))|(% style="width:136px" %)AT+PHCAL=?
506 |(% style="width:149px" %)9.18|(% style="width:197px" %)AT+PHCAL=9|(% style="width:206px" %)(((
507 0x13 09
508 Reply with Calibrate payload
509 )))|(% style="width:136px" %)AT+PHCAL=?
510 |(% style="width:149px" %)Factory Default|(% style="width:197px" %)AT+PHCAL=15|(% style="width:206px" %)(((
511 0x13 15
512 Reply with Calibrate payload
513 )))|(% style="width:136px" %)(((
514 AT+PHCAL=?
515 Example 151
516 )))
517 )))
518
519 To use the AT COMMAND, refer to this link:
520
521 * AT Command via Bluetooth Connection (**Recommended**): [[BLE Configure Instruction>>url:http://wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/]].
522
523 * AT Command via UART Connection : See [[UART Connection>>url:http://wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H2.3UARTConnectionforSN50v3basemotherboard]].
524
525 To use Downlink, take TTN as an example, please refer to this link:
526
527 * LoRaWAN Downlink.  Instruction for different platforms: See [[IoT LoRaWAN Server>>url:http://wiki.dragino.com/xwiki/bin/view/Main/]] section.
528
529 When the command is successfully used, the node sends a uplink.
530 This is the payload for uplink
531
532 (% style="color:#037691" %)**Calibration Payload**
533
534 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:500px" %)
535 |=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
536 **Size(bytes)**
537 )))|=(% style="width: 100px;background-color:#4F81BD;color:white" %)**1**|=(% style="width: 100px;background-color:#4F81BD;color:white" %)**1**|=(% style="width: 100px;background-color:#4F81BD;color:white" %)**1**|=(% style="width: 50px;background-color:#4F81BD;color:white" %)**7**|=(% style="width: 90px;background-color:#4F81BD;color:white" %)**1**
538 |Value|(((
539 PH4 Calibrate value
540 )))|PH6.86 Calibrate value|(((
541 PH9.18 Calibrate value
542 )))|Reserve|(((
543 [[Message Type>>||anchor="H2.3.6MessageType"]]
544 Always 0x03
545 )))
546
547 User can also send 0x14 downlink command to poll the current calibration payload.
548
549 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:480px" %)
550 |=(% style="width: 183px; background-color:#4F81BD;color:white" %)**Downlink Control Type**|=(% style="width: 55px; background-color:#4F81BD;color:white" %)FPort|=(% style="width: 93px; background-color:#4F81BD;color:white" %)**Type Code**|=(% style="width: 149px; background-color:#4F81BD;color:white" %)**Downlink payload size(bytes)**
551 |(% style="width:183px" %)Get Calibration Version Info|(% style="width:55px" %)Any|(% style="width:93px" %)14|(% style="width:146px" %)2
552
553 * Reply to the confirmation package: 14 01
554
555 * Reply to non-confirmed packet: 14 00
556
557 (% style="color:blue" %)**Step4 : **(%%)**After the calibration is completed, its measurement results in this ph buffer solution should be consistent with the numerical value of the command used in the calibration.**
558
559 Examples:
560 After using the command AT+PH=9 in 9.18ph buffer
561 The readout returned by the sensor in 9.18ph buffer should be pH=9
562
563
564 == 2.8 Frequency Plans ==
565
566
567 (((
568 The LSPH01 uses OTAA mode and below frequency plans by default. If user want to use it with different frequency plan, please refer the AT command sets.
569 )))
570
571
572 === 2.8.1 EU863-870 (EU868) ===
573
574
575 (((
576 (% style="color:blue" %)**Uplink:**
577 )))
578
579 (((
580 868.1 - SF7BW125 to SF12BW125
581 )))
582
583 (((
584 868.3 - SF7BW125 to SF12BW125 and SF7BW250
585 )))
586
587 (((
588 868.5 - SF7BW125 to SF12BW125
589 )))
590
591 (((
592 867.1 - SF7BW125 to SF12BW125
593 )))
594
595 (((
596 867.3 - SF7BW125 to SF12BW125
597 )))
598
599 (((
600 867.5 - SF7BW125 to SF12BW125
601 )))
602
603 (((
604 867.7 - SF7BW125 to SF12BW125
605 )))
606
607 (((
608 867.9 - SF7BW125 to SF12BW125
609 )))
610
611 (((
612 868.8 - FSK
613 )))
614
615 (((
616
617 )))
618
619 (((
620 (% style="color:blue" %)**Downlink:**
621 )))
622
623 (((
624 Uplink channels 1-9 (RX1)
625 )))
626
627 (((
628 869.525 - SF9BW125 (RX2 downlink only)
629 )))
630
631
632 === 2.8.2 US902-928(US915) ===
633
634
635 (((
636 Used in USA, Canada and South America. Frequency band as per definition in LoRaWAN 1.0.3 Regional document.
637 )))
638
639 (((
640 To make sure the end node supports all sub band by default. In the OTAA Join process, the end node will use frequency 1 from sub-band1, then frequency 1 from sub-band2, then frequency 1 from sub-band3, etc to process the OTAA join.
641 )))
642
643 (((
644 After Join success, the end node will switch to the correct sub band by:
645 )))
646
647 * Check what sub-band the LoRaWAN server ask from the OTAA Join Accept message and switch to that sub-band
648
649 * Use the Join successful sub-band if the server doesn't include sub-band info in the OTAA Join Accept message ( TTN v2 doesn't include)
650
651 === 2.8.3 CN470-510 (CN470) ===
652
653
654 (((
655 Used in China, Default use CHE=1
656 )))
657
658 (((
659 (% style="color:blue" %)**Uplink:**
660 )))
661
662 (((
663 486.3 - SF7BW125 to SF12BW125
664 )))
665
666 (((
667 486.5 - SF7BW125 to SF12BW125
668 )))
669
670 (((
671 486.7 - SF7BW125 to SF12BW125
672 )))
673
674 (((
675 486.9 - SF7BW125 to SF12BW125
676 )))
677
678 (((
679 487.1 - SF7BW125 to SF12BW125
680 )))
681
682 (((
683 487.3 - SF7BW125 to SF12BW125
684 )))
685
686 (((
687 487.5 - SF7BW125 to SF12BW125
688 )))
689
690 (((
691 487.7 - SF7BW125 to SF12BW125
692 )))
693
694 (((
695
696 )))
697
698 (((
699 (% style="color:blue" %)**Downlink:**
700 )))
701
702 (((
703 506.7 - SF7BW125 to SF12BW125
704 )))
705
706 (((
707 506.9 - SF7BW125 to SF12BW125
708 )))
709
710 (((
711 507.1 - SF7BW125 to SF12BW125
712 )))
713
714 (((
715 507.3 - SF7BW125 to SF12BW125
716 )))
717
718 (((
719 507.5 - SF7BW125 to SF12BW125
720 )))
721
722 (((
723 507.7 - SF7BW125 to SF12BW125
724 )))
725
726 (((
727 507.9 - SF7BW125 to SF12BW125
728 )))
729
730 (((
731 508.1 - SF7BW125 to SF12BW125
732 )))
733
734 (((
735 505.3 - SF12BW125 (RX2 downlink only)
736 )))
737
738
739 === 2.8.4 AU915-928(AU915) ===
740
741
742 (((
743 Frequency band as per definition in LoRaWAN 1.0.3 Regional document.
744 )))
745
746 (((
747 To make sure the end node supports all sub band by default. In the OTAA Join process, the end node will use frequency 1 from sub-band1, then frequency 1 from sub-band2, then frequency 1 from sub-band3, etc to process the OTAA join.
748 )))
749
750 (((
751
752 )))
753
754 (((
755 After Join success, the end node will switch to the correct sub band by:
756 )))
757
758 * Check what sub-band the LoRaWAN server ask from the OTAA Join Accept message and switch to that sub-band
759
760 * Use the Join successful sub-band if the server doesn't include sub-band info in the OTAA Join Accept message ( TTN v2 doesn't include)
761
762 === 2.8.5 AS920-923 & AS923-925 (AS923) ===
763
764
765 (((
766 (% style="color:blue" %)**Default Uplink channel:**
767 )))
768
769 (((
770 923.2 - SF7BW125 to SF10BW125
771 )))
772
773 (((
774 923.4 - SF7BW125 to SF10BW125
775 )))
776
777 (((
778
779 )))
780
781 (((
782 (% style="color:blue" %)**Additional Uplink Channel**:
783 )))
784
785 (((
786 (OTAA mode, channel added by JoinAccept message)
787 )))
788
789 (((
790
791 )))
792
793 (((
794 (% style="color:blue" %)**AS920~~AS923 for Japan, Malaysia, Singapore**:
795 )))
796
797 (((
798 922.2 - SF7BW125 to SF10BW125
799 )))
800
801 (((
802 922.4 - SF7BW125 to SF10BW125
803 )))
804
805 (((
806 922.6 - SF7BW125 to SF10BW125
807 )))
808
809 (((
810 922.8 - SF7BW125 to SF10BW125
811 )))
812
813 (((
814 923.0 - SF7BW125 to SF10BW125
815 )))
816
817 (((
818 922.0 - SF7BW125 to SF10BW125
819 )))
820
821 (((
822
823 )))
824
825 (((
826 (% style="color:blue" %)**AS923 ~~ AS925 for Brunei, Cambodia, Hong Kong, Indonesia, Laos, Taiwan, Thailand, Vietnam**:
827 )))
828
829 (((
830 923.6 - SF7BW125 to SF10BW125
831 )))
832
833 (((
834 923.8 - SF7BW125 to SF10BW125
835 )))
836
837 (((
838 924.0 - SF7BW125 to SF10BW125
839 )))
840
841 (((
842 924.2 - SF7BW125 to SF10BW125
843 )))
844
845 (((
846 924.4 - SF7BW125 to SF10BW125
847 )))
848
849 (((
850 924.6 - SF7BW125 to SF10BW125
851 )))
852
853 (((
854
855 )))
856
857 (((
858 (% style="color:blue" %)**Downlink:**
859 )))
860
861 (((
862 Uplink channels 1-8 (RX1)
863 )))
864
865 (((
866 923.2 - SF10BW125 (RX2)
867 )))
868
869
870 === 2.8.6 KR920-923 (KR920) ===
871
872
873 (((
874 (% style="color:blue" %)**Default channel:**
875 )))
876
877 (((
878 922.1 - SF7BW125 to SF12BW125
879 )))
880
881 (((
882 922.3 - SF7BW125 to SF12BW125
883 )))
884
885 (((
886 922.5 - SF7BW125 to SF12BW125
887 )))
888
889
890 (((
891 (% style="color:blue" %)**Uplink: (OTAA mode, channel added by JoinAccept message)**
892 )))
893
894 (((
895 922.1 - SF7BW125 to SF12BW125
896 )))
897
898 (((
899 922.3 - SF7BW125 to SF12BW125
900 )))
901
902 (((
903 922.5 - SF7BW125 to SF12BW125
904 )))
905
906 (((
907 922.7 - SF7BW125 to SF12BW125
908 )))
909
910 (((
911 922.9 - SF7BW125 to SF12BW125
912 )))
913
914 (((
915 923.1 - SF7BW125 to SF12BW125
916 )))
917
918 (((
919 923.3 - SF7BW125 to SF12BW125
920 )))
921
922
923 (((
924 (% style="color:blue" %)**Downlink:**
925 )))
926
927 (((
928 Uplink channels 1-7(RX1)
929 )))
930
931 (((
932 921.9 - SF12BW125 (RX2 downlink only; SF12BW125 might be changed to SF9BW125)
933 )))
934
935
936 === 2.8.7 IN865-867 (IN865) ===
937
938
939 (((
940 (% style="color:blue" %)**Uplink:**
941 )))
942
943 (((
944 865.0625 - SF7BW125 to SF12BW125
945 )))
946
947 (((
948 865.4025 - SF7BW125 to SF12BW125
949 )))
950
951 (((
952 865.9850 - SF7BW125 to SF12BW125
953 )))
954
955
956 (((
957 (% style="color:blue" %)**Downlink:**
958 )))
959
960 (((
961 Uplink channels 1-3 (RX1)
962 )))
963
964 (((
965 866.550 - SF10BW125 (RX2)
966 )))
967
968
969 == 2.9 LED Indicator ==
970
971
972 The LSPH01 has an internal LED which is to show the status of different state.
973
974 * The sensor is detected when the device is turned on, and it will flash 4 times quickly when it is detected.
975
976 * Blink once when device transmit a packet.
977
978 == 2.10 ​Firmware Change Log ==
979
980
981 **Firmware download link: **[[https:~~/~~/www.dropbox.com/sh/xtm5tw37mewaw99/AAD0uy06odmreQQ7vMzZYVIGa?dl=0>>https://www.dropbox.com/sh/xtm5tw37mewaw99/AAD0uy06odmreQQ7vMzZYVIGa?dl=0]]
982
983 **Firmware Upgrade Method: **[[Firmware Upgrade Instruction>>path:/xwiki/bin/view/Main/Firmware%20Upgrade%20Instruction%20for%20STM32%20base%20products/]]
984
985
986 = 3. Configure LSPH01 via AT Command or LoRaWAN Downlink =
987
988
989 (((
990 Use can configure LSPH01 via AT Command or LoRaWAN Downlink.
991 )))
992
993 * (((
994 AT Command Connection: See [[FAQ>>||anchor="H6.FAQ"]].
995 )))
996 * (((
997 LoRaWAN Downlink instruction for different platforms: [[IoT LoRaWAN Server>>path:/xwiki/bin/view/Main/]]
998 )))
999
1000 (((
1001 There are two kinds of commands to configure LSPH01, they are:
1002 )))
1003
1004 * (((
1005 (% style="color:#4f81bd" %)** General Commands**.
1006 )))
1007
1008 (((
1009 These commands are to configure:
1010 )))
1011
1012 * (((
1013 General system settings like: uplink interval.
1014 )))
1015 * (((
1016 LoRaWAN protocol & radio related command.
1017 )))
1018
1019 (((
1020 They are same for all Dragino Device which support DLWS-005 LoRaWAN Stack. These commands can be found on the wiki: [[End Device AT Commands and Downlink Command>>path:/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/]]
1021 )))
1022
1023
1024 * (((
1025 (% style="color:#4f81bd" %)** Commands special design for LSPH01**
1026 )))
1027
1028 (((
1029 These commands only valid for LSPH01, as below:
1030 )))
1031
1032
1033 == 3.1 Set Transmit Interval Time ==
1034
1035
1036 Feature: Change LoRaWAN End Node Transmit Interval.
1037
1038 (% style="color:#037691" %)**AT Command: AT+TDC**
1039
1040 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
1041 |=(% style="width: 156px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 137px;background-color:#4F81BD;color:white" %)**Function**|=(% style="background-color:#4F81BD;color:white" %)**Response**
1042 |(% style="width:156px" %)AT+TDC=?|(% style="width:137px" %)Show current transmit Interval|(((
1043 30000
1044 OK
1045 the interval is 30000ms = 30s
1046 )))
1047 |(% style="width:156px" %)AT+TDC=60000|(% style="width:137px" %)Set Transmit Interval|(((
1048 OK
1049 Set transmit interval to 60000ms = 60 seconds​
1050 )))
1051
1052 (((
1053 (% style="color:#037691" %)**Downlink Command: 0x01**
1054 )))
1055
1056 (((
1057 Format: Command Code (0x01) followed by 3 bytes time value.
1058 )))
1059
1060 (((
1061 If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01.
1062 )))
1063
1064 * (((
1065 Example 1: Downlink Payload: 0100001E  ~/~/ Set Transmit Interval (TDC) = 30 seconds
1066 )))
1067 * (((
1068 Example 2: Downlink Payload: 0100003C  ~/~/ Set Transmit Interval (TDC) = 60 seconds
1069
1070
1071
1072 )))
1073
1074 == 3.2 Set Interrupt Mode ==
1075
1076
1077 Feature, Set Interrupt mode for GPIO_EXIT.
1078
1079 (% style="color:#037691" %)**AT Command: AT+INTMOD**
1080
1081 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
1082 |=(% style="width: 155px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 197px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 158px;background-color:#4F81BD;color:white" %)**Response**
1083 |(% style="width:154px" %)AT+INTMOD=?|(% style="width:196px" %)Show current interrupt mode|(% style="width:157px" %)(((
1084 0
1085 OK
1086 the mode is 0 =No interruption
1087 )))
1088 |(% style="width:154px" %)AT+INTMOD=2|(% style="width:196px" %)(((
1089 Set Transmit Interval
1090 0. (Disable Interrupt),
1091 ~1. (Trigger by rising and falling edge)
1092 2. (Trigger by falling edge)
1093 3. (Trigger by rising edge)
1094 )))|(% style="width:157px" %)OK
1095
1096 (((
1097 (% style="color:#037691" %)**Downlink Command: 0x06**
1098 )))
1099
1100 (((
1101 Format: Command Code (0x06) followed by 3 bytes.
1102 )))
1103
1104 (((
1105 This means that the interrupt mode of the end node is set to 0x000003=3 (rising edge trigger), and the type code is 06.
1106 )))
1107
1108 * (((
1109 Example 1: Downlink Payload: 06000000  ~/~/ Turn off interrupt mode
1110 )))
1111 * (((
1112 Example 2: Downlink Payload: 06000003  ~/~/  Set the interrupt mode to rising edge trigger
1113
1114
1115
1116 )))
1117
1118 == 3.3 Calibrate Sensor ==
1119
1120
1121 Detail See [[Calibration Guide>>||anchor="H2.7Calibration"]] for the user of 0x13 and 0x14 downlink commands
1122
1123
1124 == 3.4 Get Firmware Version Info ==
1125
1126
1127 Feature: use downlink to get firmware version.
1128
1129 (% style="color:#037691" %)**Downlink Command: 0x26**
1130
1131 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:500px" %)
1132 |(% style="background-color:#4f81bd; color:white; width:193px" %)**Downlink Control Type**|(% style="background-color:#4f81bd; color:white; width:57px" %)**FPort**|(% style="background-color:#4f81bd; color:white; width:91px" %)**Type Code**|(% style="background-color:#4f81bd; color:white; width:159px" %)**Downlink payload size(bytes)**
1133 |(% style="width:193px" %)Get Firmware Version Info|(% style="width:57px" %)Any|(% style="width:91px" %)26|(% style="width:149px" %)2
1134
1135 * Reply to the confirmation package: 26 01
1136
1137 * Reply to non-confirmed packet: 26 00
1138
1139 Device will send an uplink after got this downlink command. With below payload:
1140
1141 Configures info payload:
1142
1143 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
1144 |(% style="background-color:#4f81bd; color:white; width:50px" %)**Size(bytes)**|(% style="background-color:#4f81bd; color:white; width:70px" %)**1**|(% style="background-color:#4f81bd; color:white; width:70px" %)**1**|(% style="background-color:#4f81bd; color:white; width:50px" %)**1**|(% style="background-color:#4f81bd; color:white; width:70px" %)**1**|(% style="background-color:#4f81bd; color:white; width:60px" %)**1**|(% style="background-color:#4f81bd; color:white; width:50px" %)**5**|(% style="background-color:#4f81bd; color:white; width:90px" %)**1**
1145 |Value|Software Type|(((
1146 Frequency
1147 Band
1148 )))|Sub-band|(((
1149 Firmware
1150 Version
1151 )))|Sensor Type|Reserve|(((
1152 [[Message Type>>||anchor="H2.3.6MessageType"]]
1153 Always 0x02
1154 )))
1155
1156 (% style="color:#037691" %)**Software Type**(%%): Always 0x03 for LSPH01
1157
1158 (% style="color:#037691" %)**Frequency Band**:
1159
1160 *0x01: EU868
1161
1162 *0x02: US915
1163
1164 *0x03: IN865
1165
1166 *0x04: AU915
1167
1168 *0x05: KZ865
1169
1170 *0x06: RU864
1171
1172 *0x07: AS923
1173
1174 *0x08: AS923-1
1175
1176 *0x09: AS923-2
1177
1178 *0xa0: AS923-3
1179
1180
1181 (% style="color:#037691" %)**Sub-Band**(%%): value 0x00 ~~ 0x08
1182
1183 (% style="color:#037691" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version
1184
1185 (% style="color:#037691" %)**Sensor Type**:
1186
1187 0x01: LSE01
1188
1189 0x02: LDDS75
1190
1191 0x03: LDDS20
1192
1193 0x04: LLMS01
1194
1195 0x05: LSPH01
1196
1197 0x06: LSNPK01
1198
1199 0x07: LDDS12
1200
1201
1202 = 4. Battery & Power Consumption =
1203
1204
1205 LSPH01 uses ER26500 + SPC1520 battery pack. See below link for detail information about the battery info and how to replace.
1206
1207 [[**Battery Info & Power Consumption Analyze**>>url:http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] .
1208
1209
1210 = 5. Use AT Command =
1211
1212 == 5.1 Access AT Commands ==
1213
1214
1215 LSPH01 supports AT Command set in the stock firmware. You can use a USB to TTL adapter to connect to LSPH01 for using AT command, as below.
1216
1217
1218 [[image:1654593668970-604.png]]
1219
1220
1221 **Connection:**
1222
1223 (% style="background-color:yellow" %)** USB TTL GND <~-~-~-~-> GND**
1224
1225 (% style="background-color:yellow" %)** USB TTL TXD  <~-~-~-~-> UART_RXD**
1226
1227 (% style="background-color:yellow" %)** USB TTL RXD  <~-~-~-~-> UART_TXD**
1228
1229
1230 (((
1231 In the PC, you need to set the serial baud rate to (% style="color:green" %)**9600**(%%) to access the serial console for LSPH01. LSPH01 will output system info once power on as below:
1232 )))
1233
1234
1235 [[image:1654593712276-618.png]]
1236
1237 Valid AT Command please check [[Configure Device>>||anchor="H3.ConfigureLSPH01viaATCommandorLoRaWANDownlink"]].
1238
1239
1240 = 6. FAQ =
1241
1242 == 6.1 How to change the LoRa Frequency Bands/Region ==
1243
1244
1245 You can follow the instructions for [[how to upgrade image>>||anchor="H2.10200BFirmwareChangeLog"]].
1246 When downloading the images, choose the required image file for download. ​
1247
1248
1249 = 7. Trouble Shooting =
1250
1251 == 7.1 AT Commands input doesn't work ==
1252
1253
1254 In the case if user can see the console output but can't type input to the device. Please check if you already include the (% style="color:green" %)**ENTER**(%%) while sending out the command. Some serial tool doesn't send (% style="color:green" %)**ENTER**(%%) while press the send key, user need to add ENTER in their string.
1255
1256
1257 == 7.2 Possible reasons why the device is unresponsive: ==
1258
1259
1260 ​1. Check whether the battery voltage is lower than 2.8V
1261 2. Check whether the jumper of the device is correctly connected
1262
1263 [[image:image-20240330174400-2.png]]
1264 3. Check whether the switch here of the device is at the ISP(The switch can operate normally only when it is in RUN)
1265
1266 [[image:image-20240330174406-3.png]]
1267
1268
1269 == 7.3 The node cannot read the sensor data ==
1270
1271 This may be caused by a software firmware(≤1.1.6 version) bug, which we fixed in the latest firmware (>1.0.0 version)
1272
1273 The user can fix this problem via upgrade firmware.
1274
1275
1276 By default, The latest firmware value of POWERIC is 1, while the 3322 version requires POWERIC to be set to 0 in order to function properly
1277
1278
1279 * **//1. Check if the hardware version is 3322//**
1280
1281 If the sensor hardware version is 3322 or earlier, the user can change the POWERIC value to 0 after a firmware upgrade using one of the following methods
1282
1283 **a. Using AT command**
1284
1285 (% class="box infomessage" %)
1286 (((
1287 AT+POWERIC=0.
1288 )))
1289
1290
1291 **b. Using Downlink**
1292
1293 (% class="box infomessage" %)
1294 (((
1295 FF 00(AT+POWERIC=0).
1296 )))
1297
1298
1299 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LDDS75%20-%20LoRaWAN%20Distance%20Detection%20Sensor%20User%20Manual/WebHome/image-20240531090837-1.png?rev=1.1||alt="image-20240531090837-1.png"]]
1300
1301
1302 Please check your hardware production date
1303
1304 The first two digits are the week of the year, and the last two digits are the year.
1305
1306 The number 3322 is the first batch we changed the power IC.
1307
1308
1309 = 8. Order Info =
1310
1311
1312 Part Number: (% style="color:blue" %)**LSPH01-XX**
1313
1314
1315 (% style="color:blue" %)**XX**(%%): The default frequency band
1316
1317 * (% style="color:red" %)**AS923**(%%):  LoRaWAN AS923 band
1318 * (% style="color:red" %)**AU915**(%%): LoRaWAN AU915 band
1319 * (% style="color:red" %)**EU433**(%%): LoRaWAN EU433 band
1320 * (% style="color:red" %)**EU868**(%%): LoRaWAN EU868 band
1321 * (% style="color:red" %)**KR920**(%%): LoRaWAN KR920 band
1322 * (% style="color:red" %)**US915**(%%): LoRaWAN US915 band
1323 * (% style="color:red" %)**IN865**(%%):  LoRaWAN IN865 band
1324 * (% style="color:red" %)**CN470**(%%): LoRaWAN CN470 band
1325
1326 = 9. ​Packing Info =
1327
1328
1329 **Package Includes**:
1330
1331 * LSPH01 LoRaWAN Soil Ph Sensor x 1
1332
1333 **Dimension and weight**:
1334
1335 * Device Size: cm
1336 * Device Weight: g
1337 * Package Size / pcs : cm
1338 * Weight / pcs : g
1339
1340 = 10. ​Support =
1341
1342
1343 * 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.
1344 * Provide as much information as possible regarding your enquiry (product models, accurately describe your problem and steps to replicate it etc) and send a mail to [[support@dragino.com>>url:http://../../../../../../D:%5C%E5%B8%82%E5%9C%BA%E8%B5%84%E6%96%99%5C%E8%AF%B4%E6%98%8E%E4%B9%A6%5CLoRa%5CLT%E7%B3%BB%E5%88%97%5Csupport@dragino.com]].
Copyright ©2010-2024 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0