Skip to the content
4 layers65 × 56 mmPCB impedance, the printed circuit board in 3D

PCB impedance

BenoitSchick/Fungi

The goal of this project is to measure the impedance of bags containing mycelium in order to observe how mycelium growth influences impedance.

Size
65 × 56 mm
Copper layers
4
Thickness
1.55 mm
Parts
53
Nets
161
Pads
392
Tracks, vias
965, 279
Pours
12
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
4 Mar 2026
Updated
3 Jul 2026

Overview

PCB impedance is an open-source printed circuit board by BenoitSchick, from the BenoitSchick/Fungi repository on GitHub. It is a 4-layer board of 65 × 56 mm with 53 parts on 161 nets, routed with 965 tracks and 279 vias.

It is built around the ADG726BSUZ, AD5941BCPZ-RL7 and MCP1727T-3302E/MF, with the C0805F104K1RACAUTO, RT0805BRD0710RL and RT0805BRD0710KL among its other parts. Its parts include 32 capacitors, 6 resistors, 6 ICs and 2 connectors.

Main components

7

README

README.md

Projet Fungi

The goal of this project is to measure the impedance of bags containing mycelium in order to observe how mycelium growth influences impedance. With this information, we aim to determine whether the mycelium is fully developed in the bags or if there are areas with little or no growth.

Operation

The idea is to measure the impedance of the mycelium over several weeks to observe its evolution. Each measurement consists of a frequency sweep from 1 kHz to 100 kHz, taken every 5 minutes.

The measurements from the Evaluation Board (EVAL-AD5940BIOZ) are retrieved via UART by a Raspberry Pi. The Raspberry Pi then synchronizes this data with Google Drive, making the measurements accessible from anywhere.

The measurement process is triggered by the Raspberry Pi. The reason for this is that up to four boards can be placed on the same bag, and the Raspberry Pi coordinates the measurements from each board to prevent interference.

Material used

  • Precision Impedance Analyzer - Agilent 4294A
  • ECG Electrodes
  • 4 x Bio-Electric Evaluation Board - EVAL-AD5940BIOZ
  • Raspberry pi model 3B+

Installation / Configuration

Flashing the Evaluation Board

The first step is to install the Keil IDE to compile and program the Evaluation Board by following this setup guide: https://wiki.analog.com/resources/eval/user-guides/eval-ad5940/tools/keil_setup_guide

The code used to program the evaluation board is located in the following folder: Fungi/EVAL-AD590ELCZ_Pain/ad5940-examples-master/ad5940-examples-master/examples/AD5940_BIA

This code is based on the official repository: https://github.com/analogdevicesinc/ad5940-examples

With this code, the evaluation board performs a frequency sweep to measure impedance only when it receives a trigger signal on pin GP4 from the Raspberry Pi.

Raspberry Pi Configuration

The Raspberry Pi runs two Python scripts in the background, located in:
Fungi/EVAL-AD590ELCZ_Pain/python_Code

  • com_ports.py
  • Measurement_synchronization.py

The first script retrieves data from each COM port to which the four AD5940 boards are connected. It stores the data in CSV files, one per COM port, in the folder: Fungi/EVAL-AD590ELCZ_Pain/python_Code/Measurement

The second script sends trigger pulses to the GP4 pins of the four evaluation boards to start measurements. It also coordinates measurements between the boards to avoid interference. Additionally, it synchronizes the data in the Measurement folder with a measure_impedance folder on Google Drive using rclone.

Python Installation
  • Install Python 3 and pip:
bash
sudo apt update && sudo apt upgrade -y
sudo apt install python3 python3-pip -y
  • Create and activate a virtual environment:
bash
python3 -m venv mon_env
source mon_env/bin/activate
  • Install required libraries:
bash
# Library for serial communication
pip install pyserial
# Library to control Raspberry Pi GPIO
pip install RPi.GPIO
Google Drive Remote Configuration

To synchronize the local Measurement folder with a remote folder on Google Drive, install and configure rclone:

bash
# Install rclone
sudo apt install rclone
# Configure rclone
rclone config
Create Services to Run Python Scripts

