CO2Scape
ENDE
iOS · Planted aquarium chemistry

CO2 calculator for planted aquariums, for iPhone

Enter carbonate hardness, pH and temperature, and get the range your test kit actually supports instead of one confident digit that it does not.

Download CO2 Calculator: Planted Tank on the App Store Free. iPhone and iPad, iOS 17 or later. English and German. One optional purchase for the record keeping.
Interval on every result Hard stop on invalid chemistry Three methods in one app
KH and pH · pH drop · drop checker No account. Tanks and readings stay on the device.
Too littleApproachingTargetCautionDanger

The indicator scale of bromothymol blue, the colour language the whole app is built in.

What you get

Four screens, and what each one refuses to do.

Real screens from the app, not renderings. Five tabs: the calculation, the drop checker, a pH session across the photoperiod, the tools, and the history of what you saved.

Result screen showing 22 ppm with a range of 12 to 40 ppm, an on target badge, and a comparison against the old rule of thumb which reads 19 ppm.
The result, with its band22 ppm on its own is a claim. 12 to 40 ppm is the answer your inputs support, and the old table is shown next to it.
Lock screen reading active soil is moving your pH, offering the pH drop method or a drop checker instead of a number.
The refusalDeclare aquasoil, peat or a pH buffer and the carbonate route stops, naming what broke it and offering the two routes that still hold.
Drop checker screen listing the colour bands from blue to yellow with their ppm ranges and a reading of 35 ppm marked above target.
The drop checker scaleEach colour with the ppm it stands for against a 4 dKH reference, plus the lag that most guides leave out.
Degassing screen offering an air stone or a glass left standing, an estimate of about two hours, and a button to start the timer.
The guided degassingThe pH drop method rests on a sample that has truly finished degassing. The app times that step instead of leaving you to guess.

Install it before your next water test

Free, with the three methods, the error bands and the validity locks all in the free app. One tank and the last 30 readings are included without paying anything.

Download CO2 Calculator: Planted Tank on the App Store Requires iOS 17.0 or later.
The problem with a single number

A confident digit is the most expensive thing a calculator can hand you.

The KH/pH relation is a good model of a narrow situation: water whose pH is governed by the carbonate system alone, measured with instruments whose resolution you actually know. Outside that situation the arithmetic still works perfectly. It just describes a tank that is not yours. CO2Scape treats the boundaries of the model as part of the result, not as a footnote.

+58% / −37%
Spread in computed CO2 produced by a ±0.2 pH reading, roughly the resolution of a colour comparison pH test.
12 to 19×
How far the same equation drifts from reality in water buffered by non-carbonate chemistry. That is not an error bar, that is a different tank.
0
Servers involved in a measurement. Readings, tanks and history are written to your device and stay there.
The method, in full

Nothing is hidden behind the button.

CO2Scape computes the first dissociation equilibrium of carbonic acid. Carbonate hardness fixes the bicarbonate concentration, pH fixes the ratio of carbonic acid to bicarbonate, and temperature moves the equilibrium constant. This is the entire model, printed here so you can check it against your own references before you trust a single reading.

Carbonate equilibrium, as implemented
// dissolved carbon dioxide
CO2 [mg/L]  =  15.696 × KH[dKH] × 10^( pK1(T)  pH )

// temperature-dependent first dissociation constant
pK1(T)      =  3404.71 / T  +  0.032786 · T    14.8435

// T in kelvin:  T = t[°C] + 273.15
KHCarbonate hardness in German degrees. One dKH corresponds to 0.357 meq/L of bicarbonate alkalinity, which is where the factor 15.696 comes from.
pHThe measured hydrogen ion activity. Because it sits in the exponent, every tenth of a pH unit moves the answer by a factor of 1.26.
TAbsolute temperature. Between 20 °C and 30 °C, pK1 shifts by about 0.03. Small, and included anyway.
pK1Fitted to the classical potentiometric measurements of carbonic acid in aqueous solution; valid across the temperature range an aquarium ever occupies.

Constant after Harned & Davis (1943), The Ionization Constant of Carbonic Acid in Water, J. Am. Chem. Soc. 65, pages 2030 to 2037. The app prints the citation in its methodology sheet, one tap from the result screen, not in an about box.

Error bands

The pH sits in the exponent. Your test kit does not know that.

A drop test read against a printed colour card resolves to roughly a fifth of a pH unit under good light and an honest eye. Because pH enters the equation as a power of ten, that reading tolerance does not add a few percent to the result, it multiplies it. CO2Scape propagates your stated input tolerances through the equation and shows you what is left.

KH 4 dKH · pH 6.8 ± 0.2 · 25 °C
12 mg/L22 mg/L40 mg/L

