Welcome to ScapeCrunch

We are ScapeCrunch, the place where planted aquarium hobbyists come to build relationships and support each other. When you're tired of doom scrolling, you've found your home here.

New Yugang Testing

  • Thread starter Thread starter techman81
  • Start date Start date
  • Tagged users Tagged users None
Joined
Jul 13, 2025
Messages
634
Reaction score
939
Location
Raymore, MO United States
I've finally gotten around to testing my first DIY yugang reactor and am wondering how much time prior to "lights on" do others turn on the CO2. With my vertical reactor and inline diffusers, I turn on CO2 about 3 hours before, so that's where I started with the yugang, but even at 4 hours, I don't have close to a full CO2 pocket and nowhere near my expected PH drop. Obviously, I can crank up the injection rate, but I expected my injection rate to actually be reduced from what I'm used to, not more.
 
Well, looking back over the overflow mode step-by-step instructions in the yugang guide, I see that I should have done a first time setup procedure to set my injection rate. I think I'll still have to start injecting a little sooner before lights than I was and I'll probably still use just as much CO2 or even more, than I was using before.

Having said that, I'm also a bit disappointed that the reactor isn't quiet. So far, it's noisier than my vertical reactor. I'm hoping a full "maxed out" reactor is quieter.
 
Having said that, I'm also a bit disappointed that the reactor isn't quiet. So far, it's noisier than my vertical reactor. I'm hoping a full "maxed out" reactor is quieter.
What are you referring to about quiet? Do you hear splashing? And can you show us the setup running?
 
Quick note on pH drop as a tool for CO2:
I've tested extensively in different KH tanks, and find that "pH drop" methods vary as wildly as trying to read a "ppm number" from drop checkers colors. A 1.0pH drop (from degassed) does not equal 30ppm in low KH tanks, or high KH tanks. The range seems to be between 3-6KH for a 1.0pH drop to equal 30ppm CO2. You will need 1.2-1.5 at 0-1KH for ~30ppm CO2, and 0.8pH drop at 6-10KH for 30ppm CO2. For me, it's just not accurate and has too many factors!



The basics​

What pH readings are most useful for:
Since CO2 injection is directly chemically related to pH drop, we can use pH readings over the course of a day to get an idea of how our CO2 is actually functioning.

Best choice for accurate CO2 ppm readings:
I now have a year of extensive testing and use of the Hanna CO2 Titration kit, and I consider it required for really dialing in CO2 levels.

Combining a pH graph with readings from the Hanna CO2 test kit give us this:

1764790900940.webp
This is a real 24-hour graph selection from my current 140p tank with a horizontal "yugang" reactor. Let's break it down:

  • I start CO2 injection at 4:00am.
  • My lights come on at 9am (yellow part of the graph). By this point, the Hanna CO2 kit is usually about 30ppm CO2.
  • CO2 injection continues through the photoperiod.
  • At 4pm, CO2 injection turns off. This is the longest point since injection started and should have the most CO2, which checks out on the graph. The Hanna kit usually gives me ~40ppm CO2

Here's the most important parts of this information for me:​

  • With my current CO2 setup (lily pipe height for surface agitation, CO2 injeciton rate, filter flow rate, water temperature) it takes about 5-6 hours to truly hit the equilibrium point between injection and offgassing. If I kept injection going after 5pm, the graph should look like this:

1764797557772.webp
The pH graph shows me I've reached the actual equilibrium point over time, while the Hanna kit lets me know what my CO2 ppm actually IS at that equilibrium point. This point, with my current setup, is ~40ppm CO2. While this is considered on the "high" side, it's totally acceptable because I also have lots of oxygen in the tank thanks to lots of surface agitation from my filter setup. Fish, shrimp and snails are unbothered, but not all species tolerate or like 40ppm CO2.

I could leave CO2 injection going 24/7, and my CO2ppm would barely shift. This is how I know I'm at equilibrium, when the pH level OR measured CO2 level no longer moves up or down.




