Donovan Nitrate Destroyer

A carbon-fed U-path denitrator after Donovan Joannes's design, built for this tank's 750 L system. Water runs down an aerobic column where dosed carbon burns off dissolved oxygen, crosses at the base, then up an anaerobic column where nitrate is reduced and leaves as nitrogen gas. Fed by its own channel on the same reef system's SmartDoser, over a stepper-driven Kamoer peristaltic pump -- sits alongside the tank-wide vinegar dosing already described on the Acropora page, not replacing it.

Design figures for this build
Feed flowCarbonResidenceN₂ produced
60 mL/min (11.5% of daily turnover, ~86 L/day)5–15 mL/day, 8% vinegar at the inlet~3.1 h (~11.0 L void volume at 60 mL/min)~300 mL/day at 1.5 g NO₃/day reduced

Plumbing

SUMP Lg bio ring Lg bio ball Md bio ring Md bio ball Lg ceramic pumice, small pumice, med crushed coral Lg ceramic DOWN UP inlet level outlet level O₂ exhausted below here AEROBIC ANAEROBIC PERISTALTIC 52 mL/min VINEGAR 8% 5-15 mL/day carbon into the feed line N₂ leaves here 3-way to waste air gap RETURN PUMP tee, pressure side gate valve throttle 2-4 L/min check SERVICE MANIFOLD to bucket · also air bleed to bucket to bucket tee stub: sludge trap, no flow, no residence V1 V2 V3 V4 V5 V6 V7 open in RUN closed in RUN service line
The outlet sits slightly below the inlet level, so the small head difference drives the U once the pump has filled the first column. Donovan's original uses a small aquarium pump with an adjustable valve at this point; a peristaltic does the same job at a rate that doesn't sag as the media loads. The dashed circuit is service only: V2 drives a forward flush, V3 a backflush, and the feed, the flush supply and the drain all meet in one tee stack above the aerobic cap -- which is what makes the inlet end usable as the backflush exit. At the base, building the crossover from tees rather than bends leaves a capped stub under each column: no flow passes through them so they add nothing to residence, but valved they become the two lowest drain points and keep settled solids out of the beds. The crossover itself carries no media -- it's open pipe, shown unfilled above.

After Donovan Joannes's Nitrate Destroyer. Media grading, the aerobic/anaerobic split and the inlet/outlet level offset follow his design; flow, carbon and gas figures are worked for this 750 L system.

Flushing a clog

The service manifold tees off the pressure side of the return pump through a gate valve. With V2 and V3 shut it is a dead leg, so normal running loses nothing; opening either one puts return pressure across the reactor, throttled back to something the beds survive.

The two directions are not redundant -- each one lifts the bed the other packs down:

  • Forward flush (V2) runs down the aerobic leg and up the anaerobic, fluidising the coral and pumice.
  • Backflush (V3) runs down the anaerobic leg and up the aerobic, fluidising the bio-media -- which is where detritus actually collects, because it is the first thing the water meets.
Valve positions by mode
ModeV1 feedV2 fwdV3 backV4 outletV5 topV6 aer. stubV7 anaer. stub3-way
Runopenshutshutopenshutshutshutsump
Forward flushshutopenshutopenshutshutshutwaste
Backflushshutshutopenshutopenshutshut—
Sludge drainshutshutshutshutopenopenopen—
Fill & ventopenshutshutopencrackshutshutwaste

V5 earns its place three times over: it is the backflush exit, the air bleed when first filling, and the air inlet without which the stub drains will not run. Drain one stub at a time and smell each separately -- a sulfide note from the anaerobic side is the earliest warning the reactor has gone too far, well before a test kit shows anything.

