CO2 and Planted Tank Systems

How to Set Your CO2 Bubble Count Safely

A three week ramp built around a measured pH drop, with the daily checks that catch trouble before fish start breathing at the surface.

Key takeaways

  • Bubble rate is a setting to record, not a measurement, because two tanks at 2 bubbles per second can differ by 20 ppm.
  • Measure degassed pH from a glass of tank water left standing 24 hours, then aim for 1.0 unit below it under injection.
  • Raise the rate in small steps every three days and always in the morning, so you are present when concentration peaks.
  • Overnight surface agitation is the cheapest safety margin available, because oxygen bottoms out around dawn.
  • Stop climbing at a 1.0 pH drop or at the first sign of surface breathing, whichever arrives first.

The temptation on the first evening is to open the needle valve until the bubble counter looks busy, then walk away pleased with yourself. That is the single most common way people kill a tank full of fish with equipment that is working perfectly.

Carbon dioxide does not warn you. There is no smell, no cloudiness, no visible sign until the fish are already at the surface working their gills hard. The whole job is to arrive at your target concentration slowly enough that you catch trouble before it becomes loss. This assumes the hardware is already assembled and leak tested, as laid out in the full chain from cylinder through to diffuser.

A bubble is not a unit of anything

Two tanks running 2 bubbles per second can sit 20 ppm apart. Bubble diameter varies with the bore of the counter, the working pressure, the temperature, and whether there is glycerine in the chamber.

Dissolution then varies again with your diffusion method, tank depth, and flow. A bubble rate is a setting you record so you can return to it, not a measurement you can compare with anyone else’s tank.

What you actually control for is the pH drop between degassed water and water under injection. That figure is comparable across tanks, and it is what the rest of this method is built around.

Step one: measure your degassed baseline

Draw a glass of tank water, around 250 ml, and leave it standing for 24 hours. An air stone in the glass speeds this up to roughly two hours. Either way you are letting dissolved CO2 equilibrate with the room.

Measure the pH of that standing water. This is your degassed baseline, the pH your tank would sit at with no injection at all. Most tanks land somewhere between 7.2 and 8.0 depending on source water.

Your target under injection is 1.0 pH unit below that baseline. A pH unit is a tenfold change in acidity, and since degassed water at 25C (77F) holds roughly 2 to 3 ppm of CO2, ten times that lands in the 20 to 30 ppm band most planted tanks want. The maths behind that relationship is set out fully in the degassed baseline method.

Tip

Calibrate a pH pen with 7.0 and 4.0 buffer solutions before you start, and again monthly. An uncalibrated pen drifting by 0.3 units will send you chasing a target that does not exist. A Hanna pHep style pen runs around $40 to $60 and holds calibration far better than the $12 units.

Step two: pick a deliberately low starting rate

On a 150 to 200 litre tank, start at about 1 bubble per second. Halve that on a 60 litre tank. If you are running an inline reactor rather than a ceramic disc, start lower again, because reactors dissolve close to everything you feed them.

You will almost certainly finish well above this figure. Starting low costs you a week of slightly slower plant growth and buys you the ability to notice a problem before it becomes a body count.

Step three: the ramp schedule

Raise the rate on a fixed schedule and never in response to impatience. Three days at each step gives the tank time to reach a new equilibrium and gives you two evenings of observation at that rate.

Days Rate Expected pH drop Action
1 to 3 1.0 bps 0.2 to 0.3 Establish, observe evenings
4 to 6 1.3 bps 0.3 to 0.5 Drop checker should shift toward green
7 to 9 1.6 bps 0.5 to 0.7 Watch fish closely at lights off
10 to 12 1.9 bps 0.7 to 0.9 Approaching target, slow down
13 to 15 2.1 bps 0.9 to 1.0 Hold and confirm over a week

Those bubble figures are an example from a real 240 litre tank, not a prescription. Your numbers will differ; the pH column is the part to follow.

Make every adjustment in the morning, never in the evening, so you are present through the hours when concentration peaks. Never raise the rate on a day you will be out all evening.

Step four: what to record

Keep a note on your phone. Four entries a day takes under a minute and turns a guessing game into a record you can reason about.

  • pH at lights on, before injection has built up
  • pH one hour before lights off, at the daily peak
  • Drop checker colour at the same evening moment
  • Any fish sitting higher in the water than usual
  • The needle valve setting and bubble rate you counted

