Skip to the content
2 layers135.4 × 28.4 mmMoisture Sensor, the printed circuit board in 3D

Fehler im Schlatplan!!! R7, Q1 und Q2 nicht bestücken. Verbindung von Q1/pin1 zu Q2/Pin2 wie eingezeichnet herstellen und mit GPIO ein und ausschalten.

Size
135.4 × 28.4 mm
Copper layers
2
Thickness
1.6 mm
Parts
29
Nets
32
Pads
85
Tracks, vias
144, 46
Pours
2
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
4 Mar 2026
Updated
14 Aug 2026

Overview

Moisture Sensor is an open-source printed circuit board by JakobThiessen, from the JakobThiessen/OpenThread_Sensors repository on GitHub, published under the MIT licence. It is a 2-layer board of 135.4 × 28.4 mm with 29 parts on 32 nets, routed with 144 tracks and 46 vias.

It is built around the NE555D, BAS19 and BSS123, with the BSS84 among its other parts. Its parts include 11 resistors, 6 capacitors, 3 connectors, 2 ICs and 2 diodes. It belongs with the sensors and measurement boards and the ESP32 and RISC-V boards of this library.

Main components

4

README

Hardware/Moisture_Sensor/README.md

Moisture Sensor (OpenThread) Moisture Sensor

Kapazitiver Bodenfeuchtesensor mit ESP32-H2 und Matter over Thread
Version 1.0 — April 2026

Fehler

Fehler im Schlatplan!!! R7, Q1 und Q2 nicht bestücken. Verbindung von Q1/pin1 zu Q2/Pin2 wie eingezeichnet herstellen und mit GPIO ein und ausschalten.

Übersicht

Batteriebetriebener kapazitiver Bodenfeuchtesensor für den Einsatz im Smart Home. Die Kommunikation erfolgt drahtlos über Matter over Thread mittels eines ESP32-H2 Supermini Moduls.

Das Sensordesign misst die Bodenfeuchte kapazitiv über eine interdigitale Elektrodenstruktur auf der PCB-Sonde und nutzt einen NE555 Timer zur Frequenzerzeugung. Die gemessene Frequenz wird vom ESP32-H2 ausgewertet und über das Thread-Netzwerk übermittelt.

PCB

OberseiteUnterseite
TopBottom

Abmessungen

ParameterWert
Gesamtlänge (inkl. Sonde)ca. 90 mm
Breite Elektronikteilca. 28,4 mm
Breite Sondeca. 14,2 mm

Hauptkomponenten

BauteilBeschreibung
ESP32-H2 SuperminiMikrocontroller mit IEEE 802.15.4 (Thread)
NE555DTimer-IC für kapazitive Frequenzmessung
BSS84P-Kanal MOSFET (Stromversorgungsschaltung)
BSS123N-Kanal MOSFET (Sensor-Enable-Schaltung)
BAS19Schaltdiode
3,7 V LiPoLithium-Polymer-Akku (auf der Rückseite montiert)

Signale

SignalFunktion
SensorENAktiviert die Sensorschaltung (Stromsparen)
SensorOutFrequenzausgang des NE555 → ESP32-H2
Ubat_adcBatteriespannungsmessung über ADC
IO4, IO5Weitere GPIOs des ESP32-H2

Funktionsprinzip

  1. Der ESP32-H2 aktiviert die Sensorschaltung über SensorEN (MOSFET-Schaltstufe: Q1 BSS123 → Q2 BSS84).
  2. Der NE555 erzeugt ein Rechtecksignal, dessen Frequenz von der Kapazität der Sonde abhängt.
  3. Die Sonde nutzt interdigitale Kupferflächen — eine höhere Bodenfeuchte erhöht die Kapazität und senkt die Frequenz.
  4. Der ESP32-H2 misst die Frequenz am SensorOut-Pin und berechnet den Feuchtigkeitswert.
  5. Nach der Messung wird die Sensorschaltung abgeschaltet, um Strom zu sparen.
  6. Die Batteriespannung wird über Ubat_adc überwacht (Spannungsteiler R1/R6: 2MΩ/4,7MΩ → ca. 0,55 µA Ruhestrom).
  7. Die Messwerte werden per Matter over Thread an den Thread Border Router gesendet.

Schaltungsanalyse — NE555 Astable

Timing-Beschaltung

Der NE555 ist als Astable-Multivibrator konfiguriert:

ParameterBauteilWert
Ra (VCC → Discharge)R2330 kΩ
Rb (Discharge → Threshold/Trigger)R31,6 kΩ
C (Timing-Kondensator)C3470 pF
C_probe (Sonden-Kapazität)PCB-Elektrodenvariabel
CV-Bypass (Pin 5)C610 nF
Abblock-KondensatorC4100 nF

