Planted Aquarium CO2 Bubble Rate Calculator
Calculate CO2 bubbles per second for planted tanks by tank size and lighting.
Get a target BPS range for low, medium, and high-light planted aquaria.
Planted Aquarium CO2 Bubble Rate
CO2 injection drives plant growth and limits algae in high-tech planted tanks. Bubble rate (bubbles per second, BPS) targets vary by tank size, lighting, and stocking.
The basic guideline: Bubbles per second = Tank gallons / 10 (approximate for medium light + Atomic-style diffuser)
For a 30-gallon tank: ~3 BPS
More precise targets by lighting:
| Lighting Level | BPS per 10 gal | PAR (μmol/m²/s) |
|---|---|---|
| Low-tech (no CO2) | 0 | 15-30 |
| Low-light + CO2 | 0.3-0.5 | 30-60 |
| Medium-light | 0.7-1.2 | 60-100 |
| High-light | 1.2-2.0 | 100-150 |
| Very high (carpet plants) | 2.0-3.0+ | 150+ |
The drop checker check: Target CO2 saturation is 30 ppm for actively growing plants. Use a drop checker with 4-degree KH solution:
- Yellow: too much CO2, over 40 ppm, and dangerous to fish
- Lime green: ideal (~30 ppm)
- Light green: acceptable (~20 ppm)
- Dark blue: insufficient (<10 ppm)
The drop checker is measuring the same carbonate equilibrium the Fish Tank CO2 Calculator works from, which is why a fixed 4 dKH reference solution is used rather than tank water: it turns a color into a real ppm figure.
Critical: drop checker lags 1-2 hours behind actual CO2 level.
CO2 schedule:
- Turn ON: 1-2 hours BEFORE lights
- Turn OFF: 1-2 hours BEFORE lights off (CO2 buildup overnight risks fish)
- Use a solenoid valve on a timer
- Verify with drop checker for first weeks
Diffuser efficiency varies dramatically:
| Diffuser Type | Efficiency |
|---|---|
| Inline atomizer | 90-95% |
| In-tank ceramic | 70-80% |
| Bazooka / atomizer in canister return | 80-90% |
| Air-stone style | 30-50% |
| Reactor (sump) | 95-100% |
If your diffuser is inefficient, you need higher BPS to hit 30 ppm. That spread is larger than it looks: an air-stone at 40% wastes well over twice the gas of a reactor at 97%, so the same tank can need 2.4 times the bubble rate purely because of what the gas goes through.
When the bubble rate stops being a bubble rate
Past about 5 bubbles per second the bubbles merge into a stream and a bubble counter stops being a measurement at all. If the number this page returns is up there, the answer is not to open the needle valve further. It is that the diffuser cannot dissolve what you are already feeding it, and the fix is an inline atomizer or a reactor. Cranking the valve instead just sends undissolved gas straight to the surface while the fish sit in whatever did dissolve.
Fish safety warning: CO2 levels above about 40 ppm stress fish (gasping at surface), and sustained levels beyond 80 ppm are lethal. Always:
- Turn off CO2 at night (when plants don’t consume it)
- Use surface agitation overnight to off-gas excess
- Watch for surface gasping, which is the sign to shut the CO2 off immediately
- Run an air pump on a timer for nighttime oxygen
Pressurized vs DIY (yeast):
- Pressurized: consistent, controllable, expensive setup ($200-400)
- DIY yeast: cheap ($10), inconsistent, hard to dose, lasts 2-3 weeks before refill
- Citric acid + baking soda: mid-cost, mid-control
- Liquid carbon (Excel, Glut): a different chemistry entirely, not real CO2. It supplements, it does not replace
Calculating consumption rate: A 5-lb CO2 cylinder holds about 2.3 kg of gas (2,268 g), and a bubble-counter bubble is roughly 0.2 ml, which at the density of CO2 carries about 0.36 mg. Multiply that out and a cylinder’s life falls straight out of the bubble rate and how many hours a day the solenoid is open:
Cylinder months = 2,268 g ÷ (BPS × 3,600 × 0.00036 g × hours per day × 30)
- ~6 months on a 30-gal at 2 BPS, 5 hours a day
- ~1.5 months on a 75-gal at 4 BPS, 10 hours a day
- ~1 month on a 200-gal at 6 BPS, 10 hours a day
Those three lines are why the calculator asks how long your CO2 actually runs. Doubling the photoperiod halves the cylinder life, and an 8-hour default would have told two of the three examples above the wrong number.
Common mistakes:
- Bubble rate too low → algae instead of plant growth
- Bubble rate too high → fish death, especially in poorly aerated tanks
- No drop checker → flying blind on actual ppm
- Diffuser placement at output of filter → bubbles flow up immediately, low dissolution
How we build and check this calculator
This calculator runs entirely in your browser, so the numbers you enter stay on your device. The math behind it is written by hand and tested against worked examples and standard references before the page goes live.
SuperGlobalCalculator is independently built and maintained. See how we build and verify our calculators.
More Aquarium Calculators
- Protein Skimmer Size Calculator
- Saltwater Aquarium Salt Mix Calculator
- Aquarium Fish Compatibility Checker
- Aquarium Lighting PAR Calculator
- Aquarium Plant Fertilizer Dosing Calculator
- Aquarium Substrate Depth Calculator
- Quarantine Tank Size Calculator
- Aquarium Heater Size Calculator
- Aquarium Water Change Schedule Calculator
- Aquarium Medication Dosing Calculator