ESP32S2 Soil Moisture Sensor with awful resolution

I have bought some of your ESP32S2 Soil Moisture Sensors and I have flashed the example source code to them, which is running, but I am having issues with the sensor for moisture/humidity.
The channel width is set to 13bit, so it such be able to produce values between 0 and 8191.
In reality it only produce values in the range 2950 (submerged in water) to 3150 (dry and floating in the air).
Those values would have been fine, if they were precise with little fluctuations, but that is not the case.
The real range is more like 3000 to 3100 and the values can fluctuate with ±50, which means I can barely differentiate the 2 outer limit values from each other and anything in between is just a wild guess.

I have tried playing around with the channel ADC channel attentuation, but that just seems to add or subtract a fixed value to all readings.
I can not seem to use another ADC channel width than 13bits without getting an error and I do not really think that would help anyway, due to the fluctuations.
I am not enough into the theroy on the capacity sensoring, so what can be done to increase the precision of the reading and maybe also increase usage of the available resolution?

Yours Wally

Sorry for reply delay.

We’ll check the issue and reply to you ASAP.

We reproduced the issue yesterday. Our engineer checked the circuit and replace a resistor to 3.9k ohm and it works much better.

  • produce value 3254 when submerged in water
  • produce value 3588 when dry and floating in the air

Please see the photo for the resistor in the circle. Can you replace the resistor yourself? You can verify the result at your end.

Thanks for the reply, Aprilpea.

I have to say I am not that big an electronic guy, but I do own a soldering iron and can use it, but that resistor is a bit smaller than what I normally work on.
I will try to get some resistors and then make a test run on of the sensors to see if its possible for me to do it myself.
I do have a problem with 2 of my sensors, since they are already mounted in the casing that came with the sensor and the mounting process did not leave much room for error, so I fear it can be hard to dismount them again.

BTW. what size/package is the resistor?

The package of the resistor is 0603.

Please update with me if you made it

when its a 0603 package, then I need to know if the package code is imperial or metric, since that exact package code exist in both line ups, but they are not equal.

When I get the info, then I will have to order the resistors and due to CoVid it might take some time, but I will return and update.

ok. so the size is 1.6mmx0.8mm

Thanks, that is a 0603 imperial = 1608 metric.
I need to find a seller here then of that size, since my normal supplier only go down to the 0805 imperial.
I will return when I have news.