Incorrect SDI-12 implementation (aD0!) in SenseCAP ORCH S4

In a response to the aD0! request in SDI-12, each value should at most contain 9 characters (7 digits, decimal point and sign). In ORCH S4, the last value (LUX) exceeds this limit. SDI-12 masters with a strict SDI-12 implementation fail when parsing the response - see example below from a sensor with address “4”. The LUX value of “+36223.465” contains 10 characters, hence in breach with the SDI-12 specification.

image

Hi there,
and Welcome, Are you using this specification PDF?
https://www.sdi-12.org/current_specification/SDI-12_version-1_4-Jan-10-2019.pdf
Table c3?

that number seems like it’s on the SUN, LOL ???

<values> A string of one or more data values (e.g. measurements) returned from a sensor in
response to a D or an R command; each data value is in this format:

pd.d

where:
p - the polarity sign (+ or -) (required)
d - numeric digits before the decimal point
. - the decimal point (optional)
d - numeric digits after the decimal point
the maximum number of digits for a data value is 7, even without a decimal point
the minimum number of digits for a data value (excluding the decimal point) is 1
the maximum number of characters in a data value is 9 (polarity sign + 7 digits +
the decimal point)

Have you enabled the CRC and what do you get?
Are you sending a Break command prior to the D command?

YOU see the spec doesn’t say about following the (decimal) Only the Whole digits.
So I would say technically it IS in spec. The way I read it?

it’s in compliance. or can you change the decimal places data output? from 3 to 1 or 2 digits
HTH
GL :slight_smile: PJ

like this example?


Why SDI, why not modbus. I’m sure you have seen the last page caveats.

5.3 Precautions for the use of SDI-12
(1) multiple sensors can be mounted on the sdi-12 bus, but the state maintenance of sensors should be
paid attention to and the failed sensors should be detected in time, because the failure of one sensor
may affect the normal work of the whole bus, even if other sensors are normal.
(2) Under the power supply of 3.3V, there can only be one device on the SDI-12 bus, with no influence
under other voltages.
(3) when the data collector operates the sensor, retry should be included in the logic, otherwise there will
be a certain probability that the data cannot be read due to cable interference, baud rate deviation and
other reasons.

:wink: