My team developed a filling machine for liquids which uses a piston to measure and deliver volumes 0.1 to 1 liters into bottles. It is built mostly with mechanical parts and we'd like to replace most of them with electronic ones.

How do I build a machine to pull liquid from a reservoir and fills a bottle using a piston, with electronic parts such as stepper motor, linear actuators and sensors?

I understand this is somewhat vague. Any aligned response is appreciated.


This machine should, at its max speed, fill a 1 litter bottle with water in 2 seconds (to deliver 30 bottles per minute). Higher viscosity liquids may take longer.

It should not spill so liquid needs some filling acceleration control.

You may assume two operation modes: with bubbles and without bubbles. The first is a plus.

I'd like to be able to change the volume electronically (via a LCD menu).

I thought of a single main valve that switches between the reservoir and the bottle. That should be controlled electronically too. I could use two valves too.

  • 1
    $\begingroup$ As written, this question is indeed vague -- "how do I build a machine to ____ " is a bit too broad for a good answer. Can you explain more about your specific design, what the performance requirements are, and which specific components you'd like to be electrical? $\endgroup$
    – Ian
    Jun 28 '13 at 15:20

Yes, general question. Here's some general bits-o-answer: some assembly is required.

First, I would leave the decision about stepper vs. some other kind of motor until later -- it should be a tactical, not a strategic, decision.

Second, assuming that the positive displacement idea works at all, I would assume that at the core of your machine you still need that piston that you mention. I would achieve controlled displacement of the piston by using some sort of linear actuator that has lots of available force and considerable mechanical stiffness, coupled with a good distance measurement on the piston. I'd close my outer loop around the distance that the piston has traveled.

What springs to mind for a linear actuator is either a stepper motor (probably geared down) driving a jack screw, or a small DC gear motor, with an encoder on the motor and speed control, driving a jack screw. I am personally biased against steppers, so if I were King on this project it would almost certainly be the DC gear motor -- but if you were paying me to implement it with a stepper, I'd say "sure!" and make sure that you selected one that had more than sufficient torque to get the job done.

The field is pretty open as far as the piston position sensor. I don't know how clean your environment is, but assuming reasonable cleanliness I'd probably choose an optical linear encoder with a good fine line -- but I know there's other technologies out there that would work as well.

For control I'd close the piston, fill the piston by some extra amount to account for bubbles or whatever, switch the flow over to the bottle, then push the piston in by the correct distance to get the amount of fill desired.

Or, I'd find a way to weigh the bottles as I was filling them, and do the job by weight.

  • $\begingroup$ That's the line I wanted to explore. But instead of using a screw, I thought of using a track connect to the motor using some reduction gear. In my mind, a screw wears out faster than a track. what do you think? I agree with the linear encoder. The environment is clean enough to allow an optical one. I'd like to be able to have control over the acceleration (to avoid spills). My feeling is that that's easier to achieve with stepper motor. Is that right? $\endgroup$
    – Igor Gatis
    Jun 29 '13 at 3:22

Off the top of my head, the first thing I would try: Attach a stepper motor to a positive-displacement pump. (Gearing it down is often necessary). Then hook the wires from the stepper motor one of the many off-the-shelf stepper motor drivers, perhaps Pololu stepper drivers or the many alternatives. Then figure out how much volume came out for every revolution of the stepper motor. Then program the Arduino (or one of many alternatives) to somehow detect when there is a bottle in position and how much volume it needs, pump the appropriate volume into the bottle, and stop.

A note near the bottom of one filling machine vendor points out that sometimes constant-volume filling doesn't work -- sometimes it's better to start filling when the bottle is in position, then turn off the pump when the liquid has reached the fill line.

My understanding is that a visible-light laser and a photo-sensor is the easiest way to manually line up a non-contact sensor to the appropriate fill line.

Have you searched Google for "bottle filling" to see if maybe there's an off-the-shelf system that already does most of what you need to do?

  • $\begingroup$ This is a design we're also considering. Turns out laser bean might not suite some of our use cases (e.g. manual bottle positioning) as some of the liquid we deal with tends do form turbulence waves. It is not discarded though. Alternatively, we may use a force sensor to measure weight as well. Turbulence might still be a problem. $\endgroup$
    – Igor Gatis
    Jun 28 '13 at 14:58
  • $\begingroup$ (actually, I meant "liquid acceleration" in the last phrase) Regarding searching for "bottle filling", yes, we did. They are mostly our competitors. :) $\endgroup$
    – Igor Gatis
    Jun 28 '13 at 14:59

Not the answer you're looking for? Browse other questions tagged or ask your own question.