Skip to main content

Drivers and utilities for third-party North Robotics devices

Project description

North Devices (north_devices)

The north_devices library contains drivers and utilities for third-party devices that can be used in the North Robotics ecosystem.

Installation

Run pip install north_devices to install, or add north_devices to your requirements.txt file.

Pumps (north_devices.pumps)

Tecan Cavro (tecan_cavro)

There is a driver for the Tecan Cavro series of pumps available that uses the binary protocol to communicate with Cavro pumps on a network.

Usage

from ftdi_serial import Serial
from north_devices.pumps.tecan_cavro import TecanCavro

serial = Serial(baudrate=38400)  # Cavro pumps default to 9600
cavro = TecanCavro(serial, address=0, syringe_volume_ml=1000)

TecanCavro.home_all()  # Homes all TecanCavro pump instances

# you can perform absolute and relative moves in counts or mL, with optional velocity
cavro.move_absolute_counts(500)
cavro.move_absolute_ml(1000, velocity_counts=500)
cavro.move_relative_counts(100, velocity_counts=1000)
cavro.move_relative_ml(500)

# you can change valve positions with `move_valve`
cavro.move_valve(1)  # moves valve to port 1

# there is also a higher-level dispense method that pumps from a port to a port
cavro.dispense_ml(2000, from_port=1, to_port=2)

# you can also batch a series of commands to be sent at once
cavro.start_batch()
cavro.move_valve(1)
cavro.move_absolute_ml(500)
cavro.move_valve(2)
cavro.move_absolute_ml(0)
cavro.execute()  # you can use the `broadcast=True` flag to execute batch commands for all pumps at once

# there is also a basic loop command that can be used in a batch command
cavro.loop_start()
cavro.move_valve(1)
cavro.move_absolute_ml(500)
cavro.move_valve(2)
cavro.move_absolute_ml(0)
cavro.loop_end(10)  # loop 10 times

cavro.execute()

# multiple cavro instances can share the same serial connection if they are on a network
network = Serial(baudrate=9600)
cavro1 = TecanCavro(network, 0)
cavro2 = TecanCavro(network, 1)

# you can send batch commands to multiple cavros then execture them simultaneously
cavro1.start_batch()
cavro1.move_relative_ml(100)

cavro2.start_batch()
cavro2.move_absolute_ml(100)

TecanCavro.broadcast_execute(cavro1, cavro2)  # this will broadcast to all pumps if none given

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

north_devices-0.3.5.tar.gz (29.8 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page