Carbon Dioxide Injection

Last update: January 28, 2001

CO2 Frequently Asked Questions (the Dec 1997 Aquarium Fish Magazine article)

Convince me that CO2 is a good thing!

The highly touted CO2/KH/pH table

How to calculate CO2 from KH and pH

How to increase your water hardness

A canister filter CO2 reactor

A simple DIY reactor

A DIY Python CO2 reactor

Do trickle filters cause lots of CO2 loss?

How a CO2 test kit works

Fine Control Valves

Nurpro Fine Control Valve FAQ

Before CO2
Plants replaced monthly

After CO2
Glorious Perfection!

Not convinced about using CO2? Here's an e-mail I wrote trying to persuade someone of the benefits.

Question: CO2 injection scares me. I have always worked on the basis of a balanced aquarium.

Think real hard about what it means to have a "balanced aquarium". I assume you mean a type of natural equilibirium. You have 30 gallons of water and a certain number of fish. You feed the fish. You provide some kind of filtration to keep things from getting too foul. You change water regularly. There's not really much "balance" here, because you must "manage" the environment to keep things from getting out of hand.

Most importantly, the ratio of fish to water volume is incredibly high, compared to the natural environment of a lake or stream. Considering the flow of water in a stream or the natural turnover of water in a lake, you cannot possibly provide the "water quality" fish would experience in the wild. Nature provides a massive and complex system that keeps natural bodies of water "balanced" that we aquarists cannot possibly duplicate.

Q: There is a system that plants create oxygen that is used by fish and converted to CO2 which is again changed be the plants into more oxygen.

It is nice to think that the plants help the fish by providing oxygen and the fish help the plants by providing CO2 and fertilizer. In most aquariums, this is not true.

First of all, plants convert CO2 and nutrients into carbohydrates and oxygen provided there is enough energy (light) to maintain photosynthesis. As plants grow faster, they draw more CO2 and nitrogen and phosphorus from the water and they generate more O2. This is good for the fish. However, fish won't produce enough CO2 to raise the level above normal equilibrium levels (2-3 ppm) unless you are massively overcrowding the fish. It will diffuse into the air as fast as the fish produce it.

How do you tell how fast the plants are growing? Besides making physical measurements, you can monitor the O2 in the water with test kits. You will find that in a non-CO2 injected aquarium the O2 level is around 80-85% of saturation (O2 saturation is 8.1 mg/l at sea level and 75 F, lower at higher altitudes and temperatures). In a tank of water with no life and decent circulation, you will find that the water is very close to O2 saturation due to diffusion at the water surface. As you add fish and bacteria and other O2 users, you will find that surface diffusion is not enough to keep up with the O2 demand, and the O2 level drops to the 80-85% level. Even massive aeration (bubble wands, etc) is not enough to get the levels above 90%. Even trickle filters will not raise O2 above 95%, contrary to the ads you see. This is not conjecture, but based on measurements made in our home aquariums.

The only way to actually increase the O2 level of the water is to either inject O2 with an O2 reactor (which no one does) or to get some biological process going that can force addtional O2, which is where plants come in. Keep in mind that plants *only* generate O2 when they are photosynthesizing; at other times (like at night), they are O2 users along with everything else. I have found that without CO2 injection, the plants do not produce enough O2 to raise the O2 above what a tank without plants would have. The only purpose they serve is to provide decoration and hiding places for fish. They do not provide "balance" in the biological sense.

With CO2 injection (and proper light and nutrients, of course), you can phyically see the plants generating O2. Bubbles form under the leaves and streams of bubbles come from broken leaves and stems. We typically measure from 110 to 125% oxygen saturation (which is good for our fish, since we live at a high altitude and they would see a deficiency otherwise). When plants are growing this fast, they are also removing more pollutants from the water and provide some of the balance you are trying to achieve.

Q: I do believe that by increasing the CO2 level in a tank the plants may grow better (provided enough light, and nitrogen is also available) but doesn't this also effect the fish in the tank?

