Heater Shakers#

Heater-shakers are a hybrid of TemperatureController and Shaker. They are used to control the temperature of a sample while shaking it.

PyLabRobot supports the following heater shakers:

  • Inheco ThermoShake RM (tested)

  • Inheco ThermoShake (should have the same API as RM)

  • Inheco ThermoShake AC (should have the same API as RM)

Heater-shakers are controlled by the HeaterShaker class. This class takes a backend as an argument. The backend is responsible for communicating with the scale and is specific to the hardware being used.

from pylabrobot.heating_shaking import HeaterShaker
from pylabrobot.heating_shaking import InhecoThermoShake
backend = InhecoThermoShake()  # take any ScaleBackend you want
hs = HeaterShaker(backend=backend, name="HeaterShaker", size_x=0, size_y=0, size_z=0)
await hs.setup()

The setup() method is used to initialize the scale. This is where the backend will connect to the scale and perform any necessary initialization.

The HeaterShaker class has a number of methods for controlling the temperature and shaking of the sample. These are inherited from the TemperatureController and Shaker classes.

=(InhecoThermoShake)

Inheco ThermoShake#

The Inheco ThermoShaker heater shaker is controlled by the InhecoThermoShake class. This heater shaker connects using a USB-B cable.

We will reuse the same hs as above:

backend = InhecoThermoShake() # take any ScaleBackend you want
hs = HeaterShaker(backend=backend, name="HeaterShaker", size_x=0, size_y=0, size_z=0)
await hs.setup()

Shake indefinitely:

await hs.shake(speed=100)  # speed in rpm

Shake for 10 seconds:

await hs.shake(speed=100, duration=10)  # speed in rpm, duration in seconds

Get the current temperature:

await hs.get_temperature()  # get current temperature
23.2

Set the temperature to 37°C:

await hs.set_temperature(37)  # temperature in degrees C