Low cost peristaltic pump

by Ralf, published

Low cost peristaltic pump by Ralf Feb 21, 2014
1 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps


Liked By

View All

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag


Thing Statistics

44022Views 5091Downloads Found in Engineering


A peristaltic pump that uses two cheap 28BYJ-48 stepper motors.

It's designed for 6mm ODx4mm ID silicone tubing, and is able to pump ~700ml/hr, when the steppers is driven full step unipolar. Higher flow rates might be possible if driven bipolar.


The pump is not the fastest one around, so don't print one if your basement is flooded and you need a pump to get rid of the water.

But for watering your flowers, or dosing whatever that needs to be dosed at fairly small amounts over longer periods it should be fine.

I have added top and bottom for tubing with 3mm OD and 1mm ID, it is not tested, and will most likely be painfully slow.

The steppers can be driven from a single controller, just wire one of them to run the opposite direction as the other.

I choose 2 steppers for more torque, this still being a way cheaper and simpler solution, than using a NEMA stepper with some gear reduction.

You should probably avoid printing the pump in PLA, if you plan to use it for extended times, the motors run at up to 45-50 degrees C, which might give you problems with softening of the PLA.

For smooth operation sand the inner surfaces of the pump housing where the hose is supported, and the bottom part where the bearings is supported.

Vitamins needed:
6x bearings 13x4x5 (ODBoreW)
6x M4 washers
7x M4 nuts
3x M4x20
4x M4x5
4x M4x25
6x4mm Silicone tubing, PVC tube isn't really flexible enough.

The holes for the motor screws should tapped.

I am working on a programmable controller for the thing, based on a PIC12, but don't expect anything production ready anytime soon.
Instead look around on the Internetz, there is lots of examples on how to drive these steppers.

Video of the thing running: https://www.youtube.com/watch?v=uL_5rMrd6TU

Code and schematics:

It's controlled/programmed via RS232m sequence programming isn't yet implemented, so don't mind the comments in the code about programming lines.. ;)

But speed and start up mode cam be stored in the EEPROM.

More from Engineering

view more

All Apps

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

Print through a distributed network of 3D printing enthusiasts from across the US, at a fraction of the cost of the competitors. We want to change the world for the better through technology, an...

App Info Launch App

Quickly Scale, Mirror or Cut your 3D Models

App Info Launch App

Treatstock is an online platform that offers decentralized manufacturing services such as 3D printing and CNC machining for clients all over the world. We offer free and instant access to comparati...

App Info Launch App

3D print your favourite design with NinjaPrototype, a professional 3D manufacture with consistent quality and speed.

App Info Launch App

I noticed that it is using 2 motors. Is one motor not strong enough to drive it?

hello :) nice design :)
printed it and it works very nicely
any chances for sources of stl files? i do have bunch of motors lying around but each of them is bit different,
also i would like to have main shaft supported on bearings so i could drive it using some kind of gear etc. :)

Hi, I have added the source files, remember to check tube diameter.

The pump works great with the 28BYJ stepper. The only issue I have with the design is that the fluid is not pumped in a continous speed but rather in little pushes.To improve this, an iterated design should consider that the hose is always squshed by two different ball bearing mounts at least

Nice.. And yes, in the current design, It can't be used to dose really tiny ammounts if fluid, my primary consern when designing the pump was to advoid backflow, I think it would require quite some tinkering with the current design to have 2 bearings in contact with the tube at all time, torque might also be an issue, but it could be fun to try.

Did you tested other tubings for the pump!? I'm having some trouble with the motor rotation using tubes of different materials. The motor seems that not have enough torque.
Any suggestions based on your design and testing process? Or you simply made it works on the first try!?

Congratz for the model. You did a nice job.

Silicone tubing was the only thing that worked reliably, I started out with some thin walled PVC tubing, but even tough it was relatively flexible, it was too stiff.

Hmm, I'm about to try a latex tubbing. Lets see if it works. Thanks!

I tested again with a latex tubing. I was very hopeful but didn't work either. This is probally because of a imprecision printing the parts, so I will try to reprint the tube support part, If it didn't work I'll redesign the space for the tubbing. Other possibility of failling is the code for controlling the motor. I didn't used any library - just called each step directly on a loop - and I don't know if it will cause any loss of torque.
This is the code I've used: https://docs.google.com/document/d/1n1xdo1rpNW6ig6CuNu6DHuPHjgRvLNd6ub-lZnUwyT4/edit?usp=sharing

It's long time ago I made the code, but I have had a look at it again, and I seem to recall that I had some issues with torque.
Try skipping the case statements with only one pin high, that was as far as I can remember what fixed it for me, and made a drastic increase in torque.

I added the code here:

But it's assembler, and sparsely commented.. ;)

Nice! Thanks Ralf. I will try again later with your suggestions. In any case I'll post here what happens.

i want his for a filiment extruder water coller

how much pressure can it pump? i.e. how many bars / psi?

I haven't tested it, the pump has no problem lifting water a couple of meters, and it will probably go higher than that, but where the fun stops, I don't know.

Do you really need 6 bearings ? I mean as it is 5mm wide and the ID tube is 4, maybe 3 could fit ? Bearings are 624Z right ?
Thanks !

Yep 624Z bearings. You need 6 bearings, because the tube widens when it is pressed flat, in theory it will be half the circumference of the ID which is ~6.3mm wide, a bit less in the real world, due to deformation of the tube. You could maybe make it work with only 3 bearings, but it would probably sacrifice stability.

Thanks. I did wind up finding some locally (I'm in Canada). Just finished all the printing... waiting for the motor to show up now from Adafruit!

Where do I find a bearing that size?

I got them on eBay

I used the Arduino Accelstepper library for driving this stepper this also allowed me to double the speed and torque of the driver so I can highly recommend using that lib

I used the following stepper configuration(but not on this pump):
AccelStepper stepper( AccelStepper::HALF4WIRE,9,11,8,10);

What is the longest you've run the pump for?

3 hours I think.. The motors gets hot, but the temperature doesn't continue to rise indefinitely, I don't think it would be a problem to run it even longer.

Can this be driven by a modified servo?

Guess so if the servo can act as a gear motor and has the torque to drive the pump, but mounts would have to be redesigned.


This type of stepper should run on 5V from an Arduino UNO or Micro using only two pins (one for direction and one for number of steps) with the Spark fun Stepper Driver (if I remember you just don't use the red wire, and it runs as a bipolar, there's a good youtube on it).


Because it's a 5-wire stepper it's only appropriate to drive it in a unipolar fashion. A bipolar driver will not work properly because all of the coils in these 5-wire steppers share a common connection.

Actually It's quite easy to modify this stepper into a bipolar, there is an excellent writeup here: http://www.jangeox.be/2013/10/change-unipolar-28byj-48-to-bipolar.htmlhttp://www.jangeox.be/2013/10/... on how this is done. Apart from that yes, uniploar steppers with 5 wires are generally stuck as unipolar, but not this one.