01What Is Aquaponics?

Aquaponics is a closed-loop food production system combining aquaculture (raising fish) and hydroponics (growing plants in water). Fish produce ammonia-rich waste. Bacteria convert that waste into nitrates. Plants uptake nitrates as fertiliser. The cleaned water returns to the fish tank.

🐟
Fish
Produce waste + protein
🦠
Bacteria
Convert toxins — the engine
🌿
Plants
Filter water + produce food

Nothing is discarded. No soil. Water consumption is ~90% less than conventional agriculture. You add only fish food and water lost to evaporation.

Key principle: Three living systems must be in balance simultaneously. Optimise for one at the expense of the others and the whole system collapses.

02Why Aquaponics?

Food Security

One IBC tote system (1,000L fish tank + 1m² grow bed) can produce 20–50 kg of fish + 100+ kg of vegetables per year in ~4m² of floor space.

Resource Case

  • No synthetic fertiliser
  • No soil-borne pests → no pesticides
  • Water recycled continuously
  • Producible indoors, on rooftops, in arid zones

Collapse Resilience (Minimal Node context)

A single aquaponic loop produces protein (tilapia, catfish, carp) and greens (lettuce, spinach, herbs) from a small footprint. Fish food can be supplemented with black soldier fly larvae (BSFL) grown on kitchen waste — closing the loop further.

03System Types

Media Bed (Flood-and-Drain / Ebb-and-Flow)

Grow beds filled with gravel or expanded clay are flooded with fish water on a timer, then drain back. Bell siphons or timed pumps manage the cycle. Best for beginners.

  • Grow media: hydroton (expanded clay), river gravel, lava rock
  • Ratio: 1:1 fish tank to grow bed volume minimum, 1:2 preferred
  • Handles root veg + fruiting plants + greens

Deep Water Culture (DWC / Raft)

Plants float on polystyrene rafts in long troughs. Roots hang into oxygenated fish water. Used commercially at scale.

  • Best for: leafy greens (lettuce, basil, herbs)
  • Requires: separate solids filter, aeration blowers
  • Not ideal for: fruiting plants, root vegetables

Nutrient Film Technique (NFT)

Thin film of water flows constantly through sloped PVC channels. Plant roots sit in channels and drink from the film.

  • Best for: herbs, strawberries, lightweight plants
  • Requires: good upstream filtration
  • Very low water volume — less buffer, more sensitive to failure

Hybrid Systems

Most serious systems combine all three: fish tank → swirl filter → media beds → DWC troughs → UV steriliser → back to tank. See Section 13 (CHIFT-PIST) for the most reliable hybrid topology.

04The Nitrogen Cycle

This is the most critical concept. Everything else depends on it.

text
Fish eat food → produce NH3 (ammonia — toxic)
        ↓
Nitrosomonas bacteria → NH3 to NO2 (nitrite — also toxic)
        ↓
Nitrobacter bacteria → NO2 to NO3 (nitrate — plant food)
        ↓
Plants uptake NO3 → water cleaned → returned to fish

Water Parameters

ParameterSafe RangeCritical Threshold
Ammonia (NH3)0–0.5 ppm>1 ppm = fish stress
Nitrite (NO2)0–0.5 ppm>1 ppm = toxic
Nitrate (NO3)5–150 ppm>300 ppm = stress
pH6.8–7.2<6.0 or >8.0 = bacteria die
Dissolved Oxygen>5 mg/L<3 mg/L = fish suffocate
Temperature18–30°CSpecies-dependent
Test kit required: API Freshwater Master Kit covers NH3, NO2, NO3, and pH. Buy it before you stock fish — not after.

05Cycling Your System

Cycling = establishing the bacterial colony before adding fish. Takes 4–6 weeks. Skip it and your fish die from ammonia poisoning.

Fishless Cycling (Recommended)

  1. Fill system with dechlorinated water
  2. Add ammonia source (pure ammonia drops or decomposing fish food)
  3. Dose to 2–4 ppm ammonia daily
  4. Test every 2 days — nitrite will appear first (good sign)
  5. Cycle complete when both NH3 and NO2 hit zero within 24h of dosing

