Calibrate teachpoints on the Agilent Bravo
A fresh Bravo doesn't know where its 9 deck locations are. Each location has a teachpoint, an X, Y, and Z position in millimeters that the head moves to. The Liquid Handling SDK loads the teachpoints from the connector when it configures the Bravo, so calibrate them once before the first pipetting run, and again after the Bravo or a deck accessory moves.
Prerequisites
- An Agilent Bravo, powered on, with its connector installed and initialized
- One tip of the type you'll pipette with, for example an Agilent 250 µL tip (LT250) on a 96LT head
- A clear deck, apart from accessories that stay on it, such as a shaker
- Access to the Bravo in the Platform's Devices page or in GroundControl's Operations tab
How the axes move
| Axis | What it moves | Direction |
|---|---|---|
BravoX | The head, left and right | |
BravoY | The head, front and back | |
BravoZ | The head, up and down | 0 is the top. A positive move goes down |
BravoW | The pipettor plunger, in mm of travel | Calibration doesn't move it |
BravoG | The gripper jaws | Keep the gripper retracted while you calibrate |
BravoZg | The gripper, up and down | Keep the gripper retracted while you calibrate |
Every position is in millimeters. After homing, the head sits at the top of Z, and positions read
close to zero, for example 0.0001. That's expected, and it's the safest position to start from.
Put a tip on the A1 nozzle
- In the gripper's Movement Controller, run Retract. The head only moves with the gripper retracted.
- Put one tip on the A1 nozzle by hand. When you set the teachpoints, you name the tip type, and the connector adds that tip's length to the measured Z. The teachpoint then doesn't depend on the tip you calibrated with.
- Your hand breaks the light curtain, and the Bravo switches its motors off. Run Enable All Axes in the Device Controller before the next move. See Recover from a stop.
Bring the tip to the cross
Each deck location has a cross that marks its teachpoint. Pick a location with nothing on it, for example location 1, and note its number. You'll enter it when you set the teachpoints.
- Keep Z at the top while you move in X and Y. For larger steps, run Move By in the head's
Movement Controller with
ZandWat0, which leaves those axes where they are. For small steps, run Jog in the deck's Calibration Service onBravoXorBravoY. - Stop when the tip is right above the center of the cross. Check from the front and from the side.
- Jog
BravoZdown with a distance of1and the default velocity of10mm/s. A positive distance moves the head down. - Repeat, and wait for each jog to finish before you send the next one. The connector runs one jog at a time and rejects another while one is running.
- When the tip is a few millimeters above the cross, use smaller distances until the tip just touches its center.
Set the teachpoints
Both commands read the head's current position and take the same three inputs:
| Input | Value |
|---|---|
| Location | The deck location the tip is at, 1 to 9 |
| Tip Extension | The tip on the nozzle: LT200 or LT250 for a 96LT head, ST10, ST30, ST50, or ST70 for ST heads |
| Save To Config | true, so the teachpoints are written to config.json and survive a connector restart |
Calibrate Teachpoints sets all 9 locations from the one you're at. Use it on a fresh Bravo, or after the whole Bravo moved.
The Bravo deck is a 3 by 3 grid with fixed spacing, 186.69 mm between columns and 109.093 mm between rows. So the connector works out the other 8 positions from yours, and every location gets the same Z.
Calibrate Single Teachpoint sets only the location you're at. Use it for a location that sits higher or lower than the rest of the deck, for example one that holds a shaker or another device: bring the tip to that location's cross, then run it for that location.
Check the teachpoints
- In the deck's Calibration Service, read Teachpoints and check the X, Y, and Z of each location.
- Restart the connector and read Teachpoints again. The values should be the same, which confirms the connector saved them.
A Z value that's too low makes tip pickup fail, because the head reaches teachpoint Z plus 1.8 mm. If a tip touches the well bottom at a low dispense height, recalibrate that location's Z with Calibrate Single Teachpoint.
config.json hold the result, so leave them as the commands wrote them.Then confirm from Python that the SDK loads the teachpoints:
from unitelabs.sdk import AsyncApiClient
from unitelabs.liquid_handling.agilent import Bravo
client = AsyncApiClient()
bravo = Bravo(name="Bravo", client=client)
# configure() loads the teachpoints from the connector
await bravo.configure()
for location in range(1, 10):
print(location, bravo.deck.get_teachpoint(location))
Expected: 9 locations, each with the X, Y, and Z you saw in Teachpoints.
Set the gripper offset
If the gripper picks up plates off-center front to back, run Set Gripper Y Offset in the
gripper's Calibration Service. The offset is in millimeters, and a positive value moves the gripper
forward. The connector saves it to config.json.
Next steps
- Recover from a stop: what to do after a light-curtain break or an emergency stop.
- Tip handling: pick up and drop tips with the calibrated deck.
Last updated