Skip to the content
2 layers83 × 60 mmKiCad Pi Pico, the printed circuit board in 3D

MasterFlex Pump Controller implemented in Python, utilizing a Raspberry Pi Pico for hardware control and a PC-side GUI for pumps automation and operations.

Size
83 × 60 mm
Copper layers
2
Thickness
1.6 mm
Parts
32
Nets
60
Pads
198
Tracks, vias
175, 34
Pours
2
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
31 May 2024
Updated
21 Nov 2025

Overview

KiCad Pi Pico is an open-source printed circuit board by intel00000, from the intel00000/EChem_Auto_Potential_Optimization repository on GitHub. It is a 2-layer board of 83 × 60 mm with 32 parts on 60 nets, routed with 175 tracks and 34 vias.

It is built around the PCN2-S5-S12-S, AD5761RBRUZ and LM285LPR-2-5. Its parts include 14 resistors, 4 ICs, 4 transistors, 2 switches and 1 connector. It belongs with the RP2040 boards of this library.

Main components

3

README

README.md

Electrochemistry Reactor Controller User Interface

This repository contains a Electrochemistry Reactor Controller User Interface implemented in Python, utilizing multiple microcontrollers for hardware control and a PC-side GUI for experimental automation and operations.

See the Release Page for:

  1. the latest pre-built executable for Windows
  2. the .uf2 firmwares for microcontroller
  3. the data post-processing scripts

Screenshots of the GUI are shown below. The GUI is designed to be user-friendly, allowing users to easily set up and control the pumps, valves, and other components of the electrochemistry reactor.

New Pump Controller GUI Setup Page New Pump Controller GUI Schedule Page New Pump Controller GUI Advanced Settings Page

Table of Contents

Requirements

  • Python 3.11 or higher
  • Pip package manager

Setup (two methods)

1. Native Installation

  1. Clone the repository:
    sh
    git clone https://github.com/intel00000/EChem_Auto_Potential_Optimization.git
    cd EChem_Auto_Potential_Optimization
  2. Install required Python libraries:
    sh
    pip install -r requirements.txt -U
  3. Run the Pump Controller Demo with the following command:
    sh
    cd pump_control_gui
    python pump_control.py

2. Using a Python Virtual Environment (Recommended)

It is recommended to use a Python virtual environment for better dependency management, especially when compiling the executable. See https://docs.python.org/3/library/venv.html for more details.

Windows
  1. Open a Windows Powershell and navigate to the project directory.
  2. Create a virtual environment:
    sh
    python -m venv .venv
  3. Activate the virtual environment:
    sh
    .\.venv\Scripts\Activate.ps1
    If this fail, you might need to run this command first, see https://stackoverflow.com/questions/54776324/powershell-bug-execution-of-scripts-is-disabled-on-this-system
    sh
    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
  4. Install the required packages:
    sh
    cd pump_control_gui
    pip install -r requirements.txt
  5. To run the Pump Controller Demo, ensure the virtual environment is activated and use the following command:
    sh
    python pump_control.py
Linux & MacOS (Untested)
  1. Open a terminal and navigate to the project directory.

  2. Create a virtual environment:

    In bash, run the following commands (assuming using apt)

    sh
    sudo apt-get install python3-venv
    python3 -m venv .venv
  3. Activate the virtual environment:

    sh
    source ./.venv/bin/activate
  4. Install the required packages:

    sh
    cd pump_control_gui
    pip install -r requirements.txt
  5. To run the Pump Controller Demo, activated the virtual environment first and use the following command:

    sh
    python3 pump_control.py

Compiling to an Executable

To compile the application to a standalone executable using PyInstaller, it is recommended to use a Python virtual environment.

Windows

  1. Create and activate a virtual environment as described above.

  2. Install PyInstaller if you haven't already:

    sh
    pip install pyinstaller
    cd pump_control_gui
  3. Run PyInstaller to compile the executable:

    sh
    pyinstaller pump_control_console.spec

    OR

    sh
    pyinstaller pump_control_noconsole.spec
  4. After the process completes, you will find the executable in the dist directory.

Usage

  1. Connect your Raspberry Pi Pico to your PC via a USB cable.
  2. Open the executable or run the Python script as described above.
  3. Select the appropriate COM port and click "Connect".
  4. Load the recipe file by clicking the "Load Recipe" button and selecting your recipe file (CSV or Excel format).
  5. Click "Start" to begin the procedure. The GUI will display the progress and status of each pump.

