Festo Fluid Control
festo-dev-fluid-control is a Python library for programmatic control of Festo's modular pressure-over-liquid dispensing and pipetting instruments. It provides high-level abstractions over the Festo PGVA pressure generator and VAEM valve electronics module, translating volume-based commands into calibrated valve-timing pulses.
How It Works
A pressure-over-liquid instrument pressurises a liquid reservoir with the PGVA and opens a solenoid valve via the VAEM for a precisely calibrated duration. The duration is determined by a per-channel, per-liquid-class calibration curve that maps target volume (µL) to valve opening time (ms).
The Dispenser class is the primary entry point for fixed-volume, non-aspirating applications (e.g. reagent dispensing). The Pipettor class extends this with aspirate, mix, and tip-handling operations.
Quick Start
See the Examples section for detailed walkthroughs.
Installation
With uv (Recommended)
uv is the recommended package manager for this project.
With pip
From Source (Editable Install)
Within a Virtual Environment
Dependencies
| Package | Role |
|---|---|
festo-pgva |
Driver for the PGVA pressure generator (TCP/Modbus) |
festo-vaem |
Driver for the VAEM valve electronics module (TCP/Modbus) |
festo-dev-applied-motion |
Optional motion-axis support for mounted pipettors |
The PGVA and VAEM communicate over TCP/IP using Modbus. Network addresses are specified in the configuration file.