Example 1: Where many hobbyists go wrong with CO2 injection rate​

They start injecting CO2 too late, AND with too much CO2/min, where the eventual equilibrium is too much CO2 AND the photoperiod has massive swings in CO2 levels over time:

bad hobbyist CO2.webp

Simply increasing the needle valve on your regulator to inject "more" CO2 is not the answer -- in fact, it can lead to dangerous levels of CO2 in your aquarium. If you test with the Hanna kit, and your CO2 is 20ppm at lights on, and 45ppm at lights off, you're doing CO2 injection poorly. This is where I believe 50% of hobbyists reside. Plagued by algae and poor plant growth, clearly uncomfortable inhabitants, and "convinced that CO2 isn't the issue because the drop checker is yellow by 3pm".

The single best thing you can do to improve plant growth with CO2 in your tank is to inject earlier in the morning, often starting in the early morning (depending on your setup).



Example 2: Not injecting too much CO2/min, but not starting early enough either:​


1764799927997.webp

The equilibrium we reach is more appropriate around 30ppm, but we only reach near it for half of the photoperiod. This isn't ideal for our plants, which want steady levels of good CO2 for the whole photoperiod duration. This is where probably 30% of hobbyists reside.
It works, plants grow, but they could get FAR better growth over time if they just started injection earlier...



Example 3: How to properly inject CO2​

1764800708631.webp
This is the holy grail of CO2 setups. The water is saturated with steady levels of CO2 for the plants to use before the lights even come on.
90% of the photoperiod is occurring with 25-30ppm CO2 in the water. However, despite starting injection super early in the morning, the maximum level reached stays at/around the target level, and never pushes the tank into "fish-gassing" levels of CO2.




Answering your question directly:
I've finally gotten around to testing my first DIY yugang reactor and am wondering how much time prior to "lights on" do others turn on the CO2.
For me, I start ~5 hours before the lights come on. This is because injection rate and equilibrium are tied together with a horizontal reactor.
If my goal is to have 30ppm within 1hour of injection, I can do that easily by cranking the BPS/rate of CO2! However, it will look like this:
1764801034382.webp

It seems that with reactors, because rate+equilibrium are connected, you have to account for such a thing.

With my vertical reactor and inline diffusers, I turn on CO2 about 3 hours before, so that's where I started with the yugang, but even at 4 hours, I don't have close to a full CO2 pocket and nowhere near my expected PH drop.
Horizontal reactors might simply need more time to dissolve CO2 in the water, technically, than with diffusers. However, they are EXTREMELY efficient at doing so -- it just might take much more time to reach an equilibrium, since rate and equilibrium are tied together with a horizontal reactor. You will still, with a proper setup, use less CO2 with a reactor over time.

Obviously, I can crank up the injection rate, but I expected my injection rate to actually be reduced from what I'm used to, not more.
I think you'll find that if you start CO2 much earlier, you will be able to reduce the injection rate quite a lot and still maintain the equilibrium you want.

Let me know if you (or anyone) has questions or comments!
 

Attachments

  • 1764791243921.webp
    1764791243921.webp
    14.9 KB · Views: 3
I realize that it might be helpful to explain how to actually dial in a CO2 setup!

First, you have to keep as many variables constant as possible. If you are constantly changing these, it makes it VERY hard to dial in CO2 injection:

Things that change CO2 levels in the water are:
  • Injection rate (bubbles per second for bubble counters, or SCCM if using flowmeter. Also rotatable/adjustable horizontal reactors)
  • Temperature (warmer = less CO2, colder = more CO2)
  • Surface agitation (how near your filter/lily pipe is towards the surface of the water)
  • Surface scum (more scum=more CO2. Skimmers help remove scum)
  • Time CO2 injection started (injecting earlier allows more time to reach CO2 equilibrium)

Here's a real example of how I get an aquarium CO2 dialed in with only drop checkers and the Hanna CO2 test kit​


This is WAY easier to do without fish/shrimp/snails, since there's no danger if you "over-inject" CO2.

