How Efficient is a Cerges CO2 Reactor?

I wrote this post some months ago (Feb 2017, I think), but never published it. The measurements will probably be different now, as I’ve made many changes to the tank since then. However, the general conclusion (for my tank) should be the same: CO2 levels remain pretty stable once they reach peak levels.

Since then, I have recently found extra information that explains why my CO2 is stable and not fluctuating (as far as I can tell). I’ll mention that at the end of the post. Everything in the quote block below was my original post.

I had read in various places on the internet that the gases that accumulated in the Cerges CO2 Reactor in the middle of the day could be a combination of injected CO2 and saturated O2 released from the water. This gas accumulation could hamper the efficiency of the reactor.

From previous pH measurements, I know that my tank has enough CO2 at the time of measurement. I decided to check if the levels drop when the gases accumulate.

I decided to measure the pH levels in the tank hourly from the time my CO2 solenoid turns on till a few hours after the gases start to accumulate in the reactor. I started a little later than intended, but the impact is minimal as the purpose was to observe the consistency of CO2 levels throughout the day. The table below shows the measurements:

Time pH CO2
Gas Accumulation
(By estimation of water level in reactor)
0 1038 7.3 9.0 Not observable
1 1100 7.1 14.3 Not observable
2 1200 6.9 22.7 Not observable
3 1300 6.7 36.9 Not observable
4 1400 6.7 36.9 Approximately 1 inch above transparent reactor body (Estimated by movement of bio-balls.)
5 1500 6.6


Approximately 0.5 inch above transparent reactor body
6 1600 6.6 45.2 Approximately 0.25 inch above transparent reactor body
7 1700 6.6 45.2 Slightly above transparent reactor body


  • KH is 6 degrees.
  • CO2 ppm levels are derived from this CO2-KH-pH Chart at
  • BPS is 7.4. The bubble counter is filled with glycerine instead of water.


  1. CO2 level reached an acceptable 20 ppm at about 2 hours, which is 1 hour into my lighting period.
  2. CO2 level reached the desired 30 ppm at 3 hours.
  3. CO2 level peaked at 45.2 ppm at 5 hours.
  4. Gas probably started to accumulate in the reactor from about the 3rd hour.
  5. CO2 level continued to rise despite start of gas accumulation.
  6. CO2 level consistent at 45.2ppm during the last 3 hours despite gas accumulation.
  7. pH dropped by 0.2 units per hour for the first 3 hours.
  8. pH only dropped by 0.1 units per hour after the first 3 hours.


At that BPS, it takes about 3 hours for CO2 level to reach the desired 30ppm. Gas also starts to accumulate from the 3rd hour. But CO2 level continues to rise and only peaks after 5 hours, which is 4 hours into the lighting hours.

Despite the significant accumulation of gases, it does not appear to cause CO2 levels to drop or fluctuate. pH started to drop slower after gas accumulation started, but this is expected. If the water is reaching CO2 saturation, CO2 will not dissolve easily and start to accumulate. pH is not a linear scale, so at lower pH, the same amount of additional CO2 actually causes a smaller drop in pH.

The CO2 level takes too long to peak, but reach acceptable 20+ ppm in 2 hours and the desired 30+ ppm in 3 hours.


Based on the peak of 45 ppm of CO2 above, I decided to lower my BPS to about 6, to see if I can peak at a lower CO2 ppm. Most likely, it’ll probably take longer to build up CO2 which turned out to be true. The next day, I measured the pH at 2pm and the reading was only 6.9 compared to 6.7 the day before. It’s not yet the desired level of CO2, and it already took too long to build up to that level.

Back to the present time.

According to the chart I am actually injecting a lot of CO2. Much higher than the desired 30ppm to 35ppm I was aiming for. At this rate, I am going through one 5 litre cylinder of CO2 every month. It would be nice to lower that.