Seeding Shortcuts

  • Add gravel from an established aquarium
  • Bottled nitrifying bacteria (Dr. Tim's, Tetra SafeStart)
  • Add a used sponge filter from an existing tank
Cycle timeline: Week 1–2: ammonia rises. Week 2–3: nitrite appears. Week 4–6: both crash to zero. This is the moment you add fish — not before.

06Fish for Islamabad

Islamabad's temperature swing is the critical constraint: summers hit 40°C+ (water 30–35°C unshaded), winters drop to 5°C (water 8–10°C outdoors). No single fish handles the full range perfectly.

Tier 1 — Best fit, locally available

FishTemp RangeWhy it works
Rohu (Labeo rohita)18–38°CMost popular food fish in Pakistan. Fingerlings at NARC and Punjab farms. Tolerates summer heat. Slows in winter but survives.
Common Carp (Cyprinus carpio)4–28°CSurvives Islamabad winters outdoors without heating. Hardy. Widely eaten locally.
Catfish (Clarias batrachus)15–35°CAir-breathing — survives low oxygen. Best summer fish. Very forgiving for beginners.

Tier 2 — Good with management

FishCaveat
Catla (Catla catla)Surface feeder, fast-growing. Needs >20°C — will slow significantly in winter.
Tilapia (Nile)Excellent summer fish, dies below 12°C. Needs winter heating or indoor move.
Murrel/Snakehead (Channa)Air-breathing, very hardy. Carnivorous — cannot mix with other fish. High-value meat.
Tilapia without heating = winter fish kill. Islamabad water can drop to 8°C in December. A 300W aquarium heater per 1,000L is the minimum to keep tilapia alive. Plan for this before stocking.

Recommended Strategy

Option A (no heating): Rohu + Common Carp. Both cold-tolerant, locally sourced, familiar food. Slow in winter — reduce feed and monitor. Resume normal feeding when water exceeds 18°C.

Option B (small heater): Tilapia + Catfish. Tilapia grows fastest in warm months; catfish mops up uneaten food from the bottom.

Stocking Density

  • Beginner: 10–15 kg of fish per 1,000L
  • Intermediate: 20–30 kg/1,000L
  • Commercial: 40–60 kg/1,000L (requires heavy aeration + filtration)

07Choosing Plants

Easiest — Start Here

  • Lettuce, spinach, kale, Swiss chard, silverbeet, pak choi
  • Herbs: basil, mint, parsley, coriander, chives

Intermediate

  • Tomatoes, peppers, cucumbers, eggplant, beans, peas
  • Strawberries (excellent in NFT/vertical towers)

Hard / Avoid for Beginners

  • Root vegetables (carrots) — only in very deep media beds
  • Melons, squash — too large, too heavy
Nutrient tip: Aquaponics is nitrogen-rich but can be low in iron, calcium, and potassium. Supplement chelated iron (DTPA/EDTA) at 2 mg/L monthly. Add calcium carbonate or potassium bicarbonate if fruiting plants show deficiency.

08System Sizing

Feed Rate Ratio (FRR)

The master calculation for aquaponics design:

text
FRR = Daily fish food (grams) / Grow bed area (m²)
Target: 60–100 grams per m² per day

Example: You feed 500g/day → you need 5–8 m² of grow beds

Fish Biomass Calculation

text
Daily feed = fish biomass × feed rate
Rohu/Tilapia feed rate: 1–3% body weight per day

Example: 20 kg of fish @ 2% = 400g food/day
→ Need: 4–6.5 m² of grow bed

Water Volume to Fish

  • Minimum: 50L per kg of fish at harvest weight
  • Comfortable: 100L per kg

09IBC Tote Build (Beginner)

The IBC (Intermediate Bulk Container) chop-and-flip is the most popular beginner build globally. One 1,000L IBC becomes both the fish tank and the grow bed.

Step-by-Step Build

Step 1: Full IBC tote
Step 1 — Start with an intact 1,000 L food-grade IBC tote. Rinse 3× before use.
Step 2: Mark cut line
Step 2 — Mark cut line 30 cm from the top on all 4 sides with permanent marker.
Step 3: Cut and separate
Step 3 — Cut along the line (reciprocating saw). Smooth all sharp edges with a file.
Step 4: Flip top piece
Step 4 — Flip the top piece upside down. Open end faces down — becomes grow bed container.
Step 5: Stack on frame
Step 5 — Place flipped grow bed on top of the fish tank cage frame. Secure with L-brackets.
Step 6: Install plumbing
Step 6 — Install pump, inlet pipe, bell siphon, and air stone. See Section 10 for bell siphon detail.
Step 7: Fill with media
Step 7 — Fill grow bed with washed 10–20mm gravel or Hydroton. Vinegar test: no bubbling = safe.
Step 8: Complete system
Step 8 — Complete system. Begin nitrogen cycle (4–6 weeks) before adding fish.

Real-world IBC builds — see all 48 photos →

IBC build IBC build IBC build IBC build IBC build IBC build

Materials

ItemApprox. Cost
1× IBC tote (used)PKR 40,000–60,000 verified
1× submersible pump (800–2000 LPH)Check locally
Bell siphon kit or DIY PVCCheck locally
Grow media: hydroton or river gravel (~50L)Check locally
Air pump + airstoneCheck locally
Fish (20–30 juvenile Rohu or Catfish)NARC or Punjab farms
API Freshwater Master KitCheck aquarium shops
Pricing note: Only the IBC tote price above is verified for Islamabad (2026). All other costs: get current quotes from local suppliers before budgeting.

10Bell Siphon

A passive, self-triggering drain that floods and empties your grow bed automatically — no timer, no electricity.

The 4 Phases

Bell siphon: Flood phase
Phase 1 — Flood. Pump fills bed slowly. Bell traps air above standpipe top.
Bell siphon: Trigger phase
Phase 2 — Trigger. Water reaches standpipe top. Siphon activates instantly.
Bell siphon: Drain phase
Phase 3 — Drain. Full siphon — bed empties rapidly (~5 min). Roots get O₂.
Bell siphon: Reset phase
Phase 4 — Reset. Air hole exposed, siphon breaks. Flood cycle restarts.

Troubleshooting Bell Siphons

ProblemCauseFix
Won't triggerStandpipe too tall / flow too slowCut standpipe shorter; increase pump flow
Won't breakBell too short / drain too smallCut bell shorter; enlarge drain pipe
Gurgling constantlyMedia guard holes too smallDrill larger holes in media guard
Starting point: Pump flow rate ≈ 2× drain pipe max capacity is a common starting point — tune to your specific pipe diameter, head pressure, and media depth.

IBC systems with flood-and-drain plumbing — see all 48 photos →

IBC with siphon IBC with siphon IBC with siphon IBC with siphon IBC with siphon

11Vertical Tower Systems

Vertical towers grow plants in stacked pockets along a central PVC pipe. Water drips from the top through each level and returns to the fish tank. Maximum plant yield per footprint — no bell siphon needed.

Step-by-Step Build

Vertical tower step 1: mark holes
Step 1 — Mark hole centres every 20 cm, alternating 180°. Mark hanging hole at top.
Vertical tower step 2: cut holes
Step 2 — Cut at 45° angle with 75–90mm hole saw. Pockets face upward to hold plants.
Vertical tower step 3: assemble
Step 3 — Thread drip tube through full length. Fit end caps and hanging wire.
Vertical tower step 4: complete
Step 4 — Hang towers. Timer: 15 min ON / 45 min OFF. Drain returns to fish tank.
Vertical advantage: 5 towers of 10 plants = 50 heads of lettuce in the same footprint as one 1m² flat media bed. Vertical wins on density; media beds win on crop variety.

Real-world vertical tower systems — see all 28 photos →

Vertical tower Vertical tower Vertical tower Vertical tower Vertical tower Vertical tower

12Pump as Grow Bed (NFT Channels)

In NFT a thin film of water flows continuously along slightly angled channels. Plant roots hang in the film — oxygen above, nutrients below. The pump defines the grow environment.

NFT Layout & Root Zone

NFT channel layout
Layout — Pump pushes water to high end of channel. Thin film flows downhill. Drain returns to fish tank.
NFT root zone detail
Root zone — Roots hang in 2–3mm water film. Air above provides oxygen.
NFT complete system
Complete system — 3 channels × 6 plants = 18 plants, one pump, under 1m².

Channel Sizing

ParameterValueNotes
Channel slope2–4%1:25 to 1:50 gradient
Film depth1–3mmThin enough to oxygenate roots
Flow rate per channel1–2 L/minEnough to maintain film, not flood
Channel lengthMax 12mLonger = nutrient depletion at far end

The Pump as Active Grow Component

In NFT, if the pump fails, roots dry out within 30–60 minutes. Unlike media beds (which retain moisture for hours), NFT has zero buffer. This means:

  • Pump quality matters more — use a quality submersible pump with low failure rate
  • A backup pump stored dry and ready is mandatory for any serious system
  • Power outage = immediate plant risk — prioritise battery backup for pump
NFT is not for beginners. The sensitivity to pump failure, flow rate variance, and filtration requirements makes it unforgiving. Start with media bed, add NFT channels once the system is stable.

Real-world pump / NFT channel builds — see all 25 photos →

NFT channel NFT channel NFT channel NFT channel NFT channel NFT channel

13CHIFT-PIST System

Constant Height In Fish Tank, Pump In Sump Tank. The most reliable multi-bed topology. Fish tank level never drops. Single pump serves unlimited grow beds.

CHIFT-PIST complete system diagram
CHIFT-PIST — Fish tank overflows by gravity to grow beds. Sump absorbs all volume changes. Pump returns water to fish tank.

Why CHIFT-PIST over standard IBC

FeatureStandard IBCCHIFT-PIST
Fish tank levelFluctuates with flood/drainConstant — fish prefer this
Pump locationFish tank — risks dry-runningSump — always submerged
Oxygen in fish tankVaries with water levelMore stable
Solids removalMixed with fishSeparate — easier to filter
ComplexitySimpleNeeds extra sump tank

Real-world example: thoughtcroft/aquamon — a CHIFT-PIST system with 1,000L fish tank + 700L sump + 3×450L media beds made from IBC chop-and-flip. Monitored via Arduino Uno + ESP8266.

Multi-bed IBC systems (CHIFT-PIST style) — IBC photos →  |  pump / channel photos →

Multi-bed system Multi-bed system Multi-bed system Pump channel system Pump channel system Pump channel system

14Arduino Sensors

A basic Arduino Uno setup (~PKR 3,000–5,000 equivalent) can monitor temperature, pH, and control pump timing automatically.

Core Sensor + Relay Setup

cpp
// Aquaponics Monitor — Arduino Uno
// Sensors: DS18B20 (temp), pH probe (analog), relay (pump)

#include <OneWire.h>
#include <DallasTemperature.h>

#define TEMP_PIN      2
#define PH_PIN        A0
#define PUMP_RELAY    7
#define AERATOR_RELAY 8

OneWire oneWire(TEMP_PIN);
DallasTemperature sensors(&oneWire);

// Calibrate these values for YOUR probe — these are placeholders
float ph_slope     = -5.70;
float ph_intercept = 21.34;

void setup() {
  Serial.begin(9600);
  sensors.begin();
  pinMode(PUMP_RELAY, OUTPUT);
  pinMode(AERATOR_RELAY, OUTPUT);
  digitalWrite(AERATOR_RELAY, LOW); // aerator always on
}

float readPH() {
  int raw = analogRead(PH_PIN);
  float voltage = raw * (5.0 / 1023.0);
  return ph_slope * voltage + ph_intercept;
}

void loop() {
  sensors.requestTemperatures();
  float temp = sensors.getTempCByIndex(0);
  float ph   = readPH();

  Serial.print("Temp: "); Serial.print(temp); Serial.print(" C  ");
  Serial.print("pH: ");   Serial.println(ph);

  if (ph < 6.5 || ph > 8.0) Serial.println("ALERT: pH out of range!");
  if (temp > 32.0)            Serial.println("ALERT: Temperature high!");

  delay(10000);
}
pH probe calibration: Analog pH probes drift significantly. The ph_slope and ph_intercept values above are generic — calibrate your specific probe with pH 4.0 and pH 7.0 buffer solutions. Recalibrate monthly.

Flood-and-Drain Timer

cpp
// Flood 15 min ON / 45 min OFF cycle
unsigned long pumpOnTime  = 15UL * 60 * 1000;
unsigned long pumpOffTime = 45UL * 60 * 1000;
unsigned long lastSwitch  = 0;
bool pumpState = false;

void loop() {
  unsigned long now = millis();
  if (!pumpState && (now - lastSwitch > pumpOffTime)) {
    digitalWrite(PUMP_RELAY, LOW);   // active-low relay: LOW = pump ON
    pumpState = true;
    lastSwitch = now;
    Serial.println("PUMP ON");
  } else if (pumpState && (now - lastSwitch > pumpOnTime)) {
    digitalWrite(PUMP_RELAY, HIGH);  // pump OFF
    pumpState = false;
    lastSwitch = now;
    Serial.println("PUMP OFF");
  }
}

Reference repos for real working code:

15IoT Monitoring (Arduino + ESP8266)

From thoughtcroft/aquamon: two microcontrollers working together — Arduino Uno collects sensor data, D1 mini ESP8266 sends it to ThingsBoard over WiFi.

Architecture

text
[Sensors] → Arduino Uno (data collection)
                ↓ serial
           D1 mini ESP8266
                ↓ WiFi
           ThingsBoard IoT (dashboards, alerts, rules engine)
                ↓ browser
           Phone / laptop monitoring

ThingsBoard Community

Free, self-hosted IoT platform. Provides device management, rules-based alerts (e.g., "if NH3 > 1ppm, send notification"), and real-time dashboards viewable on any browser.

  • Run on a Raspberry Pi on your local network
  • Access dashboard from phone anywhere on same WiFi
  • Set alert rules: temperature spike, pH excursion, pump failure

Simpler Alternative: Node-RED + InfluxDB + Grafana

Arduino → Serial → Node-RED (on Raspberry Pi) → InfluxDB → Grafana dashboard. All open source, offline-capable. Grafana runs beautifully on low-power hardware.

16Data Logging

SD Card Logging (Offline)

cpp
#include <SD.h>
#include <SPI.h>

File logFile;
const int chipSelect = 10;

void setup() {
  Serial.begin(9600);
  SD.begin(chipSelect);
}

void logData(float temp, float ph, float nh3) {
  logFile = SD.open("aq_log.csv", FILE_WRITE);
  if (logFile) {
    logFile.print(millis());   logFile.print(",");
    logFile.print(temp);       logFile.print(",");
    logFile.print(ph);         logFile.print(",");
    logFile.println(nh3);
    logFile.close();
  }
}

Daily Log Template (Paper)

text
Date | Temp°C | pH | NH3 ppm | NO2 ppm | NO3 ppm | Feed(g) | Notes
2026-01-15 | 24 | 7.0 | 0.0 | 0.0 | 40 | 200g | All normal

17Water Quality Management

Daily (2 minutes)

  • Visual: fish active? Any floating? Unusual spots?
  • Confirm pump running, siphon cycling
  • Check water clarity

Weekly

  • API test kit: Ammonia, Nitrite, Nitrate, pH, Temperature

Monthly

  • Chelated iron top-up: 2 mg/L dose (DTPA or EDTA form)
  • Potassium check if growing fruiting plants
  • System flush if nitrates exceed 150 ppm

pH Management

pH drops over time — nitrification produces acid.

  • Raise pH: calcium carbonate (limestone), potassium bicarbonate, crushed coral in sump
  • Lower pH: phosphoric acid (tiny doses), CO₂ injection
  • Never swing more than 0.2 pH per day — bacteria and fish are sensitive to rapid change

Dissolved Oxygen

  • Minimum: 5 mg/L in fish tank, 3 mg/L in grow beds
  • At 30°C, water holds 50% less O₂ than at 10°C — aerate more in summer
  • Increase with: airstone + pump, venturi injector, waterfall effect from drain return

18Fish Feed & BSFL

Commercial Pellets

  • 32–40% protein pellets for tilapia/catfish/carp
  • Feed 2× daily — morning + evening
  • Amount: what fish eat in 5 minutes — remove excess immediately
  • Uneaten feed = ammonia spike — do not overfeed

Black Soldier Fly Larvae (BSFL) — Closing the Loop

BSFL converts kitchen waste into high-protein larvae fed directly to fish. 40–45% protein, excellent fish supplement.

BSFL Colony Setup

  1. Bin with drainage: ~60cm × 40cm wooden or plastic
  2. Add kitchen scraps: fruit/veg peels, cooked food
  3. Avoid: meat or dairy in small systems (odour)
  4. Adult flies lay eggs in ramps provided
  5. Larvae self-harvest by crawling up ramp into collection bucket
  6. Frass (waste) = excellent soil garden fertiliser
Loop closure: Kitchen scraps → BSFL larvae → fish feed → fish waste → plant nutrients → food for people → kitchen scraps. This is the complete closed loop for a Minimal Node food system.

19Mineralisation & Worms

Solid Waste in Media Beds

Fish solids mineralise within gravel beds — converting locked phosphorus and trace minerals back into plant-available forms. This is why media beds can run without a separate filter. DWC systems need a swirl filter upstream.

Swirl Filter (Radial Flow Separator)

Water enters a cylindrical tank tangentially, solids spiral to the bottom, clean water exits from the top. Build from a 200L drum. Solids collected in the cone bottom can be composted or added to a soil garden.

Worm Integration

Red wrigglers (Eisenia fetida) added to media beds eat fish solids and uneaten food. They mineralise waste, prevent beds from clogging, and produce worm castings that supplement plant nutrition.

Highest-leverage addition: Adding worms to an established media bed system dramatically reduces maintenance, eliminates clogging, and improves plant growth — for zero ongoing cost.

20Lighting

Outdoors / Greenhouse (Best)

  • Full sunlight 6–8 hours: ideal for fruiting plants
  • Shade cloth 30–50% in Islamabad summers (May–August)
  • Polycarbonate / greenhouse plastic roof transmits 70–80% sunlight

Indoors

Plant TypeLight RequiredDuration
Leafy greens4,000–6,500K LED, ~8,000 lux14–16h/day
Fruiting plantsFull spectrum, 12,000–16,000 lux16h/day
Herbs4,000–5,500K, ~6,000 lux12–14h/day
Heat from LED lights warms water. Monitor water temperature — indoor lights in an enclosed space can raise water temp significantly in summer. Account for this when sizing aeration.

21Pest & Disease

Fish Disease

ProblemSymptomsTreatment
Ich (white spot)White spots on body/finsRaise temp to 30°C + 1 tbsp non-iodised salt/10L
Fin rotFraying fins, red edgesImprove water quality first, then API Melafix
FungalWhite cotton patchesMethylene blue bath (hospital tank)
Bacterial ulcersBloating, skin ulcersImprove water quality — antibiotics as absolute last resort
Antibiotics = bacterial colony death. Nitrifying bacteria are killed by most antibiotics. A hospital tank for sick fish is mandatory — never treat in the main system.

Plant Pests

  • Aphids: Diluted neem oil spray — safe for fish if no run-off into tank
  • Whitefly: Yellow sticky traps
  • Fungal: Improve airflow, reduce humidity

22Temperature Control — Islamabad

Summer (May–August, water can hit 32–35°C unshaded)

  • Never let fish tank see direct sun — shade always
  • Evaporative cooling: wet burlap draped over tank, fan blowing across
  • Partial water change with cold water during peak heat
  • Bury tank partially in ground — earth stays ~18–22°C year-round

Winter (December–February, water can drop to 8°C outdoors)

  • Tilapia stops feeding below 18°C, death below 12°C
  • Rohu and Common Carp more cold-tolerant — slow but survive
  • Insulate tank with foam board
  • Solar thermosiphon water heater: passive heat, no electricity
  • Move system indoors or into greenhouse if possible

Power Requirement (Solar)

ComponentPower
Submersible pump20–40W continuous
Aeration5–15W continuous
LED grow lights (optional)30–100W
Minimum (pump + aeration)25–55W
Solar sizing: 100W panel + 100Ah battery handles 25–55W continuous for pump + aeration. Add 50% buffer for Islamabad's July–August monsoon overcast days. Night aeration is essential — dissolved oxygen drops at night.

23Minimal Node Integration

An aquaponic unit integrated into a Minimal Node provides:

FunctionDetail
Protein source20–30 kg of fish per 1,000L tank per year
Vegetable factory100–200 kg of greens per 2m² grow bed per year
Water filtrationBiofilter removes ammonia — water already mechanically filtered
Thermal massLarge water volume buffers temperature swings in space
BSFL loopKitchen scraps → larvae → fish → nutrients → plants → people

Power: 25–55W continuous (pump + aeration) — handled by a 100W solar panel + 100Ah battery. The aquaponic loop is one of the lowest-power high-yield food systems possible.

24NARC & Local Resources

NARC (National Agriculture Research Centre) — Park Road, Chak Shahzad, Islamabad. ~15 min from E-9. Open to the public. Confirmed active fish nursery on site (Ali visited). Likely species: Rohu, Common Carp, Catla — confirm available stock on visit. Pricing: ask on arrival.

Other Local Sources

  • Rohu/Carp fingerlings: Widely available from fish farms across Punjab — Attock, Chakwal, Rawalpindi districts
  • Tilapia/Catfish: Aquarium shops in G-9/F-6 markaz — call ahead to confirm stock
  • IBC totes (used): PKR 40,000–60,000 — check industrial areas, chemical suppliers
  • Grow media: River gravel from construction suppliers; hydroton from hydroponics suppliers in Rawalpindi
  • API test kits: Aquarium shops — call before visiting, not all stock the Master Kit
[VERIFY BEFORE ACTING] All sources above except NARC and IBC price are unconfirmed for 2026 availability. Call ahead before making a trip.

25Troubleshooting

SymptomLikely CauseFix
Fish gasping at surfaceLow dissolved oxygenAdd airstone immediately — this is an emergency
Ammonia spikeOverfeeding / dead fish / overcrowdingStop feeding, 30% water change, find dead fish
Nitrite spikeBacterial colony disruptedReduce feed, stop antibiotics, patience
pH crashingNitrification overwhelming bufferAdd calcium carbonate / crushed coral to sump
Plants yellowing (whole plant)Nitrogen deficiencySystem under-stocked — add fish or reduce plants
Plants yellowing (new leaves)Iron deficiencyChelated iron 2 mg/L dose
Plants yellowing (old leaves first)Potassium or magnesiumK₂SO₄ or Epsom salt
Siphon won't triggerFlow too slow / standpipe too tallIncrease pump flow; shorten standpipe
Siphon won't breakBell too tall / drain too smallShorten bell; enlarge drain pipe
Algae bloomLight reaching waterCover fish tank; shade grow beds
Green slime on pipesNormal biofilmNo action needed

Quick Reference Card

text
CYCLE COMPLETE:  NH3=0, NO2=0 within 24h of 2ppm dose
SAFE AMMONIA:    <0.5 ppm
SAFE NITRITE:    <0.5 ppm
SAFE pH:         6.8–7.2
SAFE TEMP:       22–30°C (Rohu/Tilapia)
FEED RATE RATIO: 60–100g feed/m² grow bed/day
STOCKING:        10 kg fish per 1,000L (beginner)
CHELATED IRON:   2 mg/L monthly
pH crash →       add calcium carbonate
Fish gasping →   add aeration IMMEDIATELY
Ammonia spike →  stop feeding, water change 30%

26Photo Gallery — 101 Real Rigs

Images sourced from Pinterest. IBC tote systems, vertical towers, and NFT/pump channel builds from around the world. Use as visual reference for your own build.

ibc_01.jpg ibc_05.jpg ibc_06.jpg ibc_07.jpg ibc_08.jpg ibc_09.jpg ibc_10.jpg ibc_11.jpg ibc_12.jpg ibc_13.jpg ibc_14.jpg ibc_15.jpg ibc_16.jpg ibc_17.jpg ibc_18.jpg ibc_19.jpg ibc_20.jpg ibc_21.jpg ibc_22.jpg ibc_23.jpg ibc_24.jpg ibc_25.jpg ibc_26.jpg ibc_27.jpg ibc_28.jpg ibc_29.jpg ibc_30.jpg ibc_31.jpg ibc_32.jpg ibc_33.jpg ibc_34.jpg ibc_35.jpg ibc_36.jpg ibc_37.jpg ibc_38.jpg ibc_39.jpg ibc_40.jpg ibc_41.jpg ibc_42.jpg ibc_43.jpg ibc_44.jpg ibc_45.jpg ibc_46.jpg ibc_47.jpg ibc_48.jpg ibc_49.jpg ibc_50.jpg ibc_51.jpg