Line 155: Line 155:
G1 X1 F120
G1 X1 F120
G0 X-5        ; Pull back 5 mL at maximum speed.</nowiki>
G0 X-5        ; Pull back 5 mL at maximum speed.</nowiki>
===Old Method for Controller: Connection and Calibration with a Raspberry Pi===
{| style="margin:auto;"
|- style="vertical-align:top;"
|[[File:MOST_calibration_materials.JPG|thumb|400px|alt=Necessary tools|Items to connect and control the syringe pump.]]
{|class="wikitable" style="margin:auto"
|+Controller
|-
|two ethernet cables
|-
|raspberry pi (case optional)
|-
|micro-USB adaptor cable
|-
|(possibly wireless) router
|}
|}
{{clear}}
First you need to install the software on the Raspberry Pi.  If you have previously done a manual install: remove /usr/local/sbin/pump-server and the line referencing it in /etc/rc.local from the Raspberry Pi.
On the Raspberry Pi, open /etc/apt/sources.list and add the line:
deb [arch=all] http://wijnen.dtdns.net/archive sid/all/
Then run
sudo apt-get update
sudo apt-get install --allow-unauthenticated wijnen-archive-keyring
sudo apt-get update
sudo apt-get install pump-server
Next, connecting the pump and calibrating it:
#Switch the Pi off.
#[[File:MOST_cal01.JPG|thumb|right|Motor plugged into raspberry pi.]]  Plug the motor into the raspberry pi. If the motor is plugged in the wrong way the pump will push when it is told to pull, so then you will want to turn the plug around. '''NOTE: Do not plug and unplug the motor from the pi if the pi is plugged in to a power source. ''' {{clear}}
#[[File:MOST_cal02.JPG|thumb|right|Micro-USB plugged into raspberry pi.]]  Using a micro-USB adaptor plug the raspberry pi into the computer. {{clear}}
#[[File:MOST_cal03.JPG|thumb|right|Raspberry pi hooked up to router.]]  Plug an ethernet cable into the raspberry pi, then connect it to the router. Then connect the router to the computer with another ethernet cable. {{clear}}
#Plug everything into an outlet and turn on the router. Look to see that your computer recognizes the network. Once it does, switch over to that network and open up your web browser. Type in the address bar: '''https://pi.local:8888'''. ''NOTE: This is only the address if a version of GNU/Linux is in use (including when a keyboard and monitor are connected to the Pi itself). We have no practical way to get the address of the Pi from a computer running Windows or MacOS, however it does work on Windows and Mac if the name or IP can be obtained; this must be used instead of '''pi.local'''.  Most routers have an administration web site which can list current clients. Consult your router manual for how to get this information.''
#[[File:MOST_cal05.JPG|thumb|right|Raspberry pi hooked up to router.]]The site that is now opened is the pump control interface.
#Set the Calibration to 1 ml/mm and set the speed to 1 ml/s.
#Pull the syringe out slightly past a big marker. Then using tiny steps, push the syringe to the bigger marker so the plunger is exactly on the mark. (Because of backlash, you want to do the entire procedure with pushing only.)
#Set the position to 0 ml.
#Push it further until you reach another marker (larger distance is better).  Make sure to do small steps at the end, in order to make sure you do it by pushing only.
#Record the current position.  The unit of this position is really mm, because a calibration value of 1 ml/mm was used.
#Divide the number of milliliters between the markers by the number of millimeters you pushed it.  This is the correct calibration value for this syringe.
#You can insert default values, including a default calibration value, in ''/etc/default/pump-server''.  Look at ''/etc/init.d/pump-server'' (but don't edit it) to see which variables can be set.


== Minimum Pump Rate==
== Minimum Pump Rate==

Revision as of 18:03, 26 May 2016


E. Hunt D80 Presentation on the Open-Source Syringe Pump
Error in widget YouTube: Unable to load template 'wiki:YouTube'

Source

Abstract

Double-pump.jpg

