Hello World, “Inheco ThermoShake”!#

The Inheco Thermoshake is a HeaterCoolerShaker machine that enables:

  • heating & cooling,

  • locking & unlocking, and

  • (orbital) shaking

…of plates.

  • Temperature control = 4°C to 105°C (all variants, max. 25°C difference to RT in cooling mode)

  • Variants:

    • Inheco ThermoShake RM (manufacturer link)

      • Cat. no.: 7100144

      • status: PLR-tested

      • shaking orbit = 2.0 mm

      • shaking speed = 100 - 2000 rpm

      • footprint: size_x=147 mm, size_y=104 mm, size_z=116 mm

    • Inheco ThermoShake (manufacturer link)

      • Cat. no.: 7100146

      • status: PLR-untested (should have the same API as RM)

      • shaking orbit = 2.0 mm

      • shaking speed = 100 - 2000 rpm

      • footprint: size_x=147 mm, size_y=104 mm, size_z=118 mm

    • Inheco ThermoShake AC (manufacturer link)

      • Cat. no.: 7100160 & 7100161

      • status: PLR-untested (should have the same API as RM)

      • shaking orbit = 2.0 mm

      • shaking speed = 300 - 3000 rpm

      • footprint: size_x=147 mm, size_y=104 mm, size_z=115.9 mm


Setup Instructions (Physical)#

TODO: setup instructions for physically setting up the machine.


Usage#

from pylabrobot.heating_shaking import HeaterShaker
from pylabrobot.heating_shaking import InhecoThermoShake
backend = InhecoThermoShake()
hs = HeaterShaker(
  name="HeaterShaker",
  backend=backend,
  size_x=0,
  size_y=0,
  size_z=0
)
await hs.setup()

Temperature Control#

await hs.get_temperature() # Get current temperature in C
23.2
await hs.set_temperature(37) # Temperature in degrees C
await hs.wait_for_temperature() # Wait for the temperature to stabilize

Shaking Control#

The setup() method is used to initialize the machine. 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.

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

Closing Connection to Machine#

await hs.stop()

Using Multiple Inheco Thermoshakes#

# TODO: implement control box for Inheco ThermoShake to support multiple thermoshakes on one box.
# https://github.com/PyLabRobot/pylabrobot/issues/494