Yes, this affects the fish in the tank by providing *more* O2 than they would otherwise receive. Extra CO2 does not displace any oxygen, contrary to aquarium myths.

Q: I remember many years ago reading an article on CO2 poisioning of fish in a trade magizine and would like to hear more on your thoughts.

Fish aren't affected by CO2 levels until they get to the 40-50 ppm range. Most people using CO2 injection maintain under 20 ppm. I would be wary of articles in magazines and books - it's not difficult to prove any point you want to make by citing the particular author that agrees with what you are saying. I would suspect that most aquarists would agree that information from "many years ago" has been found to be *very* outdated (and we don't agree on much :-).

Q: Is this CO2 injection system expensive?

$200 for a manual system (less if you are a careful shopper and can find used regulators and such). $600 if you want an automatic system. I guess you could call that expensive.

Q: I have always had great luck with amazon sword plants, and crypts, but everytime I tried Madagascar Lace Plants it seemed like I was just throwing out money.

Amazon swords love CO2. Crypts don't seem all that excited about it. Lace plants like colder temperatures, but do well with CO2 in a warmer tank.

Q: I originally started with 3 Amazons, and in less then 5 years I had at least 6 Amazons in each of my 30 or more tanks, untill I suckered into adding UGF.

One of our E. Bleheri produced 30 8" plants on a single flower stalk in 2 months, which was only one of a dozen stalks it sent up in a single year.

Q: If you have any articles that you can E-Mail me on this I will evaluate them, and if they seem to have any merit I give it a try on one of my 30 gallon set-ups.

Check out my photos in the "Photo Album". The tank with the Rainbowfish has an UGF. All the photos are from tanks with CO2 injection. Also, if you can find a copy of The Optimum Aquarium (Horst and Kipper, 1986), it goes into much of the details of "the right way" to set up planted aquariums (using the equipment their company sells, of course :-).

BTW, all this information is based on experience with tanks ranging from 85 to 100 gallons, but I suspect it will translate to smaller tanks. It might be more difficult to maintain the proper CO2 levels in a smaller tank without a CO2 controller.

Use this table to determine how much CO2 is in your water if you know pH and KH.

From a posting by Pauli Hopea in Finland. The following table is from a Finnish aquaria magazine (Akvaariomaailma)

The relationship of CO2, pH and KH

 \ pH | 6.0     6.2     6.4     6.6     6.8    7.0    7.2    7.4    8.0
KH\   |
0.5   | 15      9.3     5.9     3.7     2.4    1.5    0.9    0.6    0.2
1.0   | 30      19      12      7       5      3      1.9    1.2    0.3
1.5   | 44      28      18      11      7      4      2.8    1.8    0.4
2.0   | 59      37      24      15      9      6      4      2.4    0.6
2.5   | 73      46      30      19      12     7      5      3      0.7
3.0   | 87      56      35      22      14     9      6      4      0.9
3.5   | 103     65      41      26      16     10     7      4      1.0
4.0   | 118     75      47      30      19     12     6      5      1.2
5.0   | 147     93      59      37      23     15     9      6      1.5
6.0   | 177     112     71      45      28     18     11     7      1.8
8.0   | 240     149     94      59      37     24     15     9      2.4
10    | 300     186     118     74      47     30     19     12     3
15    | 440     280     176     111     70     44     28     18     4
      |                 CO2  milligrams/liter

Important note: KH is carbonate hardness. This is different than alkalinity. Use a Tetra KH test kit to determine the KH. Although the Tetra kit most likely measures alkalinity, it will be close if you do not have a lot of phosphates in your water (from commercial pH buffering products, for exmaple).

Another important note: Watch out for measurement error. A difference in +/- 0.2 pH units and +/- 0.5 in KH can produce quite a range of CO2 values. Be aware of your potential measurement errors!

Here's a simple equation to calculate CO2 if you know pH and KH.

CO2 = 3.0 * KH * 10^(7.00 - pH)

Want to increase your hardness?

One teaspoon (about 6 grams) of sodium bicarbonate (NaHCO3) per 50 liters of water will increase KH by 4 degrees and will not increase general hardness. Two teaspoons (about 4 grams) of calcium carbonate (CaCO3) per 50 liters of water will increase both KH and GH by 4 degrees. Different proportions of each can be used to get the correct KH/GH balance dictated by the fish and plants in the tank. Since it is difficult to accurately measure small quantities of dry chemicals at home, a test kit should be used to verify the actual KH and GH that is achieved.

How to use a canister filter to inject CO2.

Since I'm always looking for ways to reduce the cost of setting up an aquarium, I was looking for a way to get CO2 into the tank without using a costly commercial reactor. Since about the only important thing is to give the CO2 enough time to diffuse into the water, I wondered if I could just bubble CO2 into the inlet of the Eheim canister filter and let it thrash around in the inlet hose, bounce around in the Ehfie-stuff, etc. And, by gum, it works!

To do it, I made a small hole in the inlet strainer and inserted one of those $0.59 right angle air-line connectors in the hole. I strapped the CO2 hose to the inlet pipe with a couple of small cable ties and connected it to the angle connector. To monitor the CO2 flow and to provide a check valve, I use a Dupla Bubble Counter, but that's not absolutely necessary - you can see the bubbles in the Ehiem hose if you watch real close.

I was concerned about bubbles collecting at the top of the Ehiem and "air locking" it, but it seems to be self clearing. About every 1/2 hour, I'll hear a gurgling and see some bubbles come out of the spray bar. I've found that the angle of the spray bar flow is important - if it's parallel to the surface, the increased surface agitation allows too much CO2 to escape to the atmosphere (I know, I know, I'm partly responsible for the Green House Effect :-). By slightly turning the spray bar towards the bottom, I still get some surface agitation and don't lose much CO2.

