
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.

MasterFlex Pump Controller implemented in Python, utilizing a Raspberry Pi Pico for hardware control and a PC-side GUI for pumps automation and operations.
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.
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:
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.
git clone https://github.com/intel00000/EChem_Auto_Potential_Optimization.git
cd EChem_Auto_Potential_Optimizationpip install -r requirements.txt -Ucd pump_control_gui
python pump_control.pyIt 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.
python -m venv .venv.\.venv\Scripts\Activate.ps1Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachinecd pump_control_gui
pip install -r requirements.txtpython pump_control.pyOpen a terminal and navigate to the project directory.
Create a virtual environment:
In bash, run the following commands (assuming using apt)
sudo apt-get install python3-venv
python3 -m venv .venvActivate the virtual environment:
source ./.venv/bin/activateInstall the required packages:
cd pump_control_gui
pip install -r requirements.txtTo run the Pump Controller Demo, activated the virtual environment first and use the following command:
python3 pump_control.pyTo compile the application to a standalone executable using PyInstaller, it is recommended to use a Python virtual environment.
Create and activate a virtual environment as described above.
Install PyInstaller if you haven't already:
pip install pyinstaller
cd pump_control_guiRun PyInstaller to compile the executable:
pyinstaller pump_control_console.specOR
pyinstaller pump_control_noconsole.specAfter the process completes, you will find the executable in the dist directory.
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.
An example of a recipe file structure (CSV or Excel):
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,,,,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 10Ensure the Time point (min) column is sorted in ascending order.
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.
For any issues or contributions, please open an issue or pull request on GitHub.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 13 | 4.7 kΩ | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R1, R2, R3, R4, R5, R6, R7, R8, R9, R11, R12, R13, R14 |
| 4 | 2N7002 | Package_TO_SOT_SMD:SOT-23 | Q1, Q2, Q3, Q4 |
| 2 | 3-1825910-5 | TE_3_1825910_5:SW4_1825910-I_TEC | SW1, SW2 |
| 2 | R_Potentiometer_US | Potentiometer_THT:Potentiometer_Bourns_3386W_Horizontal | RV1, RV2 |
| 1 | 10 kΩ | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R10 |
| 1 | AD5761RBRUZ | AD5761RBRUZ:SOP65P640X120-16N | U2 |
| 1 | DB25_Plug_MountingHoles | Connector_Dsub:DSUB-25_Male_Horizontal_P2.77x2.84mm_EdgePinOffset4.94mm_Housed_MountingHolesOffset7.48mm | J1 |
| 1 | LM285LPR-2-5 | LM285LPR_2_5:LP3 | U5 |
| 1 | LOGO | UW-Madison Logo:logo | G*** |
| 1 | PCN2-S5-S12-S | PCN2_S5_S12_S:CONV_PCN2-S5-S12-S | U4 |
| 1 | Raspberry Pi Pico | RPi_Pico:RPi_Pico_SMD_TH | U1 |
The 28 most common of 32 parts.

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.

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

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


octosavvi/ESPKey
Wiegand data logger, replay device and micro door-controller

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

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

swharden/AVR-projects
A collection of standalone AVR projects written in C

hardenedlinux/cheap-pcb
Cheap PCB: Better understanding the current status of hardware supply chain
It measures 83 × 60 mm and has 2 copper layers, 1.6 mm thick.
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.
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.
Its repository states no licence, so its author keeps all rights: ask intel00000 before reusing the design.