SDI-12-LB x Florapulse sensor - inconsistent behaviour in communication with sensor

68 views
Skip to first unread message

Benoît Valle

unread,
Jul 27, 2024, 1:53:08 AM7/27/24
to Dragino-user
Dear Dragino users,

I already used the SDI-12-LB with the TEROS21 sensor from METER (SDI-12 version), everything is working very well for more than 1 year now.

We decided to give a try to the SDI-12-LB datalogger with FloraPulse SDI-12 sensor (documentation available here).

Unfortunately, the payload is often empty, without response from the sensor.
I only have 1 sensor on each datalogger (4 sets of 1 datalogger and 1 sensor).

Downlinks commands executed: 
"01 00 02 58": (AT+TDC=600000) transmit interval time 10 minutes "07 03 07 D0": (AT+12VT=2000) close 12V power after 2 seconds The documentation recommends using "aMC!" command then waiting 2 seconds before "ad0!" command. For a given example (sensor with adress 6, alone on SDI-12 line): My "AT+COMMAND1=6MC!,2,1,2" is "AF 01 01 07 36 4D 43 21 02 01 02 01"
Firstly I tried with an "AT+DATACUT1" command, but then deleted it and set "AT+ALLDATAMOD=1"(="AB 01" via downlink), to try something different.
Sometimes (20% of the time), everything is ok, I receive this kind of payload:
raw: "0cea01332d34302e35312b31302e30342b313436362e31364667"
decoded: {
        "adress": "3",
        "battery_mV": 3.306,
        "raw": "3-40.51+10.04+1466.16Fg",
        "raw_signal_mVV": "+10.04",
        "resistance": "+1466.1",
        "stemWaterPotential": 40.51
      }

and most of the time (80%), my payload is empty:
raw: "0cea01ffffffffffffffffffffffffffffffffffffffffffffff" decoded: {
        "battery_mV": 3.306
      }

tts_ex.png
I tried a lot of things without success, debugging via AT commands through bluetooth.
I expected ~ 140 messages per day, but only 10 to 45 were fully received in the last few days for each datalogger. I tried a lot of things :
  1. increasing the AT+12VT value, no difference,
  2. adding an "AT+COMMAND1=4I!,0,0,0" and moving the previous command to "AT+COMMAND2", the sensor does not respond every time,
  3. sending "aMC!" command through debug mode does not always come back with a complete response from the sensor.
This topic SDI-12-LB (SDI-12 to LoRaWAN converter) suggests that a firmware update (v1.1 to v1.2) could fix the SDI-12 data line in some cases.
I'm looking for a way to get data at each uplink, if you have any ideas, I'd love to hear from you.
Regards, --
Benoit



Nicolas Daüy

unread,
Jul 28, 2024, 8:53:53 PM7/28/24
to Benoît Valle, Dragino-user
Hi Benoit, 

I'm simply interested by the conversation as we tried some sensors over SDI-12 too. 
A few hypothesis when I see your raw data:
- is it possible that the sensor hasn't terminated it's measurements, maybe add a wait command if there is one, 
- or the wait timeout for return is expired or the validation check in your AT+COMMAND

Maybe Florapulse themselves could help you to solve this issue. If it's the case then would you kindly share the solution? 

Bonne journée,
Nico

--
You received this message because you are subscribed to the Google Groups "Dragino-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dragino-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dragino-user/77df4b88-548e-41cf-99e0-5a52de0a8aa5n%40googlegroups.com.


--

Nicolas DAÜY

Ingénieur Agronome - spécialisé en Technologies de l’Information et de la Communication

Option AgroTIC à Montpellier SupAgro et  Bordeaux Sciences Agro.

Benoît Valle

unread,
Jul 30, 2024, 4:14:24 PM7/30/24
to Dragino-user
Hi Nicolas,

Thank you for your reply.

If I understand correctly, there is already a “wait” in the AT+COMMAND1 : 

From the Dragino documentation:

AT+COMMANDx=var1,var2,var3,var4.

var1: SDI-12 command , for example: 0RC0!
var2: Wait timeout for return. (unit: second)
var3: Whether to send addrD0! to get return after var2 timeout. 0: Don't Send addrD0! ; 1: Send addrD0!.
var4: validation check for return. If return invalid, SDI-12-LB/LS will resend this command. Max 3 retries.

 No validation check;
1  Check if return chars are printable char(0x20 ~ 0x7E);
2  Check if there is return from SDI-12 sensor
3  Check if return pass CRC check ( SDI-12 command var1 must include CRC request);


At the moment, I have "var2=02" & "var3=01" in my AT+COMMAND, I expect a 2 sec delay before sending a 6D0! command.
I'll do some tests without validation check for the next days ("var4=0", no difference for the first hours of testing).

I added a new device in our office, this one is working well, with the same configuration as sensors in the field, but with office conditions (constant temperature).

Interestingly, I found that I had more data in the middle of the day than at night.
So I looked at the relationship between the amount of data received and the time of day (over the last 7 days).
Then I looked at the link between the number of data received and the air temperature (see attached pictures).
The device in our offices works well at temperatures below the ideal field temperatures.

I'll contact Florapulse support to talk to them, I've also added an extract from their documentation as an attachment.
I'm still investigating.

Regards,


florapulse_doc_SDI12.png
florapulse_air_temperature.png
florapulse_houroftheday.png
Reply all
Reply to author
Forward
0 new messages