The two python scripts (com_ports.py and Measurement_synchronization.py) are run as background services on Linux. This ensures they start automatically when the Raspberry Pi powers on. The service files are located in: /etc/systemd/system

  • read_ports.service : Runs com_ports.py
bash
[Unit]
Description=Measurement System (Serial)
After=network.target

[Service]
ExecStart=/home/fr1boise/Documents/Fungi/EVAL-AD590ELCZ_Pain/python_Code/.venv/bin/python3 /home/fr1boise/Documents/Fungi/EVAL-AD590ELCZ_Pain/python_Code/com_ports.py
WorkingDirectory=/home/fr1boise/Documents/Fungi/EVAL-AD590ELCZ_Pain/python_Code
Restart=always
RestartSec=5
User=fr1boise

PrivilegesStartOnly=true

[Install]
WantedBy=multi-user.target
  • measure_syncro.service : Runs Measurement_synchronization.py
bash
[Unit]
Description=Measurement System (Synchronisation)
After=network.target

[Service]
ExecStart=/home/fr1boise/Documents/Fungi/EVAL-AD590ELCZ_Pain/python_Code/.venv/bin/python3 /home/fr1boise/Documents/Fungi/EVAL-AD590ELCZ_Pain/python_Code/Measurement_synchronization.py
WorkingDirectory=/home/fr1boise/Documents/Fungi/EVAL-AD590ELCZ_Pain/python_Code
Restart=always
RestartSec=5
User=fr1boise

PrivilegesStartOnly=true

[Install]
WantedBy=multi-user.target
  • Commands to enable and start a service:
bash
sudo systemctl enable name.service
sudo systemctl start name.service

EVAL-AD777xFMCZ - Electrophysiological measurement

  • ad777.service : Runs the ad777 executable
bash
[Unit]
Description=Electrophysiological measurement (AD777)
After=network.target

[Service]
ExecStart=/home/fr1boise/Documents/Fungi/ADC/AD777_code/ad777
WorkingDirectory=/home/fr1boise/Documents/Fungi/ADC/AD777_code/
Restart=always
RestartSec=5
User=root

[Install]
WantedBy=multi-user.target
  • sync_ADC.sh : Script to synchronize data on Google Drive
bash
#!/bin/bash

mkdir -p /home/fr1boise/Documents/Fungi/adc_snapshot

rsync -a --delete --inplace \
/home/fr1boise/Documents/Fungi/ADC/AD777_code/Measurement_ADC/ \
/home/fr1boise/Documents/Fungi/adc_snapshot


rclone copy /home/fr1boise/Documents/Fungi/adc_snapshot gdrive:mesure_ADC \
  --transfers=4 \
  --fast-list \
  --drive-use-trash=false

Tailscale

Installation

  • Enable ssh server
bash
sudo raspi-config
  • Installation:
bash
curl -fsSL https://tailscale.com/install.sh | sh
  • start the Tailscale client
bash
sudo tailscale up --ssh

if it don't work :

bash
sudo tailscale up --force-reauth
  • connect to raspberry
bash
ssh fr1boise@100.98.6.121
  • Transfer file from Raspberry Pi to Laptop (Laptop and Raspberry must be added to tailscale)
bash
scp /home/fr1boise/Documents/Fungi/adc_snapshot/channel0 beuns/@100.91.175.60:/home/beuns/Documents

Parts

