AquaCalc
FIELD GUIDE // CO2-04|GUIDE

CO₂ injection for planted tanks, without the guesswork.

Pressurized CO₂ is the biggest single upgrade a planted tank can get — but only if you dose it to a real target. This guide explains why 30 ppm is the hobby's sweet spot, how the pH and dKH relationship lets you measure it with two test kits, and how to adjust your bubble rate without stressing your fish.

LAST UPDATED: 2026-09-06 · AQUACALC FIELD GUIDE

Why 30 ppm is the benchmark

Plants use CO₂ for photosynthesis, and in a high-light planted tank it is almost always the limiting nutrient. Between 20 and 30 ppm of dissolved CO₂ is the accepted operating band for high-tech tanks; 30 ppm is treated as the standard for demanding plants under strong light, and the ceiling you shouldn't deliberately exceed. Above roughly 35 ppm fish begin showing stress — gasping, hiding, and in extreme cases suffocation risk — because CO₂ displaces oxygen-carrying capacity in the water.

Low-tech tanks without injection grow perfectly well at much lower levels with slower-growing plants. The target only applies when you're actively injecting.

The formula: CO₂, pH, and dKH are one relationship

Dissolved CO₂ acidifies water. Carbonate hardness (dKH) resists that acidification. The two combine into the standard hobbyist equation:

Henderson-Hasselbalch · CO₂ est.CO₂ (ppm) = 3.0 × dKH × 10(7 − pH)

Measure any two — pH and dKH — and the third is implied. That's why the CO₂ calculator only needs your tank's pH and carbonate hardness: it converts them straight to a ppm estimate and reports a starting bubble rate.

One important caveat: the formula assumes carbonate alkalinity is the only buffer in the water. Phosphate buffers, tannins, peat, and some commercial pH adjusters all distort the reading and usually push the estimate above the true CO₂ level.

The quick pH/dKH reference table

For a fixed 30 ppm target, here's the pH each dKH should read when the tank is dialed in:

dKHpH at 30 ppm CO₂pH at ~15 ppm CO₂ (low)
1.06.006.30
3.06.486.78
4.06.606.90
5.06.707.00
6.06.787.08
8.06.907.20
10.07.007.30

Notice how soft water hits 30 ppm at a much lower pH than hard water. Never chase "the pH planted tanks like" — chase the pH drop relative to your own dKH.

Reading a drop checker

A drop checker holds a reservoir of water with a known 4 dKH reference solution and an indicator dye. Because the reservoir's own dKH is fixed, it responds only to dissolved CO₂, making it far more reliable than pH-and-dKH estimates in buffered or acid-heavy water:

  • Blue — low CO₂, below ~15 ppm.
  • Green — optimal, roughly 20-30 ppm.
  • Yellow — excessive, above ~50 ppm; reduce injection immediately.

There's a delay of an hour or more between a bubble-rate change and the checker's colour, so adjust one step at a time and give each change a day to settle.

Starting bubble rates

Bubble counters are a useful reference, not an absolute dose — bubble size varies with diffuser and pressure. As a rule of thumb, tanks up to about 200 litres typically start around one to three bubbles per second. The CO₂ calculator derives a start rate from your tank volume and refines it with your measured pH and dKH.

The disciplined sequence: set a conservative rate, run it a day, measure the drop checker, adjust by 0.5-1 bubble per second, re-measure tomorrow. Rushing the schedule is how tanks drift past 35 ppm unnoticed.

CO₂ is only one leg of the stool

Raising CO₂ without matching light and nutrients creates imbalance. The three scale together:

  • Light — high light demands high CO₂ and a solid fertiliser routine, or algae moves in.
  • Macros and micros — nitrogen, phosphorus, and potassium plus trace elements; a lean dosing regime keeps algae on a leash.
  • CO₂ stability — plants prefer a stable day long target over a level that swings wildly between sessions.

If algae has been your nemesis, verify CO₂ first: more injected gas is rarely the problem; unstable injection often is.

Safety: the non-negotiables

  • Turn injection off at night. Plants stop consuming CO₂ in the dark while fish and plants both consume oxygen — a solenoid on a timer that stops shortly before lights off is standard practice.
  • 30 ppm is a ceiling, not a goal. Above ~35 ppm fish show stress; above ~50 ppm you're in rapid-suffocation territory.
  • Never crank the regulator "to be sure." Each adjustment should be small, measured, and followed by a day of observation.
  • Validate with two tools. Cross-check the pH/dKH estimate with a drop checker before trusting either alone.

Related reading: know your tank's real volume — CO₂ dosing is per litre of actual water, and an inflated volume guess means an inflated injection rate.

Dial it in, step by step

  1. Test dKH and pH after the tank has been stable for a few hours.
  2. Run the CO₂ calculator to read current ppm and a starting bubble rate.
  3. Set the diffuser and regulator to that rate, and confirm with a drop checker.
  4. Adjust one step at a time — 0.5-1 bubble per second — with a day of observation between changes.
  5. Keep 30 ppm as your ceiling, and add a solenoid + timer so injection stops before lights out.
CALC // CO2-04RUN TOOL →

Open the CO₂ Bubble Rate Calculator

Enter your tank's pH and dKH to read current dissolved CO₂, the gap to your 30 ppm target, and a starting bubble rate — with a pH-drop field to hit the target.

FAQ // CO₂

Planted tank CO2 questions, answered.

The 30 ppm target, the pH/dKH relationship, drop checkers, and the safety rules every injector should treat as law.

Is 30 ppm CO2 safe for my fish?
Yes, 30 ppm is the accepted planted-tank target and is generally well tolerated when reached gradually. Stress begins above roughly 35 ppm, and rapid suffocation risk climbs steeply past 50 ppm. The danger is jumping quickly to a high level, or leaving injection on through the night when plants stop consuming CO2.
Why does my pH-and-dKH reading disagree with my drop checker?
The pH/dKH formula assumes carbonate hardness is the only buffer in the water. Phosphate buffers, tannins from driftwood or peat, and some pH adjusters all skew the estimate, usually making CO2 appear higher than it is. A drop checker with 4 dKH reference solution bypasses those interferents and responds to dissolved CO2 directly.
How many bubbles per second do I need?
For tanks up to roughly 200 litres, one to three bubbles per second is usually enough to reach a green drop checker. Bubble size varies between regulators and diffusers, so treat bubbles per second as a starting reference only, and refine using the drop checker colour.
What does the pH drop method mean?
Dissolved CO2 acidifies water predictably, so the pH difference between fully degassed water and your running tank indicates CO2 concentration. A drop of about 1.0 pH unit from a degassed baseline corresponds to roughly 30 ppm. Measure the baseline by leaving a water sample out overnight or aerating it vigorously before comparing.
Should I turn CO2 off at night?
Yes, for most systems. Plants consume CO2 only in the light; running it after dark raises levels while fish are at their lowest tolerance at the same time plants are producing no oxygen. A solenoid on a timer that starts one to two hours before lights on and stops shortly before lights off is standard practice — and it conserves gas.
Do I need pressurized CO2 for a low-tech planted tank?
No. Many beautiful planted tanks run without any injection, using slow-growing species, low light, and regular feeding of the substrate and water column. The 30 ppm target and the calculator apply to injected tanks; low-tech setups aim far lower and simply avoid high-light plants that demand more CO2 than the water can naturally hold.