1) I get everything set up. Tank, hardscape, light, filter, etc. I set my inline heater to a constant 74F. I lock my lily pipes in place, and check that I like the flow and surface agitation, and my skimmer is set up properly. I get a drop checker filled and installed. Once these things are how I like, I keep them there and don't fuck with them. This is also easier to get setup without plants, so you don't have to worry about unhappy plants while dialing in the setup.

2) I start CO2 injection in the evening at a level I think might be appropriate. I let it inject CO2 all night. I don't worry or care about wasting CO2. I try to inject for at least 8-10 hours or more.

3) In the morning of Day 1, I check the drop checker and take a CO2 reading with the Hanna test kit. By injecting CO2 for ~10 hours, I can be sure I've reached whatever equilibrium level this current CO2/min injection setup is going to hit. If I like what I see (around 30-35ppm CO2, usually), I don't change a anything. I now set up my CO2 solenoid timer to come on anywhere from 3-5 hours before the lights normally would, and turn the CO2 off for the remainder of this day. This step is used to determine what the actual ppm the injection/offgassing equilibrium reaches with my setup.
If I'm injecting too much CO2, I reduce the CO2/min rate on my needle valve or rotate my horizontal reactor (if running in overflow mode), and try again in 8-10 hours. Same for if I'm injecting too little.

4) Once I get the equilibrium-over-time level to the ppm CO2 I want, it's time to dial in the timer setup. I let the CO2 timer turn the solenoid on for the first time automatically in the early morning. At 9am (aka whenever I want lights to come on) I take a Hanna CO2 reading and check the DC. If the reading is within 5-7ppm of my targeted 30-35ppm CO2, I'm probably injecting early enough. If it's only at 20 or 25ppm CO2, and I haven't changed anything, then I know I will need to start CO2 injection earlier in the day. This stem is used to determine AT WHAT TIME IN THE MORNING I need to start the previously-determined CO2 injection rate to reach near my desired 30-35ppm CO2 injection for the entire duration of the photoperiod.

5) If I like what I see, I let the CO2 inject normally as I would for the photoperiod. At 4pm, I take a Hanna CO2 reading and check my DC too.
If the reading at 4pm (or whenever you want CO2 to turn off) is at ~35ppm CO2, I've nailed it! If it's at 40 or 45+ ppm CO2, I'm injecting too much CO2/min.

6) For the next few days, I take a CO2 test reading at 9am (lights on) and at 4pm (CO2 off). If my CO2 level is ~30ppm at lights on, and ~35ppm at CO2 off, this setup is perfect.

And I'm done! I never have to worry about it again, right? Unless... If I adjust anything in a major way, I will need to do the same to dial it in. For example:

  • Installing a more powerful filter will increase the flow, which changes the surface agitation and therefore the offgassing rate. Might need to dial in my CO2 again.
  • Bumped my lily pipe and I can't remember how high I had it set up before. Might need to dial in my CO2 again.
  • Went from 68F unheated room temp to an 86F discus tank. Might need to dial in my CO2 again.
  • My CO2 cylinder ran out of CO2, and I had to install a new one which involved closing my regulator dials. Might need to dial in my CO2 again.
The easiest way to dial in your CO2 with a Hanna test kit is to simply start injection earlier in the morning than normal, and take a reading after 4-6 hours. The longer you give your CO2 time to inject, the more certain of the equilibrium level you can be. I usually find that anywhere from 4-6 hours is the minimum to get within 90% of the equilibrium rate, though in some setups it might take longer.

If your actual equilibrium level is 30-35ppm for 90% of the photoperiod, you will experience the best growth you've ever seen with your plants.
 
What are you referring to about quiet? Do you hear splashing? And can you show us the setup running?
It will take me awhile to read through, and digest everything in Rocco's post :LOL:, but here's a photo of the setup. Yes the noise is splashing/bubbling noise and it got much worse after I force injected CO2 to get the max reactor level (which took super high injection rate). I'm wondering two things about the noise issue:
1. Is using the elbow on the input side a problem? (I was concerned it would be)
2. Is there an issue with strong flow into the smaller diameter pipe I used for this reactor? I could test my larger diameter yugang in this setup to confirm.