However, I recently discovered an alternative method to measure CO2 levels in the tank that ignores the pH-KH-CO2 chart. That chart is based on the assumption that carbonates are the only thing affecting your tank KH. The truth is most hobbyists have no idea and no easy/cheap way to find out what’s affecting our KH. The alternative method is to find out the pH of your tank water at ambient CO2 levels and then aim for a 1pH drop to get 30ppm CO2. Bigger pH drop for more CO2. There are many posts in the internet about this, but here’s one: Another CO2 Chart to try.

So, here’s my recent pH measurements:

  • De-gassed tank water: 8.5pH
  • Tank water a few hours of CO2 injection: 6.8pH

According to the alternative method, ambient CO2 levels in water are estimated at 2 to 3ppm. If my de-gassed tank water is about 2ppm, with a 1.7pH drop, I am actually achieving around 90ppm of CO2! If my water’s ambient CO2 is at 3ppm, then I’m achieving around 150ppm!  I think both are way off! Another source suggests that ambient CO2 levels is around 0.6ppm. In that case, I have only about 30ppm of CO2. Not ideal, since it takes quite a while to build up to that. On the other hand, given the accuracy of hobby-grade pH meters and KH test kits, a difference +/- 0.1 pH  and +/- 0.5dKH could make a fair bit of difference in CO2 ppm.

As it is, I don’t think I can push my CO2 levels much higher since my reactor starts to accumulate CO2 halfway through the injection period. For now, I’m going to keep my CO2 injection rate as it is, since I could grow plants nicely before with the same reactor and similar injection rates.

Next, why am I getting stable CO2 levels, if my reactor accumulates gas? First, watch this video by Dennis Huang: Optimizing CO2 in a planted tank.

So, I am able achieve approach A (about the 3:41 mark of the video, but watch from the start for the explanation): high injection rate, high off-gassing rate. High injection rate is easy; just inject lots of gas. High off-gassing rate is achieved because I use a sump for filtration. Furthermore, the gas building up in the reactor should be CO2 according to this thread: What is the gas that builds up inside the Reactor during the day? This. The thread did not confirm it, but the deduction seems sound. The pump that runs my reactor stops 1 hour after I stop CO2 injection, and the built-up gas dissolves completely within that time. So the build-up may make the reactor less efficient, but it is still dissolving CO2 only.

So, that concludes that my CO2 levels are stable. CO2 levels are sufficient since I was able to grow plants well and fast with more lights before. I might tweak to waste less CO2 once I get my tank plants to grow well again, but at the moment I can rule out CO2 issues causing my plant growth and algae issues.

Elatine triandra and nitrates

To get my tank to recover, I am replanting the tank in phases. Starting about 4 weeks ago with Elatine triandra which is fondly known as Ah Pek Plant (APP) in Singapore. Once planted, the Elatine immediately flourished. Elatine is a very fast growing plant and is a nutrient hog. With lots of fertilisers (including CO2) and light, it grows very fast. At the same time, once fertilisers are lacking it melts very fast.

At the second week, I tested my NO3 just to see if it has reduced and it was still in the 40-80 ppm range. From the start of the tank till now, I’ve never had less than 20ppm NO3 in the tank even though I don’t dose NO3 except for a span of a few months last year.

By the third week, I had to trim the Elatine as they had started to overgrow my low rocks and looking rather unsightly.  Hopefully, trimming would encourage more side shoots and creeping growth rather than the upward growth till then. Algae on the glass had also noticeable reduced. But, I noticed that the old leaves were starting to yellow and melt. It was still minor, so I decided to just wait and watch. Maybe it’s just new tank syndrome? The symptoms indicated either N or P deficiency. I dose P, so that was eliminated. My tank supposedly has high N, so I disregarded that. I have already maxed the dissolution capability of my CO2 reactor, so that’s not option anymore… plus growth was excellent before, so can’t be CO2.

This last weekend, the fourth week, the Elatine looked really bad. Large patches had melted completely. This 2 days, they continue to melt…

I dose everything (P, K, CO2, trace and Fe) that the plants need to grow well, except N. So today I tested for NO3 again… lo and behold, ZERO nitrates! And it correlates with the symptoms of yellowing leaves melting from tip to stem. The Elatine sucked up all the NO3 that has been above the 20ppm range all this time in about 4 weeks.

