UniteLabs
Agilent Bravo

Tip Handling

Picking up and dropping tips with the Agilent Bravo.

In this guide a tip rack is placed on the Bravo deck. Tips can be picked up using different patterns (full 96, single column/row, and single tip) and then put back or discarded.

Prerequisites

  • A switched on Agilent Bravo device
  • A tip rack and Agilent 250 µL tips
  • A running Agilent Bravo connector
  • Basic understanding of the liquid handler class (See the Agilent Bravo tutorial)

Power On the System

Ensure that the Agilent Bravo is powered on and ready for operation. Verify that the connector is running and connected to the UniteLabs platform.

from unitelabs.sdk import AsyncApiClient
from unitelabs.liquid_handling.agilent import Bravo

client = AsyncApiClient()

# Initialize the Agilent Bravo
bravo = Bravo(
    name="Bravo",
    client=client,
)
await bravo.configure()
await bravo.initialize()
await bravo.activate()

Arrange the Deck

Place a tip rack filled with LT250 tips on deck location 1.

from unitelabs.labware.agilent.tips import AgilentTipRack_250, AgilentTip_250

tip_rack = AgilentTipRack_250(identifier="TipRack_96LT_250uL")
tip_rack.fill(AgilentTip_250)
bravo.deck.add(tip_rack, location=1)

Pick Up All 96 Tips

By default, pick_up_tips_from() with no well_offset picks up all 96 tips at once.

await bravo.pipette_head.pick_up_tips_from(
    rack=tip_rack,
    press_depth=5.8,
)

Pick Up a Single Column / Row

Use well_offset=(row, col) to shift where on the rack the head's A1 nozzle aligns with. Only nozzles that overlap with the rack will pick up tips and be available for pipetting use.

# Pick up column 12 (head A1-H1 aligns with rack A12-H12)
await bravo.pipette_head.pick_up_tips_from(
    rack=tip_rack,
    well_offset=(0, 11), # offset A1 of head 0 rows, +11 cols from A1 of rack
    press_depth=5.8,
)

# Pick up row A (head A12-H12 aligns with rack A1-H1)
await bravo.pipette_head.pick_up_tips_from(
    rack=tip_rack,
    well_offset=(-7, 0), # offset A1 of head -7 rows, 0 cols from A1 of rack
    press_depth=5.8,
)
The Bravo has a 96-nozzle head arranged in an 8×12 grid. The well_offset parameter shifts the head relative to the rack so that only the desired nozzles overlap with tip positions. For a single column, offset the column index so that one column of the head aligns with one column of the rack.

Pick Up a Single Tip

Offset both row and column so that only the head's A1 nozzle overlaps with a single rack position.

# Pick up 1 tip from H12 (head A1 at rack position H12)
await bravo.pipette_head.pick_up_tips_from(
    rack=tip_rack,
    well_offset=(7, 11), # offset A1 of head +7 rows, +11 cols from A1 of rack
    press_depth=5.8,
)

Put Down Tips

Put tips back into the rack at the same position they were picked up from. Make sure to use the same well_offset that was used during pickup.

await bravo.pipette_head.put_down_tips_to(
    rack=tip_rack,
    well_offset=(7, 11), # offset A1 of head +7 rows, +11 cols from A1 of rack
)

Discard Tips

To discard tips into a waste location, use discard_tips() with an empty deck site as the target.

# Discard to empty location 3
await bravo.pipette_head.discard_tips(bravo.deck[3])
Safety tip: The target location must be empty. The SDK will raise an error if labware is assigned to the discard location. Make sure no labware is placed at the target deck site before discarding.