File Descriptions

  • main.py: The main entry point for the Raspberry Pi Pico script. It calls the main function from pump_control_pico.py.

  • pump_control_pico.py: Contains the logic for controlling the pumps connected to the Raspberry Pi Pico.

  • pwm_dma_fade_onetime.py: Fade the onboard led of the pi pico using DMA & PWM without using logic core. (Currently don't work for Pi Pico W where the onboard led is controlled by the wifi chip.)

  • pump_control.py: The Python script for the PC-side GUI, allowing users to interact with the pumps, load recipes, and monitor progress.

Example Recipe File

An example of a recipe file structure (CSV or Excel):

csv
Time point (min),Pump 1,Pump 2,Pump 3,Valve 1,Valve 2,Valve 3,Notes
0,On,Off,Off,CW,CW,CW,Start initial fill with reaction solution
0.5,Off,On,On,CCW,CCW,CCW,For testing
1,On,On,Off,,,For testing
5,Off,,,,,,
125,,On,,CW,CW,CW,Post reaction emptying
130,,Off,,,,
130,,On,CCW,CCW,CCW,3x rinse with solvent
135,,Off,,,,
135,,On,CW,CW,CW,
140,,Off,,,,
140,,On,CCW,CCW,CCW,
145,,Off,,,,
145,,On,CW,CW,CW,
150,,Off,,,,
150,,On,CCW,CCW,CCW,
155,,Off,,,,
excel
Time point (min)	Pump 1	Pump 2	Pump 3	Valve 1	Valve 2	Valve 3	Notes
0	                OFF	    OFF	    OFF	    CW	    CW	    CW	    1
0.2	                ON	    ON	    ON	    CCW	    CCW	    CCW	    2
0.4	                OFF	    OFF	    OFF	    CW	    CW	    CW	    3
0.6	                ON	    ON	    ON	    CCW	    CCW	    CCW	    4
0.8	                OFF	    OFF	    OFF	    CW	    CW	    CW	    5
1	                ON	    ON	    ON	    CCW	    CCW	    CCW	    6
1.2	                OFF	    OFF	    OFF	    CW	    CW	    CW	    7
1.4	                ON	    ON	    ON	    CCW	    CCW	    CCW	    8
1.6	                OFF	    OFF	    OFF	    CW	    CW	    CW	    9
1.8	                ON	    ON	    ON	    CCW	    CCW	    CCW	    10

Ensure the Time point (min) column is sorted in ascending order.

PCB Design

Inside the control_board_Kicad folder is a KiCad project for the control board design. The control board is designed to plug into a pump with a DB25 connector which allow one pico to control one pump respectively. Using a PCB enable secure and reliable connection between the pump and the pico, and also allow for easy expansion of the system.

PCB 3D Model Actual PCB Board

Contact

For any issues or contributions, please open an issue or pull request on GitHub.

Parts

32
QtyValueFootprintReferences
134.7 kΩResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR1, R2, R3, R4, R5, R6, R7, R8, R9, R11, R12, R13, R14
42N7002Package_TO_SOT_SMD:SOT-23Q1, Q2, Q3, Q4
23-1825910-5TE_3_1825910_5:SW4_1825910-I_TECSW1, SW2
2R_Potentiometer_USPotentiometer_THT:Potentiometer_Bourns_3386W_HorizontalRV1, RV2
110 kΩResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR10
1AD5761RBRUZAD5761RBRUZ:SOP65P640X120-16NU2
1DB25_Plug_MountingHolesConnector_Dsub:DSUB-25_Male_Horizontal_P2.77x2.84mm_EdgePinOffset4.94mm_Housed_MountingHolesOffset7.48mmJ1
1LM285LPR-2-5LM285LPR_2_5:LP3U5
1LOGOUW-Madison Logo:logoG***
1PCN2-S5-S12-SPCN2_S5_S12_S:CONV_PCN2-S5-S12-SU4
1Raspberry Pi PicoRPi_Pico:RPi_Pico_SMD_THU1

The 28 most common of 32 parts.

More from intel00000/EChem_Auto_Potential_Optimization

1
  • 2 layers73 × 46 mmPotentiostat control, the printed circuit board in 3D

    Potentiostat control

    intel00000/EChem_Auto_Potential_Optimization

    MasterFlex Pump Controller implemented in Python, utilizing a Raspberry Pi Pico for hardware control and a PC-side GUI for pumps automation and operations.

    13 parts

Similar boards

  • 2 layers50 × 23.2 mmAnalog, the printed circuit board in 3D

    Analog

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    32 parts1kGPL-3.0
  • 2 layers136.8 × 54.2 mmRetropie zero, the printed circuit board in 3D

    Retropie zero

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    32 parts915
  • 2 layersMooltipass top, the printed circuit board in 3D

    Mooltipass top

    limpkin/mooltipass

    Github repository dedicated to the mooltipass project

    32 parts531
  • 2 layers16 × 20 mmESPKey, the printed circuit board in 3D

    ESPKey

    octosavvi/ESPKey

    Wiegand data logger, replay device and micro door-controller

    32 parts353GPL-2.0
  • 2 layers82 × 40.9 mmDisplay7447, the printed circuit board in 3D

    Display7447

    zmaker/arduino_cookbook

    gli sketch del nuovo progetto Arduino Cookbook e dei video di YouTube

    32 parts269
  • 2 layers40 × 38 mmShield, the printed circuit board in 3D

    Shield

    murexrobotics/electrical

    Highly integrated electronics design and printed circuit boards (PCBs) for the MATE ROV Competition. Attempt the impossible.

    32 parts192MIT
  • 2 layers47 × 39 mmQrss clock tx, the printed circuit board in 3D

    Qrss clock tx

    swharden/AVR-projects

    A collection of standalone AVR projects written in C

    32 parts184MIT
  • 2 layers30.9 × 63 mmStm32-io extend, the printed circuit board in 3D

    Stm32-io extend

    hardenedlinux/cheap-pcb

    Cheap PCB: Better understanding the current status of hardware supply chain

    32 parts170CC0-1.0

Questions

How big is the KiCad Pi Pico PCB?

It measures 83 × 60 mm and has 2 copper layers, 1.6 mm thick.

What parts does the KiCad Pi Pico use?

32 parts, built around the PCN2-S5-S12-S, AD5761RBRUZ and LM285LPR-2-5. 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 KiCad Pi Pico KiCad files?

From the intel00000/EChem_Auto_Potential_Optimization repository on GitHub, at the commit this page was made from: the board is control_board_Kicad/pump control/KiCad-Pi-Pico.kicad_pcb and its schematic control_board_Kicad/autosampler control/autosampler control.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the KiCad Pi Pico design in my own project?

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