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="246" width="530"]](% 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
146 **Register the device**
147
148
149 [[image:1654592600093-601.png]]
150
151
152
153 **Add APP EUI and DEV EUI**
154
155 [[image:1654592619856-881.png]]
156
157
158
159 **Add APP EUI in the application**
160
161 [[image:1654592632656-512.png]]
162
163
164
165 **Add APP KEY**
166
167 [[image:1654592653453-934.png]]
168
169
170 (% style="color:blue" %)**Step 2**(%%): Power on LSPH01
171
172
173 Put a Jumper on JP2 to power on the device. ( The Switch must be in FLASH position).
174
175 [[image:image-20220607170442-2.png]]
176
177
178 (((
179 (% style="color:blue" %)**Step 3**(%%)**:** 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.
180
181
182 )))
183
184 [[image:1654592697690-910.png]]
185
186
187 == 2.3 ​Uplink Payload ==
188
189
190 (((
191 LSPH01 will uplink payload via LoRaWAN with below payload format: 
192 )))
193
194 (((
195 Uplink payload includes in total 11 bytes.
196 )))
197
198 (((
199 Normal uplink payload:
200 )))
201
202 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:470px" %)
203 |=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
204 **Size(bytes)**
205 )))|=(% 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**
206 |(% style="width:62.5px" %)Value|(% style="width:62.5px" %)[[BAT>>||anchor="H2.3.1BatteryInfo"]]|(% style="width:62.5px" %)(((
207 [[Temperature (Optional)>>||anchor="H2.3.2DS18B20Temperaturesensor"]]
208 )))|[[Soil pH>>||anchor="H2.3.3SoilpH"]]|[[Soil Temperature>>||anchor="H2.3.4SoilTemperature"]]|(((
209 [[Digital Interrupt (Optional)>>||anchor="H2.3.5InterruptPin"]]
210 )))|Reserve|(((
211 [[Message Type>>||anchor="H2.3.6MessageType"]]
212 )))
213
214 [[image:1654592721645-318.png]]
215
216
217 === 2.3.1 Battery Info ===
218
219
220 Check the battery voltage for LSPH01.
221
222 Ex1: 0x0B45 = 2885mV
223
224 Ex2: 0x0B49 = 2889mV
225
226
227 === 2.3.2 DS18B20 Temperature sensor ===
228
229
230 This is optional, user can connect external DS18B20 sensor to the +3.3v, 1-wire and GND pin . and this field will report temperature.
231
232
233 **Example**:
234
235 If payload is: 0105H:  (0105 & FC00 == 0), temp = 0105H /10 = 26.1 degree
236
237 If payload is: FF3FH :  (FF3F & FC00 == 1) , temp = (FF3FH - 65536)/10 = -19.3 degrees.
238
239
240 === 2.3.3 Soil pH ===
241
242
243 Range: 0 ~~ 14 pH
244
245 **Example:**
246
247 (% style="color:#037691" %)** 0x02B7(H) = 695(D) = 6.95pH**
248
249
250 === 2.3.4 Soil Temperature ===
251
252
253 Get Soil Temperature 
254
255
256 **Example**:
257
258 If payload is: **0105H**:  (0105 & FC00 == 0), temp = 0105H /10 = 26.1 degree
259
260 If payload is: **FF3FH** :  (FF3F & FC00 == 1) , temp = (FF3FH - 65536)/10 = -19.3 degrees.
261
262
263 === 2.3.5 Interrupt Pin ===
264
265
266 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.
267
268
269 **Example:**
270
271 0x00: Normal uplink packet.
272
273 0x01: Interrupt Uplink Packet.
274
275
276 === 2.3.6 Message Type ===
277
278
279 (((
280 For a normal uplink payload, the message type is always 0x01.
281 )))
282
283 (((
284 Valid Message Type:
285 )))
286
287
288 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:496px" %)
289 |=(% 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**
290 |(% style="width:160px" %)0x01|(% style="width:163px" %)Normal Uplink|(% style="width:173px" %)[[Normal Uplink Payload>>||anchor="H2.3200BUplinkPayload"]]
291 |(% style="width:160px" %)0x02|(% style="width:163px" %)Reply configures info|(% style="width:173px" %)[[Configure Info Payload>>||anchor="H3.4GetFirmwareVersionInfo"]]
292 |(% style="width:160px" %)0x03|(% style="width:163px" %)Reply Calibration Info|(% style="width:173px" %)[[Calibration Payload>>||anchor="H2.7Calibration"]]
293
294 === 2.3.7 Decode payload in The Things Network ===
295
296
297 While using TTN network, you can add the payload format to decode the payload.
298
299
300 [[image:1654592762713-715.png]]
301
302 (((
303 The payload decoder function for TTN is here:
304 )))
305
306 (((
307 LSPH01 TTN Payload Decoder:  [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>https://github.com/dragino/dragino-end-node-decoder]]
308 )))
309
310
311 == 2.4 Uplink Interval ==
312
313
314 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"]]
315
316
317 == 2.5 ​Show Data in DataCake IoT Server ==
318
319
320 (((
321 [[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:
322 )))
323
324 (((
325
326 )))
327
328 (((
329 (% style="color:blue" %)**Step 1**(%%)**: Be sure that your device is programmed and properly connected to the network at this time.**
330 )))
331
332 (((
333 (% 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:**
334 )))
335
336
337 [[image:1654592790040-760.png]]
338
339
340 [[image:1654592800389-571.png]]
341
342
343 (% style="color:blue" %)**Step 3**(%%)**: Create an account or log in Datacake.**
344
345 (% style="color:blue" %)**Step 4**(%%)**: Create LSPH01 product.**
346
347 [[image:1654592819047-535.png]]
348
349
350 [[image:1654592833877-762.png]]
351
352
353 [[image:1654592856403-259.png]]
354
355
356 (((
357 (% style="color:blue" %)**Step 5**(%%)**: add payload decode**
358 )))
359
360 (((
361 Download Datacake decoder from: [[https:~~/~~/www.dropbox.com/sh/pj7cgmgqg3gx3ta/AABYFbg1DVOOR9Hmr1mLSBkga?dl=0>>url:https://www.dropbox.com/sh/pj7cgmgqg3gx3ta/AABYFbg1DVOOR9Hmr1mLSBkga?dl=0]]
362 )))
363
364
365 [[image:1654592878525-845.png]]
366
367 [[image:1654592892967-474.png]]
368
369
370 [[image:1654592905354-123.png]]
371
372
373 After added, the sensor data arrive TTN, it will also arrive and show in Mydevices.
374
375
376 [[image:1654592917530-261.png]]
377
378
379 == 2.6 Installation and Maintain ==
380
381 === 2.6.1 Before measurement ===
382
383
384 (((
385 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. 
386 )))
387
388
389 === 2.6.2 Measurement ===
390
391
392 (((
393 (% style="color:blue" %)**Measurement the soil surface:**
394 )))
395
396 (((
397 [[image:1654592946732-634.png]]
398 )))
399
400 (((
401 Choose the proper measuring position. Split the surface soil according to the measured deep.
402 )))
403
404 (((
405 Put pure water, or rainwater to make the soil of measurement point to moist mud. Remove rocks or hard things.
406 )))
407
408 (((
409 Slowly insert the probe to the measure point. Don't use large force which will break the probe. Make sure not shake when inserting.
410 )))
411
412 (((
413 Put soil over the probe after insert. And start to measure.
414 )))
415
416 (((
417
418 )))
419
420 (((
421 (% style="color:blue" %)**Measurement inside soil:**
422 )))
423
424 (((
425 Dig a hole with diameter > 20CM.
426 )))
427
428 (((
429 Insert the probe inside, method like measure the surface.
430 )))
431
432
433 === 2.6.3 Maintain Probe ===
434
435
436 (((
437 ~1. pH probe electrode is fragile and no strong. User must avoid strong force or hitting it.
438 )))
439
440 (((
441 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.
442 )))
443
444 (((
445 3. Probe reference electrode is also no strong, need to avoid strong force or hitting.
446 )))
447
448 (((
449 4. User should keep reference electrode wet while not use.
450 )))
451
452 (((
453 5. Avoid the probes to touch oily matter. Which will cause issue in accuracy.
454 )))
455
456 (((
457 6. The probe is IP68 can be put in water.
458
459
460 )))
461
462 == 2.7 Calibration ==
463
464
465 (% style="color:blue" %)**Step1 :**(%%)** Clean probe**
466
467 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.
468
469 (% style="color:blue" %)**Step2 :**(%%)** Immerse the sensor in ph buffer solution to make the sensor values stable**
470
471 (((
472 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).
473
474 (% 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**
475
476
477 (% style="color:blue" %)**Step3 :**(%%)** The numerically stable sensors were calibrated using commands**
478 )))
479
480 (((
481 User can use below command to calibrate.
482
483 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
484 |(% 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**
485 |(% style="width:149px" %)4.00|(% style="width:197px" %)AT+PHCAL=4|(% style="width:206px" %)(((
486 0x13 04
487 Reply with Calibrate payload
488 )))|(% style="width:136px" %)(((
489 AT+PHCAL=?
490 Example 41,61,91
491 )))
492 |(% style="width:149px" %)6.86|(% style="width:197px" %)AT+PHCAL=6|(% style="width:206px" %)(((
493 0x13 06
494 Reply with Calibrate payload
495 )))|(% style="width:136px" %)AT+PHCAL=?
496 |(% style="width:149px" %)9.18|(% style="width:197px" %)AT+PHCAL=9|(% style="width:206px" %)(((
497 0x13 09
498 Reply with Calibrate payload
499 )))|(% style="width:136px" %)AT+PHCAL=?
500 |(% style="width:149px" %)Factory Default|(% style="width:197px" %)AT+PHCAL=15|(% style="width:206px" %)(((
501 0x13 15
502 Reply with Calibrate payload
503 )))|(% style="width:136px" %)(((
504 AT+PHCAL=?
505 Example 151
506 )))
507 )))
508
509 To use the AT COMMAND, refer to this link:
510
511 * AT Command via Bluetooth Connection (**Recommended**): [[BLE Configure Instruction>>url:http://wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/]].
512
513 * 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]].
514
515 To use Downlink, take TTN as an example, please refer to this link:
516
517 * LoRaWAN Downlink.  Instruction for different platforms: See [[IoT LoRaWAN Server>>url:http://wiki.dragino.com/xwiki/bin/view/Main/]] section.
518
519 When the command is successfully used, the node sends a uplink.
520 This is the payload for uplink
521
522 (% style="color:#037691" %)**Calibration Payload**
523
524 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:500px" %)
525 |=(% style="width: 60px;background-color:#4F81BD;color:white" %)(((
526 **Size(bytes)**
527 )))|=(% 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**
528 |Value|(((
529 PH4 Calibrate value
530 )))|PH6.86 Calibrate value|(((
531 PH9.18 Calibrate value
532 )))|Reserve|(((
533 [[Message Type>>||anchor="H2.3.6MessageType"]]
534 Always 0x03
535 )))
536
537 User can also send 0x14 downlink command to poll the current calibration payload.
538
539 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:480px" %)
540 |=(% 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)**
541 |(% style="width:183px" %)Get Calibration Version Info|(% style="width:55px" %)Any|(% style="width:93px" %)14|(% style="width:146px" %)2
542
543 * Reply to the confirmation package: 14 01
544
545 * Reply to non-confirmed packet: 14 00
546
547 (% 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.**
548
549 Examples:
550 After using the command AT+PH=9 in 9.18ph buffer
551 The readout returned by the sensor in 9.18ph buffer should be pH=9
552
553
554 == 2.8 Frequency Plans ==
555
556
557 (((
558 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.
559 )))
560
561
562 === 2.8.1 EU863-870 (EU868) ===
563
564
565 (((
566 (% style="color:blue" %)**Uplink:**
567 )))
568
569 (((
570 868.1 - SF7BW125 to SF12BW125
571 )))
572
573 (((
574 868.3 - SF7BW125 to SF12BW125 and SF7BW250
575 )))
576
577 (((
578 868.5 - SF7BW125 to SF12BW125
579 )))
580
581 (((
582 867.1 - SF7BW125 to SF12BW125
583 )))
584
585 (((
586 867.3 - SF7BW125 to SF12BW125
587 )))
588
589 (((
590 867.5 - SF7BW125 to SF12BW125
591 )))
592
593 (((
594 867.7 - SF7BW125 to SF12BW125
595 )))
596
597 (((
598 867.9 - SF7BW125 to SF12BW125
599 )))
600
601 (((
602 868.8 - FSK
603 )))
604
605 (((
606
607 )))
608
609 (((
610 (% style="color:blue" %)**Downlink:**
611 )))
612
613 (((
614 Uplink channels 1-9 (RX1)
615 )))
616
617 (((
618 869.525 - SF9BW125 (RX2 downlink only)
619 )))
620
621
622 === 2.8.2 US902-928(US915) ===
623
624
625 (((
626 Used in USA, Canada and South America. Frequency band as per definition in LoRaWAN 1.0.3 Regional document.
627 )))
628
629 (((
630 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.
631 )))
632
633 (((
634 After Join success, the end node will switch to the correct sub band by:
635 )))
636
637 * Check what sub-band the LoRaWAN server ask from the OTAA Join Accept message and switch to that sub-band
638
639 * 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)
640
641 === 2.8.3 CN470-510 (CN470) ===
642
643
644 (((
645 Used in China, Default use CHE=1
646 )))
647
648 (((
649 (% style="color:blue" %)**Uplink:**
650 )))
651
652 (((
653 486.3 - SF7BW125 to SF12BW125
654 )))
655
656 (((
657 486.5 - SF7BW125 to SF12BW125
658 )))
659
660 (((
661 486.7 - SF7BW125 to SF12BW125
662 )))
663
664 (((
665 486.9 - SF7BW125 to SF12BW125
666 )))
667
668 (((
669 487.1 - SF7BW125 to SF12BW125
670 )))
671
672 (((
673 487.3 - SF7BW125 to SF12BW125
674 )))
675
676 (((
677 487.5 - SF7BW125 to SF12BW125
678 )))
679
680 (((
681 487.7 - SF7BW125 to SF12BW125
682 )))
683
684 (((
685
686 )))
687
688 (((
689 (% style="color:blue" %)**Downlink:**
690 )))
691
692 (((
693 506.7 - SF7BW125 to SF12BW125
694 )))
695
696 (((
697 506.9 - SF7BW125 to SF12BW125
698 )))
699
700 (((
701 507.1 - SF7BW125 to SF12BW125
702 )))
703
704 (((
705 507.3 - SF7BW125 to SF12BW125
706 )))
707
708 (((
709 507.5 - SF7BW125 to SF12BW125
710 )))
711
712 (((
713 507.7 - SF7BW125 to SF12BW125
714 )))
715
716 (((
717 507.9 - SF7BW125 to SF12BW125
718 )))
719
720 (((
721 508.1 - SF7BW125 to SF12BW125
722 )))
723
724 (((
725 505.3 - SF12BW125 (RX2 downlink only)
726 )))
727
728
729 === 2.8.4 AU915-928(AU915) ===
730
731
732 (((
733 Frequency band as per definition in LoRaWAN 1.0.3 Regional document.
734 )))
735
736 (((
737 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.
738 )))
739
740 (((
741
742 )))
743
744 (((
745 After Join success, the end node will switch to the correct sub band by:
746 )))
747
748 * Check what sub-band the LoRaWAN server ask from the OTAA Join Accept message and switch to that sub-band
749
750 * 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)
751
752 === 2.8.5 AS920-923 & AS923-925 (AS923) ===
753
754
755 (((
756 (% style="color:blue" %)**Default Uplink channel:**
757 )))
758
759 (((
760 923.2 - SF7BW125 to SF10BW125
761 )))
762
763 (((
764 923.4 - SF7BW125 to SF10BW125
765 )))
766
767 (((
768
769 )))
770
771 (((
772 (% style="color:blue" %)**Additional Uplink Channel**:
773 )))
774
775 (((
776 (OTAA mode, channel added by JoinAccept message)
777 )))
778
779 (((
780
781 )))
782
783 (((
784 (% style="color:blue" %)**AS920~~AS923 for Japan, Malaysia, Singapore**:
785 )))
786
787 (((
788 922.2 - SF7BW125 to SF10BW125
789 )))
790
791 (((
792 922.4 - SF7BW125 to SF10BW125
793 )))
794
795 (((
796 922.6 - SF7BW125 to SF10BW125
797 )))
798
799 (((
800 922.8 - SF7BW125 to SF10BW125
801 )))
802
803 (((
804 923.0 - SF7BW125 to SF10BW125
805 )))
806
807 (((
808 922.0 - SF7BW125 to SF10BW125
809 )))
810
811 (((
812
813 )))
814
815 (((
816 (% style="color:blue" %)**AS923 ~~ AS925 for Brunei, Cambodia, Hong Kong, Indonesia, Laos, Taiwan, Thailand, Vietnam**:
817 )))
818
819 (((
820 923.6 - SF7BW125 to SF10BW125
821 )))
822
823 (((
824 923.8 - SF7BW125 to SF10BW125
825 )))
826
827 (((
828 924.0 - SF7BW125 to SF10BW125
829 )))
830
831 (((
832 924.2 - SF7BW125 to SF10BW125
833 )))
834
835 (((
836 924.4 - SF7BW125 to SF10BW125
837 )))
838
839 (((
840 924.6 - SF7BW125 to SF10BW125
841 )))
842
843 (((
844
845 )))
846
847 (((
848 (% style="color:blue" %)**Downlink:**
849 )))
850
851 (((
852 Uplink channels 1-8 (RX1)
853 )))
854
855 (((
856 923.2 - SF10BW125 (RX2)
857 )))
858
859
860 === 2.8.6 KR920-923 (KR920) ===
861
862
863 (((
864 (% style="color:blue" %)**Default channel:**
865 )))
866
867 (((
868 922.1 - SF7BW125 to SF12BW125
869 )))
870
871 (((
872 922.3 - SF7BW125 to SF12BW125
873 )))
874
875 (((
876 922.5 - SF7BW125 to SF12BW125
877 )))
878
879
880 (((
881 (% style="color:blue" %)**Uplink: (OTAA mode, channel added by JoinAccept message)**
882 )))
883
884 (((
885 922.1 - SF7BW125 to SF12BW125
886 )))
887
888 (((
889 922.3 - SF7BW125 to SF12BW125
890 )))
891
892 (((
893 922.5 - SF7BW125 to SF12BW125
894 )))
895
896 (((
897 922.7 - SF7BW125 to SF12BW125
898 )))
899
900 (((
901 922.9 - SF7BW125 to SF12BW125
902 )))
903
904 (((
905 923.1 - SF7BW125 to SF12BW125
906 )))
907
908 (((
909 923.3 - SF7BW125 to SF12BW125
910 )))
911
912
913 (((
914 (% style="color:blue" %)**Downlink:**
915 )))
916
917 (((
918 Uplink channels 1-7(RX1)
919 )))
920
921 (((
922 921.9 - SF12BW125 (RX2 downlink only; SF12BW125 might be changed to SF9BW125)
923 )))
924
925
926 === 2.8.7 IN865-867 (IN865) ===
927
928
929 (((
930 (% style="color:blue" %)**Uplink:**
931 )))
932
933 (((
934 865.0625 - SF7BW125 to SF12BW125
935 )))
936
937 (((
938 865.4025 - SF7BW125 to SF12BW125
939 )))
940
941 (((
942 865.9850 - SF7BW125 to SF12BW125
943 )))
944
945
946 (((
947 (% style="color:blue" %)**Downlink:**
948 )))
949
950 (((
951 Uplink channels 1-3 (RX1)
952 )))
953
954 (((
955 866.550 - SF10BW125 (RX2)
956 )))
957
958
959 == 2.9 LED Indicator ==
960
961
962 The LSPH01 has an internal LED which is to show the status of different state.
963
964 * The sensor is detected when the device is turned on, and it will flash 4 times quickly when it is detected.
965
966 * Blink once when device transmit a packet.
967
968 == 2.10 ​Firmware Change Log ==
969
970
971 **Firmware download link: **[[https:~~/~~/www.dropbox.com/sh/xtm5tw37mewaw99/AAD0uy06odmreQQ7vMzZYVIGa?dl=0>>https://www.dropbox.com/sh/xtm5tw37mewaw99/AAD0uy06odmreQQ7vMzZYVIGa?dl=0]]
972
973 **Firmware Upgrade Method: **[[Firmware Upgrade Instruction>>path:/xwiki/bin/view/Main/Firmware%20Upgrade%20Instruction%20for%20STM32%20base%20products/]]
974
975
976 = 3. Configure LSPH01 via AT Command or LoRaWAN Downlink =
977
978
979 (((
980 Use can configure LSPH01 via AT Command or LoRaWAN Downlink.
981 )))
982
983 * (((
984 AT Command Connection: See [[FAQ>>||anchor="H6.FAQ"]].
985 )))
986 * (((
987 LoRaWAN Downlink instruction for different platforms: [[IoT LoRaWAN Server>>path:/xwiki/bin/view/Main/]]
988 )))
989
990 (((
991 There are two kinds of commands to configure LSPH01, they are:
992 )))
993
994 * (((
995 (% style="color:#4f81bd" %)** General Commands**.
996 )))
997
998 (((
999 These commands are to configure:
1000 )))
1001
1002 * (((
1003 General system settings like: uplink interval.
1004 )))
1005 * (((
1006 LoRaWAN protocol & radio related command.
1007 )))
1008
1009 (((
1010 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/]]
1011 )))
1012
1013
1014 * (((
1015 (% style="color:#4f81bd" %)** Commands special design for LSPH01**
1016 )))
1017
1018 (((
1019 These commands only valid for LSPH01, as below:
1020 )))
1021
1022
1023 == 3.1 Set Transmit Interval Time ==
1024
1025
1026 Feature: Change LoRaWAN End Node Transmit Interval.
1027
1028 (% style="color:#037691" %)**AT Command: AT+TDC**
1029
1030 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
1031 |=(% 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**
1032 |(% style="width:156px" %)AT+TDC=?|(% style="width:137px" %)Show current transmit Interval|(((
1033 30000
1034 OK
1035 the interval is 30000ms = 30s
1036 )))
1037 |(% style="width:156px" %)AT+TDC=60000|(% style="width:137px" %)Set Transmit Interval|(((
1038 OK
1039 Set transmit interval to 60000ms = 60 seconds​
1040 )))
1041
1042 (((
1043 (% style="color:#037691" %)**Downlink Command: 0x01**
1044 )))
1045
1046 (((
1047 Format: Command Code (0x01) followed by 3 bytes time value.
1048 )))
1049
1050 (((
1051 If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01.
1052 )))
1053
1054 * (((
1055 Example 1: Downlink Payload: 0100001E  ~/~/ Set Transmit Interval (TDC) = 30 seconds
1056 )))
1057 * (((
1058 Example 2: Downlink Payload: 0100003C  ~/~/ Set Transmit Interval (TDC) = 60 seconds
1059
1060
1061
1062 )))
1063
1064 == 3.2 Set Interrupt Mode ==
1065
1066
1067 Feature, Set Interrupt mode for GPIO_EXIT.
1068
1069 (% style="color:#037691" %)**AT Command: AT+INTMOD**
1070
1071 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
1072 |=(% 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**
1073 |(% style="width:154px" %)AT+INTMOD=?|(% style="width:196px" %)Show current interrupt mode|(% style="width:157px" %)(((
1074 0
1075 OK
1076 the mode is 0 =No interruption
1077 )))
1078 |(% style="width:154px" %)AT+INTMOD=2|(% style="width:196px" %)(((
1079 Set Transmit Interval
1080 0. (Disable Interrupt),
1081 ~1. (Trigger by rising and falling edge)
1082 2. (Trigger by falling edge)
1083 3. (Trigger by rising edge)
1084 )))|(% style="width:157px" %)OK
1085
1086 (((
1087 (% style="color:#037691" %)**Downlink Command: 0x06**
1088 )))
1089
1090 (((
1091 Format: Command Code (0x06) followed by 3 bytes.
1092 )))
1093
1094 (((
1095 This means that the interrupt mode of the end node is set to 0x000003=3 (rising edge trigger), and the type code is 06.
1096 )))
1097
1098 * (((
1099 Example 1: Downlink Payload: 06000000  ~/~/ Turn off interrupt mode
1100 )))
1101 * (((
1102 Example 2: Downlink Payload: 06000003  ~/~/  Set the interrupt mode to rising edge trigger
1103
1104
1105
1106 )))
1107
1108 == 3.3 Calibrate Sensor ==
1109
1110
1111 Detail See [[Calibration Guide>>||anchor="H2.7Calibration"]] for the user of 0x13 and 0x14 downlink commands
1112
1113
1114 == 3.4 Get Firmware Version Info ==
1115
1116
1117 Feature: use downlink to get firmware version.
1118
1119 (% style="color:#037691" %)**Downlink Command: 0x26**
1120
1121 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:500px" %)
1122 |(% 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)**
1123 |(% style="width:193px" %)Get Firmware Version Info|(% style="width:57px" %)Any|(% style="width:91px" %)26|(% style="width:149px" %)2
1124
1125 * Reply to the confirmation package: 26 01
1126
1127 * Reply to non-confirmed packet: 26 00
1128
1129 Device will send an uplink after got this downlink command. With below payload:
1130
1131 Configures info payload:
1132
1133 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
1134 |(% 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**
1135 |Value|Software Type|(((
1136 Frequency
1137 Band
1138 )))|Sub-band|(((
1139 Firmware
1140 Version
1141 )))|Sensor Type|Reserve|(((
1142 [[Message Type>>||anchor="H2.3.6MessageType"]]
1143 Always 0x02
1144 )))
1145
1146 (% style="color:#037691" %)**Software Type**(%%): Always 0x03 for LSPH01
1147
1148 (% style="color:#037691" %)**Frequency Band**:
1149
1150 *0x01: EU868
1151
1152 *0x02: US915
1153
1154 *0x03: IN865
1155
1156 *0x04: AU915
1157
1158 *0x05: KZ865
1159
1160 *0x06: RU864
1161
1162 *0x07: AS923
1163
1164 *0x08: AS923-1
1165
1166 *0x09: AS923-2
1167
1168 *0xa0: AS923-3
1169
1170
1171 (% style="color:#037691" %)**Sub-Band**(%%): value 0x00 ~~ 0x08
1172
1173 (% style="color:#037691" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version
1174
1175 (% style="color:#037691" %)**Sensor Type**:
1176
1177 0x01: LSE01
1178
1179 0x02: LDDS75
1180
1181 0x03: LDDS20
1182
1183 0x04: LLMS01
1184
1185 0x05: LSPH01
1186
1187 0x06: LSNPK01
1188
1189 0x07: LDDS12
1190
1191
1192 = 4. Battery & Power Consumption =
1193
1194
1195 LSPH01 uses ER26500 + SPC1520 battery pack. See below link for detail information about the battery info and how to replace.
1196
1197 [[**Battery Info & Power Consumption Analyze**>>url:http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] .
1198
1199
1200 = 5. Use AT Command =
1201
1202 == 5.1 Access AT Commands ==
1203
1204
1205 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.
1206
1207
1208 [[image:1654593668970-604.png]]
1209
1210
1211 **Connection:**
1212
1213 (% style="background-color:yellow" %)** USB TTL GND <~-~-~-~-> GND**
1214
1215 (% style="background-color:yellow" %)** USB TTL TXD  <~-~-~-~-> UART_RXD**
1216
1217 (% style="background-color:yellow" %)** USB TTL RXD  <~-~-~-~-> UART_TXD**
1218
1219
1220 (((
1221 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:
1222 )))
1223
1224
1225 [[image:1654593712276-618.png]]
1226
1227 Valid AT Command please check [[Configure Device>>||anchor="H3.ConfigureLSPH01viaATCommandorLoRaWANDownlink"]].
1228
1229
1230 = 6. FAQ =
1231
1232 == 6.1 How to change the LoRa Frequency Bands/Region ==
1233
1234
1235 You can follow the instructions for [[how to upgrade image>>||anchor="H2.10200BFirmwareChangeLog"]].
1236 When downloading the images, choose the required image file for download. ​
1237
1238
1239 = 7. Trouble Shooting =
1240
1241 == 7.1 AT Commands input doesn't work ==
1242
1243
1244 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.
1245
1246
1247 == 5.3 Possible reasons why the device is unresponsive: ==
1248
1249
1250 ​1. Check whether the battery voltage is lower than 2.8V
1251 2. Check whether the jumper of the device is correctly connected
1252
1253 [[image:image-20240330174400-2.png]]
1254 3. Check whether the switch here of the device is at the ISP(The switch can operate normally only when it is in RUN)
1255
1256 [[image:image-20240330174406-3.png]]
1257
1258
1259 (% class="wikigeneratedid" %)
1260 = =
1261
1262 = 8. Order Info =
1263
1264
1265 Part Number: (% style="color:blue" %)**LSPH01-XX**
1266
1267
1268 (% style="color:blue" %)**XX**(%%): The default frequency band
1269
1270 * (% style="color:red" %)**AS923**(%%):  LoRaWAN AS923 band
1271 * (% style="color:red" %)**AU915**(%%): LoRaWAN AU915 band
1272 * (% style="color:red" %)**EU433**(%%): LoRaWAN EU433 band
1273 * (% style="color:red" %)**EU868**(%%): LoRaWAN EU868 band
1274 * (% style="color:red" %)**KR920**(%%): LoRaWAN KR920 band
1275 * (% style="color:red" %)**US915**(%%): LoRaWAN US915 band
1276 * (% style="color:red" %)**IN865**(%%):  LoRaWAN IN865 band
1277 * (% style="color:red" %)**CN470**(%%): LoRaWAN CN470 band
1278
1279 = 9. ​Packing Info =
1280
1281
1282 **Package Includes**:
1283
1284 * LSPH01 LoRaWAN Soil Ph Sensor x 1
1285
1286 **Dimension and weight**:
1287
1288 * Device Size: cm
1289 * Device Weight: g
1290 * Package Size / pcs : cm
1291 * Weight / pcs : g
1292
1293 = 10. ​Support =
1294
1295
1296 * 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.
1297 * 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-2022 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0