In a high alkalinity low-tech (non-CO2 injected) aquarium like the Shrimphaus there is a significant amount of potential carbon dioxide locked away and mostly unusable by plants in the form of bicarbonate.  High alkalinity also means high pH, both of which are reputedly bad for aquarium plants.  In theory, you can solve both problems – lack of CO2 in the water column and high alkalinity/pH – by adding acid.  Acid protonates carbonate and bicarbonate to carbonic acid, which then converts to soluble CO2 and water.  If all of the bicarbonate in an aquarium containing Cambridgeshire tap water were acidified, it could make around 230 ppm CO2 whilst reducing the KH to neglible levels.  Clearly, 230 ppm CO2 is too high; most people aim for 30 ppm CO2 in CO2-injected tanks, but if the acidification were done in small pieces over a week it could work.

DISCLAIMER:  understand what you are doing before attempting any of the below*

Add HCl to convert alkalinity to soluble CO2

There are several acids that could be considered for converting alkalinity to CO2.  The first one I tried was food-grade citric acid.  This works but has two problems, both related to the citrate piece.  The first is that the citrate is a titratable chemical group, so citrate messes up an alkalinity test.  The second is that the citrate can be metabolised by a variety of organisms and in my experience makes the copepod population go absolutely ballistic.

Ideally you would use a “strong” acid, which completely converts bicarbonate commensurate with the amount of acid added.  Phosphoric acid could be considered, but the phosphate may be bioactive as the citrate was bioactive.  Sulfuric acid could be considered but can be challenging to source and has a reputation for being extra hazardous.  Hydrochloric acid (HCl) strikes a nice balance between being easy to source, relatively safe to handle, and biologically inert.  I purchase a 1M solution from Atom Scientific.

Chemistry of adding acid to a bicarbonate buffered system

An aquarium with any amount of alkalinity is a bicarbonate buffered system.  When a strong acid like HCl is added to an aquarium a number of things happen.

  1. The HCl is distributed throughout the aquarium water column.  In the Shrimphaus I estimate it takes 3 or 4 minutes for the HCl to be completely mixed homogenously through the water column when added dropwise close to the circulation pump.  The free water column volume of the Shrimphaus is around 12.5 litres.  There is an additional couple of litres of water tied up in water saturated aquasoil substrate, but since the exchange between water in the substrate and water freely circulating in the water column will be slow we can largely go with the water column value.
  2. When the protons from HCl encounter either carbonate or bicarbonate ions, the ions are protonated ultimately to carbonic acid.  This protonation reaction is diffusion limited, essentially instantaneous, and so happens at the same rate as the HCl distribution through the water column.

CO3-2 + H+ ⇒ HCO3-1 + H+ ⇒ H2CO3

  1. There are chemical reactions (other than protonation) that take place.  CO2 is produced by dehydration of carbonic acid, and also by the dehydroxylation of bicarbonate.  Both of these reactions produce CO2 and consume carbonate ions.  The dehydration reaction will increase pH a little by removing carbonic acid.  The dehydroxylation reaction will increase pH substantially due to the production of the hydroxide ion.  These chemical reactions are not instantaneous but essentially run to completion in one second, after which time the aquarium will have reached a new pH/CO2/bicarbonate equilibrium with, relative to where you started, slightly lower pH, considerably higher soluble CO2 and lower overall carbonate hardness.

H2CO3 (carbonic acid) ⇌ CO2 + H2O   dehydration reaction increases pH a little

HCO3 (bicarbonate) ⇌ CO2 + OH   dehydroxylation reaction increases pH a lot

  1. The aquarium water will gradually lose CO2 through photosynthesis consumption by plants (this is what we want) and by outgassing to atmosphere.  As the CO2 is lost, the pH/bicarbonate system will gradually find a new equilibrium – extracting CO2 effectively removes carbonic acid resulting in a pH rise.  This is a relatively slow process taking place over a number of hours.  The reaction stops when the overall aquarium is back in CO2/carbonate equilibrium with the atmosphere.

Intermediate states of acid added to a bicarbonate-buffered aquarium

diagram of carbonate kinetic reactions
carbonate kinetic reactions