Template:Statusboxtop Template:Status-design Template:Status-model Template:Status-prototype Template:Status-verified You can help Appropedia by contributing to the next step in this OSAT's status. Template:Boxbottom

This article explores a new open-source method for developing and manufacturing high-quality scientific equipment suitable for use in virtually any laboratory. A syringe pump was designed using freely available open-source computer aided design (CAD) software and manufactured using an open-source RepRap 3-D printer and readily available parts. The design, bill of materials and assembly instructions are globally available to anyone wishing to use them. Details are provided covering the use of the CAD software and the RepRap 3-D printer. The use of an open-source Raspberry Pi computer as a wireless control device is also illustrated. Performance of the syringe pump was assessed and the methods used for assessment are detailed. The cost of the entire system, including the controller and web-based control interface, is on the order of 5% or less than one would expect to pay for a commercial syringe pump having similar performance. The design should suit the needs of a given research activity requiring a syringe pump including carefully controlled dosing of reagents, pharmaceuticals, and delivery of viscous 3-D printer media among other applications.

Key Words

open source hardware, open source scientific hardware

Materials and Tools

Note: This page describes the mechanical build and software installation.  The paper describes the electronics as it was originally implemented.  This method is not maintained anymore.  It is now recommended to use a 3-D printer controller such as a RAMPS or Melzi and Franklin to control the device.
Materials for syringe pump
Parts for syringe pump assembly.
Materials
Description Count
Motor End 1
Carriage 1
Plunger Holder base and tab 1
Body Holder 2
Idler End 1
NEMA17 motor 1
5mm x 5mm shaft coupling 1
625z ball bearing 2
LM6UU linear bearing 2
M3 x 10mm socket head cap screw 6
M3 x 20mm socket head cap screws 4
M3 x 40mm socket head cap screws 4
M3 hex nut 13
M5 hex nut 5
M5 threaded rod 0.2 m
6mm A2 tool steel 0.4 m
Necessary tools
Necessary tools for assembling syringe pump.
Tools
M3 allen key
3mm drill bit

How to Build an Open-source Syringe Pump

  1. Motor end mounted to motor.
    Secure motor into the motor end using 4 M3 washers and 4 M3 x 20mm socket head cap screws.
  2. Metal rods inserted in motor end.
    Insert the 2 metal rods into motor end, then secure them in place with 2 M3 nuts and 2 M3 x 10mm  socket head cap screws.
  3. Threaded rod coupled to motor.
    Insert threaded rod into the coupler halfway, the other half should be on the motor, secure it.
  4. Not hollowed-out carriage.
    Hollowed out carriage.
    Hollow out the two ends of the carriage, with a handheld drill bit or knife to make a hole in the plastic.
  5. Linear bearings and nut inserted in the carriage.
    Snap the linear bearings into place on the hollowed out ends of the carriage. Then insert an M5 nut into the nut-trap on the bottom of the carriage.
  6. Base of the plunger holder attached to carriage
    Attach the base of the Plunger holder to the carriage with 2 M3 nuts and 2 M3 x 10mm socket head cap screws.
  7. Carriage threaded onto the rods.
    Slide the carriage onto the threaded rod and make sure the two metal rods fit into the linear bearings.
  8. M5 nutes mounted on threaded rod.
    After the carriage is midway down the threaded rod, thread two M5 nuts onto the threaded rod.
  9. Bearings inserted into the idler end.
    Insert the two bearings into the circular slots in the idler end.
  10. Idler end mounted on the rods.
    Now slide the idler end onto the rods and secure it with two more M5 nuts on the end of the threaded rod. Push the two nuts already on the rod up to the idler end to secure it.
  11. Syringe in the body and plunger holders.
    Insert the syringe body into the body holders, then slide the plunger into the base of the plunger holder.
  12. Syringe in the body and plunger holders.
    Syringe in the body and plunger holders.
    Using four M3 x 40mm bolts, four M3 washers, and four M3 nuts secure the two holding pieces to the idler end of the pump. Put two nuts it the top of the holder closer to the carriage and two nuts in the bottom of the holder against the idler end.
  13. Mounted syringe.
    Insert the tab of the plunger holder on top of the plunger to secure it to the pump and prevent slipping when in use.