After setting it up, I was curious how much CO2 was being diffused into the water by my Dupla reactor and the Eheim filter "reactor".

With the Eheim, I measured the pH coming out of the spray bar using a LaMotte test kit and got 6.8 (23 mg/l dissolved CO2) with the general tank water at 7.0 (15 mg/l). This is surprisingly good for a "free" reactor.

The Dupla CO2 reactor is in the pump half of the sump of a wet/dry filter. The water coming out of the reactor is pH 6.6 (37 mg/l CO2). This is mixed with the water in the pump part of the sump to produce a pH of 6.8 going into the tank. The pH of the tank is 6.9 (18 mg/l of CO2).

A Simple DIY reactor

Olga Betts of Vancouver, BC, created this
simple DIY yeast CO2 system and reactor
for a 20 gallon aquarium. She reports that
it is very effective.

The reactor is a small water bottle with the
top cut off, mounted upside down in the
aquarium. Two holes are punched in the
rear and the nibs of two spare suction cups
are forced into the holes to hold the reactor
to the side of the aquarium. Another hole is
made in the front to hold the airline bringing
CO2 from the yeast generator.

The rate of diffusion is determined by the
surface area of the CO2 bubble contained
inside the reactor and water flow across
the bottom of the reactor.

The reactor should be emptied every couple
of days since dissolved gases in the water
will diffuse into the CO2 bubble, reducing the
CO2 concentration and the effectiveness of
the reactor.

A more efficient DIY reactor.

Take the gravel tube from a Python water changer (about $7) and connect a 201 powerhead to it ($20) with a short piece of 5/8" hose. To keep fish out of the powerhead, use a Magnum inlet strainer ($3) on the powerhead inlet. At the bottom of the gravel tube, connect an airstone to the CO2 airline. In operation, the powerhead blows water down through the gravel tube. The CO2 bubbles coming from the airstone rise against this current and collect at the top of the tube. When the system is balanced, there is about 1/2" of free CO2 at the top of the tube. Of course, this whole assembly is in the aquarium. The CO2 flow is easy to adjust since you can see the bubbles coming from the airstone.

            |         |------------------
            |   201   |  =  =  =  =  =   |  <- Magnum strainer
            |         |------------------
               |  |
               |  |
           ----    ----    
          |            |  <- free CO2
          |      o     |
          |     o      |
          |      o     | <- Python gravel tube
          |     o      |
          |    o o     |
          |     o      |
          |    o_ o    |
          |    | |o    |
          |    | |     |       CO2 in
          |    | |     |         I
          |     I      |         I
                I                I