Doing it

  1. Set the gate valve once, by trial, to 2–4 L/min -- roughly 40–80× the feed rate. That lifts a packed bed; much more ejects media into the bucket.
  2. Purge the manifold first. Open V2 and V5 with V1 shut and the stagnant water in the dead leg goes straight up and out to the bucket without crossing a bed.
  3. 30–60 seconds per direction, 1–4 L to waste. Watch the bucket: stop when it runs clear.
  4. Reopen V1 last and confirm the air gap is running before you walk away.

What it costs

  • It sets the biology back. Flush water is oxygenated, nitrate-rich tank water. A flush aerates the anaerobic leg and stalls denitrification -- expect nitrate to flatten for several days and then resume. Flush when throughput genuinely drops, never on a schedule.
  • It re-sorts the grading. The beds are deliberately coarse-to-fine in the direction of flow. A hard flush shuffles that. Use the lowest flow that restores flow.
  • A peristaltic hides the clog. Positive displacement means flow does not sag as the bed loads -- pressure rises instead, until a fitting or the tube gives. So fit a cheap gauge or a relief tee on the feed line; do not expect to notice a clog as a flow drop.
  • Media needs retaining. A coarse screen under each top cap and a strainer on the outlet port, or a flush carries media out of the column.
  • A capped tee stub is a sulfide trap; a valved one is an asset. The dead legs below the crossover hold stagnant, anoxic, carbon-rich water with organics settling into it -- and with no flow there is no nitrate resupply, so once the nitrate in that pocket is used up the bacteria move on to sulfate. Fit a valve, not a plain cap, and drain them to a bucket on the same schedule you check the effluent. Keep them short: 10cm is enough to catch solids, and nothing above that earns its keep.
  • Check valves matter here. One on the vinegar line and one on the manifold riser. Without them, backflush pressure pushes into the dosing head, and reactor water -- low ORP, possibly sulfidic -- can siphon into the return line when the pump stops.

What happens along the path

NO₃ = 0 → sulfate reduction → H₂S O₂ NO₃ AEROBIC, down ANAEROBIC, up inlet base crossover outlet high zero
Indicative, not measured. The shape is what matters: nitrate barely moves until oxygen is gone, then falls through the second leg -- and must still be above zero at the outlet.

Bacteria use oxygen first because it yields more energy than nitrate. So the aerobic leg isn't wasted volume -- it is what makes the anaerobic leg anaerobic, by spending carbon to strip the O₂ the incoming water carries.

That is also why carbon enters once, at the top. It has two jobs in sequence, and the same dose does both.

The outlet reading is the control signal for the whole reactor. Nitrate still present at the outlet means the bed ran out of carbon before it ran out of nitrate -- which is the safe ordering. Nitrate at zero means carbon is left over with nothing to reduce, and sulfate is next in line.

If effluent nitrate reaches zero: raise flow first, cut carbon second.

Where nitrate settles

10 ppm @ 87 5 ppm @ 231 diminishing returns 2015 105 100200 300400 feed flow, mL/min tank NO₃, ppm
At 1.0 g NO₃/day production and a 2 ppm effluent. Going from 15 to 10 ppm costs 35 mL/min; going from 10 to 5 costs another 144.

tank NO₃ ≈ effluent + (production ÷ flow)

FlowSettles atResidenceCarbon
52 mL/min~15 ppm3.5 h~14 mL/d
87 mL/min~10 ppm2.1 h~22 mL/d
174 mL/min~6 ppm63 min~33 mL/d
231 mL/min~5 ppm48 min~39 mL/d

The pump is never the constraint -- 231 mL/min is 58% of the Kamoer's range. Residence time is. At 5 ppm the bed has 48 minutes to strip oxygen and reach a 2 ppm effluent, against the ~3.5 hours this geometry gives at the design flow. If it can't, removal per pass drops and you need yet more flow, which shortens residence again. More volume is the only way out of that spiral -- see Sizing below.

Carbon nearly triples too, and mostly for oxygen rather than nitrate: at 231 mL/min roughly 27 of the 39 mL goes on deoxygenating 333 L/day.

