Inheco SCILA#
The SCILA is an automated CO₂-controlled incubator from Inheco with 4 independently accessible drawers for SBS-format plates. It communicates over Ethernet using the SiLA 2 protocol.
Summary |
Image |
|---|---|
|
Inheco SCILA |
Setup#
The SCILA communicates over Ethernet using the SiLA 2 protocol. To connect, you need:
The IP address of the SCILA on your network.
(Optional) The IP address of your client machine – auto-detected if omitted.
(Optional)
gas_mixer_connected=Falseif you are operating the SCILA without an external CO₂ gas mixer attached. This silences the non-fatal CO₂-flow warning that the device emits during drawer open/close in that configuration. Defaults toTrue.
The backend starts a local HTTP server to receive asynchronous responses from the SCILA.
If you don’t know the SCILA’s IP, the bundled SiLA discovery tool will find any SiLA 1 device on the local subnet:
python -m pylabrobot.io.sila.discovery --interface <your-link-local-ip>
from pylabrobot.inheco.scila import SCILA
scila = SCILA(name="scila", scila_ip="169.254.1.117") # replace with your IP
await scila.setup()
Status Requests#
Query the overall device status ("idle", "standBy", "inError", "startup", …):
await scila.request_status()
Water level in the built-in humidification reservoir (e.g. "High", "Low", "Empty"):
await scila.request_liquid_level()
Drawer status for all 4 drawers, or a single drawer:
await scila.request_drawer_statuses()
await scila.request_drawer_status(1)
CO₂ and H₂O valve status:
await scila.request_valve_status()
CO₂ flow status:
await scila.request_co2_flow_status()
Drawer Control#
Only one drawer can be open at a time. Opening a second drawer while one is already open will raise an error.
await scila.drawers[2].open()
await scila.drawers[2].close()
Temperature Control#
The SCILA has a single temperature zone shared across all 4 drawers.
current = await scila.request_current_temperature()
print(f"{current:.1f} °C")
await scila.set_temperature(37.0)
Stop temperature control:
await scila.deactivate()
Teardown#
await scila.stop()