53
QtyValueFootprintReferences
7470nCapacitor_SMD:C_0603_1608MetricC9, C10, C14, C15, C30, C31, C32
6100nCapacitor_SMD:C_0805_2012MetricC18, C21, C22, C24, C25, C26
4100nCapacitor_SMD:C_0603_1608MetricC1, C3, C5, C7
410uCapacitor_SMD:C_0603_1608MetricC2, C4, C6, C8
410uCapacitor_SMD:C_0805_2012MetricC16, C19, C20, C23
4ADG726BSUZlib_mesure_impedance:ADG726SBUZU1, U2, U3, U5
4MountingHoleMountingHole:MountingHole_2.7mm_PadH1, H2, H3, H4
20RResistor_SMD:R_0805_2012MetricR7, R8
21kResistor_SMD:R_0805_2012MetricR5, R6
21uCapacitor_SMD:C_0805_2012MetricC13, C27
24.7uCapacitor_SMD:C_0805_2012MetricC12, C17
2TestPointTestPoint:TestPoint_Pad_D1.0mmTP1, TP2
110Resistor_SMD:R_0805_2012MetricR3
110kResistor_SMD:R_0805_2012MetricR4
115nCapacitor_SMD:C_0603_1608MetricC29
11nCapacitor_SMD:C_0603_1608MetricC11
14.7nCapacitor_SMD:C_0603_1608MetricC28
1AD5941lib_mesure_impedance:AD5941_footprintU6
1Conn_01x16_Socketlib_mesure_impedance:conn_1x16_PPPC082LFBN-RCJ6
1Conn_02x20_Odd_EvenConnector_PinSocket_2.54mm:PinSocket_2x20_P2.54mm_VerticalJ2
1LOGOlib_mesure_impedance:logo_HEIAG***
1MCP1727-3302xMFPackage_DFN_QFN:DFN-8-1EP_3x3mm_P0.65mm_EP1.55x2.4mmU7

More from BenoitSchick/Fungi

1
  • 2 layers31.1 × 36 mmPCB impedance connectorBoard, the printed circuit board in 3D

    PCB impedance connectorBoard

    BenoitSchick/Fungi

    The goal of this project is to measure the impedance of bags containing mycelium in order to observe how mycelium growth influences impedance.

    6 parts

Similar boards

  • 2 layers159.6 × 109.6 mmLinefollower, the printed circuit board in 3D

    Linefollower

    BardinPetr/letovo-linefollower

    130 parts
  • 2 layers100 × 75 mmAirQualityPCB, the printed circuit board in 3D

    AirQualityPCB

    leslier7/AirQualityPCB

    MAE 5220 Air Quality Board

    57 parts
  • 4 layers57.7 × 41 mmSerre, the printed circuit board in 3D

    Serre

    RubisCatty/Serre-Connecte

    Projet final du programme de Génie Électrique par Sonia Michaud

    65 parts
  • 4 layers79 × 79 mmMinuet, the printed circuit board in 3D

    Minuet

    brown-studios/minuet

    Minuet upgrades your MAXXAIR Maxxfan with a brushless DC motor, home automation features, and accessories.

    103 parts67MIT
  • 2 layers79 × 79 mmBrown studios minuet minuet 086b34, the printed circuit board in 3D

    Brown studios minuet minuet 086b34

    punkfab/pcb-corpus

    235 real KiCad boards from open-source hardware repositories, prepared as a placement and routing benchmark

    88 parts1
  • 4 layers45.6 × 131 mmPd booster-16amps, the printed circuit board in 3D

    Pd booster-16amps

    mikegoelzer/Homebrew-ECP5-SBC

    Kicad files for homebrew hobbyist computer with custom RISC-V CPU

    82 parts
  • 2 layers102 × 45 mmHELPStat V2, the printed circuit board in 3D

    HELPStat V2

    stevfu/eis_capstone

    Utilization of Electrochemical Impedance Spectroscopy for the Detection of Drugs

    51 parts1MIT

Questions

How big is the PCB impedance PCB?

It measures 65 × 56 mm and has 4 copper layers, 1.55 mm thick.

What parts does the PCB impedance use?

53 parts, built around the ADG726BSUZ, AD5941BCPZ-RL7, MCP1727T-3302E/MF and C0805F104K1RACAUTO. 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 PCB impedance KiCad files?

From the BenoitSchick/Fungi repository on GitHub, at the commit this page was made from: the board is PCB/PCB_impedance_mainBoard/PCB_impedance.kicad_pcb and its schematic PCB/PCB_impedance_connectorBoard/PCB_impedance_connectorBoard.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the PCB impedance design in my own project?

Its repository states no licence, so its author keeps all rights: ask BenoitSchick before reusing the design.