I wrote a python script to simulate the collective chemical reactions involved in maintaining a CO2-bicarbonate system equilibrium after perturbation, for example, after adding acid to an equilibrated system.  You can set the time increment on the calculations to whatever you like but I find an increment of 0.02 seconds works well.  The equilibrium state only requires two inputs:  system alkalinity, and system pH.  Given these two parameters, the concentrations of CO2, H2CO3, HCO3, CO3-2 and free H+ are all fully determined.  As you would expect, iterating over the various chemical reactions using the rate equations does not change the status of the equilibrated state (that means the calculations are working).  So for example, I measured the alkalinity of the Shrimphaus as 177 ppm CaCO3 and the pH as 8.41.  Together those set the initial state of the carbonate system in the Shrimphaus.  Then I add 5 ml of 1M HCl which in the Shrimphaus water column volume of 12500 ml works out to a final concentration of 0.4 mM HCl and step forward the chemical reactions 0.02 seconds per step until a new equilibrium is restored.  I can further simulate the gradual reduction in CO2 due to consumption by plants and atmospheric outgassing until a full equilibrium between Shrimphaus and environment is restored.  The results look like this:

initial conditionsadd 5 ml 1M HClprotonation finished
chemistry finished
(2 seconds)
CO2 equilibrated
(several hours)
H3O+3.890e-9 (pH 8.41)0.0004000 (pH 3.398)2.124e-5 (pH 4.673)3.865e-8 (pH 7.413)4.375e-9 (pH 8.359)
CO24.467e-5 (1.966 ppm)4.467e-5 (1.966 ppm)4.467e-5 (1.966 ppm)0.0004029 (17.73 ppm)4.468e-5 (1.966 ppm)
total carbon species0.0035370.0035370.0035370.0035370.003146
total H species0.0034470.0038470.0038470.0031300.003066
carbonate alkalinity177 ppm CaCO3177 ppm CaCO3158 ppm CaCO3157 ppm CaCO3157 ppm CaCO3

The actual observed aquarium pH is an excellent match to the simulated reactions.  The net effect of adding the HCl is to temporarily boost soluble CO2 levels to around 18 ppm and to permanently reduce the alkalinity by around 20 ppm CaCO3 (a reduction of around 1.1 dKH).

Acid – bicarbonate kinetics

Results of the simulation show the chemical reaction that produces the CO2 is finished in only a few seconds.  The subsequent restoration of pre-acidification CO2 levels in the water column follows an exponential decay timeline with first order kinetics where the rate of change of the CO2 is roughly proportional to the amount of CO2 that was produced in the initial acid/bicarbonate chemical reaction.

The exponential decay of the released CO2 is pretty fast.  In the example above the peak CO2 concentration is 18 ppm which is considerably less than the 30 ppm commonly aimed for in high-tech injected CO2 setups like the Fireplace AquariumTropica advises that ‘advanced’ plants need 15-30 ppm CO2, ‘medium’ plants need 10-15 ppm CO2 and ‘easy’ plants can get by without supplemented CO2 although “even a little” CO2 at maybe 5 ppm will be helpful.  If I’m honest, I don’t know how well-studied this is and there will be factors other than CO2 in play.  Again, in the example above, the CO2 levels will be over 10 ppm for the first 60 minutes after adding HCl and levels will be over 5 ppm CO2 for the first 2.5 hours, which seems like it could be meaningful.  A lot of the CO2 loss is to atmosphere so the CO2 would stay in the water column much longer if the Shrimphaus had a lid (which it does not), if the water circulation were reduced (but I don’t want to do that) or if the airstone was turned off/down (I don’t want to do that either).

CO2 released from bicarbonate by HCl is used by plants

CO2 equilibration - lights on vs. lights off
CO2 equilibration half-life:
Lights on 60 minutes vs. lights off 70 minutes

One way to tell whether the HCl released CO2 is being taken up by the aquarium plants is to do a comparison of how quickly the pH equilibrates when HCl is added with the lights on vs. added with the lights off.  If the CO2 is being used by plants for photosynthesis, the rate of pH equilibration will be faster when plants are photosynthesising, i.e. when the lights are on.

When test-measured in the Shrimphaus the half-life of HCl added CO2 was 60 minutes with the lights on and 70 minutes with the lights off.  That indicates that whilst most of the CO2 is being lost through light-independent processes like water circulation and airstone aeration, there is an amount lost to light-dependent processes, presumably being consumption by the aquatic plants.

Add HCl when lights go on for most benefit

Since the CO2 released from the bicarbonate by HCl doesn’t last, the HCl should be added while lights are on and plants are actively photosynthesising.  The Shrimphaus operates on a 4+4 hour split lighting scheme:  lights are on for 4 hours in the morning (9:00 – 13:00), then off in the middle of the day, and then back on again in the evening (17:00 – 21:00).  Accordingly, I add 5 ml HCl in the morning, and then again in the evening.  The twice per day schedule is pretty easy to keep.  I add the HCl strictly dropwise and in the back left corner of the Shrimphaus where there aren’t any plants (and usually not any shrimp either).  Dropped onto the water the HCl sinks to the pump inlet where it is rapidly dispersed into the river and then the whole tank.

