Hardware/Software for a modular syringe driver.
Branch: master
Clone or download
Latest commit 8bee2b0 Aug 24, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
hardware Update materials.md Jun 6, 2017
software Minor updates Dec 21, 2016
.gitignore Initial commit Dec 20, 2016
LICENSE Initial commit Dec 20, 2016
README.md Update README.md Aug 24, 2018

README.md

Modular Syringe Driver

Welcome to the Modular Syringe Driver repository! Here, you will find all the necessary information to create your own version of this device.

Here is the finished product:

Alt img

All designs are hosted on Onshape:

For a list of all the materials you will need, please see the Materials documentation.

  • Note: A 3D printer is required to obtain some of these materials.

Modularity

The appeal of this device is its modularity. Many different additions can be designed and printed for this device. Here are a few examples of possible additions:

Alt text

Dependencies

Assembly

Please see the the Assembly documentation for information on assembly.

Example Usage

Below is an example of how to use commanduino to communicate with the syringe driver. Here we import the CommandManager which is used to communicate with the hardware via Arduino. We also import the Axis device from Commanduino which allows the syringe to be placed on an XY axis for independent movement.

Variables are set up for the individual components of the driver, such as how many mm/step the motor should move, and the maximum volume of the syringe etc. Instantiating an Axis object with the stepper information and passing it to the Syringe allows us full access to the Syringe commands.

See the Syringe software for more information on the syringe commands.

JSON Example for setting up the Linear Accelerator Actuator in commanduino:

{
  "ios" : [
    {
      "port": "/dev/tty.usbmodem1411"
    },
    {
      "port": "/dev/ttyACM0"
    },
    {
      "port": "/dev/ttyACM1"
    },
    {
      "port": "/dev/ttyACM2"
    }
  ],
  "devices": {
    "stepper": {
      "command_id": "LS1",
      "config": {
        "enabled_acceleration": false,
        "speed": 1000,
        "max_speed": 1000,
        "acceleration": 1000
      }
    }
  }
}

Python code for setting up the Syringe Driver:

from commanduino import CommandManager
from commanduino.devices.axis import Axis
from syringe import Syringe

configfile = os.path.join(HERE_PATH, 'robot_config.json')
cmdMng = CommandManager.from_configfile(configfile)

MICROSTEP = 32.0
LINEAR_STEPPER_UNIT_PER_STEP = 0.05  # mm/step
SYRINGE_UNIT_PER_MM = 250 / 59.70  # 59.70mm for 250ul
SYRINGE_MAX = 235
SYRINGE_AXIS = Axis(cmdMng.S1, LINEAR_STEPPER_UNIT_PER_STEP * SYRINGUE_UNIT_PER_MM / MICROSTEP, 0, SYRINGE_MAX)
SYRINGE = Syringe(SYRINGE_AXIS, SYRINGE_MAX)

Authors

Design and code by Jonathan Grizou, documentation by Graham Keenan, while working in the Cronin Group.

Licenses

License Hardware Software
Title Creatives Commons BY-SA GPL v3
Logo Creative Commons BY-SA GPL V3