Controller: Connection and Calibration

This is a description for using Franklin to control the device. Latest version available for free Github.

(The original instructions are available below.)

The motor must be connected to the control board on the terminals that are intended for the first axis (normally called X). In Franklin, load the profile for the board you have, then set up the profile and calibrate the pump:

  1. Set the nuber of temps to 0, position axes to 1, and extruders and followers to 0.
    Set the nuber of temps to 0, position axes to 1, and extruders and followers to 0.
  2. Disable both limit switches.
    Disable both limit switches.
  3. Set the coupling to 100 step/mm and the speed limit to 20 mm/s.
    Set the coupling to 100 step/mm and the speed limit to 20 mm/s.
  4. Home the pump.
    Set the switch position to 0, then home the pump. This sets the current position to the switch position.
  5. Select the x position input.
    Select the x position input. Then press arrow up and down to move the pump in small steps page up and down to move it in larger steps.
  6. Change the direction, if required.
    The pump should push liquid out when moving in the positive direction. If it is moving in the wrong direction, invert it.
  7. Pull the syringe out slightly past a big marker. Then using tiny steps, push the syringe to the bigger marker so the plunger is exactly on the mark. (Because of backlash, you want to do the entire procedure with pushing only.)
  8. Click the home button to set the position to 0.
  9. Push it further until you reach another marker (larger distance is better). Make sure to do small steps at the end, in order to make sure you do it by pushing only.
  10. Record the current position.
  11. Divide the reported number of mm times the coupling by the number of milliliters between the markers. This is the correct Coupling value for this syringe.
  12. Save the profile.
    After setting the correct coupling, adjust the maximum speed to a value that works (if it is too high, the motor will skip) and name and save the profile. Also set this profile as default.
  13. Export the profile.
    Right-click on the export link and save the target to a location on your computer where you can find it. Use this file to restore the profile if you need it.
  14. Change the units.
    If you want the interface to be correct (of course you do), open the profile in a plain text editor and change the unit_name setting from mm to mL. Save it and import the new settings. Note how all the units in the interface change.

The pump is now ready to use. You can use the x position entry to move it manually, or upload G-Code which moves the X coordinate to move it in a pre-programmed pattern. A simple G-Code example is:

G91            ; Use relative positioning.
G1 X10 F600    ; Push 10 mL at 600 mL/min (10 mL/s).
G1 X1 F120     ; Push 1 mL at 100 mL/min (2 mL/s).
G4 P500        ; Wait 500 ms.
G1 X1          ; Push another mL at the same speed.
G1 X10 F600    ; Repeat.
G1 X1 F120
G0 X-5         ; Pull back 5 mL at maximum speed.

Minimum Pump Rate

The minimum pump amount is a single step of the motor; how much that is depends on the size of the syringe. Here the lead screw has a pitch of 0.8mm and the motor does 3200 microsteps per revolution, so one step is a plunger movement of 0.8mm/3200=250nm. The cross section of a 25ml syringe is around 4cm², so one step is the product of those, which is 0.1mm³=0.1μL.

There is no minimum value for the speed that the pump can go, but if you get near the step size, the flow will be in noticeable steps instead of continuous. For example, if you want 1μL/min, it will do one step every 6 seconds.

See also

Coupled Initiatives

In the News

"Another day, another phenomenal addition to the list of practical, hype-less, real, tangible, 3D printable tools that are bound to bring on some welcome changes. This time, it’s the scientific community that can sing praises and raise their glasses as they’re about to reap the benefits – and save a bundle – on 3D printed syringe pumps."
Cookies help us deliver our services. By using our services, you agree to our use of cookies.