
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.

The goal of this project is to measure the impedance of bags containing mycelium in order to observe how mycelium growth influences impedance.
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.
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.
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.
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.
The Raspberry Pi runs two Python scripts in the background, located in:
Fungi/EVAL-AD590ELCZ_Pain/python_Code
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.
sudo apt update && sudo apt upgrade -y
sudo apt install python3 python3-pip -ypython3 -m venv mon_env
source mon_env/bin/activate# Library for serial communication
pip install pyserial
# Library to control Raspberry Pi GPIO
pip install RPi.GPIOTo synchronize the local Measurement folder with a remote folder on Google Drive, install and configure rclone:
# Install rclone
sudo apt install rclone
# Configure rclone
rclone configThe 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
[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[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.targetsudo systemctl enable name.service
sudo systemctl start name.service[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#!/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=falsesudo raspi-configcurl -fsSL https://tailscale.com/install.sh | shsudo tailscale up --sshif it don't work :
sudo tailscale up --force-reauthssh fr1boise@100.98.6.121scp /home/fr1boise/Documents/Fungi/adc_snapshot/channel0 beuns/@100.91.175.60:/home/beuns/Documents| Qty | Value | Footprint | References |
|---|---|---|---|
| 7 | 470n | Capacitor_SMD:C_0603_1608Metric | C9, C10, C14, C15, C30, C31, C32 |
| 6 | 100n | Capacitor_SMD:C_0805_2012Metric | C18, C21, C22, C24, C25, C26 |
| 4 | 100n | Capacitor_SMD:C_0603_1608Metric | C1, C3, C5, C7 |
| 4 | 10u | Capacitor_SMD:C_0603_1608Metric | C2, C4, C6, C8 |
| 4 | 10u | Capacitor_SMD:C_0805_2012Metric | C16, C19, C20, C23 |
| 4 | ADG726BSUZ | lib_mesure_impedance:ADG726SBUZ | U1, U2, U3, U5 |
| 4 | MountingHole | MountingHole:MountingHole_2.7mm_Pad | H1, H2, H3, H4 |
| 2 | 0R | Resistor_SMD:R_0805_2012Metric | R7, R8 |
| 2 | 1k | Resistor_SMD:R_0805_2012Metric | R5, R6 |
| 2 | 1u | Capacitor_SMD:C_0805_2012Metric | C13, C27 |
| 2 | 4.7u | Capacitor_SMD:C_0805_2012Metric | C12, C17 |
| 2 | TestPoint | TestPoint:TestPoint_Pad_D1.0mm | TP1, TP2 |
| 1 | 10 | Resistor_SMD:R_0805_2012Metric | R3 |
| 1 | 10k | Resistor_SMD:R_0805_2012Metric | R4 |
| 1 | 15n | Capacitor_SMD:C_0603_1608Metric | C29 |
| 1 | 1n | Capacitor_SMD:C_0603_1608Metric | C11 |
| 1 | 4.7n | Capacitor_SMD:C_0603_1608Metric | C28 |
| 1 | AD5941 | lib_mesure_impedance:AD5941_footprint | U6 |
| 1 | Conn_01x16_Socket | lib_mesure_impedance:conn_1x16_PPPC082LFBN-RC | J6 |
| 1 | Conn_02x20_Odd_Even | Connector_PinSocket_2.54mm:PinSocket_2x20_P2.54mm_Vertical | J2 |
| 1 | LOGO | lib_mesure_impedance:logo_HEIA | G*** |
| 1 | MCP1727-3302xMF | Package_DFN_QFN:DFN-8-1EP_3x3mm_P0.65mm_EP1.55x2.4mm | U7 |

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.



RubisCatty/Serre-Connecte
Projet final du programme de Génie Électrique par Sonia Michaud

brown-studios/minuet
Minuet upgrades your MAXXAIR Maxxfan with a brushless DC motor, home automation features, and accessories.

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

mikegoelzer/Homebrew-ECP5-SBC
Kicad files for homebrew hobbyist computer with custom RISC-V CPU

stevfu/eis_capstone
Utilization of Electrochemical Impedance Spectroscopy for the Detection of Drugs

It measures 65 × 56 mm and has 4 copper layers, 1.55 mm thick.
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.
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.
Its repository states no licence, so its author keeps all rights: ask BenoitSchick before reusing the design.