Peristaltic Pump for Beverage Dispenser

Design, build and operate a Peristaltic Pump

Public Chat
Similar projects worth following
This is my final year project for my mechanical engineering course at university. The aim is to design, build and operate a Peristaltic Pump. I am planning to use an Arduino kit to operate the device and build it using my university facilities. If needed, will outsource complex parts. I will post updates on how the project is progressing. It will be very beneficial if the community can share their thoughts and opinions about the project.


The aim of this project is to design and construct an open-source pump for beverage dispensers that can also be remotely operated to reduce manual work needed by user.


  • Select suitable pump type.
  • Design pump sketches and 3D drawings.
  • Construct Prototype for testing.
  • Test Prototype to identify any limitations and potential improvements.
  • Optimise design using analysis of prototype.
  • Construct pump base upon final design changes.
  • Install and connect micro-controller to allow for remote operation.
  • Test Pump to ensure the full desired functionality is available.

Pump Mark 3.rar

CAD parts and Assembly files for Pump Mark 3

RAR Archive - 2.04 MB - 03/24/2020 at 22:19



Stepper Motor Arduino Code for Continous Rotation

ino - 886.00 bytes - 03/24/2020 at 15:32


Prototype 2.rar

CAD parts and Assembly files for Prototype 2

RAR Archive - 1.05 MB - 03/24/2020 at 15:30


Prototype 1 Components.rar

CAD parts and Assembly files for Prototype 1

RAR Archive - 1.22 MB - 03/23/2020 at 16:03


  • 1 × Arduino Starter Kit Micro-controller
  • 1 × Nema 17 Stepper Motor
  • 1 × JOYLIT 12V 2A Power Supply Power Adapter Wall Plug
  • 1 × DRV8825 Driver Micro-stepping Bipolar Stepper Motor Driver
  • 3 × 608RS Ball Bearings Bearings (used as rollers)

