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.
set_temperature()
: Set the temperature of the module.get_temperature()
: Get the current temperature of the module.shake()
: Set the shaking speed of the module.stop_shaking()
: Stop the shaking of the module.
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