One tick of the colour card in either direction, plus the half degree an ordinary carbonate titration resolves to, turns a textbook 22 mg/L into anything from a plant limiting 12 mg/L to a livestock threatening 40 mg/L. The band is asymmetric because the relation is exponential: 10+0.2 = +58%, 10−0.2 = −37%.

What a bare chart returns
22 mg/L
What CO2Scape returns
12 to 40 mg/L
compounding

KH tolerance stacks on top

Carbonate hardness enters linearly, so a titration read to the nearest whole degree at 4 dKH adds another ±12.5%. Combined with the pH band, the honest interval spans very nearly a factor of two.

instrument

Tell it how you read the pH

A calibrated probe, a drop test, a strip: each carries its own tolerance. You pick the one you used, and the app applies the matching band rather than pretending all three are equal. Carbonate hardness is carried at the half-degree resolution of an ordinary drop titration.

decision

Bands change what you do next

When the upper edge of the interval reaches the range where fish start showing distress, the correct action is a slower increase and a second reading, not a bolder bubble count.

Where the app refuses

Four conditions make this equation meaningless.

The KH/pH method assumes the carbonate system is the only thing holding your pH in place. The moment a second acid and base system enters the water, the measured pH stops being a report on carbon dioxide and the computed value can land an order of magnitude away from the truth. CO2Scape asks about these conditions up front and locks the result when one is present.

Peat and botanical tannins

Humic and fulvic acids push pH down on their own. The equation reads that depression as dissolved gas and reports a heavily gassed tank where there may be almost none.

carbonate route locked

Active plant substrates

Ion exchanging soils strip carbonate hardness and acidify the water column. KH and pH end up describing the substrate rather than the gas phase, and the two inputs are no longer independent.

carbonate route locked

pH buffers and reef hardeners

A phosphate buffer pins pH at a set point regardless of carbon dioxide, and a borate based reef buffer adds alkalinity that never takes part in the gas equilibrium. The result becomes a constant with no relation to the tank.

carbonate route locked

Above pH 7.8

Carbonate ion begins to contribute measurably to alkalinity, so the approximation that alkalinity equals bicarbonate breaks from the other direction. Below that point its contribution stays under a third of a percent.

drop checker offered instead

In documented soil setups the classic table runs high by a factor of 12 to 19. A tank at 4 dKH and pH 6.5 computes to about 38 ppm when the truth can be 2 to 3. That is not an error bar, it is a description of a different tank.

What appears in place of the blocked number

  1. The reason. Which declared ingredient invalidated the model, and which assumption specifically failed.
  2. The indicator route. A drop checker filled with a reference solution of known carbonate hardness, which reacts to dissolved gas alone and is unaffected by whatever else is in the tank water. The app carries the colour scale, the recipe for that reference fluid, and the triage for a checker that stays blue.
  3. The degassed-sample route. Measure tank pH, drive the gas out of a sample of the same water, measure again. The pH difference gives the concentration ratio without ever assuming the carbonate system is in charge. The app walks that sample through: pick aeration with an air stone or a glass left standing, start the timer, and it tells you when the sample is ready and checks the two readings against each other before it accepts them.
  4. The observation you should not skip. Surface behavior of livestock and pearling of plants remain the fastest signals available, and no arithmetic replaces them.
In the app

Built for the way a planted tank is actually run.

Not a form with a submit button, but a small instrument you keep next to the tank: it remembers what you measured, when, and by which of the three methods.

pH sessions across the photoperiod

Log a pH reading whenever you take one. The curve is drawn as you go, and the drift between the first and the last reading is the figure that says whether the tank holds steady. Free for everyone; reminders at a chosen interval are part of Pro.

Guided degassing

The pH-drop method is the most reliable route in the app, and it rests entirely on a sample that really has finished degassing. The app runs that step: it explains the two ways, times them, tells you when the sample is ready, and refuses a baseline that reads below the tank or sits inside the resolution of the test you used.

Multiple tanks

A tank carries its own carbonate hardness, temperature, substrate and additive declarations, target range and saved readings. Switching tanks switches all of it. The validity checks, the verdict and the history follow the tank they belong to. The free app keeps one; Pro removes the limit.

History over time

Each saved reading is kept with the inputs it came from and plotted against the date, per tank rather than in one shared pile. The free app shows the last 30 entries per tank and keeps the older ones on the device; Pro shows all of them.

Export

The readings of the tank you are looking at, as a CSV file named after it, for a spreadsheet, a forum post, or your own records. Part of Pro.

Indicator colour reference

The bromothymol blue scale rendered on screen, so a checker can be read next to a reference instead of from memory.

Everything you enter stays on the device

Tanks, readings and history are stored locally. There is no account to create and no copy of your data on our side, because there is no our side. The free version shows advertising, which Google's ad kit loads over the network and which asks for your consent first; Pro removes it.

