pylabrobot.opentrons.flex.flex_head.FlexHead1#

class pylabrobot.opentrons.flex.flex_head.FlexHead1(flex: Flex, mount: str, pipette_id: str, channels: int, pipette_model: str, max_volume: float)#

Bases: _FlexHead

Single-channel pipette head, well-addressed.

Liquid operations use PLR coordinates and in-place commands. Tip operations name their tip spot. There is no anchor-well fan-out or nozzle layout (there is only ever one physical nozzle). _channel_tips has length 1; the sole channel is index 0.

Reuses the _FlexHead base’s transactional stage -> wire -> verify -> commit/rollback flow and hardware tip-presence verification (_verify_tips_seated/_confirm_tips_cleared) – the same machinery FlexHead8 uses for its column ops, applied to a single well instead of a column.

Verified on a real single-channel Flex (p50, robot-server API 9.1.1): motion, tip pickup and drop, liquid probe, in-place pipetting and volume mode, all against the hardware tip-presence sensor.

Methods

__init__(flex, mount, pipette_id, channels, ...)

air_gap_in_place(volume[, flow_rate])

Draw a volume uL air gap where the head already is -- one airGapInPlace command.

aspirate(target, volume[, flow_rate, ...])

Aspirate from a well or single-cavity container using PLR coordinates and in-place aspiration.

aspirate_in_place(volume[, flow_rate])

Aspirate volume uL where the head already is -- one aspirateInPlace command.

blow_out([flow_rate])

Blow out at the current position -- one blowOutInPlace command.

configure_for_volume(volume)

Put the pipette in the volume mode that suits volume uL.

default_flow_rates()

The robot's own defaults for this pipette and the tip currently on it.

discard_tips(trash)

Discard the mounted tip into the trash.

dispense(target, volume[, flow_rate, ...])

Dispense to a well or single-cavity container using PLR coordinates and in-place dispensing.

dispense_in_place(volume[, flow_rate, push_out])

Dispense volume uL where the head already is -- one dispenseInPlace command.

drop_tips(target)

Drop the mounted tip -- one wire command naming target.

get_mounted_tips()

Per-channel tip state (Case-2: no private-attribute peeking by consumers).

get_tip_presence()

Read this head's tip sensor: "present", "absent" or "unknown".

has_tip_on_hardware()

Query the Flex's hardware tip-presence sensor for THIS head's pipette.

liquid_probe(well)

Probe downward in well until the pressure sensor detects liquid; return its z (mm).

move_relative(axis, distance)

Jog one axis by distance mm from wherever the head is now.

move_to([x, y, z, speed, minimum_z_height])

Move the head to an absolute deck-frame position, holding any axis left unspecified -- ONE moveToCoordinates command.

move_to_addressable_area(addressable_area_name)

Move to a named fixture on the deck rather than to labware.

move_to_well(target[, offset, origin, ...])

Move to a well, named rather than measured -- ONE moveToWell command.

pick_up_tips(tip_spot[, offset])

Pick up one tip -- one pickUpTip command naming tip_spot.

position()

The head's current deck-frame position -- one savePosition query.

prepare_to_aspirate()

Move the plunger to where an aspirate starts from ("priming").

touch_tip(well[, radius, offset])

Touch the mounted tip to the sides of well -- one touchTip command.

try_liquid_probe(well)

Like liquid_probe but return None instead of raising when no liquid is found.

unsafe_blow_out_in_place(flow_rate)

Blow out where the head is, skipping the engine's own checks.

unsafe_drop_tip_in_place()

Drop the mounted tip where the head is, skipping the engine's own checks.

verify_tip_presence(expected_state)

Have the robot fail the command unless its tip sensor reads expected_state.

Parameters: