Reference
Observable Commands
Which Hamilton STAR commands report their execution status, and what that means for your workflows.
Observable commands are supported in Hamilton STAR connector versions
>=0.8.0.Every Hamilton STAR command that moves hardware or waits on the instrument is an observable Control. While such a command runs, you can follow its execution status. The connector also keeps the status after the command ends, so a client that reconnects with the command's execution ID can check whether it finished.
What This Means for You
- Names, parameters, and results are unchanged. Awaiting a command through the UniteLabs SDK still returns its final result, and following the execution updates is optional, see UniteLabs SDK & REST API. What changed is concurrency, described below.
- Progress is reported at start and completion only. The STAR firmware does not report intermediate timing, so progress moves from 0% to 100% when the instrument confirms the command, rather than estimating the time in between.
- One execution per command at a time. A second call to a command that is still running, for example a second
Aspirate, fails with an error instead of being queued. Workflows that start the same command twice concurrently, for example withasyncio.gather, need to await the first call before sending the second. Different commands can still run at the same time, and so can the same command on different services, such asSet Y Positionon Pipette 1 and Pipette 2.Executeis the exception and queues its calls.
The connector does not support cancelling a single running command yet. To interrupt motion, call
Stop on the Device Service, which stops all motion and puts the instrument into a safe state.Observable Commands
| Service | Commands |
|---|---|
| Pipettes Service | Initialize Channels, Set X Position, Set Unsafe X Position, Set Y Positions, Set Z Positions, Set Z Positions To Safety, Set Channel Positions, Spread Channels Evenly, Aspirate, Dispense, Multiple Dispense, Pick Up Tips, Pick Up Tips To Wash, Discard Tips, Wash Tips |
| Pipette n Service (one per channel) | Set Y Position, Set Z Position, Clear Y Range, Initialize Squeezer Drive |
| Core 96 Service | Set Initialization, Set Position, Set Z Position To Safety, Pick Up Tips, Discard Tips, Aspirate, Dispense, Initialize Squeezer Drive |
| ISWAP Service | Initialize, Clear Y Range, Set Is Parked, Add X Offset, Add Y Offset, Add Z Offset, Open, Open Uninitialized, Close, Pick Up Plate, Put Down Plate, Move Plate, Collapse Gripper Arm, Read Barcode |
| Core Gripper Service | Get Paddles, Discard Paddles, Open Gripper, Pick Up Plate, Put Down Plate, Move Plate, Read Barcode |
| Core Gripper Service (with a quad gripper) | Get Quad Paddles, Discard Quad Paddles, Open Quad Gripper, Pick Up Plate With Quad, Put Down Plate With Quad, Move Plate With Quad |
| Autoload Service | Initialize, Load Carrier, Unload Carrier, Unload Carrier Finally, Take Out Carrier, Push Out Carrier, Set X Position, Set Z Position To Safety, Get Carrier Barcode |
| Heater Shaker n Service (one per port) | Set Initialization, Set Shaker Initialization, Open Plate Lock, Close Plate Lock, Start Timed Shaker, Wait For Shaker, Heat, Wait For Heater |
| Device Service | Execute, Initialize, Set X Position Right Arm, Set Unsafe X Position Right Arm, Teach Rack With Channel, Search Teach Signal |
Execute sends a raw firmware command, which may move hardware, so it is observable even when the command you send is a quick query. The quad gripper commands are only available when the connector is configured with a quad gripper.
Commands That Stay Unobservable
All other commands return as soon as the instrument answers, without execution updates. These include:
- Start and stop pairs, such as Start Shaker and Stop Shaker, Start Heater and Stop Heater, Start Tadm and Stop Tadm, and Start Temperature Recording and Stop Temperature Recording. Starting returns immediately, and the process keeps running until you stop it.
- Stop, Halt, and Resume, which have to take effect immediately.
- Reset, configuration setters, and getters for stored data.
Last updated