The black marks on each end are where the max level would be when rotated like it is. It's down now that I've shut off the CO2 for the day. I'm testing on my dark start tank.

Yugang Test.webp
 
ALSO ALSO I realize there is something important that needs to be stated:

The only reason we don't inject CO2 24/7 is to not waste CO2 ($). It's not because it's dangerous for your inhabitants. If leaving your CO2 on 24/7 gasses your inhabitants, you don't have your CO2 set up properly.​


In fact, there are many large aquariums around the world that inject CO2 24/7 just to be sure it's present at equilibrium levels at all times during the photoperiod.

If the reason you turn CO2 off at night is because your fish start gasping if you leave it on for too long, you are injecting too much CO2 too soon in the photoperiod, like this:
1764803461621.webp


You should be able to inject CO2 24/7 without your equilibrium level rising to anything dangerous, like this:


1764803694474.webp
 
I realize that it might be helpful to explain how to actually dial in a CO2 setup!

First, you have to keep as many variables constant as possible. If you are constantly changing these, it makes it VERY hard to dial in CO2 injection:

Things that change CO2 levels in the water are:
  • Injection rate (bubbles per second for bubble counters, or SCCM if using flowmeter. Also rotatable/adjustable horizontal reactors)
  • Temperature (warmer = less CO2, colder = more CO2)
  • Surface agitation (how near your filter/lily pipe is towards the surface of the water)
  • Surface scum (more scum=more CO2. Skimmers help remove scum)
  • Time CO2 injection started (injecting earlier allows more time to reach CO2 equilibrium)

Here's a real example of how I get an aquarium CO2 dialed in with only drop checkers and the Hanna CO2 test kit​


This is WAY easier to do without fish/shrimp/snails, since there's no danger if you "over-inject" CO2.

1) I get everything set up. Tank, hardscape, light, filter, etc. I set my inline heater to a constant 74F. I lock my lily pipes in place, and check that I like the flow and surface agitation, and my skimmer is set up properly. I get a drop checker filled and installed. Once these things are how I like, I keep them there and don't fuck with them. This is also easier to get setup without plants, so you don't have to worry about unhappy plants while dialing in the setup.

2) I start CO2 injection in the evening at a level I think might be appropriate. I let it inject CO2 all night. I don't worry or care about wasting CO2. I try to inject for at least 8-10 hours or more.

3) In the morning of Day 1, I check the drop checker and take a CO2 reading with the Hanna test kit. By injecting CO2 for ~10 hours, I can be sure I've reached whatever equilibrium level this current CO2/min injection setup is going to hit. If I like what I see (around 30-35ppm CO2, usually), I don't change a anything. I now set up my CO2 solenoid timer to come on anywhere from 3-5 hours before the lights normally would, and turn the CO2 off for the remainder of this day. This step is used to determine what the actual ppm the injection/offgassing equilibrium reaches with my setup.
If I'm injecting too much CO2, I reduce the CO2/min rate on my needle valve or rotate my horizontal reactor (if running in overflow mode), and try again in 8-10 hours. Same for if I'm injecting too little.

4) Once I get the equilibrium-over-time level to the ppm CO2 I want, it's time to dial in the timer setup. I let the CO2 timer turn the solenoid on for the first time automatically in the early morning. At 9am (aka whenever I want lights to come on) I take a Hanna CO2 reading and check the DC. If the reading is within 5-7ppm of my targeted 30-35ppm CO2, I'm probably injecting early enough. If it's only at 20 or 25ppm CO2, and I haven't changed anything, then I know I will need to start CO2 injection earlier in the day. This stem is used to determine AT WHAT TIME IN THE MORNING I need to start the previously-determined CO2 injection rate to reach near my desired 30-35ppm CO2 injection for the entire duration of the photoperiod.