Frequenzformel (NE555 Astable)

$$f = \frac{1{,}44}{(R_A + 2 \cdot R_B) \cdot C_{total}}$$

Mit $R_A = 330,\text{k}\Omega$, $R_B = 1{,}6,\text{k}\Omega$:

$$R_A + 2 \cdot R_B = 333{,}2,\text{k}\Omega$$

Die Gesamtkapazität setzt sich zusammen aus dem Festkondensator C3 und der variablen Sondenkapazität:

$$C_{total} = C_3 + C_{probe} = 470,\text{pF} + C_{probe}$$

Berechnete Frequenzen

ZustandC_probe (geschätzt)C_totalFrequenz
Nur C3 (kein Boden)0 pF470 pF9,19 kHz
Luft / trockene Sonde~10 pF480 pF9,00 kHz
Trockener Boden~50 pF520 pF8,31 kHz
Mäßig feucht~150 pF620 pF6,97 kHz
Nasser Boden~300 pF770 pF5,61 kHz
Gesättigt / Wasser~500 pF970 pF4,46 kHz

Erwarteter Frequenzbereich: ca. 4,5 kHz – 9,2 kHz

Duty Cycle

$$D = \frac{R_A + R_B}{R_A + 2 \cdot R_B} = \frac{331{,}6,\text{k}}{333{,}2,\text{k}} \approx 99{,}5,%$$

Das Signal ist stark asymmetrisch (sehr kurze Low-Pulse). Der ESP32-H2 sollte die Periodendauer oder Frequenz messen (z. B. per Timer-Capture), nicht das Tastverhältnis.

Bewertung (KI) — Kann das Design funktionieren?

Grundsätzlich: Ja, mit folgenden Anmerkungen:

AspektBewertung
Frequenzbereich 4,5–9,2 kHzSehr gut messbar mit ESP32-H2 Timer/Counter
AuflösungBei 12-bit Timer-Capture ausreichende Auflösung über den gesamten Bereich
Power-Gating (BSS84/BSS123)Sinnvolles Design für Batteriebetrieb
Batterie-Monitoring (2M/4,7M Teiler)Sehr stromsparend (~0,55 µA), gutes Design
Interdigitale PCB-SondeBewährtes Prinzip für kapazitive Feuchtemessung

Wichtiger Hinweis — Versorgungsspannung:

⚠️ Der klassische NE555 (bipolar) ist für min. 4,5 V spezifiziert. Bei 3,3 V Betriebsspannung kann er unzuverlässig arbeiten oder gar nicht anlaufen. Es wird empfohlen, eine CMOS-555-Variante zu verwenden (z. B. LMC555, TLC555, ICM7555), die ab 1,5 V arbeitet und zudem weniger Strom verbraucht. Der Footprint (SOIC-8) ist kompatibel.

Tipps zur Kalibrierung

  • Den Sensor in trockener Luft und in Wasser messen → Frequenz-Endwerte bestimmen.
  • Einen linearen oder polynomialen Zusammenhang zwischen Frequenz und Feuchte kalibrieren.
  • Die Sondenkapazität hängt stark von Bodenart und Temperatur ab — eine Vor-Ort-Kalibrierung ist sinnvoll.

Projektdateien

DateiInhalt
Moisture Sensor.kicad_schSchaltplan
Moisture Sensor.kicad_pcbPCB-Layout
Moisture Sensor.kicad_proKiCad-Projektdatei
Moisture Sensor.step3D-Modell der Platine
Moisture Sensor.pdfSchaltplan als PDF
lib/Bauteilbibliotheken (Symbole, Footprints, 3D-Modelle)

Voraussetzungen

  • KiCad 9.0 oder neuer
  • Thread Border Router (z. B. Apple HomePod, Google Nest Hub) für die Matter-Integration

Lizenz

Parts

29
QtyValueFootprintReferences
3100nFCapacitor_SMD:C_0603_1608MetricC2, C4, C5
210KResistor_SMD:R_0603_1608MetricR8, R11
210nFCapacitor_SMD:C_0603_1608MetricC1, C6
21MResistor_SMD:R_0603_1608MetricR5, R7
2Conn_01x02_PinConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ1, J2
2LOGOLOGOG***, G***
10R0Resistor_SMD:R_0603_1608MetricR10
1100KResistor_SMD:R_0603_1608MetricR9
110kResistor_SMD:R_0603_1608MetricR4
11k6Resistor_SMD:R_0603_1608MetricR3
12M0Resistor_SMD:R_0603_1608MetricR1
1330Resistor_SMD:R_0603_1608MetricR2
1470pFCapacitor_SMD:C_0603_1608MetricC3
14M7Resistor_SMD:R_0603_1608MetricR6
1BAS19Package_TO_SOT_SMD:SOT-23D1
1BSS123Package_TO_SOT_SMD:SOT-23Q1
1BSS84Package_TO_SOT_SMD:SOT-23Q2
1Conn_01x03_PinConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ3
1ESP32-H2-SUPERMINIlib:ESP32H2-SuperminiU1
1LEDPCM_SparkFun-LED:LED_0603_1608MetricD2
1MountingHoleMountingHole:MountingHole_2.5mmH1
1NE555DPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU3

More from JakobThiessen/OpenThread_Sensors

2
  • 2 layers52.8 × 26.5 mmFloodSensor, the printed circuit board in 3D

    FloodSensor

    JakobThiessen/OpenThread_Sensors

    Fehler im Schlatplan!!! R7, Q1 und Q2 nicht bestücken. Verbindung von Q1/pin1 zu Q2/Pin2 wie eingezeichnet herstellen und mit GPIO ein und ausschalten.

    20 partsMIT
  • 2 layers52.8 × 26.5 mmEnvSensor, the printed circuit board in 3D

    EnvSensor

    JakobThiessen/OpenThread_Sensors

    Fehler im Schlatplan!!! R7, Q1 und Q2 nicht bestücken. Verbindung von Q1/pin1 zu Q2/Pin2 wie eingezeichnet herstellen und mit GPIO ein und ausschalten.

    19 partsMIT

Similar boards

  • 4 layers60 × 60 mmCLAS Combo Breakout, the printed circuit board in 3D

    CLAS Combo Breakout

    takuhoTech/CelestNavi-Combo

    Ready-to-use GNSS+CLAS receiver with integrated loop antenna

    87 parts9MIT
  • 4 layers53.5 × 65.5 mmChipigniteExplain, the printed circuit board in 3D

    ChipigniteExplain

    efabless/chipignite_discover

    This FPGA experimentation and development board was developped for efabless chipignite workshops and labs to serve as an easy to use experimentation board and stepping stone towards ASIC digital design, allowing for…

    251 parts2Apache-2.0
  • 2 layers38 × 24 mmBMS, the printed circuit board in 3D

    BMS

    SMalasGit/2s-BMS

    A repository for a 2s lithium ion BMS that utilizes the BQ28Z620. This IC is an all-in-one chip that features battery protection, cell balancing, battery charging, battery current and voltage monitoring, and gas gauging…

    82 parts2
  • 2 layers229.7 × 135.6 mmMorse mesh v2, the printed circuit board in 3D

    Morse mesh v2

    eihli/morse-mesh

    This is the current hardware source for future Morse Mesh revisions. It is a professionally reviewed redraw of the frozen, fabricated v1 board, not a pin-compatible replacement: notably, KEYIN moved from v1 PA0 to v2…

    75 parts1
  • 4 layers50 × 53 mmTt06-fpga ICE40UP5k, the printed circuit board in 3D

    Tt06-fpga ICE40UP5k

    TinyTapeout/breakout-pcb

    Tiny Tapeout breakout PCBs

    120 parts22Apache-2.0
  • 4 layers48 × 47.7 mmBasic v1, the printed circuit board in 3D

    Basic v1

    Churrosoft/OpenEFI-PCB_next

    69 parts1MIT
  • 4 layers113 × 93.7 mmCharacterizer, the printed circuit board in 3D

    Characterizer

    patrickyeon/battery-characterizer

    battery tester/characterizer hardware, firmware.

    217 parts4
  • 2 layers53 × 30 mmRL78I1C PMOD PROG ADAPTOR ISO, the printed circuit board in 3D

    RL78I1C PMOD PROG ADAPTOR ISO

    lwray-renesas/RL78-I1C-PMOD-Programming-Adaptor---Isolated

    This piece of hardware alows connection between an E2-Lite and any of the RL78/I1C Metering PMOD's. Providing 5kv isolation.

    28 parts1MIT

Questions

How big is the Moisture Sensor PCB?

It measures 135.4 × 28.4 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Moisture Sensor use?

29 parts, built around the NE555D, BAS19, BSS123 and BSS84. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Moisture Sensor KiCad files?

From the JakobThiessen/OpenThread_Sensors repository on GitHub, at the commit this page was made from: the board is Hardware/Moisture_Sensor/Moisture Sensor.kicad_pcb and its schematic Hardware/Env_Sensor/EnvSensor.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Moisture Sensor design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).