Your soil sensor says 90%. Does the plant need water?

Your planter prototype has a sensor, and the screen shows a reassuringly precise percentage. What should someone do with that number? Before it becomes a watering reminder, or a command to a pump, you need to know what the scale means and what a bad reading looks like.

A useful first goal is modest: detect a repeatable change in one pot, with the probe kept in a consistent position. That is a different task from measuring the water content of any soil or deciding when every plant should be watered.

On our bench we ran an NE555-based capacitive soil probe on a GraftSense carrier from a Raspberry Pi Pico with MicroPython. We recorded two calibration references, printed live readings and put the probe in a plant pot. The raw numbers showed why a working percentage display needs more investigation before a user can rely on it.

Capacitive soil probe pushed into a potted plant, wired to a controller board lying beside the pot
Probe placement in a real pot; this shows position, not long-term plant care, waterproofing or absolute accuracy.

Give the raw signal a meaning

Signal chain: 555 oscillator, probe-dependent RC response in the soil, diode and smoothing, ADC reading, and a relative scale between dry and wet references
The percentage is the last step of a chain, and it is a position between two references, not water content.

The probe produces an analog voltage. The controller's analog-to-digital converter (ADC) turns that voltage into a number, and the driver places that number between two references labeled dry and wet. That last calculation creates the percentage.

Our dry reference was 58,222 and our wet reference 40,986, on MicroPython's read_u16() scale; lower counts meant wetter in this setup. The program mapped the dry endpoint to 0% and the wet one to 100%, and clamped anything outside that interval to the endpoints. Live readings included 40,970 (shown as 100.0%) and 42,394 (91.9%).

So 90% is a position near the wet end of this calibration. It does not mean 90% of the pot is water, that the plant has 90% of the water it needs, or that another probe would give the same figure. The driver itself describes its output as relative, not absolute soil water content.

This is practical, not academic. In a March 2024 DFRobot forum question, someone building an automatic watering system reported that one probe changed its reading while three others stayed constant. It is a different sensor and no confirmed solution was posted, but it is a reminder to check that each signal responds before fixing its meaning with calibration.

The setup, including the calibration conditions

The probe plugged into the analog connector on our Pico carrier, and the program read GP26 as its ADC input; the other signal position in the four-wire connector was unused. Power and ground are still required.

The module's schematic specifies a 5 V supply for its NE555 circuit. That is not permission to put 5 V into an RP2040 ADC input. Before reproducing the connection, measure the module's output across the intended conditions and check the controller board's input protection or scaling. A similar-looking commercial sensor may have a regulator and a specified output limit that this board does not.

For the dry reference, the probe rested in air. For the wet reference, absorbent material soaked in water covered the sensing blade. The program prompt said "water," but we did not record an immersion depth or a known soil water content. Keep the procedure and its limits together.

Each calibration step took a single ADC reading. It did not average a stable series or save the references across a restart. For a more repeatable prototype, watch several raw readings settle, then choose and record representative references. Reject identical or implausibly close endpoints: close values make the percentage amplify noise, and identical ones caused a division by zero in our driver.

After calibration, the program repeatedly read the raw count, calculated a percentage and assigned a label: below 30 was dry, below 70 moist, otherwise wet. Those are software categories, not tested watering thresholds for any plant.

Keep the raw number beside the percentage

A longer run included several raw readings of 65,535 while the percentage said 0.0%. That is the top of the returned ADC scale. We did not record what physical action caused it, so it does not prove a disconnected probe, an overvoltage or a very dry pot. It does show that the clamped percentage hid an important distinction.

Treat a reading outside the established range as something to investigate. Check the output voltage, cable, probe position and supply before treating it as a plant-care instruction. Keeping the raw value in a development log makes that possible even when the user sees a simple status.

One more detail: the driver's raw, percentage and level functions each took a fresh sample, so the three values on one printed line did not describe exactly the same instant. In a finished application, derive the display and any decision from the same accepted sample or filtered set.

The circuit explains why these checks matter. The 555 generates a repeating signal; the printed probe capacitance shapes the response after the output resistor; and a diode and smoothing parts produce the analog output. The probe is not the 555's fixed timing capacitor. We have no scope capture of the oscillator or the output range, and the TI NE555 data sheet puts conditions on supply and astable operation. Check the analog front end before turning this board into a custom design; a plausible ADC printout does not validate every component choice.

Calibrate for the arrangement you intend to use

Two endpoint readings are useful for exploring a sensor. They do not remove the effect of how the probe sits in the growing medium. If the blade moves, an air gap opens beside it, or the insertion depth changes, the material around the sensing area changes too. A handheld demo and a permanently installed planter are different measurement arrangements.

Choose a repeatable depth and position, keep the electronics and connector clear of wet material, and record what was used for each reference. DFRobot's calibration guide for its own capacitive probe makes the same distinction between the sensing portion and electronics that must stay dry. Its dimensions and voltage figures do not transfer to this board.

For the intended pot, follow normal watering and drying cycles while checking the growing medium independently, and record how the raw signal tracks the physical conditions. If you change the soil mix, placement or probe, check the relationship again. A useful reminder threshold comes from that trial, not from another board's ADC endpoints.

Do this before adding a pump. A watering controller has consequences a status display does not: a stuck reading can keep requesting water. Watering limits, a response to invalid data and a way for a person to step in each need their own design and tests. The next milestone is a reading whose meaning survives the move from bench to pot. Once that is stable, the display and reminder can say something useful instead of just looking precise.