View all 7 components

  • COVID-19 Impact on Project

    Ali03/24/2020 at 16:06 0 comments

    Due to the recent COVID-19 pandemic and health concerns my University has shut down all facilities and labs and as such I will not have the opportunity to construct my final design any time.

    I have decided instead to try and run some computational simulation on the Design for various analysis to understand, test and improve my design further. I am very open to hear ideas and feedback from the community with regards to my design.

    I will also try to temporarily fix the second prototype if possible and try to run practical tests on it as well.

    PS: I will still upload the CAD files for the final design for anyone who is able to print them and it would be amazing if you can share the progress.

  • Final Design CAD Sketches

    Ali03/24/2020 at 15:58 0 comments

    The main features changed from Prototype 2 are:

    1.Screw locations for the motor at the bottom of the casing. Allowing the motor to be easily removed and installed to the casing easily

    2. Fillets added to the sharp edges near the raceway to reduce the friction between the bearing and the walls of the casing

    3. Combined bottom and top rotors together to become one part this will ensure the distance between them is maintained at the desired amount

    4. Wedge feature include in the rotor to allow the attach to the motor shaft without the need of adhesion. This will not only allow the rotor to be removed when needed but also will offer better grip between rotor and shaft and prevent the shaft from rotating freely from the rotor

    5. Nut and bolt to be used to hold the bearings in place instead of rod as it offers a stronger structure and does not require adhesive to stick to the rotors

    Next Steps: I will next attempt to run various simulations on the design to validate its functionality.

  • Prototype 2: Testing

    Ali03/24/2020 at 15:16 0 comments


    Similar to Prototype 1, I tested this prototype using the same code that allows the stepper motor to continuously rotate.

    Testing at max motor speed had the same issue as the previous prototype as the torque is still lower than required at max speed. See video below of motor vibrating and struggling to rotate.

    However for this prototype, the motor was able to successfully pump fluid at lower speeds/ here is a video of the motor in operation ( with no tubing)

    I used a latex tubing instead the previous silicone tubing as it was more flexible. Additionally, after testing several times the adhesive between the shaft and rotors was removed and as such the motor shaft began rotating independently of the rotor ( similar to what has happened to the first prototype)

    i have also noticed that because the bearing height is not correct, they collide with a sharp edge in the raceway.


    1. From Prototype 2, I concluded that the size of the casing and tubing seem to be sensible for the motor's output  and such will not be changed in the final design. 
    2. Adhesive should not be used to glue rotor and shaft nor motor and casing as it makes it very difficult to disassemble.
    3. Maximum Motor speed should not be used as it significantly reduces the torque output and causes the components to rapidly vibrate that can then damage the structure.
    4. Need to add fillets to reduce sharp edges that slow down the bearings as they rotate.

  • Prototype 2: Construction

    Ali03/24/2020 at 14:48 0 comments


    1. First, I 3D printed the casing and rotors as intended. However the bottom rotor's extrusions were not successfully printed and as such I had to make some final minute adjustments to the design.

    2. I attached the motor to the casing using adhesive ( glue gun) as shown below.

    3. Then I carefully glued 8mm plywood rod in the bottom rotor and then inserted the rotor into the motor's shaft. The rotor's hole was tight enough to hold it in place on the shaft.

    4. Then I carefully slotted the bearings into the rods.

    5. lastly I aligned the top rotor with the rods and glued them together

    6. Finally I glued the rotors with the shaft.


    1. Using Adhesive to attach motor reduces the ease of disassembly in case a motor replacement is needed. It also reduces reduces the accuracy when horizontally aligning the motor.
    2.  Using Plywood as supporting rods for the bearing increases time and difficulty of assembly.
    3. Was difficult to align the rotors at the correct height as designed.

  • Prototype 2 Design

    Ali03/24/2020 at 13:17 0 comments

    Prototype 2:

    After constructing and testing Prototype 1 a new redesigned pump was sketched. The new design's aim was to reduce the limitations and inefficiencies of the first prototype.

    This was done through the following Features:

    1.  Reduce diameter of rotors to reduce the torque required by motor.
    2. Reduce overall height of casing to reduce material required and printing time.
    3.  Reduce thickness of rotors to reduce weight.
    4. Increase motor cut tolerance to ease assembly.
    5. Reduce raceway diameter to fit smaller tubing.

    Below are some CAD sketches for the new design:

  • Prototype 1 Testing

    Ali03/23/2020 at 19:12 0 comments


    First Trial:

    At my first trial to run the pump, the motor's shaft was disconnected from the rotors and as such was rotating independently and the rotors remained stationary as shown below. To overcome this, I used adhesive to stick the shaft and rotor together to be able to run the tests.

    Maximum Speed:

    The pump was tested at the maximum speed to see if the rotors are able to rotate through the casing and understand the potential max volume flow rate possible. Once the motor was operated, the rotors started rapidly vibrating in place as shown in link below. I assume this is because the torque supplied by the motor at such speeds is not sufficient to overcome  the frictional forces and moments the bearings experience from the casing's raceway.

    Other Speeds:

    However, what I quickly realized is that even at slower speeds the rotor had difficulties rotating smoothly and while this can be due to manufacturing errors causes the rotor and casing to contact, this meant that if a tube was added the rotor will not be able to rotate at all. 


    Conclusion from testing the prototype is that:

    1. Size of the pump is too big for the motor to provide a reliable torque
    2.  Larger tolerance needed between rotors and casing
    3. Need to use more flexible tubing to reduce load required by motor

  • Operating Stepper Motor

    Ali03/23/2020 at 16:41 0 comments

    Operation of Motor:

    Using the Arduino Uno and a DRV8825 driver I used a code to have the stepper motor to rotate continuously.  This allows me to easily test the functionality of my pump whilst the motor is running and once it is functioning properly. I can then later  alter the code so that the motor works for a desired number of rotations or time period.



    Testing of the motor in operation with a rotor attached using a 12V 2A power supply.

    Next steps:

    Now it is time to test the motor fitted into the prototype pump and see if it can provide sufficient power to pump fluid.


    I was able to successfully setup and run the code with the aid of the following article by

  • Prototype 1 Construction Notes

    Ali03/23/2020 at 15:53 0 comments


    I completed the construction of my first prototype (CAD drawings in previous log). 

    Assembly Steps:

    1. 3D Print Casing and Rotors
    2.  Fit bottom Rotor onto the motor's shaft
    3. Use Adhesive to attach Plywood rods onto the Rotor*
    4. Insert the Bearings onto the rods
    5. Use adhesive to attach the top rotor onto the plywood rods*

    Issues and limitations:

    • * These steps have been added as the bottom rotor when attached was too weak to withstand the forces and as such an alternative rotor was used which is similar to the top rotor. This meant that instead of the bearings being held in place with the rotor's extrusions, a plywood rod had to be used to hold the rotors and the bearings together and as such an adhesive was used.
    • Inserting the tube into the designated hole ( Shown below) in the casing was quite challenging as the design did not take into account the tolerance and manufacturing error when using 3D prinitng. This was also the case when fitting the motor into the casing.
    • Additionally, when the pump was operational, parts of the casing structure initiated cracked that later propagated as shown below. While these cracks did not affect the pump's operation they most definitely will affect the overall structure integrity.
    • Finally, the plywood rods' diameter used was not large enough to ensure the bearings are in pure rolling. As shown below one of the bearings wiggles easily in place and this will significantly affect the performance of the pump.

  • Change of Project Aim and Focus

    Ali03/23/2020 at 13:57 0 comments

    I have decided to change my project's aim to be more focused on the Peristaltic Pump rather than the entire beverage dispenser this will allow me to spend more time and effort on the pump to ensure it meets the required specifications. 

    Prototype logs will soon be added.

  • Design of Peristaltic pump

    Ali12/14/2019 at 17:31 0 comments

    These are my initial designs for the peristaltic pump that I have drawn on Solidworks.

    I will be using bearings instead of rollers to squeeze the tubing as shown below.

    The pump consists of two rotors to hold the bearings in place. The bottom rotor has extrusions as shown below. The extrusions have diameters equal to the bearings's inner diameters to set it in place.

    The bottom rotor has holes instead of extrusion to allow the bottom extrusions to pass through and to be glued onto the surface of the hole.

    Next I will work on manufacturing and assembling the parts together so I can then begin testing the pump.

View all 13 project logs

  • 1
    Step 1

    Download the CAD files and 3D print the casing and rotor parts.

  • 2
    Step 2

View all instructions

Enjoy this project?



Omar Yasser wrote 11/13/2019 at 18:20 point

Some fine ideas here Ali. What is the purpose of having a remotely controlled beverage dispenser?

  Are you sure? yes | no

Ali wrote 11/13/2019 at 22:16 point

Hello Omar, thank you for your question. Currently the idea is to use this feature to select and mix drinks together remotely without the user having to dispense different drinks several times ( Similar to the case when you use a typical soda tower).

However, I am sure I can also use the option for other features!

  Are you sure? yes | no

mohamed taha wrote 11/13/2019 at 16:50 point

Very interesting

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates