DIY peristaltic pump

Shannon Faley, Bradly Baer, Matthew Richardson, Taylor Larsen, and Leon M. Bellan*

Vanderbilt University, Department of Mechanical Engineering, Nashville TN, 37235, USA


Why is this useful?

Figure 1: Fully assembled peristaltic pump

The majority of microfluidic applications require an external pumping mechanism.  Multi-channel, individually addressable pumps are expensive, often large, and prone to failure when operated inside cell culture incubators at 95% humidity.  The number of experiments that can be run at a given time is limited by the availability and expense of pumps.  Perfusing artificial tissue scaffolds containing engineered vasculature requires long-term (days to weeks) continuous flow at low rates.  We designed an inexpensive (~$100 for 2 pumps, ~$70 for each additional set of 2 pumps) peristaltic pumping system using an Arduino- controlled stepper motor fitted with a custom 3D-printed pump head and laser-cut mounting bracket. Each pump has a footprint roughly that of the NEMA 17 stepper motor and is easily controlled individually using open source software.  Up to 64 motor shields can be stacked for a given Arduino Uno R3, each capable of supporting two stepper motors, and thus has the expansion potential to control 128 pumps in parallel.  We have successfully implemented two stacked motor shields driving four independent stepper motors. Flow rate is dependent upon both tubing diameter and step rate.  We found flow rates to range between ~50-250 μl/min for 1/16” tubing and ~500-1500 μl/min for 1/4″ tubing.  We anticipate that this pump design will likely prove more resilient to incubator humidity compared to standard peristaltic pump powered by DC motors.  Since implementation, these pumps have functioned without fail for 3 months (intermittent) under humid conditions. In the event of failure, however, cost of motor replacement is an economical $14.

Figure 2

What do I need?


  • Nema 17 stepper motor ($14, spec, vendor)
  • Arduino Uno R3 Controller ($25, spec, vendor)
  • Arduino Motor Shield ($20, spec, vendor)
  • M3 machine screws (4) & hex bolts (4) ($1, McMaster-Carr)
  • DB9 Male & Female Solder Connectors ($9, StarTech)
  • 18AWG 4C speaker cable ($10, Monoprice)
  • Spring steel
  • ABS Filament
  • 6-32 machine screws & square nuts (3) ($1, McMaster-Carr)


  • 3D printer
  • Laser/Metal cutter
  • Soldering iron & solder
  • Butane torch

What do I do?

Pump head fabrication:

  1. Using ABS filament, 3D print pump head from file pumphead.crt.9
  2. Cut three 15 mm (length) sections from rigid ¼” tubing to serve as rollers.
  3. Use the three 6-32 machine screws and square nuts to assemble the tubing to pump head as shown in Figure 3.

Figure 3

Mounting bracket fabrication:

  1. Using bracket template file (2000 Pump Mount v4) and laser cutting facilities, produce a mounting bracket from spring steel, or other appropriate metal.  Note that the score line bisecting the bracket is intended to be cut at a lower power.  This line is just a marker to show where to bend the bracket in the following step.
  2. Using handheld butane torch, heat mounting bracket along score line and bend with pliers.  Repeat until mounting bracket forms a right angle (see Figure 1).

Motor Electrical Wiring: (see figure 4 for example orientation)

  1. Solder motor wires to DB9 Male Connector
  2. Solder one end of speaker wire to DB9 Female Connector
  3. Connect opposite end of speaker wire to Arduino Motor shield

Figure 4 Example of connection scheme by wire color

Pump Assembly:

  1. Use M3 machine screws to attach mounting bracket to stepper motor, with corresponding hex nuts as spacers between motor and bracket.
  2. Press fit pump head onto rotor shaft.
  3. Connect motor to Arduino using DB9 connectors

Arduino/Motor Shield Assembly:

  1. Follow assembly instructions provided by  (  See also Figure 5.

Figure 5

Computer Control:

1. See online resources for easy starter code (

2. Load example code to control 2 stacked motor shields running four independent pumps simultaneously. (foursteppers_v2.ino)

3. Start pumping!  See  video clip for multi-pump demonstration:

Please click here to download the DIY Peristaltic Pump Files

Digg This
Reddit This
Stumble Now!
Share on Facebook
Bookmark this on Delicious
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)

18 Responses to “DIY peristaltic pump”

  1. Leon Bellan says:

    There seems to be some problem with links to the necessary files. For those who would like them, we are hosting the files at

    We also have code that incorporates a touchscreen interface to control the pumps; please contact me if interested.

  2. Paul Atkinson says:

    I am interested in seeing the code for the touchscreen interface. Can you also provide the part number for the touchscreen? Thank you!

  3. tfolbrecht says:

    Can we get a source or a name for the grommets holding the tubing in place in the channels of the mounting bracket?

  4. Leon Bellan says:

    There have been several requests for information about the tubing and associated connectors. The tubing and fittings shown in the picture were sourced from a similar peristaltic pump made by Traceable Products ( see accessories and tubing sets, i.e. ). We would imagine that it should be possible to assemble something similar using barbed fittings from Cole Parmer ( or McMaster-Carr ( and zip ties or hose clamps and perhaps washers if needed. It should also be possible to change the bracket pattern slightly to accommodate different fittings.

  5. Jonah says:

    I’m trying to 3d print the pump head, but the schematic is a solidworks part file and my 3d printer only accepts .STL or .gcode files. I don’t have solidworks, and as far as I could find there’s no easy way to convert from .prt to those file types. Would it be possible for someone to convert the part and make it available in one of those formats?

  6. Leon Bellan says:

    The ZIP file on our website should now include a STL file as well as the PRT file.

  7. Leon Bellan says:

    The ZIP file on our website now also includes a STL file for a 6-roller version of the pumphead that provides smoother pumping. Enjoy!

  8. Matija says:

    Hi there, although I am entirely in other bussines here in Slovenia, my hoby is just electronics, specially stepper motor drivers. Your post is just amazing. I am missing something or I just don’t see your contact info here?

  9. Brad Douglas says:


    I just wanted to ask for clarification of the tube sizing. It is 1/16″ ID or OD?

  10. Josh Carlyle says:

    I am having an issue with setting up the pump. I have cut the three section as instructed, but they just don’t fit once i try to put up the machine. Any ideas? link

  11. Darwin says:

    I’m attempting to download the files for the pump head, but the files seem to be missing.

  12. The main purpose of technical education is to generate technical mind that could resolve any issue regarding technicality.

  13. Glen Chung says:

    Regarding comment #4, I have found the tube fitting assembly for a much lower price at VWR: Item # 36934-128:

    Thank you for these valuable instructions.


  14. Erik says:

    Where can I get a copy of the touchscreen code mentioned above?

Leave a Reply