The injector seems to be very efficent. Not much CO2 gets away in the form of free bubbles and it can maintain a good level of CO2 in a 150g aquarium (about 15 mg/l).

Concerned about CO2 loss in a trickle fitler? Don't be! (From an article posted quite a while ago).

CO2 Loss in Large Aquariums

We are in the process of setting up a new 90 gallon plant tank based on concepts presented in Dupla's "The Optimum Aquarium". Before we finalized the set up, we had the chance to conduct some experiments in the bare tank. We ran a "CO2 loss" test recently and wish to share the results with the AGA. We verified that the major culprit in CO2 loss is surface turbulence (no surprise here). However, counter to our expectations, trickle filters DO NOT necessarily cause rapid CO2 loss.

The test tank was a "90 gallon" glass tank (48"x18"x24" tall, 79 gallons of water). It was set up with Dupla heating coils and a Dupla "DuplaTherm" temperature monitor/controller to maintain the water temperature at 79.0 +/- 0.1 degrees F. A Dupla Reactor "S" was used to inject CO2 via the sump of a trickle filter.

CO2 concentrations and pH were measured with LaMotte test kits. Note that the LaMotte CO2 test kit has a resolution of 1 ppm (mg/l) and an error of about +/- 2 ppm. The LaMotte pH test kit has a resolution of 0.1 pH units and uses an "octet color comparator". The pH error is about 0.05 pH units based on comparisons with a Sandpoint II pH/ORP controller and comparisons with a pH/KH/CO2 table.

An AquaClear 802 powerhead was used to circulate water in the tank. It was placed near the bottom in three tests to provide a gentle circulation current with little surface turbulence. A 0.3 ft/sec surface current was noted, giving a smooth surface pattern that looked like "heat waves" rising off a highway in the summer. In a forth test, the powerhead was placed at the surface and was adjusted to give vigorous ripples without splashing.

The trickle filter used was an Amiracle "100 gallon" unit with a bio-media capacity of 3.99 gallons. The media space is 16.125" long x 7.625" wide x 7.5" high. The media used was 238 Dupla BioKascade bio-balls, with the internal slats arranged roughly horizontally to allow the water to move through the media in a gentle, cascading manner.

The filtered water is circulated by a Quiet One pump controlled by ball valves to provide a 400 gallon per hour flow, turning over the tank five times per hour. The trickle filter has two water returns. One is directed across the bottom 1/3 of the tank, providing a flow at what will eventually be the top of the gravel. The other return utilizes a Magnum 330 water return fitting. To provide surface turbulence, a Magnum diffuser was used to direct the return flow across the surface, producing ripples equivalent to the powerhead when placed at the surface. For tests without turbulence, the diffuser was removed, allowing the water to be directed towards the bottom of the tank.

The tank is bare except for the equipment mentioned - no gravel, no livestock, no plants. Lighting is room ambient. The top is open.

Before we turned on any equipment, we filled the tank with tap water and adjusted the water hardness by adding 3 tablespoons of calcium carbonate (CaCO3) and 1 tablespoon of sodium bicarbonate (NaHCO3) to achieve a GH of 3.5-4 degrees and KH of 7 degrees as measured by a Tetra test kit. Note that GH has no bearing on the CO2 measurements, but a KH of over 3.5 is needed to ensure accurate CO2 test kit readings. A KH of 7 was selected to keep pH readings in the range of the LaMotte test kit.

After letting the water equilibrate for one day we measured dissolved CO2 at 2-3 ppm. We then set up a large powerhead to circulate the water (Project RS-500, ~500 gph) and let it run for a day. The CO2 remained about 2-3 ppm. At the end of most of the tests, CO2 again measured about 2-3 ppm, indicating that this was the equilibrium value for the experimental conditions (note that the altitude was 5000 feet above sea level).

After the initial tests, the heating coils, trickle filter and CO2 injection were set up. The large powerhead was replaced with the AquaClear 802. For the first test ("trickle, turbulence"), the trickle filter was run with the Magnum diffuser producing surface turbulence and with the powerhead running at the bottom. For the second test ("powerhead, turbulence"), the filter was turned off and the powerhead was placed near the surface. For the third test ("trickle, quiet"), the trickle filter was run without the diffuser and with the powerhead running at the bottom. For the last test ("powerhead, quiet"), just the powerhead was used, running at the bottom. In all tests, the trickle filter and reactor were used to get the CO2 level up to the point were the test started. At that time, the CO2 was turned off and the reactor allowed to clear of residual CO2 before actually starting the test.

Due to some difficulty in getting the CO2 to the same starting point for each of the tests (actually, a lack of patience on our part), the CO2 readings were normalized for the table below. To normalize the readings, the raw data was plotted with the CO2 concentration on a log scale. A best-fit line was drawn by eye through the data points. The numbers in the table below were then read from the plotted lines at hourly intervals. Just CO2 data in the range of 10-33 ppm is shown, since we consider that range to be the most relevant for planted tanks. The raw data is shown at the end of this note.

                      CO2 concentration (ppm)

               trickle,   powerhead,   trickle,   powerhead,
Time (hrs)    turbulence  turbulence    quiet      quiet
   0             33          33           33        33
   1             21          24           28        28.5
   2             13.5        17           24        25
   3              -          12.5         20        21.5
   4              -           -           18        19
   5              -           -           14.5      16
   6              -           -           12.5      14
   7              -           -           10.5      12
   8              -           -            -        10.5

At KH=7, the following table relates CO2 to pH:

   CO2 (ppm)  pH
   42        6.7
   33        6.8
   26        6.9
   21        7.0
   17        7.1
   13        7.2
   10.5      7.3
    8        7.4

What surprised us was the fact the trickle filter itself was not responsible for much CO2 loss (compare the last two tests). It should be noted that air was not pumped into the media chamber during the tests. We suspect that any out-gassing of CO2 by the media will quickly produce a concentration of CO2 in the chamber such that it reaches equilibrium with the CO2 in the water.

In our other trickle-filtered tank, we have noted very high CO2 loss (we go through a 10 pound tank in 6-7 weeks). We now suspect that the loss is caused by the Ehiem canister filter spray-bar return. We plan to run further experiments on that tank to verify this conjecture.

Although some authorities recommend pumping air into the media chamber of a trickle filter, we have found no evidence of a need for this. Thriving plants will provide plenty of oxygen for the aerobic bacteria colonies during the day and we have noticed no problems at night when the plants are at rest. We ran a long term test on another tank using a Sandpoint II pH/ORP controller and found no difference in ORP with the air pump on or off. We also noted that less CO2 was used with the air pump off (longer intervals between CO2 bottle refills).

From the table, it would appear that a 10 pound CO2 tank will last about 5 months when we finally get the new tank set up. We will have a KH of about 5 and will regulate the pH to be 6.8 +/- 0.05. This is a CO2 concentration swing of 5 mg/l (27 mg/l to 22 mg/l) times 300 liters and should occur within 1.25 hours for a usage of 29 grams per day. Of course, the usage by the plants will increase this by some amount, but that's another experiment!

                             CO2 test raw data 

                 CO2 concentration in ppm and measured pH ()

 Clock          trickle,   powerhead,   trickle,   powerhead,
 Time          turbulence  turbulence    quiet       quiet
 6:00 pm          -           -           23 (7.0)  47 (6.65)
 7:00 pm          -           -           20        37 (6.75)
 7:30 pm          -          33 (6.8)      -         -  
 8:00 pm         27 (6.9)    27 (6.9)     17        31 (6.8)
 8:30 pm         20 (7.0)    24 (7.0)     -          -  
 9:00 pm         17 (7.1)    19 (7.0)     14        27 (6.9)
10:00 pm         11 (7.3)    14 (7.2)     10        23 (7.0)
11:00 pm          8 (7.4)    11 (7.3)     10        21 (7.0)
12:00 am          -           -            9        17 (7.1)
 3:00 am          -           -            -        15     
 8:00 am          2           2            -         8 (7.4)  
12:00 pm          -           -            -         5       

Curious how the LaMotte CO2 test works? Here's a description from their water testing handbook.



Carbon dioxide is present in all surface waters, generally in amounts less than 10 mg/L. However, higher concentrations are not uncommon in ground waters. Dissovled carbon dioxide has no harmful physiological effects on humans and is used to recarbonate water during the final stages of water softening processes and to carbonate soft drinks. High concentrations of carbon dioxide are corrosive and have been known to kill fish.

The anlysis for carbon dioxide is similar to that for acidity. A water sa,pler is titrated to a phenophthalein end point with Sodium Hydroxide Standard Solution. Strong mineeal acids are assumed to be absent or to be negligible in effect. Care must be taken during the anlysis to minimize the loss of carbon dioxide from the water sample as a result of aeration when collecting and swirling the sample.

Chemical Reactions

The reaction of sodium hydroxide with carbon dioxide (as carbonic acid) occurs essentially intwo steps, first a reaction from carbonic acid to bicarbonate and then to carbonate:

CO2 + H2O -> H2CO3

H2CO3 + NaOH -> NaHCO3 + H2O

NaHCO3 + NaOH -> Na2CO3 + H2O

Because the conversion of carbon dioxide to bicarbonate is complete at pH 8.3, phenophthalein can be used as a color indicator for the titration. The sodium hydroxide titrant must be of high quality and free from sodium carbonate.

Where to get fine control valves (thanks to a lot of people for the following information)

For a better (although much more expensive) valve, try to locate a a Nupro B-4MG2 valve.

The following are retail sources of the B-4MG2 valve:

This place will send via UPS (at least they did at one time) and they charged $35 plus $7 shipping some years ago.

Denver Valve and Fitting Co.
950 Simms
Lakewood, CO  

This place ship UPS and accept MasterCard over the phone. Dave Thorsen is the sales rep for western WI.

Minnesota Valve & Fitting Co.
15901 West 78th St
Eden Prairie, MN 55344-5799
(612) 937-1160
Pittsburg Valve and Fitting Co.
P.O. box 4155
49 Meade Ave
Bellevue, Pittsburgh
PA 15202
Ph: 412-761-3212
Fax: 412-761-2486

The ARO Model NO1 valve is obsolete, but there are replacements:

ARO Model FO1, NPT size 1/8", Grainger Stock No. 6ZC07, $8.43

ARO Model F02, NPT size 1/4", Grainger StocK No. 6ZC08, $11.30

Note: These prices are taken from the 1993 Grainger Cat. and have gone up slightly. e.g. the F02 now costs $13.10.

Another valve that is being tried (no data yet) is:

Whitey, Model no. B-ORF2, Cost around $22.00 from the Pittsburg Valve and Fitting Co. (listed above).

I went out and bought a CO2 tank and the Victor Flow Regulator. It works like a charm. The flow regulator is actually quite expensive since it combines both a needle valve and the regular and a flow gauge. Apparently, the Victor company brand is about the best you can buy. It ended costing $120 for the regulator (this was the best price I could find retail.) The model number is HRF1425-320.

As promised earlier: The phone number for the ARO corp. is 419-636-4242. This is their company h.q. and they should be able to put you in touch with a local distributor of their NO1 needle valve. In Siloam Springs, Arkansas, call Van Asche Industries at 501-524-3271, and in Tulsa, Oklahoma call Precision at 918-438-0707.