These instructions describe how to install PyLabRobot.

Note that there are additional installation steps for using the firmware (universal) interface to Hamiltons, see below.

Installing PyLabRobot#

It is highly recommended that you install PyLabRobot in a virtual environment. virtualenv is a popular tool for doing that, but you can use any tool you like. Note that virtualenv needs to be installed separately first.

Here’s how to create a virtual environment using virtualenv:

mkdir your_project
cd your_project
python -m virtualenv env
source env/bin/activate

Using pip#

Installing from PyPI is the easiest and recommended way to install PyLabRobot.

The following will install PyLabRobot and the essential dependencies:

pip install pylabrobot

If you want to build documentation or run tests, you need install the additional dependencies. Also using pip:

pip install pylabrobot[docs]
pip install pylabrobot[testing]

There’s a multitude of other optional dependencies that you can install. Replace [docs] with one of the following items to install the desired dependencies.

  • fw: Needed for firmware control over Hamilton robots.

  • http: Needed for the HTTP backend.

  • websockets: Needed for the WebSocket backend.

  • simulation: Needed for the simulation backend.

  • venus: Needed for the VENUS backend. This is PyHamilton.

  • server: Needed for LH server, an HTTP front end to LH.

  • opentrons: Needed for the Opentrons backend.

  • plate_reading: Needed to interact with the CLARIO Star plate reader.

To install multiple dependencies, separate them with a comma:

pip install pylabrobot[fw,server]

Or install all dependencies at once:

pip install pylabrobot[all]

From source#

Alternatively, you can install PyLabRobot from source. This is particularly useful if you want to contribute to the project.

git clone
cd pylabrobot
pip install -e '.[dev]'

See for specific instructions on testing, documentation and development.

Using the firmware interface with Hamilton robots#

If you want to use the firmware version of the Hamilton driver, you need to install a backend for PyUSB. You can find the official installation instructions here. The following is a complete (and probably easier) guide for macOS, Linux and Windows.

Reminder: when you are using the firmware version, make sure to install the firmware dependencies as follows:

pip install pylabrobot[fw]

On Linux#

You should be all set!

On Mac#

You need to install libusb. You can do this using Homebrew:

brew install libusb

On Windows#


  1. Download and install Zadig.

  2. Make sure the Hamilton is connected using the USB cable and that no other software is running.

  3. Open Zadig and select “Options” -> “List All Devices”.

  1. Select “ML Star” from the list.

  1. Select “libusbK” using the arrow buttons.

  1. Click “Replace Driver”.

  1. Click “Close” to finish.


These instructions only apply if you are using VENUS on your computer!

If you ever wish to switch back from firmware command to use pyhamilton, the VENUS backend or plain VENUS, you have to replace the updated driver with the original Hamilton one.

  1. This guide is only relevant if ML Star is listed under libusbK USB Devices in the Device Manager program.

  1. If that”s the case, double click “ML Star” to open this dialog, then click “Driver”.

  1. Click “Update Driver”.

  1. Select “Browse my computer for driver software”.

  1. Select “Let me pick from a list of device drivers on my computer”.

  1. Select “Microlab STAR” and click “Next”.

  1. Click “Close” to finish.


If you get a usb.core.NoBackendError: No backend available error: this may be helpful.

If you are still having trouble, please reach out on the forum.