I have an Octopus Soil Moisture Sensor connected to a Rasberry Pi through an MCP3008 ADC chip. The sensor is working correctly, but I have no idea what the reading values mean.

I say its working correctly because when I place the sensor in known dry soil and take a reading, I get a 'dry' result. When placed in known wet soil, I get a 'wet' result. These delineations I was able to find in this datasheet.

However, that is the only datasheet I can find, and in the Specification section we are given this table:

Sensor Input / Output Specification

My ultimate goal is to turn on either a valve or pump when the moisture content in the soil drops below a certain percentage of either weight or volume (SI units of either grams / gram or inches / inch, which are the units mostly used in the industry). I have found scholarly articles which contain easy to use equations for converting between different units of measurement, including going from a dielectric constant measurement to % Moisture Content.

I believe the output value is either somehow related to the drop in voltage observed or an indirect measurement of resistance, but I cannot be sure. Without some kind of units I cannot perform any calculations to obtain the result in the units I desire. According to this, correct values of the dielectric constant should not be above ~80 or so for water.

I tried emailing the company I purchased the sensor from but without a response after 2 weeks.

The datasheet I linked above does state this:

This sensor uses the two probes to pass current through the soil, and then it reads that resistance to get the moisture level

Can I take that as meaning that the output units the sensor is giving me is in Ohm meters? If so, I find it odd that the same document doesn't also list that as the units in the specifications. Does anyone here have any experience with this sensor, or know where I can find a datasheet that provides the units it is measuring in?


1 Answer 1


It's giving you units of "wetness", from 0 meaning "bone dry", and 950 meaning "sopping wet".

It's for an Arduino. It doesn't give you anything as technical as real units - just a rough scale between wet and dry. It's entirely up to you how you interpret that value.

It's about as accurate as sticking your finger in the soil to feel how wet it is.

You could divide the sampled value by 10 and use it as a percentage of sogginess.

  • 2
    \$\begingroup\$ I would suggest to bypass the intermediate units, to calibrate the sensor, to make calibration curves: output [A/D counts] vs. moisture content [g/g] or [other industry standard unit]. I can also join Majenko in criticizing the makers of the sensor for lack of metrology information. Here's another post on conductivity measurement which could provide additional outlook. \$\endgroup\$ Commented Dec 29, 2014 at 22:57
  • \$\begingroup\$ thank you both. first foray into this and thought I needed to do an expensive conversion. good to know I don't need to! I'm really only slightly let-down that my numbers aren't really going to be that accurate \$\endgroup\$ Commented Dec 29, 2014 at 23:16
  • \$\begingroup\$ I'm sure your plant won't mind. \$\endgroup\$
    – Majenko
    Commented Dec 29, 2014 at 23:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.