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.
6x bearings 13x4x5 (ODBoreW)
6x M4 washers
7x M4 nuts
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.