Skip to the content
4 layers136.2 × 25 mmPlant Health Meter, the printed circuit board in 3D
Size
136.2 × 25 mm
Copper layers
4
Thickness
1.6 mm
Parts
101
Nets
74
Pads
348
Tracks, vias
785, 258
Pours
45
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
13 Jan 2025
Updated
25 May 2025

Overview

Plant Health Meter is an open-source printed circuit board by MarkusVLA, from the MarkusVLA/Plant-Health-Meter repository on GitHub, published under the MIT licence. It is a 4-layer board of 136.2 × 25 mm with 101 parts on 74 nets, routed with 785 tracks and 258 vias.

It is built around the ESP32-C3FH4X, ADS1115IDGS and BME280, with the OPA340NA, TPS62172DSG and TCA9555RTWR(UMW) among its other parts. Its parts include 32 capacitors, 24 resistors, 10 ICs, 10 diodes and 7 connectors. It belongs with the ESP32 and RISC-V boards of this library.

Main components

12

README

README.md

Plant-health-meter

This repository contains Aalto AAN-C2009 project device hardware configuration and embedded software for a plant health monitoring system based on the ESP32c3 SoC.

Features

  • Soil moisture sensing
  • Ambient light monitoring
  • Temperature and humidity measurement
  • Battery-powered operation with charging circuit
  • Web interface for monitoring plant health

PCB

PCB design done in KiCad. alt tex alt tex Schematic: PDF

Key Components

  • ESP32-C3 microcontroller
  • BME280 temperature/humidity sensor
  • Custom capacitive soil moisture sensor
  • Photodiode and OPA340 based transimpedance amplifier
  • ADS1115 16-bit ADC for accurate measurements

Embedded software

Embedded software is written in C using the ESP-IDF (Espressif IoT Development Framework) ESP programming guide

Pin Assignments

See the schematic for detailed I/O connections and sensor bus configuration.

Setup Instructions

  1. Follow the ESP-IDF installation guide
  2. Clone this repository
  3. In the main/ folder create private_config.h file, with following definitions:
    1. #define FIREBASE_HOST "xxx.firebasedatabase.app" - url of the firebase realtime database
    2. #define FIREBASE_AUTH "" - authentication token for the firebase - (TODO: not tested yet with protected database)
  4. Set ESP32-C3 target in the idf idf.py set-target esp32c3
  5. Configure the partitions and BLE version idf.py menuconfig:
    1. Go to Partition Table → Partition Table and select Custom partition table CSV. Then set the path to partitions.csv.
    2. Go to Component Config → Bluetooth → Bluedroid BLE version and choose v4.0.
    3. Save and exit the configuration menu.
  6. Build and flash using idf.py build flash monitor

Connection Instructions

  1. By default, there are no Wi-Fi credentials set. The device will immediately enter Bluetooth setup mode on boot.

  2. For setup, you’ll need a mobile app capable of sending data over BLE, such as nRF Connect.

  3. When the device is in Bluetooth setup mode, one of its LEDs will begin blinking. You can then find the device in the app under the name:
    PLANT_SENSOR_01

  4. Press Connect to establish a Bluetooth connection.

  5. Once connected, look for Advertised Services in the device details. Find the characteristic that supports both Read and Write, and tap the up arrow (⬆️) to write data.

  6. Select UTF-8 as the encoding format and send a message with the following structure:

    text
    device_id:wifi_ssid:wifi_password

    For example:

    text
    sensor1:mywifi:secret_password
  7. After sending the credentials, the device will restart and attempt to connect to the specified Wi-Fi network.

  8. Once connected, sensor data will be sent to Firebase under the provided device_id.


Important Notes:

  • device_id can contain only letters, digits, and underscores (e.g., plant_sensor_1).
  • If the device fails to connect to Wi-Fi, it will re-enter Bluetooth setup mode on reboot.

Power Requirements

3.7V Li-ion battery or USB power

Parts

