Low cost peristaltic pump

by Ralf Feb 21, 2014
Download All Files

Thing Apps Enabled

Please Login to Comment

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.

You are right Ralf. I started with this design, but ended up making a new design for lab work. It is moving about 0.17 ml at a minimum.

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.