The drop checker lags the tank by an hour or two, so read it at the same time each evening for the comparison to mean anything. What the shades correspond to is covered in the colour scale and the numbers behind it.

Read the fish, not the plants

Plants respond over weeks. Fish respond over hours, and they will tell you before any instrument does.

Watch for fish hanging near the surface late in the photoperiod, gill movement that is visibly faster than in the morning, loss of appetite, or shrimp climbing hardscape toward the waterline. Amano shrimp, otocinclus, and hillstream loaches react earlier than most tetras, which makes them useful sentinels. Learn what early distress actually looks like before you need to recognise it in a hurry.

Warning

If fish are gasping at the surface, cut the solenoid immediately. Then break the surface as hard as the tank allows, drop an air stone in, and do a 30 to 50 percent water change with temperature matched, well aerated water. Do not wait for a test result and do not reduce the rate slightly and hope.

Overnight is where the margin lives

Plants stop consuming CO2 in darkness while every living thing in the tank keeps respiring, so dissolved oxygen falls through the night to its lowest point around dawn. That is when a tank that felt fine all evening turns into a problem.

Run strong surface agitation overnight, every night, without exception. A cheap air stone on a separate timer from lights off to lights on costs a few dollars and a slightly higher gas bill, and it is the best safety margin available to you.

Set the solenoid to open one to two hours before lights on and close one to two hours before lights off. That offset is explained properly in how the gas schedule should sit against the photoperiod.

Knowing when to stop climbing

Stop when you hit a 1.0 pH drop, or when the fish tell you to, whichever comes first. There is very little benefit above 30 ppm and a steep rise in risk.

Hold the final rate for a full week before declaring it done. Tanks shift with temperature, plant mass, and stocking, and a rate that suited a freshly planted tank in April can be too much for the same tank in July when the water is 3C warmer and holds less oxygen.

Recheck the bubble rate monthly. Needle valves creep, and a valve that was set at 2.1 bps in spring may be passing 2.6 bps by midsummer, which is exactly the kind of slow change described in the way metering valves wander over time.

A worked example: 240 litres, three weeks

The tank was a 240 litre planted setup with an Eheim Classic 2217 and an inline reactor on the return. Degassed baseline came in at 7.7, so the target under injection was 6.7.

Days one to nine went to plan, reaching 0.6 of a drop at 1.6 bps. On day eleven, at 1.9 bps, two of the six otocinclus were sitting just under the surface an hour before lights off, so we dropped back to 1.6 bps for four days rather than pressing on.

The second attempt at 1.9 bps went cleanly, and the tank settled at 2.1 bps with an evening pH of 6.75 and a green checker. That is three weeks to do properly what people try to do in one evening, and the difference is the fish. The general principle that dissolved CO2 acidifies water is the same chemistry described in NOAA’s material on ocean acidification, just at a scale you can watch in an afternoon.

Questions readers ask about this

Count over ten seconds and divide, rather than trying to judge a single second. At rates above about 4 bubbles per second counting stops being reliable at all, and you should be working entirely from pH readings. Filming the counter on your phone and playing it back at quarter speed is a genuinely useful trick for fast rates.

Usually poor dissolution or lost gas. Check for a leak at every fitting, confirm the diffuser is producing fine mist rather than large bubbles, and look at whether bubbles are reaching the surface intact. Very high surface agitation also strips CO2 as fast as you add it. Move the diffuser under the filter outlet so gas circulates before it surfaces.

Yes, shut the solenoid before you start and leave it off until an hour after refilling. Fresh water changes both temperature and carbonate hardness, which shifts the pH relationship you have been working to. Refilling while gas is running can also strand fish in a low volume of heavily carbonated water, which is a common way to lose stock during routine maintenance.

For most Neocaridina and common community fish, a stable 30 ppm with good overnight aeration is fine. Amano shrimp, otocinclus, hillstream loaches and most wild caught fish are less tolerant, and many keepers cap those tanks at a 0.8 pH drop, roughly 20 to 25 ppm. Stability matters more than the exact number.

About the author

Vishal Rana

Vishal Rana has spent the last decade tinkering with aquarium equipment on his own bench and in a friend's shop, mostly on canister pumps, heater controllers, and planted-tank lighting. He writes about the fixes that actually held up in the tank rather than the ones that only looked clean on paper, and he keeps three tanks running at home, including a 200 litre planted setup that has been the source of most of his opinions on CO2.

32 articles

Keep reading