5) If I like what I see, I let the CO2 inject normally as I would for the photoperiod. At 4pm, I take a Hanna CO2 reading and check my DC too.
If the reading at 4pm (or whenever you want CO2 to turn off) is at ~35ppm CO2, I've nailed it! If it's at 40 or 45+ ppm CO2, I'm injecting too much CO2/min.

6) For the next few days, I take a CO2 test reading at 9am (lights on) and at 4pm (CO2 off). If my CO2 level is ~30ppm at lights on, and ~35ppm at CO2 off, this setup is perfect.

And I'm done! I never have to worry about it again, right? Unless... If I adjust anything in a major way, I will need to do the same to dial it in. For example:

  • Installing a more powerful filter will increase the flow, which changes the surface agitation and therefore the offgassing rate. Might need to dial in my CO2 again.
  • Bumped my lily pipe and I can't remember how high I had it set up before. Might need to dial in my CO2 again.
  • Went from 68F unheated room temp to an 86F discus tank. Might need to dial in my CO2 again.
  • My CO2 cylinder ran out of CO2, and I had to install a new one which involved closing my regulator dials. Might need to dial in my CO2 again.
The easiest way to dial in your CO2 with a Hanna test kit is to simply start injection earlier in the morning than normal, and take a reading after 4-6 hours. The longer you give your CO2 time to inject, the more certain of the equilibrium level you can be. I usually find that anywhere from 4-6 hours is the minimum to get within 90% of the equilibrium rate, though in some setups it might take longer.

If your actual equilibrium level is 30-35ppm for 90% of the photoperiod, you will experience the best growth you've ever seen with your plants.
There's a lot of good stuff here and I may learn a few more things as I go through it, but really my only issue is using the yugang. I'd been effectively injecting CO2 to proper levels with my vertical reactor and inline diffusers prior to this on my other tanks. I just want to get the yugang working like others are, because the expectation is that it will be better than my other delivery methods. My first testing today, unfortunately, just didn't go too well.
 
It will take me awhile to read through, and digest everything in Rocco's post :LOL:, but here's a photo of the setup. Yes the noise is splashing/bubbling noise and it got much worse after I force injected CO2 to get the max reactor level (which took super high injection rate). I'm wondering two things about the noise issue:
1. Is using the elbow on the input side a problem? (I was concerned it would be)
2. Is there an issue with strong flow into the smaller diameter pipe I used for this reactor? I could test my larger diameter yugang in this setup to confirm.

The black marks on each end are where the max level would be when rotated like it is. It's down now that I've shut off the CO2 for the day. I'm testing on my dark start tank.

View attachment 12054
A few issues I see might be a high flow rate in a small reactor. Does the flow carry the CO2 gas out the exit before it gets to actually "sit" as a pocket? If so, it's not working as it should. The gas pocket should build up to the level you want/set, and the water should move gently below the pocket to absorb the CO2 gas.

If the flow is too much, You can always install a 5/8" size Y Barbed Tee and make the reactor an adjustable bypass. All you'd need is one ball valve (I use these!) on the reactor's tubing line to adjust the flow through the reactor. You want a gentle flow, nothing too strong or turbulent (which is what it looks like from the picture). Just make sure to include proper-sized hose clamps (these are what I use for 16/22mm aka 5/8" tubing).
 
A few issues I see might be a high flow rate in a small reactor. Does the flow carry the CO2 gas out the exit before it gets to actually "sit" as a pocket? If so, it's not working as it should. The gas pocket should build up to the level you want/set, and the water should move gently below the pocket to absorb the CO2 gas.

If the flow is too much, You can always install a 5/8" size Y Barbed Tee and make the reactor an adjustable bypass. All you'd need is one ball valve (I use these!) on the reactor's tubing line to adjust the flow through the reactor. You want a gentle flow, nothing too strong or turbulent (which is what it looks like from the picture). Just make sure to include proper-sized hose clamps (these are what I use for 16/22mm aka 5/8" tubing).
CO2 bubble never escaped until I forced the bubble to max level.

I have seen some other DIY reactors with the bypass. I may look into that. I think I'll try my larger reactor in this setup first and see how that works. I can rotate it for a smaller CO2 level to match this tank, but it's a bit big for this cabinet. I can make it work for testing though. I plan to set it up on the bigger tank during the holiday break.
 
Simply increasing the needle valve on your regulator to inject "more" CO2 is not the answer -- in fact, it can lead to dangerous levels of CO2 in your aquarium.

For folks out in the audience wondering 🤔 this is referring to CO2 injection using a standard diffuser-disk, whether open or inline

Screenshot_20251203_205717_DuckDuckGo.webp
Screenshot_20251203_205705_DuckDuckGo.webp

different from the OP 👍

The point of using a correctly sized Yugang reactor that is set up in "overflow mode", is to make it impossible to raise your CO2 saturation above a certain preset point. And therefore impossible to gas your fish! 💯

1757927973115.webp

You do have the option to use an oversized Yugang reactor in regulator mode, in that case it does not offer this protection.
 
OK, so I did get my larger diameter reactor hooked up and eyeballed to about where the max level for the PH drop I want should be. Preliminary testing shows positive results meaning; too high of water flow into a smaller diameter reactor doesn't work well. Any fluid dynamics experts in the group? 😁 Round 2 (do-over) testing will commence at 8AM tomorrow when CO2 kicks on (same time as today's testing) What I just saw indicates that injection rate should be more inline with my expectations and noise level greatly reduced.
 
I have also found that too high a flow through a long but lower diameter (2.5") horizontal reactor really increases noise considerably (I suspect the diameter of the reactor is crucial in this way, with a larger diameter reactor being less prone to this). Also, clearly, having your water input hose level at water level or higher, will cause splashing as water enters the reactor.
Even using a fairly low flow pump (around 1000 lph) into my large horizontal reactor (2.5" x 21") I had to use a bypass circuit to reduce flow enough to remove unnecessary noise. Excess flow also causes noise by causing a whirlpool type effect on the outflow which sucks CO2 bubbles with in (all adding noise). Once set up with a low enough flow, the only noise should be a gentle burble each time the reactor overflows CO2 bubbles into the tank, as it is designed to do when set up on overflow mode.
Its hard to be exact but in comparison to my previous inline diffuser use on this tank I think my CO2 use is around the same now as then. I cannot be sure but I suspect I am getting a longer and higher CO2 plateau level than before though.
I have posted this elsewhere but this is my CO2 ppm graph (using a Hanna CO2 test kit to assay) when CO2 is switched on at 08:30. Lights come on 3 hours later at 11:30, when CO2 is starting to level off at around 30 ppm. When CO2 is switched off the drop to non-injected equilibrium levels takes around 3 hours too.

CO2 graph.webp
 
A few bits of info that I learned in making a few Yugang reactors that may be helpful here.

The first design shown here was completely silent (the one using a tee style connector). I believe this was because I used smooth adapter couplings from the large pvc to the small vs the abrupt end-cap style seen on many reactors on this forum. The downside to this though, is that the CO2 pocket in the main chamber doesn't quite reach mid-diameter before entering overflow mode. As a result, this little 6" reactor was only producing about 20-25ppm of CO2 in an ADA60P aquarium. The only time this reactor made any noise was when some bubbles overflowed up into the outflow every 5 minutes or so, but overall it was not noticably loud in any way.

I made a second reactor to up my CO2 ppm. However, in the second reactor that I built, I used a 3 way elbow to try to save some space since the main chamber would be longer. Big mistake... this thing creates so much noise! I can hear every last single bubble that enters this system. The Co2 bubbles are essentially getting chopped up by the flow in the 3-way elbow, whereas the tee joint used in the first design created a CO2 pocket that smoohtly wafted CO2 into the main chamber with the flow of the water.

Hopefully this makes sense... I can make some illustrations if it doesn't.



IMG_1088.webpIMG_1485.webp
 

Top 10 Trending Threads

Back
Top