Three methods, one app, no account

The calculation, the drop checker scale, the guided degassing and the pH session are all in the free app, and they stay there.

Download CO2 Calculator: Planted Tank on the App Store Free on the App Store. iOS 17.0 or later.
Pricing

Two ways to run the same chemistry.

The three methods, the error bands, the validity locks and the pH sessions are identical in both. CO2Scape Pro removes the advertising, lifts the limits on tanks and history, adds the reminders, and adds the export.

CO2Scape

Standard

Free, and the whole of the chemistry. It shows advertising on the tools and history screens, and one full screen advert after a degassed sample is taken over as a baseline. Never on a reading, and never on a running timer.

  • All three methods: KH and pH, pH drop, drop checker
  • Error band on every result
  • Validity locks and the alternative routes
  • Drop checker scale and the 4 dKH reference recipe
  • Tools for tank volume, hardness units and dosing
  • pH sessions with the curve and the drift reading
  • One tank profile, with the last 30 saved readings

CO2Scape Pro

EUR 6.99

EUR 6.99, one purchase in the App Store. Non-consumable, eligible for Family Sharing.

  • Everything in the standard app
  • No advertising
  • Unlimited tank profiles instead of one
  • Unlimited history instead of the last 30 readings
  • Reminders at your chosen interval during a session
  • CSV export of your saved readings

Price shown in euro including applicable VAT; the amount charged in other regions is set by the App Store price tier for that storefront. The purchase is processed by Apple, and restoring it on another device signed in to the same Apple Account is done from within the app.

Questions

What people ask before they install it.

How do you calculate CO2 in a planted aquarium?

Dissolved carbon dioxide is not measured directly by anyone in this hobby. It is derived from carbonate hardness, pH and temperature through the first dissociation equilibrium of carbonic acid. The app runs exactly that equation, shows it in full, and derives the constant for the temperature you run rather than assuming one.

Why does it give a range instead of one value?

Because pH sits in the exponent, so a reading tolerance multiplies the result rather than adding to it. A colour comparison drop test resolves to about 0.2 pH, worth plus 58 and minus 37 percent. Carbonate hardness adds its own share, 12.5 percent at 4 dKH from a half degree of titration resolution.

The app carries those tolerances through the equation and reports what is left. A single value would claim a precision your test kit never had.

Why does the app refuse to calculate for my tank?

Because the carbonate method assumes carbonate is the only thing holding your pH down, and active soils, peat and botanicals, and phosphate or borate buffers all break that. In documented soil setups the classic table then runs high by a factor of 12 to 19. Above pH 7.8 the approximation fails from the other direction.

In those cases the app names the declared ingredient that invalidated the model and sends you to the pH drop method or the drop checker instead of handing you a number it cannot stand behind.

Does the KH and pH chart work with aquasoil or peat?

No. Those substrates hold pH down without contributing carbonate hardness, and the equation reads that depression as dissolved gas. Use the pH drop method, where carbonate hardness cancels out of the ratio, or a drop checker, where a reference solution of known hardness sits behind an air gap that only gas can cross.

Is the CO2 calculator free?

Yes. All three methods, the error bands, the validity locks, the guided degassing timer, the drop checker scale with its reference recipe, the tools for tank volume, hardness units and dosing, and pH sessions with the curve and drift reading are free, with one tank and the last 30 saved readings.

CO2Scape Pro is a single purchase of 6.99 EUR, not a subscription. It removes the advertising and adds unlimited tanks, unlimited history, session reminders and CSV export.

Does it need an account or an internet connection?

There is no account, no login and no synchronisation, and every tank and reading is stored on the device. The free version shows advertising, which Google's ad kit loads over the network and which asks for your consent first; Pro removes it. Apart from that and Apple's own App Store machinery, nothing leaves your iPhone.

Which pH test should I use?

A freshly calibrated pH meter is worth about 0.05 pH, a colour comparison drop test about 0.2, and strips about 0.3. You tell the app which one you used and it applies the matching tolerance, so moving from strips to a meter visibly narrows the reported interval instead of quietly treating all three as equal.

Still deciding? It costs nothing to check

Install it, enter your carbonate hardness, pH and temperature, and see what interval your own tank produces. If your substrate breaks the method, the app will tell you that instead of a number.

Download CO2 Calculator: Planted Tank on the App Store Free. iPhone and iPad, iOS 17.0 or later.

Carbon dioxide is the fastest way to lose a tank.

It is also the single largest lever on plant growth, which is exactly why so many people push it further than their measurements can justify. An interval and an occasional refusal are cheaper than the alternative.

Download CO2 Calculator: Planted Tank on the App Store