pylabrobot.big_bear.orbital_shaker.BigBearOrbitalShaker#
- class pylabrobot.big_bear.orbital_shaker.BigBearOrbitalShaker(port: str, num_shakers: int = 1, timeout: float = 10.0, command_delay: float = 0.1, daisy_chain_settle: float = 5.0, stop_settle: float = 6.0)#
Bases:
objectBigBear orbital shaker.
A daisy-chained orbital shaker: a single serial line drives up to 16 shaker positions (“nests”), each addressed independently by a 1-based id sent as a hexadecimal digit.
- Serial settings:
9600 baud, 8 data bits, no parity, 1 stop bit, no handshake, “r” terminator.
Commands (each addressed command is “@<id>” followed by the command chars, where <id> is the nest number in hex; a value-setting command is followed by a “@<id>?<c>” read-back query):
U enter daisy-chain mode (unaddressed) ~ report the number of shakers on the chain (unaddressed) @<id>V<rpm> set speed (60..3570 rpm) @<id>A<n> set acceleration (1..10, device scale) @<id>+ set direction clockwise @<id>- set direction counter-clockwise @<id>G start shaking @<id>S stop shaking @<id>F find home @<id>Q poll status (reply is read back) @<id>Y/X/Z serial-number fields
A rejected command or a comms failure replies “?:”.
Not verified: has NOT been tested against hardware in PyLabRobot. A warning is emitted at setup.
Methods
__init__(port[, num_shakers, timeout, ...])find_home([device_id])Home a single nest.
get_serial_number([device_id])Read the serial-number fields (Y, X, Z) of a nest and join them.
home_all()Home every nest on the chain.
setup()start_shaking(rpm[, acceleration, sequence, ...])Set the parameters for a nest and start it shaking.
stop()Stop all shakers and close the serial connection.
stop_all()Stop shaking on every nest on the chain.
stop_shaking([device_id])Stop shaking on a single nest.