Does temporarily increased CO2 and permanently decreased alkalinity help aquatic plants?

thriving plants

It is difficult to tell whether the HCl interventions in the Shrimphaus are meaningfully improving the health of plants.  I’ve been going regularly with the acid treatment for about 6 months now and certainly some plants like these pictured are doing very well.  Shown (going left to right starting from top left) are Limnophila sessiflora, Alternanthera reineckii ‘Mini’, Helanthium bolivianum ‘Quadricostatus’, Bolbitus heteroclita ‘Difformis’, Taxiphyllum barbieri (Java Moss), and Microsorum pteropus ‘Windelov’ (Java Fern).  All of these are classed as ‘easy’ plants, except for the Alternanthera and the Bolbitus which are classed as ‘medium’.  To be fair, the Alternanthera was doing well in the Shrimphaus before any HCl modification as well.

Not shown in the picture are a variety of cryptocorynes that will generally do reasonably well regardless of what the aquarium conditions are.

You can see a few of the Bloody Mary shrimp posing in the picture.  They don’t seem to have been adversely affected by the whole process.  The pH of the aquarium shifts substantially twice a day when the acid is added, decreasing then increasing by at least 1 pH unit, and the KH is being progressively decreased.  I do large weekly water changes because that is good practise generally and, ironically enough, to restore the KH levels to closer to the high Cambridgeshire normal levels so there will be some alkalinity the HCl can use to release CO2.  Large changes in water parameters are commonly thought of as “non-specifically bad”, but I’m not so sure about that – I don’t know that natural ecosystems have a lot of stability either.

How big to make the alkalinity reduction steps

Generally I don’t take the alkalinity below 30 ppm (around 1.5 dKH), providing a good safety margin.  Following a recent Shrimphaus water change, the alkalinity afterwards was 204 ppm CaCO3.  I generally add HCl morning and night on days for five consecutive days starting the day after a weekly water change.  With each 5 ml HCl addition decreasing alkalinity by around 20 ppm, 5 days of dosing would use up 5 x 2 x 20 = 200 ppm CaCO3 making the ending alkalinity in the 40 ppm range.  On the sixth day I might just leave things alone, or potentially do one more 5 ml HCl addition if the measured alkalinity on that day indicates an additional dose is feasible.  It’s a trade-off overall between larger HCl dosing amounts giving higher CO2 for a smaller number of days and lower doses giving more moderate levels of CO2 over more days.  It would be possible to do water changes more frequently and thereby be more aggressive with the HCl dosing, but that strikes me as trying too hard – at a certain point you might as well just inject CO2 gas and convert to a full high-tech set-up if you really want stably high CO2, and likewise you might as well switch to remineralised RODI water if you really want full-time low alkalinity.

*What could possibly go wrong?

The biggest risk is running out of bicarbonate.  So long as there is any bicarbonate left at the end of the HCl reaction the ending pH of the aquarium will be fine.  If the bicarbonate runs out however, the aquarium pH can equilibrate to something more like the pH of acid rain than anything you’d want in an aquarium.

The best way to make sure this disaster doesn’t happen (other than not messing with the alkalinity of your aquarium at all) is to keep good track of the aquarium’s alkalinity.  Fortunately, this is easy to do and gives dependable results.  Do not skip this step!  The equilibrium pH of the aquarium is also a good clue – the pH is dependent on the alkalinity so if the pH is below 7.6 you’re getting close to potential trouble.  The problem with monitoring pH exclusively and not alkalinity is that pH can be tricky to measure accurately and so is less reliable than titratable alkalinity.

Less catastrophic, there is also a risk that adding the HCl too quickly rather than dropwise will create a temporary region within the aquarium of very low pH before homogenous distribution through the water column which could potentially be detrimental to plants/animals in that region.  This is particularly true at lower levels of overall tank alkalinity.  At low starting alkalinity (below 70 ppm CaCO3 / 4 dKH) adding HCl makes for a deeper temporary pH drop and a seemingly slower recovery time back to equilibrium as well.  I make sure to add the HCl to an uninhabited part of the tank near a region of maximum water flow close to the pump.  At lower-end alkalinity I add the HCl dropwise more slowly, and carefully monitor what is happening dynamically to the pH during the process.  Adding a little food for the animals on the opposite side of the aquarium before commencing operations is also a good way to make sure the critters are well clear of the HCl landing zone.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>