Admittingly, I may have been an accomplice. In trying to fix things with the tank, I have in the last 2 months, progressively made major changes and done major cleaning in the tank:

  • Removed the white sand foreground.
  • Vacuumed and trimmed the algae infested plants, especially the big dirt trap mass of Java fern.

I further suspect that my tap water which used to come with about 20ppm NO3 may not have NO3 anymore. This needs testing to confirm.

Fortunately, I still have my NO3 solution in my cabinet and quickly made a dose. Let’s see what happens to the remaining Elatine in the coming weeks. It should recover quickly as it’s a very fast growing plant and I still have about 60% of the lawn still viable.

In the medium term, I will replace them with Staurogyne repens, but might keep a small patch as the proverbial “canary in a coal mine” for nutrient issues. It’ll be helpful as a indicator plant when the tank stabilises and I start tweaking my fertiliser dosages down.

Arowana-proof snails… almost

When I started this tank, I added Nerite snails as part of the algae crew. The was some concerns that they will end up as Arowana snacks as I’ve seen my previous Arowana chomping on something and saw what I thought was snail shell fragments dropping from its mouth. Still I decided to try out the Nerites as they are somewhat larger then the pest snails in my previous tank and have much ticket shells. Unfortunately, I never got to find out as the snails died before the Arowana was introduced. Thinking that my tank conditions were not suitable for snails, I never got new snails till now.

Septaria porcellana
Septaria porcellana (Abalone snail) – one of many in GC’s display tanks.

During a  visit to Green Chapter (GC) about a week and a half ago, I noticed that had a new species of snails in their display tanks. They had flat shells, like half a clam. That really got my interest as this would mean the Arowana, if it wanted to, would have a really hard time trying to grab them.

I asked Ron, GC’s ever friendly Dept. of Customer Delight representative, about the snails. He gleefully gushed how they have completed cleaned the glass of the tanks and… this is the best part… showed me how, at the slightest disturbance, they would lockdown and were almost impossible to move by hand. Perfect! The means that it is near impossible for the Arowana to grab them… or so I thought.

So, I got 5 to test in my tank.

These are Septaria porcellana (common name: Abalone snail). So far, they have done a pretty decent job of cleaning algae. The first photo below shows my rocks with half the brownish algae eaten up. The next photo shows the same rocks almost completely clean 2 days later.

Rocks half cleaned by Septaria porcellana
Rocks cleaned by Septaria porcellana
After (2 days later)

They seem to be nocturnal in my tank. I do not seen much of them when my tank lights are on, but the next day they would have eaten some more of the algae on the rocks. They also seem to prefer to be near or buried in the substrate. When I do find them, they are mostly buried in the substrate.

Septaria porcellana half burrowed into the substrate.
Septaria porcellana half burrowed into the substrate.

They seem to be nocturnal in my tank. I do not seen much of them when my tank lights are on, but the next day they would have eaten some more of the algae on the rocks. They also seem to prefer to be near or buried in the substrate. When I do find them, they are mostly buried in the substrate.

At GC, they were all over the tank glass even though the tank lights were on. Maybe they had to ventured out to find more algae to eat.

Septaria porcellana shell fragments
Septaria porcellana shell fragment

Unfortunately, they are not as Arowana proof as I thought. On day 3, my wife noticed some violent movement in the tank in her peripheral vision. She looked up only to see the Arowana chomping on something. She could hear crunching sounds and saw a few slivers drop out. The slivers were too small  to identify in tank, so had to wait for me to fish them out when I got home. And they turned out to be shell fragments of the Septaria porcellana. Sigh! Is there any algae crew that this hungry monster won’t/can’t eat?

