Version 100.1 by Bei Jinggeng on 2024/02/20 16:31

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="4" style="background-color:#f2f2f2; width:520px" %)
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:150px" %)**Downlink Command**|(% style="background-color:#4f81bd; color:white; width:100px" %)**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="4" 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="5" 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: 146px; 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 == 2.8 Frequency Plans ==
554
555
556 (((
557 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.
558 )))
559
560
561 === 2.8.1 EU863-870 (EU868) ===
562
563
564 (((
565 (% style="color:blue" %)**Uplink:**
566 )))
567
568 (((
569 868.1 - SF7BW125 to SF12BW125
570 )))
571
572 (((
573 868.3 - SF7BW125 to SF12BW125 and SF7BW250
574 )))
575
576 (((
577 868.5 - SF7BW125 to SF12BW125
578 )))
579
580 (((
581 867.1 - SF7BW125 to SF12BW125
582 )))
583
584 (((
585 867.3 - SF7BW125 to SF12BW125
586 )))
587
588 (((
589 867.5 - SF7BW125 to SF12BW125
590 )))
591
592 (((
593 867.7 - SF7BW125 to SF12BW125
594 )))
595
596 (((
597 867.9 - SF7BW125 to SF12BW125
598 )))
599
600 (((
601 868.8 - FSK
602 )))
603
604 (((
605
606 )))
607
608 (((
609 (% style="color:blue" %)**Downlink:**
610 )))
611
612 (((
613 Uplink channels 1-9 (RX1)
614 )))
615
616 (((
617 869.525 - SF9BW125 (RX2 downlink only)
618 )))
619
620
621 === 2.8.2 US902-928(US915) ===
622
623
624 (((
625 Used in USA, Canada and South America. Frequency band as per definition in LoRaWAN 1.0.3 Regional document.
626 )))
627
628 (((
629 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.
630 )))
631
632 (((
633 After Join success, the end node will switch to the correct sub band by:
634 )))
635
636 * Check what sub-band the LoRaWAN server ask from the OTAA Join Accept message and switch to that sub-band
637
638 * 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)
639
640 === 2.8.3 CN470-510 (CN470) ===
641
642
643 (((
644 Used in China, Default use CHE=1
645 )))
646
647 (((
648 (% style="color:blue" %)**Uplink:**
649 )))
650
651 (((
652 486.3 - SF7BW125 to SF12BW125
653 )))
654
655 (((
656 486.5 - SF7BW125 to SF12BW125
657 )))
658
659 (((
660 486.7 - SF7BW125 to SF12BW125
661 )))
662
663 (((
664 486.9 - SF7BW125 to SF12BW125
665 )))
666
667 (((
668 487.1 - SF7BW125 to SF12BW125
669 )))
670
671 (((
672 487.3 - SF7BW125 to SF12BW125
673 )))
674
675 (((
676 487.5 - SF7BW125 to SF12BW125
677 )))
678
679 (((
680 487.7 - SF7BW125 to SF12BW125
681 )))
682
683 (((
684
685 )))
686
687 (((
688 (% style="color:blue" %)**Downlink:**
689 )))
690
691 (((
692 506.7 - SF7BW125 to SF12BW125
693 )))
694
695 (((
696 506.9 - SF7BW125 to SF12BW125
697 )))
698
699 (((
700 507.1 - SF7BW125 to SF12BW125
701 )))
702
703 (((
704 507.3 - SF7BW125 to SF12BW125
705 )))
706
707 (((
708 507.5 - SF7BW125 to SF12BW125
709 )))
710
711 (((
712 507.7 - SF7BW125 to SF12BW125
713 )))
714
715 (((
716 507.9 - SF7BW125 to SF12BW125
717 )))
718
719 (((
720 508.1 - SF7BW125 to SF12BW125
721 )))
722
723 (((
724 505.3 - SF12BW125 (RX2 downlink only)
725 )))
726
727
728 === 2.8.4 AU915-928(AU915) ===
729
730
731 (((
732 Frequency band as per definition in LoRaWAN 1.0.3 Regional document.
733 )))
734
735 (((
736 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.
737 )))
738
739 (((
740
741 )))
742
743 (((
744 After Join success, the end node will switch to the correct sub band by:
745 )))
746
747 * Check what sub-band the LoRaWAN server ask from the OTAA Join Accept message and switch to that sub-band
748
749 * 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)
750
751 === 2.8.5 AS920-923 & AS923-925 (AS923) ===
752
753
754 (((
755 (% style="color:blue" %)**Default Uplink channel:**
756 )))
757
758 (((
759 923.2 - SF7BW125 to SF10BW125
760 )))
761
762 (((
763 923.4 - SF7BW125 to SF10BW125
764 )))
765
766 (((
767
768 )))
769
770 (((
771 (% style="color:blue" %)**Additional Uplink Channel**:
772 )))
773
774 (((
775 (OTAA mode, channel added by JoinAccept message)
776 )))
777
778 (((
779
780 )))
781
782 (((
783 (% style="color:blue" %)**AS920~~AS923 for Japan, Malaysia, Singapore**:
784 )))
785
786 (((
787 922.2 - SF7BW125 to SF10BW125
788 )))
789
790 (((
791 922.4 - SF7BW125 to SF10BW125
792 )))
793
794 (((
795 922.6 - SF7BW125 to SF10BW125
796 )))
797
798 (((
799 922.8 - SF7BW125 to SF10BW125
800 )))
801
802 (((
803 923.0 - SF7BW125 to SF10BW125
804 )))
805
806 (((
807 922.0 - SF7BW125 to SF10BW125
808 )))
809
810 (((
811
812 )))
813
814 (((
815 (% style="color:blue" %)**AS923 ~~ AS925 for Brunei, Cambodia, Hong Kong, Indonesia, Laos, Taiwan, Thailand, Vietnam**:
816 )))
817
818 (((
819 923.6 - SF7BW125 to SF10BW125
820 )))
821
822 (((
823 923.8 - SF7BW125 to SF10BW125
824 )))
825
826 (((
827 924.0 - SF7BW125 to SF10BW125
828 )))
829
830 (((
831 924.2 - SF7BW125 to SF10BW125
832 )))
833
834 (((
835 924.4 - SF7BW125 to SF10BW125
836 )))
837
838 (((
839 924.6 - SF7BW125 to SF10BW125
840 )))
841
842 (((
843
844 )))
845
846 (((
847 (% style="color:blue" %)**Downlink:**
848 )))
849
850 (((
851 Uplink channels 1-8 (RX1)
852 )))
853
854 (((
855 923.2 - SF10BW125 (RX2)
856 )))
857
858
859 === 2.8.6 KR920-923 (KR920) ===
860
861
862 (((
863 (% style="color:blue" %)**Default channel:**
864 )))
865
866 (((
867 922.1 - SF7BW125 to SF12BW125
868 )))
869
870 (((
871 922.3 - SF7BW125 to SF12BW125
872 )))
873
874 (((
875 922.5 - SF7BW125 to SF12BW125
876 )))
877
878
879 (((
880 (% style="color:blue" %)**Uplink: (OTAA mode, channel added by JoinAccept message)**
881 )))
882
883 (((
884 922.1 - SF7BW125 to SF12BW125
885 )))
886
887 (((
888 922.3 - SF7BW125 to SF12BW125
889 )))
890
891 (((
892 922.5 - SF7BW125 to SF12BW125
893 )))
894
895 (((
896 922.7 - SF7BW125 to SF12BW125
897 )))
898
899 (((
900 922.9 - SF7BW125 to SF12BW125
901 )))
902
903 (((
904 923.1 - SF7BW125 to SF12BW125
905 )))
906
907 (((
908 923.3 - SF7BW125 to SF12BW125
909 )))
910
911
912 (((
913 (% style="color:blue" %)**Downlink:**
914 )))
915
916 (((
917 Uplink channels 1-7(RX1)
918 )))
919
920 (((
921 921.9 - SF12BW125 (RX2 downlink only; SF12BW125 might be changed to SF9BW125)
922 )))
923
924
925 === 2.8.7 IN865-867 (IN865) ===
926
927
928 (((
929 (% style="color:blue" %)**Uplink:**
930 )))
931
932 (((
933 865.0625 - SF7BW125 to SF12BW125
934 )))
935
936 (((
937 865.4025 - SF7BW125 to SF12BW125
938 )))
939
940 (((
941 865.9850 - SF7BW125 to SF12BW125
942 )))
943
944
945 (((
946 (% style="color:blue" %)**Downlink:**
947 )))
948
949 (((
950 Uplink channels 1-3 (RX1)
951 )))
952
953 (((
954 866.550 - SF10BW125 (RX2)
955 )))
956
957
958 == 2.9 LED Indicator ==
959
960
961 The LSPH01 has an internal LED which is to show the status of different state.
962
963 * The sensor is detected when the device is turned on, and it will flash 4 times quickly when it is detected.
964
965 * Blink once when device transmit a packet.
966
967 == 2.10 ​Firmware Change Log ==
968
969
970 **Firmware download link: **[[https:~~/~~/www.dropbox.com/sh/xtm5tw37mewaw99/AAD0uy06odmreQQ7vMzZYVIGa?dl=0>>https://www.dropbox.com/sh/xtm5tw37mewaw99/AAD0uy06odmreQQ7vMzZYVIGa?dl=0]]
971
972 **Firmware Upgrade Method: **[[Firmware Upgrade Instruction>>path:/xwiki/bin/view/Main/Firmware%20Upgrade%20Instruction%20for%20STM32%20base%20products/]]
973
974
975 = 3. Configure LSPH01 via AT Command or LoRaWAN Downlink =
976
977
978 (((
979 Use can configure LSPH01 via AT Command or LoRaWAN Downlink.
980 )))
981
982 * (((
983 AT Command Connection: See [[FAQ>>||anchor="H6.FAQ"]].
984 )))
985 * (((
986 LoRaWAN Downlink instruction for different platforms: [[IoT LoRaWAN Server>>path:/xwiki/bin/view/Main/]]
987 )))
988
989 (((
990 There are two kinds of commands to configure LSPH01, they are:
991 )))
992
993 * (((
994 (% style="color:#4f81bd" %)** General Commands**.
995 )))
996
997 (((
998 These commands are to configure:
999 )))
1000
1001 * (((
1002 General system settings like: uplink interval.
1003 )))
1004 * (((
1005 LoRaWAN protocol & radio related command.
1006 )))
1007
1008 (((
1009 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/]]
1010 )))
1011
1012
1013 * (((
1014 (% style="color:#4f81bd" %)** Commands special design for LSPH01**
1015 )))
1016
1017 (((
1018 These commands only valid for LSPH01, as below:
1019 )))
1020
1021
1022 == 3.1 Set Transmit Interval Time ==
1023
1024
1025 Feature: Change LoRaWAN End Node Transmit Interval.
1026
1027 (% style="color:#037691" %)**AT Command: AT+TDC**
1028
1029 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
1030 |=(% 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**
1031 |(% style="width:156px" %)AT+TDC=?|(% style="width:137px" %)Show current transmit Interval|(((
1032 30000
1033 OK
1034 the interval is 30000ms = 30s
1035 )))
1036 |(% style="width:156px" %)AT+TDC=60000|(% style="width:137px" %)Set Transmit Interval|(((
1037 OK
1038 Set transmit interval to 60000ms = 60 seconds​
1039 )))
1040
1041 (((
1042 (% style="color:#037691" %)**Downlink Command: 0x01**
1043 )))
1044
1045 (((
1046 Format: Command Code (0x01) followed by 3 bytes time value.
1047 )))
1048
1049 (((
1050 If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01.
1051 )))
1052
1053 * (((
1054 Example 1: Downlink Payload: 0100001E  ~/~/ Set Transmit Interval (TDC) = 30 seconds
1055 )))
1056 * (((
1057 Example 2: Downlink Payload: 0100003C  ~/~/ Set Transmit Interval (TDC) = 60 seconds
1058
1059
1060
1061 )))
1062
1063 == 3.2 Set Interrupt Mode ==
1064
1065
1066 Feature, Set Interrupt mode for GPIO_EXIT.
1067
1068 (% style="color:#037691" %)**AT Command: AT+INTMOD**
1069
1070 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
1071 |=(% 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**
1072 |(% style="width:154px" %)AT+INTMOD=?|(% style="width:196px" %)Show current interrupt mode|(% style="width:157px" %)(((
1073 0
1074 OK
1075 the mode is 0 =No interruption
1076 )))
1077 |(% style="width:154px" %)AT+INTMOD=2|(% style="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="width:157px" %)OK
1084
1085 (((
1086 (% style="color:#037691" %)**Downlink Command: 0x06**
1087 )))
1088
1089 (((
1090 Format: Command Code (0x06) followed by 3 bytes.
1091 )))
1092
1093 (((
1094 This means that the interrupt mode of the end node is set to 0x000003=3 (rising edge trigger), and the type code is 06.
1095 )))
1096
1097 * (((
1098 Example 1: Downlink Payload: 06000000  ~/~/ Turn off interrupt mode
1099 )))
1100 * (((
1101 Example 2: Downlink Payload: 06000003  ~/~/  Set the interrupt mode to rising edge trigger
1102
1103
1104
1105 )))
1106
1107 == 3.3 Calibrate Sensor ==
1108
1109
1110 Detail See [[Calibration Guide>>||anchor="H2.7Calibration"]] for the user of 0x13 and 0x14 downlink commands
1111
1112
1113 == 3.4 Get Firmware Version Info ==
1114
1115
1116 Feature: use downlink to get firmware version.
1117
1118 (% style="color:#037691" %)**Downlink Command: 0x26**
1119
1120 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:500px" %)
1121 |(% 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)**
1122 |(% style="width:193px" %)Get Firmware Version Info|(% style="width:57px" %)Any|(% style="width:91px" %)26|(% style="width:149px" %)2
1123
1124 * Reply to the confirmation package: 26 01
1125
1126 * Reply to non-confirmed packet: 26 00
1127
1128 Device will send an uplink after got this downlink command. With below payload:
1129
1130 Configures info payload:
1131
1132 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
1133 |(% 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**
1134 |Value|Software Type|(((
1135 Frequency
1136 Band
1137 )))|Sub-band|(((
1138 Firmware
1139 Version
1140 )))|Sensor Type|Reserve|(((
1141 [[Message Type>>||anchor="H2.3.6MessageType"]]
1142 Always 0x02
1143 )))
1144
1145 (% style="color:#037691" %)**Software Type**(%%): Always 0x03 for LSPH01
1146
1147 (% style="color:#037691" %)**Frequency Band**:
1148
1149 *0x01: EU868
1150
1151 *0x02: US915
1152
1153 *0x03: IN865
1154
1155 *0x04: AU915
1156
1157 *0x05: KZ865
1158
1159 *0x06: RU864
1160
1161 *0x07: AS923
1162
1163 *0x08: AS923-1
1164
1165 *0x09: AS923-2
1166
1167 *0xa0: AS923-3
1168
1169
1170 (% style="color:#037691" %)**Sub-Band**(%%): value 0x00 ~~ 0x08
1171
1172 (% style="color:#037691" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version
1173
1174 (% style="color:#037691" %)**Sensor Type**:
1175
1176 0x01: LSE01
1177
1178 0x02: LDDS75
1179
1180 0x03: LDDS20
1181
1182 0x04: LLMS01
1183
1184 0x05: LSPH01
1185
1186 0x06: LSNPK01
1187
1188 0x07: LDDS12
1189
1190
1191 = 4. Battery & Power Consumption =
1192
1193
1194 LSPH01 uses ER26500 + SPC1520 battery pack. See below link for detail information about the battery info and how to replace.
1195
1196 [[**Battery Info & Power Consumption Analyze**>>url:http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] .
1197
1198
1199 = 5. Use AT Command =
1200
1201 == 5.1 Access AT Commands ==
1202
1203
1204 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.
1205
1206
1207 [[image:1654593668970-604.png]]
1208
1209
1210 **Connection:**
1211
1212 (% style="background-color:yellow" %)** USB TTL GND <~-~-~-~-> GND**
1213
1214 (% style="background-color:yellow" %)** USB TTL TXD  <~-~-~-~-> UART_RXD**
1215
1216 (% style="background-color:yellow" %)** USB TTL RXD  <~-~-~-~-> UART_TXD**
1217
1218
1219 (((
1220 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:
1221 )))
1222
1223
1224 [[image:1654593712276-618.png]]
1225
1226 Valid AT Command please check [[Configure Device>>||anchor="H3.ConfigureLSPH01viaATCommandorLoRaWANDownlink"]].
1227
1228
1229 = 6. FAQ =
1230
1231 == 6.1 How to change the LoRa Frequency Bands/Region ==
1232
1233
1234 You can follow the instructions for [[how to upgrade image>>||anchor="H2.10200BFirmwareChangeLog"]].
1235 When downloading the images, choose the required image file for download. ​
1236
1237
1238 = 7. Trouble Shooting =
1239
1240 == 7.1 AT Commands input doesn't work ==
1241
1242
1243 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.
1244
1245
1246 = 8. Order Info =
1247
1248
1249 Part Number: (% style="color:blue" %)**LSPH01-XX**
1250
1251
1252 (% style="color:blue" %)**XX**(%%): The default frequency band
1253
1254 * (% style="color:red" %)**AS923**(%%):  LoRaWAN AS923 band
1255 * (% style="color:red" %)**AU915**(%%): LoRaWAN AU915 band
1256 * (% style="color:red" %)**EU433**(%%): LoRaWAN EU433 band
1257 * (% style="color:red" %)**EU868**(%%): LoRaWAN EU868 band
1258 * (% style="color:red" %)**KR920**(%%): LoRaWAN KR920 band
1259 * (% style="color:red" %)**US915**(%%): LoRaWAN US915 band
1260 * (% style="color:red" %)**IN865**(%%):  LoRaWAN IN865 band
1261 * (% style="color:red" %)**CN470**(%%): LoRaWAN CN470 band
1262
1263 = 9. ​Packing Info =
1264
1265
1266 **Package Includes**:
1267
1268 * LSPH01 LoRaWAN Soil Ph Sensor x 1
1269
1270 **Dimension and weight**:
1271
1272 * Device Size: cm
1273 * Device Weight: g
1274 * Package Size / pcs : cm
1275 * Weight / pcs : g
1276
1277 = 10. ​Support =
1278
1279
1280 * 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.
1281 * 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]].