101
QtyValueFootprintReferences
18100nCapacitor_SMD:C_0402_1005MetricC3, C13, C14, C15, C17, C19, C21, C22, C23, C24, C26, C27, C29, C30, C31, C32 +2
85.1kResistor_SMD:R_0402_1005MetricR2, R3, R5, R12, R14, R15, R16, R17
610uCapacitor_SMD:C_0603_1608MetricC1, C2, C6, C7, C12, C16
5Conn_01x02Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ1, J2, J3, J4, J6
4100kResistor_SMD:R_0402_1005MetricR7, R9, R23, R24
4LEDLED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolderD1, D2, D5, D6
4TestPointTestPoint:TestPoint_Pad_D1.0mmTP1, TP2, TP3, TP4
31kResistor_SMD:R_0402_1005MetricR1, R10, R11
3ESD9B5.0ST5GDiode_SMD:D_SOD-923D3, D7, D8
210kResistor_SMD:R_0402_1005MetricR4, R20
215pCapacitor_SMD:C_0402_1005MetricC10, C11
22.2pCapacitor_SMD:C_0402_1005MetricC18, C20
222uCapacitor_SMD:C_0805_2012MetricC4, C8
2510Resistor_SMD:R_0402_1005MetricR19, R22
2LOGOLOGOG***, G***
110Resistor_SMD:R_0402_1005MetricR13
11MResistor_SMD:R_0402_1005MetricR21
11nCapacitor_SMD:C_0402_1005MetricC28
11uInductor_SMD:L_0805_2012MetricL1
12.2nInductor_SMD:L_0402_1005MetricL4
12.2nInductor_SMD:L_0603_1608MetricL2
12.2uInductor_SMD:L_1008_2520MetricL3
12.6nInductor_SMD:L_0402_1005MetricL5
1220nCapacitor_SMD:C_0402_1005MetricC25
133kResistor_SMD:R_0402_1005MetricR18
140MHzCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mmY1
1470kResistor_SMD:R_0402_1005MetricR8
1570kResistor_SMD:R_0402_1005MetricR6
1ADS1115IDGSPackage_SO:TSSOP-10_3x3mm_P0.5mmU9
1AO3401APackage_TO_SOT_SMD:SOT-23Q1
1Antenna_ShieldRF_Antenna:Texas_SWRA117D_2.4GHz_LeftAE1
1BAT54JDiode_SMD:D_SOD-323FD10
1BAT60ADiode_SMD:D_SOD-323D4
1BME280Package_LGA:Bosch_LGA-8_2.5x2.5mm_P0.65mm_ClockwisePinNumberingU8
1BPW34-SMDOptoDevice:Osram_BPW34S-SMDD9
1BootButton_Switch_SMD:SW_Push_SPST_NO_Alps_SKRKSW1
1Conn_02x08_Counter_ClockwiseConnector_PinHeader_1.27mm:PinHeader_2x08_P1.27mm_Vertical_SMDJ7
1ESP32-C3FH4XPackage_DFN_QFN:QFN-32-1EP_5x5mm_P0.5mm_EP3.7x3.7mmU6
1LOGOsilkscreen-pictures:aaltoG***
1LTC4412xS6Package_TO_SOT_SMD:TSOT-23-6U4
1OPA340NAPackage_TO_SOT_SMD:SOT-23-5U7
1ResetButton_Switch_SMD:SW_Push_SPST_NO_Alps_SKRKSW2
1TCA9555RTWRPackage_DFN_QFN:WQFN-24-1EP_4x4mm_P0.5mm_EP2.45x2.45mmU10
1TP4057Package_TO_SOT_SMD:TSOT-23-6U1
1TPS61022Package_DFN_QFN:Texas_RWU0007A_VQFN-7_2x2mm_P0.5mmU2
1TPS62172DSGPackage_SON:WSON-8-1EP_2x2mm_P0.5mm_EP0.9x1.6mm_ThermalViasU5
1USBLC6-2P6Package_TO_SOT_SMD:SOT-666U3
1USB_C_Receptacle_USB2.0_14PConnector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12J5
1~Project_Library:Moisture_sensor_padsS1

Similar boards

  • 4 layers45.8 × 30.4 mmBattle bot pcb, the printed circuit board in 3D

    Battle bot pcb

    MarkusVLA/robot-controller

    150g combat robot controller PCB and firmware

    66 parts3Apache-2.0
  • 4 layers70 × 100 mmNeural Edge, the printed circuit board in 3D

    Neural Edge

    rithylim/ESP32-P4-Neural-Edge-PCB

    140 parts1
  • 4 layers84 × 41 mmWormControl Relay15x5t15-ControlBoard, the printed circuit board in 3D

    WormControl Relay15x5t15-ControlBoard

    makerspacelt/WormControl-Relay15x5t15-ControlBoard

    Dev NOTE: before commit, run ./kibot.sh to regenerate documentation, bom, gerbers and other assets.

    93 partsCERN-OHL-S-2.0
  • 2 layers29.1 × 53.4 mmMrKoh, the printed circuit board in 3D

    MrKoh

    MrKohESP/Board

    Mr. Koh ESP32-C3 RISC-V Development Board

    47 partsGPL-3.0
  • 4 layers26 × 42 mmESP32-C3-breakout, the printed circuit board in 3D

    ESP32-C3-breakout

    vagarthgaurav/ESP32-C3-breakout-board

    A simple breakout board for the ESP32-C3 Microcontroller. It uses a chip antenna for wifi and bluetooth. It has an RGB LED on pin 10.

    47 parts
  • 4 layers52 × 60 mmPairing ESP32 C3FH4X V21 BATTERY 1000 2000 FIX8 CLEAN, the printed circuit board in 3D

    Pairing ESP32 C3FH4X V21 BATTERY 1000 2000 FIX8 CLEAN

    windmoondreamer/pairing-voice-cube

    아이가 목소리를 녹음하고, 부모가 버튼을 눌러 재생하는 장치의 회로기판 프로젝트. 80mm 큐브 케이스 · 최대 45초 녹음 · 내장 플래시 · 배터리 구동.

    66 parts
  • 4 layers118.2 × 53.2 mmNonContactHVDetector, the printed circuit board in 3D

    NonContactHVDetector

    akbar-q/Circuits-PCB-HardwareDesign

    The High Voltage Arc Detector is a non-contact RF-based sensing system that detects high-voltage electrical arcs.

    59 parts
  • 4 layers37 × 25 mmNRF52840-microstamp, the printed circuit board in 3D

    NRF52840-microstamp

    cheyao/nRF52840-microstamp

    nRF52840 Stamp for easy low powered bluetooth applications

    50 parts1

Questions

How big is the Plant Health Meter PCB?

It measures 136.2 × 25 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Plant Health Meter use?

101 parts, built around the ESP32-C3FH4X, ADS1115IDGS, BME280 and OPA340NA. 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 Plant Health Meter KiCad files?

From the MarkusVLA/Plant-Health-Meter repository on GitHub, at the commit this page was made from: the board is PCB/Plant-health-meter.kicad_pcb and its schematic PCB/LEDS.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Plant Health Meter 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).