Don't pick a target yet. Every row rests on that 1.0 g/day production figure, which is inferred rather than measured. Run Donovan's 52 mL/min for a fortnight: flow × (influent − effluent) gives the real removal rate, and the tank's trend against it gives production. Then the target is arithmetic.

Sizing

The figure that decides everything is easy to get wrong, and an earlier version of this page did: residence time is the water volume divided by the flow, not the pipe volume. Media fills roughly half the tube in each column -- but the base crossover between them carries no media at all, confirmed on the real build. So a system holding 19.4L of gravel, rings and open pipe holds about 11L of water, not the roughly 10L a uniform 50% estimate across the whole bulk would suggest. The empty crossover holds more water per litre of bulk than a packed column does, not less.

residence = (column bulk × 50% void) + (crossover bulk × 100% void), ÷ flow

For 100mm pipe (110mm OD, 103.6mm bore) in the columns, with the 0.3m base crossover counted separately at 100% void:

Two towersBulkWaterAt 52 mL/min (~15 ppm)At 87 mL/min (~10 ppm)
1.0 m each19.4 L11.0 L3.5 h2.1 h
1.25 m each23.6 L13.1 L4.2 h2.5 h
1.5 m each27.8 L15.2 L4.9 h2.9 h

The 0.3m crossover is worth 2.5L of bulk, about 13% of a 1m build -- and since none of it is packed, all 2.5L is water, not half of it. It is still horizontal, and an empty horizontal pipe still channels in its own way: flow takes the shortest path across rather than using the full cross-section, so treat the crossover's contact value as near zero even though its hydraulic volume counts in full. It is also why the base drain sits at that exact point.

The two numbers pull against each other

Equilibrium is set by flow; residence is set by volume. Raising flow to settle the tank lower shortens the contact time that makes the settling possible, so a given volume quietly fixes how low the tank can go.

  • 1 m towers reach ~15 ppm comfortably -- 3.5 h at the design flow, squarely inside the 1–4 h band carbon-fed denitrators work in.
  • 10 ppm asks for 87 mL/min, leaving 2.1 h. Workable, with a bit more margin than the open-crossover correction first suggested. An extra 25cm per tower adds further headroom and changes nothing else about the build.
  • Below ~6 ppm the geometry runs out before the pump does -- under an hour of contact to strip oxygen and reduce nitrate. More flow then removes less per pass, which is the spiral that only more volume escapes.

If you can choose the pipe

Volume goes with the square of the bore, so diameter buys far more than height per euro and per metre of headroom. Same 1m towers, same shelf:

Pipe (OD)BoreBulk, 2 towersAt 52 mL/minAt 87 mL/minL/D
110 mm103.6 mm16.9 L2.7 h1.6 h9.7
125 mm118.6 mm22.1 L3.5 h2.1 h8.4
160 mm152.0 mm36.3 L5.8 h3.5 h6.6

Keep the length-to-diameter ratio above about 5. Below that a packed bed starts channelling and the extra volume stops earning its keep -- which is the same reason four towers in series is the wrong way to add capacity. A four-leg path puts a downflow leg deep in the anaerobic zone, where the nitrogen it generates would rise against the flow. If you need more than two legs, run two U-paths in parallel, each with its own balancing valve, so every gas-producing leg still runs upward.

Packing is worth a whole tower

Void fraction moves residence as much as half a metre of pipe does, and it costs nothing to get right. The crossover's 2.5L is fixed regardless of packing choice -- it isn't packed at all -- so it's added on top of whichever column void fraction you end up with, not scaled by it.

Column mediaVoidColumn water+ crossover (2.5L, fixed)At 52 mL/min
Dense or tamped down40%6.8 L9.3 L3.0 h
Mixed, typical50%8.5 L11.0 L3.5 h
Open bio-balls and rings65%11.0 L13.5 L4.3 h

Donovan's media schedule already leans open in the aerobic leg -- large rings and balls rather than fines -- because that leg only has to burn oxygen. Follow it, pour the media in loosely and let it settle, and resist both tamping and anything sand-like.

