pylabrobot.revvity.celigo.Celigo#

class pylabrobot.revvity.celigo.Celigo(config: CeligoConfig, device_id: str | None = None, usb_address: str | None = None, vid: int = 1027, pid: int = 24577, baudrate: int = 230400, latency_ms: int = 2, reply_timeout: float = 2.0, move_timeout: float = 30.0, lucam_sdk: str | None = None, allow_laser: bool = False, fluorescence_warmup_seconds: float = 300.0, fluorescence_power_change_interval: float = 10.0)#

Bases: object

Celigo image cytometer motion/illumination controller.

Talks to the FTDI-based USB-IO board over serial. Exposes stage/Z motion in millimeters, drawer open/close (stage eject/load), imaging-channel selection (brightfield + fluorescence), galvo steering, and the board’s digital/analog IO and barcode reader. Load an instrument’s configuration with CeligoConfig.from_install() and pass the result as config.

Attributes

beam_expander

camera_filter

can_change_fluorescence_power

controller_firmware_version

The identified controller-board firmware version, if setup has reached identification.

dichroic_filter

excitation_filter

excitation_nd_filter

fluorescence_lamp_ready

fluorescence_warmup_remaining

Seconds remaining in the configured fluorescence-lamp warm-up interval.

magnification_changer

x_axis

y_axis

z_axis

Methods

__init__(config[, device_id, usb_address, ...])

abort_controller_operation()

Abort the current controller command.

acquire(well, channel[, exposure_ms, gain, ...])

Acquire one FOV and extinguish illumination before returning.

auto_exposure([candidates_ms, ...])

Select the longest candidate exposure that is bright but not saturated.

autofocus([autofocus_method, ...])

Find focus by host-side Z stepping, as observed in the Celigo captures.

capture_frame([exposure_ms, gain, flush_frames])

Capture one image from the configured camera.

close_drawer(well)

Move the stage under the optics using calibrated plate/well coordinates.

close_drawer_to_sample_mm(x_mm, y_mm)

Safely close the drawer to a calibrated sample-relative X/Y coordinate.

execute(plan)

Execute the exact frame operations in a compiled scan plan.

home_imaging_axes()

Home Z for clearance, synchronize magnification, then home X, Y, and dichroic.

move_to_well(well[, retract_z, safe_z_mm])

Move the stage to a calibrated well center and return settled X/Y millimeters.

open_drawer()

Drive the stage out to the eject station so the plate is accessible.

plan(spec, *[, estimate_model])

Compile a complete scan specification without moving hardware.

pulse_camera_trigger()

Pulse the camera trigger line once.

request_analog_input_count(channel_index)

Read an analog input (ADC) channel's raw count (e.g. a sensor).

request_analog_input_voltage(channel_index, ...)

Read an analog input channel as a voltage.

request_analog_output_count(channel_index)

Read back an analog output (DAC) channel's raw count.

request_analog_output_voltage(channel_index, ...)

Read back an analog output channel as a voltage.

request_barcode()

Read the barcode reader's ASCII response.

request_camera_trigger_encoder_ticks()

Read the encoder captured by the camera-trigger diagnostics path.

request_controller_info()

Read board identity (SEND_CONFIG): device index, firmware version, UART buffer size.

request_controller_status()

Request and decode the current controller status.

request_detected_motor_addresses()

Return the EZStepper addresses reported by the controller's UARTs.

request_digital_input(bit_index)

Read one digital input line.

request_digital_input_bitmask()

Read the digital input port as a raw bitmask.

request_digital_output(bit_index)

Read back one digital output line.

request_digital_output_bitmask()

Read back the digital output register as a raw bitmask.

request_is_busy()

Whether the controller reports the BUSY flag.

request_is_camera_busy()

Read the polarity-corrected camera busy signal, or None when unavailable.

request_is_camera_integrating()

Read the camera integration signal, or None when unavailable.

request_is_safety_interlock_open()

Whether the controller reports the safety interlock switch as open.

reset_controller()

Reset the controller board.

run_self_test([run_active_checks, ...])

Run controller diagnostics; hardware-changing checks require explicit opt-in.

scan(spec, *[, estimate_model])

Compile and execute a scan specification.

scan_wells(plate, wells, *, channel[, ...])

Scan named wells with one capture per planned position.

select_channel(channel[, require_lamp_ready])

Select an imaging channel while leaving its illumination off.

send_barcode_command(command)

Send an ASCII command to the barcode reader.

send_command(opcode[, payload, retries, ...])

Send a command and return its response payload (b'' if there is none).

set_analog_output_count(channel_index, dac_count)

Write a raw 12-bit count to an analog output (DAC) channel.

set_analog_output_voltage(channel_index, ...)

Set an analog output channel to a voltage (per-channel min/max calibration).

set_brightfield_enabled(enabled)

Turn the configured brightfield illumination on or off.

set_camera_exposure_and_gain([exposure_ms, ...])

Set camera properties through the Celigo-owned camera lifecycle.

set_camera_trigger_line(asserted)

Assert or clear the camera trigger line.

set_digital_output(bit_index, high)

Drive one raw digital output line high or low.

set_fluorescence_lamp_power(enabled)

Set lamp power while enforcing the vendor's minimum toggle interval.

set_illumination_enabled(enabled[, ...])

Turn the selected channel on or off using a percentage intensity override.

set_plate(plate)

Set the plate used by drawer loading, well navigation, and acquisition.

setup()

stop()

turn_off_illumination()

Turn off every configured illumination output and fluorescence strobe.

wait_for_controller_ready([timeout, ...])

Poll status until the controller BUSY flag clears; return False on timeout.

well_position_mm(well)

Return the calibrated X/Y stage position for a named well.

Parameters:
  • config (CeligoConfig)

  • device_id (str | None)

  • usb_address (str | None)

  • vid (int)

  • pid (int)

  • baudrate (int)

  • latency_ms (int)

  • reply_timeout (float)

  • move_timeout (float)

  • lucam_sdk (str | None)

  • allow_laser (bool)

  • fluorescence_warmup_seconds (float)

  • fluorescence_power_change_interval (float)