Bottle Filler Perfectly Tops Your Cup

You know those bottle fillers at schools and airports? What if you had one of those at home?

We know what you’re going to say: “My fridge has one of those!” Well ours doesn’t, and even though [Chris Courses’] fridge did, his bottle of choice didn’t fit in the vertically-challenged water and ice hutch, nor did it fill autonomously. The solution was to build a dubiously placed, but nonetheless awesome custom bottle filler in his kitchen.

The plumbing for the project couldn’t be more straight-forward: a 5-year undersink water filter, electronically actuated valve, some tubing, and a T to splice into the existing water line going to the fridge. Where the rubber hits the road is making this look nice. [Chris] spends a lot of time printing face plates, pouring resin as a diffuser, and post processing. After failing on one formulation of resin, the second achieves a nice look, and the unit is heavily sanded, filled, painted, prayed over, and given the green light for installation.

For the electronics [Chris] went for a Raspberry Pi to monitor four buttons and dispense a precise allotment tailored to each of his favorite drinking vessels. While the dispenser is at work, three rows of LEDs play an animated pattern. Where we begin to scratch our heads is the demo below which shows there is no drain or drip tray below the dispenser — seems like an accident waiting to happen.

Our remaining questions are about automating the top-off process. At first blush you might wonder why a sensor wasn’t included to shut off the filler automatically. But how would that work? The dispenser needs to establish the height of the bottle and that’s a non-trivial task, perhaps best accomplished with computer vision or a CCD line sensor. How would you do it?

23 thoughts on “Bottle Filler Perfectly Tops Your Cup

        1. The link you provided doesn’t seem to support that statement. It shows a venturi being used to trip a shutoff valve when the water reaches a certain point on the spout. Which seems to be exactly the kind of mechanism needed for this project. The water sensor on the spout could be wires or conductive ink. Maybe a capacitive sensor would work too.

        2. @udif said: “No, because gas pumps rely on the fact that your pump is inside the tank being filled.”

          Perhaps you meant the gas station’s gas pump nozzle is inside the car’s tank being filled. If that is what you meant to say, you would be correct. The gasoline flow is controlled by a passive venturi-diaphram activated cutoff valve. This is explained in the short YouTube clip embedded in the HaD link you provided. Here is the direct YouTube link:

      1. This reminds me of a dispenser I built for a reverse osmosis filter. I used a solenoid and a self adhesive MIFARE classic RFID tags attached to the various jugs I needed to fill and attached a reader/writer to the platform of the scales. To add a new jug you stuck on the tag to the jug, held down the fill button with nothing on the scales then placed the empty jug on the scales, removed the jug, filled it with tap water to the desired level and then placed it on the scales again. The empty and full weights were then recorded on the tag itself and the jug could be filled automatically from then on.

        It wasn’t a generic solution because you had to attach the tag but it did what it needed to do which was stop my kitchen getting flooded when someone forgot to stop the RO filter. The tags stood up to repeated dishwasher runs and the system worked well until I moved about three years later.

  1. This is how I would make a full automated filler for any cup / canteen size:
    1) Everything is mounted on a z-axis (belt driven for quick action)
    2) On one side of where the cup is placed, there is photoelectric sensor and on the other side there is the photoelectric transmitter.
    3) When you activate the machine, the first step is it lowering the dispense unit until the light path is blocked by the cup. This now means the dispenser is at a known height above the rim of the cup. This also puts the dispenser closer to the cup, so that you can fill tall canteens but also fill short cups from an appropriate non-splashing height.
    4) Unit then dispenses water until a sensor detects the water surface in the cup reaches a set height (relative to the dispenser which is relative to the rim of the cup).
    5) Dispenser unit then retracts to its upper home position, ready for another glass of any heaight.

  2. Maybe this is too cumbersome, but I would add an ultrasonic distance sensor, put the container upside down to measure the distance, subtract a centimeter or quarter of an inch, place it upright and stop at the given threshold.
    You might not even need any buttons if you program it well.

  3. I use a bottle filler quite often at school, with various sized containers. It doesn’t always work correctly, but it usually stops with the level approximately a quarter inch below the rim, no matter the container size. It seems to work by listening to the resonant frequency generated by the head space.

  4. Bottle filling sensor… easy.

    Have a shelf for the bottle. Have a pressure-plate sensor (easy to do, there’s a zillion instructables for how to do that sort of thing literally with two wires, cardboard, and Duck tape) to ensure that the bottle’s there. If nothing else… a microswitch from one of the buttons on an old ball mouse (my inner retro nerd says — use an already permanently broken one plzkthx) will work great, just stick it under the shelf at the back so the thing can drop a mm or so when the bottle sits down on it.

    Use either a PING))) knockoff (the nasty eBay ones that need polling… I forget the model number… IIRC there’s an older article on here where someone figured out how to fix that?) or a Sharp IR distance sensor.

    Normally have the whole thing in sleep mode. Bottle lands on the shelf, triggers an interrupt to wake the system. After ‘x’ time with no input, timeout return to sleep mode. Otherwise, when the user selects a fill size, fill sensor takes several measurements — five ought to do it — a few fractions of a second apart. (IDK how fast each of those sensors can read, min/max, practically, but you’re aiming for “slow enough to pick up sloshing water but fast enough to not annoy the user”. My gut says 1/10sec measurement intervals here.) The idea there is to catch the amount of water in the bottle, since people are often lazy or in a hurry and don’t fully empty the bottle… or the bottle has one of those “last drop of ketchup” sorts of issues ;) Then a second set of measurements to find the height of the bottle rim.

    If bottle size cannot be correctly determined (and there should be an ‘override’ button!) then a user prompt appears for that and one has to trust the user to not be stupid, clumsy, drunk, etc in the moment. (This is a far more questionable assumption, sadly, than any of us want to think about, including me — I’ve done some pretty dang dumb stuff on occasion!) Software protection for detecting an already-full bottle and refusing to fill it would also be good.

    Once bottle size and fill size are selected, cut on the valve (pump?) and get to work! Measurements every ‘x’ fraction of a second to check fill level… probably about every 1/4sec would be about right. Cut the valve (pump?) off when the proper fill is reached. Ding or something to indicate that the job’s finished, sleep and lock system until the bottle is removed.

  5. I feel like everyone is overthinking the auto fill. The only user for a system like this is the home owner, put an RFID reader down where the bottle sits, stick and rfid sticker on each bottle you use. The first time you use a new bottle it records the RFID number and the amount of water that you manually dispensed by time. Next time you see the RFID let it run again for the same period of time. *jugs will have to be empty for this to work*

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.