IDL Module
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.
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
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", ...]
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()