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:
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.
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:
Please see the the Assembly documentation for information on assembly.
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)
Design and code by Jonathan Grizou, documentation by Graham Keenan, while working in the Cronin Group.
License | Hardware | Software |
---|---|---|
Title | Creatives Commons BY-SA | GPL v3 |
Logo |