Not sure what happened. Did the Arowana get lucky and did a quick enough snatch? Maybe the snail was on a soft surface, like a leaf or on the substrate? Or maybe it was on an uneven surface? Haven’t figured it out yet. At this point in time, I think I still have 3 left. We have confirmed 2 visually. I think 3 because of the 2 confirmed, 1 is working on the front glass, and the other is working on one of the rocks. I think the 3rd is working on the other rock. The 4th and 5th was last seen working on the back glass, but they’re now hidden behind the plants back there, if either are still alive. So which of the unconfirmed got eaten?

If the remaining ones do not die from the water conditions in another week or two, I’ll get another 15 or 20 more and hopefully they’ll help me clean the glass like the GC ones.

Bouncing Back

It has been a while since the last update. The arowana is growing well, but the plants can do better. Frankly, the main reason for lack of updates is the less than ideal condition of the plants and algae situation.

I’ve been getting an algae that forms a film on the leaves and hardscape, then dies and turns brown and hard. Also getting the green dust algae (GDA) on my glass. No one apparently has found a good solution for GDA besides lots of Bristlenose Plecos (BN). WIth my aggro arowana, more algae eaters is not really an option. Would really love to put in 10 more BN, or 2 platoons of Otos.

Further compounding the problem, I had modified my CO2 dissolution system. I had a custom-made CO2 reactor in-line with my sump return pump. The dissolution rate wasn’t as good as I wanted, and figuring that it could be due to the flow being too strong, I removed it and used a smaller dedicated pump on the reactor. From then, plant growth in the tank got worse slowly, but I didn’t realise it was due to low CO2 till later. Because of the way the reactor was placed and without the high pressure of the return pump, it had a harder time dissolving CO2 and at the same time, encouraged any gases in the water to evaporate out. I’ll explain in detail in a later post with illustrations.

On hindsight, the poor growth was obviously due to the drop in CO2,. The Staurogyne repens, that was growing beautifully before, slowly succumbed to the weird brown algae and died bit by bit. The red tiger lotus also produced smaller and smaller leaves. The Bolbitis was still growing new leaves, but the brown algae was smothering the leaves as the grew. Instead of considering CO2, I went looking at fertilisation problems. The deterioration was so slow that I neglected to consider CO2 as the main cause.

During that time, I noticed a much a bigger gas pocket in the reactor than before. I kept wondering why. I even had to reduce the CO2 injection rate. Eventually, after months, I guessed it might be due to the outlet being at the bottom of the reactor and hence the water level is always trying to drop. This results in low pressure inside the reactor, reducing the ability of the CO2 to dissolve. Acting on that hunch, I turned the reactor around and reversed the flow. Lo and behold, the gas pocket reduced significantly. So I’ve set the CO2 injection rate back up. This resulted in a slightly better growth from the S. repens and lotus.

I decided I wanted to further improved the CO2 distribution. Some time back I had read that placing a spray bar along the entire length of the back of the tank, pointing forward is one of the best ways to distribute CO2 all over a large tank. So I went and got some PVC pipes, DIY’d a spray bar and installed it. After 3 weeks, there is noticeable better growth from parts of the S. repens.

Unfortunately, I think the S. repens has deteriorated to the point where most of it does not seem to be recovering. I’ve decided to remove them in the near future and plant a new lawn and other plants. Going to remove the white sand bed, which is now brown, and replace it with Aquasoil and a new lawn.

I tried to re-tie the Bolbitis this past weekend, but discovered lots of dead rotting rhizome (despite the constant new leaves). Decided to throw out the lot and get new ones. As a result, just barely a week later, I noticed that the brown algae on the rocks near the Bolbitis is being slowly cleared away. I’m guessing that the rotting Bolbitis was feeding the algae in the area and now that it’s gone, the algae growth has slowed or stopped and the SAEs can out-eat it.

So, hopefully in a few weeks, I can start sharing new pictures of the tank with nice plant growth. Wish me luck!

L183 Starlight Bristlenose Pleco

One of the L183 Starlight Bristlenose Plecos grazing in the open, before the arowana was added and it drove them to hide. The video was when they were about 1.5 inches. Now they are about 3 to 3.5 inches long and seem to venture out more often than before. Hopefully, as they get bigger they will venture out …