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:
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:
| dKH | pH at 30 ppm CO₂ | pH at ~15 ppm CO₂ (low) |
|---|---|---|
| 1.0 | 6.00 | 6.30 |
| 3.0 | 6.48 | 6.78 |
| 4.0 | 6.60 | 6.90 |
| 5.0 | 6.70 | 7.00 |
| 6.0 | 6.78 | 7.08 |
| 8.0 | 6.90 | 7.20 |
| 10.0 | 7.00 | 7.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
- Test dKH and pH after the tank has been stable for a few hours.
- Run the CO₂ calculator to read current ppm and a starting bubble rate.
- Set the diffuser and regulator to that rate, and confirm with a drop checker.
- Adjust one step at a time — 0.5-1 bubble per second — with a day of observation between changes.
- Keep 30 ppm as your ceiling, and add a solenoid + timer so injection stops before lights out.
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.
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.