Skip to content

PumpDispenser

Description

Represents a dispenser head tool for coordinated control of multiple peristaltic pumps.

Used to deliver specific volumes of liquid either uniformly or selectively through multiple dispense tips. Supports priming, dispensing, and emptying operations for peristaltic pump-driven systems.

Constructor

python
PumpDispenser(index, name, pump_group, dispense_tip_offsets, line_volume, waste=None)
ParameterTypeDescription
indexintTool index for the dispenser head on the machine.
namestrTool name.
pump_groupPeristalticPumpsAssociated PeristalticPumps object controlling the pumps.
dispense_tip_offsetslistList of (x, y) offsets from the dispenser reference point for each dispense tip.
line_volumeint or floatVolume (in mL) corresponding to one full tube line between the pump and dispense head.
wasteWell, optionalLocation for dumping waste liquid, if applicable.

Assertion: Number of pumps must match number of dispense tips.

Key Properties

PropertyTypeDescription
n_dispense_headsintNumber of dispense heads.
wasteWell or LocationWaste container location.
line_volumeint or floatConfigured prime volume for one tubing line.
pump_groupPeristalticPumpsLinked pump controller.

Important Methods

MethodReturnsDescription
from_config(index, pump_group, config_file, path)PumpDispenserLoad dispenser configuration from a JSON file.
add_waste(location)NoneDefine a waste basin location.
dispense(vol, location, dispense_head_index=None)NoneDispense a volume at a location using one or more dispense heads.
prime_lines(volume=None, location=None)NoneFill tubing lines with liquid to prime the system.
empty_lines(volume=None)NoneReturn line contents back to source by reversing pumps.

Method Details

From Config

python
PumpDispenser.from_config(index, pump_group, config_file, path)

Initialize a PumpDispenser instance from a JSON config file containing tip offsets, line volume, etc.

Add Waste

python
add_waste(location)

Assign a well or location to receive excess liquid from line priming or flushing.

Dispense

python
dispense(vol, location, dispense_head_index=None)

Dispense liquid through one or multiple dispense tips.

  • If vol is a list, each dispense head can have a different volume.
  • If vol is a single number and dispense_head_index is provided, that dispense head alone will dispense.
  • If vol is a single number and dispense_head_index is omitted, all heads will dispense that volume.

Moves precisely to each dispense tip’s offset before actuating the pumps.

Prime Lines

python
prime_lines(volume=None, location=None)

Fill all tubing lines by pumping forward, typically into a waste container.

  • If volume is omitted, uses line_volume preset.
  • If location is omitted, uses the assigned waste container.

Empty Lines

python
empty_lines(volume=None)

Reverse pumps to withdraw liquids from tubing lines back to the source.

Typically used to clear tubing after dispensing runs.

Usage Flow Example

python
# Initialize from config
dispenser = PumpDispenser.from_config(index=2, pump_group=pump_controller, config_file="pump_dispenser_config.json")

# Add waste basin
dispenser.add_waste(my_waste_basin)

# Prime all lines
dispenser.prime_lines()

# Dispense 2 mL from dispense head 1
dispenser.dispense(2, my_target_well, dispense_head_index=1)

# Or dispense 1 mL simultaneously from all heads
dispenser.dispense(1, my_target_well)

# After experiment, empty the lines
dispenser.empty_lines()

Important Notes

  • All dispenser tips have individual X/Y offsets relative to the tool mounting point.
  • Priming is required after startup or tubing replacement.
  • Supports flexible dispensing patterns (single, simultaneous, or unique-volume across heads).

Pre-release documentation · Internal research use only · Not authorized for redistribution.