UniteLabs
Hamilton Vantage

IDL Module

Use the IDL module for automated carrier loading and barcode scanning on the Hamilton Vantage.

The IDL (ID Loader) is the automated carrier loading module on the Hamilton Microlab Vantage. It moves carriers between the deck and a loading tray, reading carrier and container barcodes during the cycle.

The IDL is the Vantage equivalent of the Autoload on the Microlab STAR. See Using the Autoload for background on carrier loading concepts.

Prerequisites

  • A switched on Microlab Vantage device with IDL installed
  • A Hamilton carrier assigned to the deck
  • A running Microlab Vantage connector
  • Basic understanding of the liquid handler class (See liquid handling)
  • Basic understanding of liquid handler modules, deck and labware (See the liquid handler modules, deck concept and labware concept)

Basic Setup

from unitelabs.liquid_handling.hamilton import Vantage
from unitelabs.labware.hamilton import TIP_CAR_480_A00

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

Open and Close the Loading Tray

The loading tray can be opened and closed manually, for example to load or unload carriers by hand. Loading tray needs to be unlocked before opening.

await vantage.unlock_cover()
await vantage.idl.open_loading_tray()

# Load or unload a carrier manually...

await vantage.idl.close_loading_tray()

Identify a Carrier

The IDL is used for carrier identification and barcode scanning only. All carriers must already be on the deck before starting; loading carriers from the loading tray mid-run is not supported.

identify_carrier() runs a full IDL cycle for a single carrier: moves it from the deck to the loading tray, reads the carrier barcode, then returns the carrier to the deck.

tip_carrier = TIP_CAR_480_A00()
vantage.deck.add(tip_carrier, track=10)

carrier_barcode = await vantage.idl.identify_carrier(tip_carrier)

print(carrier_barcode)
# "TIP_CAR_001"

Scan Barcodes

scan_barcodes() runs the same cycle but also reads the barcodes of all containers (tubes, tip racks, plates) loaded on the carrier.

carrier_barcode, container_barcodes = await vantage.idl.scan_barcodes(tip_carrier)

print(carrier_barcode)
# "TIP_CAR_001"
print(container_barcodes)
# ["RACK_001", "RACK_002", ...]
Both identify_carrier() and scan_barcodes() accept an is_last parameter (default True). Set is_last=False when loading multiple carriers in sequence to skip the park step between cycles and improve throughput.

Move IDL

The IDL can be moved to different tracks using the move_to(). Current position can be checked using current_track(). home() moves the IDL to the home position on the right side of the deck.

await vantage.idl.move_to(track=20)
current_track = await vantage.idl.current_track()
print(f"Current track: {current_track}")
# Current track: 20

await vantage.idl.home()

Get deck presence

It is possible to check the presence of carriers on the deck without any movement. Presence sensors on the back of the deck detect the presence of carriers via small magnets that hamilton carriers are equipped with. The sensors can only check the highest track number that is occupied by the carrier, not its width. For example a tip carrier with width of 6 tracks loaded on track 10 will be detected as present on track 15.

await vantage.get_deck_presences()