Operating figures

750 L system, NO₃ 42 ppm → ~10 ppm target.

ParameterValueBasis
Feed flow60 mL/minconfirmed by direct timed-volume measurement under real load, not bench spec
Start-up flow, week 130 mL/min~5 mL per 10 s, then work up
Carbon dose5–15 mL/daylean on purpose -- full reduction would take ~30 mL
Media volume~19 L2 × 1 m of 100 mm, plus a 0.3 m crossover (crossover carries no media)
Residence time~3.1 h~11.0 L of water ÷ 60 mL/min
Nitrogen produced~300 mL/dayat 1.5 g NO₃/day reduced
Driverspeed 110 @ mstep 256SERVO42C → 64.45 RPM, measured directly -- see note below

The pump's own bench spec doesn't hold under real load. Measured mL/rev under this build's actual suction and discharge resistance came out speed-dependent -- 0.885 mL/rev at low speed, rising to 1.054 at high speed -- not the constant 1.422 mL/rev a free-discharge bench test gave. Lower speed delivering less per revolution than higher speed is backwards from the usual assumption that slower rotation means more complete tube recovery; it was real and repeatable across multiple timed runs, not measurement noise. Trust a timed-volume measurement against the actual installed system over any catalogue mL/rev figure.

Rules the drawing encodes

  • The gas-producing leg runs upward. At 52 mL/min the water moves about 0.011 cm/s while bubbles rise at ~20 cm/s, so no practical flow carries gas downward. Nitrogen is only made in the anaerobic leg, and that leg exits at its top.
  • No high points in the return. Gas collects at any peak until it forms an air lock that stops flow -- and stopped flow is the hydrogen sulfide condition.
  • Keep carbon lean. The bed must run out of carbon before it runs out of nitrate. That ordering is the entire safety margin.
  • Positive displacement on the feed. As the media loads, a valve-throttled centrifugal pump's flow falls -- drifting toward the hazard. A peristaltic holds its rate.
  • Flush before returning effluent. After any stoppage, send the first volume to waste rather than into the display.

Commissioning

  1. Fill, purge air, and run water only with no carbon. Confirm flow by timing output into a measuring cylinder -- that measured figure is what you set the pump by from then on.
  2. Day 3: begin carbon at 5 mL/day at the inlet, seeding bacteria at the same time. Leave the display vinegar dose running unchanged; the tower removes little until it colonises.
  3. Watch for nitrogen bubbles at the air gap. Their appearance is the first evidence of denitrification, usually one to three weeks in.
  4. Test effluent nitrate. It should fall below tank level but stay above zero. If it reaches zero, raise flow before cutting carbon.
  5. Only once the tower demonstrably works, taper the display vinegar dose and move that carbon to the inlet.

Two side effects to anticipate

Both arrive before the nitrate drop does.

Alkalinity rises

Denitrification returns about 3.57 g CaCO₃ per g NO₃-N reduced -- intrinsic to the reduction reaction itself, not dependent on the media it runs over. At meaningful removal that offsets a real fraction of this system's 0.44 dKH/day demand, so the NaOH dose has to come down. Test alkalinity every two or three days once bubbles appear. This build runs ceramic rings throughout rather than Donovan's original crushed coral, so expect somewhat less than his design shows -- ceramic adds none of the slow CaCO₃ dissolution a coral-media build gets on top of the reaction's own output, just the reaction-driven portion above.

Phosphate falls

Biofilm growth consumes phosphorus. With PO₃ already near the 0.05 ppm floor, a stall will look like the reactor failing rather than a nutrient running out. If phosphate bottoms out, denitrification stops -- raise the phosphate dose before chasing anything else.

Same ownership stance as the rest of this site's build writeups: this is my own tank, my own hardware, run and modified at my own risk. If any of this is useful background for your own build, the same applies to you.