My tank vacuum and water change process

The complete set-up for my tank cleaning process. Photo by the author.

I have posted a few times about how I do water changes. All of my cichlid tanks, except my quarantine and hospital tanks, contain sand substrates. As a result, I use a system I created using Python water changers that easily minimizes loss of source water, cichlid fry, and sand. My process utilizes two Python brand water changing hoses and a few other components.

Using the conventional Python-type method works great for tanks with no substrate or gravel. The effectiveness of a Python-type water change is highly dependent on both your water pressure and the height of the tank being vacuumed/cleaned compared to faucet height. Using a Python vacuum the conventional way on sand substrates will not only result in wasted water, but you’ll also be pulling up and filling your sink with some sand. Furthermore, running the faucet water to increase suction presents another set of problems. Turning the faucet on maximum and vacuuming substrates can inadvertently vacuum up fry from tanks.

On the other hand, if your faucet is at a level below the water being changed, you can turn off the faucet and let gravity work once water flow is started. Though the gravity option might mitigate both sand and fry loss, gravity-based suction might be too weak to pick up much detritus and other stuff you want out of the tank.

In an effort to combat all of these problems, I created my own process using a two-Python vacuum system…but I use one of my Pythons in reverse. Below I provide a list of what I use, instructions for setting it all up, and photos showing the set-up.

Here are what you need to copy this method:

  • A good sized submersible pump. I use a Sicce Syncra Silent 3.5, which is rated at nearly 600 gph at 6′ head pressure.
  • A threaded fitting for the outlet port of the pump so the faucet connecter end of the Python vacuum hose will screw onto it.
  • A large plastic tub. You can pick one of these up at just about any big box store or hardware store.
  • A bucket. I use a 5 gallon, but a 3 gallon will work.
  • A Python vacuum system or similar (long enough to reach a sink, outside, or wherever your waste water goes). You could forgo a Python system and just user your  own DIY version.
  • A  7′ long section of 3/4″ OD clear tubing. You can cut your tubing to whatever length works best for you. You can also use a larger or smaller diameter.
  • An 8″ long piece of 1/2″ Pex tubing. Pex typically comes in 8′ sections, so you’ll need to cut an 8″ piece. Pex comes in multiple colors also.
  • An inline valve that is barbed on both ends. These are what I use.
  • Some zip ties. You can use other things like clamps if you choose.

Here are some steps to follow:

1.  Insert the 8″ Pex tubing into one end of your 3/4″ clear tubing about 3″.  Use a zip tie to clamp the Pex piece that is inserted into the tubing.

2. Cut the 7′ length clear tubing two or three feet from the Pex end.

3. Insert one barbed end of the inline valve into the open end of the tubing (with Pex on the other end from step #1 above).

4. Take one end of the clear tubing that has nothing attached (from what you cut in step #2 above) and push it over the barbed end of the inline valve in the tubing piece with the Pex on the other end.

5. Now you should have a long piece of clear tubing with Pex on one end, an inline valve inserted, and an open end of tubing (see photo below). The inline valve will allow you to start and stop the water flow from the tank without having to remove the tubing from the tank.


3/4″ OD clear tubing with inline valve and Pex tubing attached. Photo by the author.

6. Drill holes in your bucket, evenly spaced apart, around its rim. I would recommend at least six holes (see photo below). The holes should be about 1/16″ in diameter smaller than the tubing diameter. You’re going to insert the non-Pex end of the tubing into one of the bucket holes. The holes need to be a bit smaller than the diameter of the tubing to ensure the tubing doesn’t easily come out of the hole you have it through.

7. Place the bucket into the plastic tub. The tub needs to be large enough for both the bucket and the submersible pump to sit inside. It’s also a good idea if the tub is just tall enough so that the holes in the top of the bucket are below the top of the tub (see photo below). I use 3/4″ tubing because the water coming into the bucket (and subsequently the tub) from the fish tank slightly exceeds the volume being pumped out of the tub by my Sicce pump (more on this below).


Tank cleaning bucket inside plastic tub. Note the holes cut into the rim of the bucket. Photo by the author.

8. Attach the faucet end of the Python vacuum hose onto the threaded fitting on the pump (e.g., the outlet port of the pump).

9. Place the pump with the now attached Python hose into the tub.

Tank cleaning tub, bucket, and pump. Photo by the author.

10. Run the vacuum tube end of the Python hose to the sink or wherever your drain water goes. If you run it to a sink, you’ll want to think about clamping the Python vacuum tube so that it stays securely inside the sink. I have a utility sink so I just use a wood clamp to keep the Python vacuum tube inside the sink.

11. What you now use to vacuum the tank with is the Pex tube attached to the 7″ of clear tubing. I use the Pex because it’s smaller than the clear plastic Python vacuum tube, which allows me to get into crevices and under rocks inside the fish tank. The plastic Python tube won’t reach into tight spaces without moving objects around.

12. Gravity siphon the tank water using the 3/4″ tubing into the bucket. Note: the Pex end should be inside the tank and the other end of the tubing should be inserted through one of the bucket holes. The suction will be as good or better than a Python on full faucet suction because of 1) the small diameter of the Pex tube and 2) the diameter of the clear tubing. You can go larger or smaller than 3/4″ tubing depending on how much suction you want.  However, be mindful of the size of holes you have in the bucket. Trust me, you don’t want the output end of the 7′ clear tubing coming out of the bucket. If it does, it will fall to the floor allowing fish tank water to happily flow freely where it shouldn’t. This is why the clear tubing should be slightly larger than the hole, so it goes in snugly and can’t pull itself out.

Once the bucket fills up with water, water will begin flowing through the holes you drilled into the rim at top. The water coming through the bucket holes will run down into the tub. Once the water in the tub reaches the height of the pump intake, plug the pump in. The water will now begin flowing from the tub through the Python hose and into the sink (or wherever you have your waste water going). You can see the complete set-up in the photo at the top of the post. Note: In the photo, you can’t see the Python hose screwed onto the pump but it is.

As I mentioned above, I use a pump that pulls water out just below the rate of water coming into the tub. This means that the volume of water coming from the tank, into the bucket, and out the bucket holes into the tub EXCEEDS the volume of water the pump is taking out of the tub. Yes, if I let water siphon into the tub long enough with the pump running, the tub WILL still overflow (so keep an eye on the water level in the tub and don’t let it overflow onto your floor). I do this because I like to allow the water coming out of the tank to reach just the top of the tub. I close the inline valve to stop water flow from the tank. I prefilter all of the intake tubes of my tank filters with sponges. By allowing the tub to fill with water and then stopping the siphon from the tank, I use the tank water being pumped from the tub to clean these sponges in the sink. I hold the Python vacuum tube in one and and I use the other hand to squeeze out the sponges while tank waste water runs over them.

As I mentioned, this method requires two Python vacuum hoses. One is being used to remove tank water going into the tub. The other is attached to the faucet of the sink and used the conventional way to refill my tanks. I am sure there are multiple tweaks to this system that would improve it. That’s the joy of DIY. Put your mind to work and figure out what works best for your own uses.

What are the advantages (for me) of using this method:

  • Any sand or debris that gets vacuumed up goes into the bucket
  • Any fry that get vacuumed up go into the bucket, where I can retrieve them
  • Just about everything other than water going into the bucket goes to the bottom of the bucket, including fry and sand so they don’t end up in the tub and subsequently the sink
  • No water is being wasted via the Python faucet pump by running water to create suction
  • Suction is greater than either the Python can generate conventionally or via gravity
  • I can get into tighter spots with the Pex tube than I can if I was using the clear Python suction tube to vacuum the tanks.

Leave a Comment