Getting started with liquid handlers
A short introduction about the basic usage of the liquid handler class.
In this guide we will import the MicrolabSTAR liquid handler class and create a connection to one of the Microlab STAR connectors. We will check the configuration of the device and run the initialization procedure.
Prerequisites:
- A switched on Microlab STAR device.
- A running Microlab STAR connector.
Liquid handler instance
The MicrolabSTAR class in the liquid handling package inherits from the LiquidHandler base class. To establish a connection to a device, we pass a client object that handles the connection to the UniteLabs API and as well as the name of the connector. In this case the connector is named "Microlab STAR".
from unitelabs.sdk import Client
from unitelabs.liquid_handling.hamilton import MicrolabSTAR
from unitelabs.inout import create_remote_connection
client = Client()
# Initialize the Hamilton Microlab STAR
hamilton = MicrolabSTAR(
transport_factory=create_remote_connection,
client=client,
name="Microlab STAR",
)
The liquid handler object has an api which can be used to call all low-level commands. Be careful when using low-level commands as many safety-checks are not active. For example: When aspirating using a low-level command, it is not checked whether the aspirate volume exceeds the tip volume!
Basic device info
First, we will check the basic device information like the firmware version and the instrument configuration.
print(await hamilton.get_firmware_version())
# 7.5S 19 2020_09_04 (GRU C0)
print(await hamilton.get_configuration())
# Configuration(
# deck_track_count = 54,
# min_x = 350,
# max_x = 1140,
# left_arm_min_y = 6,
# left_arm_max_y = 606.5,
# ...
# )
Configuration
In order to synchronize the setup in python with the setup of your actual hardware device, you can manually configure your hamilton instance. Running await hamilton.configure()
reads the configuration of the device and configures all python classes accordingly. In this mode, the hamilton can be used to arrange your deck or modify your device settings, but actual movement is forbidden as it requires an initialization. Configuration is done automatically during initialization.
Initialization
The initialization procedure calibrates the device on all axes and performs a basic system check. Make sure that the deck is unobstructed on the traverse height and that the cover is closed. You can check the minimal traverse height by accessing the hamilton.api.min_traverse_height
property. The default minimum traverse height is set to 245 mm.
await hamilton.initialize()
Note:
initialize
must always be called in the beginning for the correct setup of the system. This can save valuable time during error recovery and avoid unnecessary initialization procedures.await hamilton.is_initialized()
is used to check the initalization status.
Stop and resume
The device action can be stopped and resumed. Already started movements are stopped immediately when the stop command is executed.
await hamilton.stop()
await hamilton.resume()