pylabrobot.agilent.vspin.VSpin#

class pylabrobot.agilent.vspin.VSpin(name: str, device_id: str | None = None)#

Bases: object

FTDI driver for the Agilent VSpin Centrifuge.

Owns the USB connection, low-level command protocol, and hardware status queries.

Attributes

at_bucket

The bucket parked at the load position, or None if the rotor is elsewhere.

bucket_1_remainder

state

Return the current VSpin semantic-state snapshot.

Methods

__init__(name[, device_id])

close_door()

Close the centrifuge door and wait for its physical sensor.

g_to_rpm(g)

go_to_bucket1()

Present bucket 1 at the load opening.

go_to_bucket2()

Present bucket 2 at the load opening.

go_to_position(position)

Move to an absolute encoder position without claiming a presented bucket.

lock_bucket()

Lock the presented bucket and wait for its physical sensor.

lock_door()

Lock the centrifuge door and wait for its physical sensor.

open_door()

Open the centrifuge door and wait for its physical sensor.

request_amplifier_fault()

request_bucket_1_position()

Get the bucket 1 position based on calibration.

request_bucket_2_position()

Get the bucket 2 position based on calibration.

request_bucket_locked()

request_bucket_unlocked()

request_door_locked()

request_door_open()

request_home_position()

Changes during a run, but the bucket 1 position relative to it does not.

request_imbalance()

request_position()

request_positions_and_tachometer()

request_spinning()

request_tachometer()

Current speed in rpm.

reserve_transfer(bucket)

Reserve the load opening while a paired loader may enter the rotor.

send_command(cmd, expected_response_length)

Send a VSpin command and read its fixed-length response.

set_bucket_1_position_to_current()

Set the current position as bucket 1 position and save calibration.

setup()

Connect, initialize, home, and place the VSpin in its safe setup position.

spin([g, duration, acceleration, deceleration])

Start a spin cycle.

stop()

Close the VSpin transport and invalidate session-scoped state.

stop_spin([deceleration])

Ask the active spin owner to decelerate, then wait for its completion.

unlock_bucket()

Unlock the presented bucket and wait for its physical sensor.

unlock_door()

Unlock the centrifuge door and wait for its physical sensor.

Parameters:
  • name (str)

  • device_id (Optional[str])