Supported today Liquid Handling

Hamilton Microlab VANTAGE Integration

Drive your liquid handler in Python, without writing a VENUS method

Aspirate and dispense on 1 mL and 5 mL channels, move plates with the IPG or CO-RE gripper, identify carriers with the IDL, and lay out the deck in code.

Supports
All models
Connects over
TCP/IP
Vendor software
None required
Runs On
Linux / Windows / MacOS

What You Can Command on the VANTAGE

Each part of the instrument is exposed as its own set of Python commands. The connector reads your VANTAGE's configuration at startup, so optional modules only show up if they're actually fitted.

Pipetting Channels

Aspirate and dispense on 1000 µL channels, with liquid level detection, per-channel positioning and custom tip types.

XL Channels

Where fitted: 5 mL channels with the same aspirate, dispense and tip handling calls, for larger-volume transfers.

Labware Transport

Move plates with the IPG plate gripper, or with the CO-RE gripper held on four adjacent pipetting channels.

IDL and Barcodes

Identify carriers and read the barcode of every container on them, and check carrier presence on the deck without moving anything.

TADM

Record per-channel pressure curves on both 1 mL and 5 mL channels, and store named limit curves to monitor against.

Covers and Lights

Lock and unlock the cover and loading tray, read the cover sensors, and set the deck light color and mode.

Run a Transfer From Python

Ordinary async Python. Version it, test it, generate it at runtime like any other code.

# bring up, arrange the deck, transfer on 8 channels, discard
from unitelabs.sdk import AsyncApiClient
from unitelabs.liquid_handling.hamilton import Vantage
from unitelabs.labware import PredefinedLiquids, Standard96Plate, StandardTrough
from unitelabs.labware.hamilton import (
PLT_CAR_L5MD_A00,
TIP_CAR_480_A00,
HamiltonTip_300,
HamiltonTipRack_300,
LiquidClass,
)

vantage = Vantage(name="Microlab Vantage", client=AsyncApiClient())
await vantage.configure()
await vantage.initialize()

tip_carrier = TIP_CAR_480_A00()
tips = HamiltonTipRack_300(filled_with=HamiltonTip_300)
tip_carrier[0] = tips
vantage.deck.add(tip_carrier, track=10)

plate_carrier = PLT_CAR_L5MD_A00()
assay = Standard96Plate()
reagent = StandardTrough()
reagent.containers[0].add_liquid(PredefinedLiquids.WATER, 150_000)
plate_carrier[0] = assay
plate_carrier[1] = reagent
vantage.deck.add(plate_carrier, track=1)

water = LiquidClass.HamiltonTip_300_Water_DispenseJet_Empty()
channels = range(8)

await vantage.pipettes.pick_up_tips_from(channels=channels, rack=tips)
await vantage.pipettes.aspirate(source=reagent, channels=channels, volume=100, liquid_class=water)
await vantage.pipettes.dispense(target=assay["A1":"H1"], channels=channels, volume=100, liquid_class=water)
await vantage.pipettes.discard_tips(channels=channels)
How connectors work

Know One Connector, Know Them All

Every instrument is found and called the same way, and the same Python drives whatever comes next. See how that scales from one instrument to a whole lab with our lab orchestration software.

One API, Every Instrument

Find it by name, then call its actions. It's the same on a liquid handler, a reader or an incubator, whatever the vendor ships underneath.

Ask a Connector What It Can Do

Modules and actions are discoverable at runtime, and parameters carry their own types, units and constraints. You don't need a PDF to find out.

One Outbound Connection

One outbound TLS connection to UniteLabs, so nothing needs opening inbound. Ports, hostnames, and setup are in the docs.

Also Works With

The same Python script can drive every instrument on the bench. A liquid handler sets up the plate, a thermal cycler can cycle it, and a reader measures it, all from one script.

FAQ

Hamilton Microlab VANTAGE

The questions automation engineers ask before integrating a VANTAGE.

Yes. With the UniteLabs connector and the liquid handling SDK you call the VANTAGE directly from Python: pick up tips, aspirate from a trough, dispense into a plate, move labware with the IPG or CO-RE gripper, and scan carriers with the IDL. It's ordinary async Python, so it can be version-controlled, tested and generated at runtime like any other code.

No. The connector talks to the VANTAGE firmware directly over TCP/IP, using the instrument's native command set, so no VENUS method sits in the loop. It exposes the instrument as a SiLA 2 service on a local gRPC port, and opens one outbound TLS connection on port 443 to your tenant.

The Microlab VANTAGE 1.3 and 2.0. On connect the connector reads the arm components and system modules and registers only what's fitted, so channel counts, XL channels, the IPG and the IDL all come from the hardware.

1000 µL pipetting channels, 5 mL XL channels, the IPG plate gripper, the CO-RE gripper on four pipetting channels, and the IDL for carrier identification and barcode reading.

Yes, on both the 1 mL and the 5 mL channels. Start and stop monitoring per channel, read the last measurement and its error, and store named limit curves on the instrument to check each transfer against.

The liquid handling SDK handles liquid classes, carriers on deck tracks, labware definitions and tip tracking. You call aspirate with a source, channels, a volume and a liquid class, and the SDK works out the rest.

Tell us what you want to automate

Put Your VANTAGE to Work