← back to projects
hardware · AI · ongoing

Plant electrophysiology biochip

Can a plant tell you what it needs? This project is an attempt to find out.


The idea

Plants generate measurable electrical signals — action potentials and slow wave potentials — that change in response to their environment. The hypothesis is that these signals carry enough information to distinguish between different stress conditions: water deficit, excess water, or lack of light. If that holds, a small chip connected to a plant could tell you what it needs before any visible symptoms appear.

What has been built so far

The proof of concept is working. The acquisition circuit uses an ICL7660 to generate a dual supply rail and an AD8221 instrumentation amplifier at around 500x gain to read microvolt-level differential signals between two silver/silver chloride electrodes inserted into the plant stem. An ESP32 samples the amplified signal at 100 samples per second, averaging 64 readings per sample to reduce ADC noise, and streams the data to a home server over USB. A Python script captures and visualises the signal in real time and saves timestamped CSV files for later analysis.

The system already responds to mechanical stimuli: touching or pinching a leaf produces a clear, reproducible spike within milliseconds. Electrode stability has been significantly improved by treating the silver wire with sodium hypochlorite to form an Ag/AgCl surface, which eliminates the slow potential drift that untreated silver electrodes produce.

Video

What is next

The circuit works. What is missing is data. The next step is a controlled experiment using cherry tomato plants (Solanum lycopersicum) across four conditions: control, water deficit, excess water, and light deficit. Each plant will have electrodes inserted at the start of a one-week baseline period, after which stress conditions will be applied and continuous recordings taken over four days per condition.

The goal is to build a labelled dataset of electrophysiological signals that a 1D convolutional neural network can learn to classify, trained from scratch without pretrained models. If the classifier generalises beyond the training plants, the next question is whether the same approach works as a real-time diagnostic tool: connect the electrodes, wait, and get an answer.

Files

Source code

ESP32 data acquisition firmware and Python visualisation scripts.

view on GitHub →