← Back to Blog

Solar + HHO Hybrid Systems

January 10, 2026 hhosolarhybrid

Combining solar panels with HHO generation for true off-grid resilience. Batteries handle hourly fluctuations; hydrogen handles multi-day storage. This is the best of both worlds.

◉ The Storage Problem

Solar is great — until it isn't. A typical off-grid home needs 20-30 kWh/day. On a sunny day, panels produce plenty. On three cloudy days in a row? You need 60-90 kWh of storage.

Lithium batteries: $400-600/kWh. A 90 kWh battery bank costs $36,000-$54,000 and will degrade in 10 years.

Hydrogen storage: ~$50/kWh equivalent, lasts indefinitely. The economics change dramatically.

◉ Hybrid Architecture

The key insight: use batteries for short-term cycling, hydrogen for seasonal storage.

┌─────────────────────────────────────────────────┐
│                 SOLAR ARRAY                      │
│              (sized for 1.3x loads)              │
└────────────────────┬────────────────────────────┘
                     │
              ┌──────▼──────┐
              │   CHARGE    │
              │ CONTROLLER  │
              └──────┬──────┘
                     │
          ┌──────────┴──────────┐
          │                     │
    ┌─────▼─────┐        ┌─────▼─────┐
    │  BATTERY  │        │ELECTROLYZER│
    │   BANK    │        │   (PEM)    │
    │  (5 kWh)  │        │   500W     │
    └─────┬─────┘        └─────┬─────┘
          │                    │
          │              ┌─────▼─────┐
          │              │    H₂     │
          │              │  STORAGE  │
          │              │(3000 L)   │
          │              └─────┬─────┘
          │                    │
          │              ┌─────▼─────┐
          │              │  FUEL     │
          │              │  CELL     │
          └──────┬───────┤  (1 kW)   │
                 │       └───────────┘
          ┌──────▼──────┐
          │   INVERTER  │
          │   (48V→AC)  │
          └──────┬──────┘
                 │
          HOME LOADS (AC)

◉ Operating Modes

Mode 1: Sunny Day

Solar produces more than loads consume. Priority order:

  1. Power loads directly (zero conversion loss)
  2. Charge batteries to 100%
  3. Run electrolyzer with surplus
  4. Dump remaining to resistive load (water heater)

Mode 2: Night (Batteries Full)

Solar gone, batteries supply loads. Typical night drains 4-6 kWh. Our 5 kWh battery (80% DoD = 4 kWh usable) handles this easily.

Mode 3: Cloudy Day (Batteries Low)

Solar weak, batteries depleting. When batteries hit 30%, fuel cell starts automatically:

fn cloudy_day_handler() {
    if battery_soc < 30 && solar_power < load_demand {
        // Start fuel cell at 50% capacity to preserve H₂
        fuel_cell.start(power: 500)

        // Ramp up if batteries keep dropping
        while battery_soc < 50 {
            fuel_cell.set_power(min(fuel_cell.power + 100, 1000))
            sleep(60_000)  // Re-evaluate every minute
        }
    }
}

Mode 4: Multi-Day Cloud

Fuel cell runs continuously. At 1 kW and 50% efficiency, it consumes ~2,000 L H₂/day. Our 3,000 L storage provides 36 hours at full draw, or 3+ days at reduced loads.

◉ Seasonal Strategy

Summer produces surplus hydrogen. Winter consumes it. The system accumulates reserves May-September, draws down October-March.

Our first year's data:

Month Solar (kWh) Load (kWh) H₂ Net (L)
January89185-4,200
April210155+2,400
July320140+7,800
October145160-650

Summer builds reserves, winter consumes them. The system balanced over 12 months with slight surplus.

◉ Control System in Lateralus

The entire control system is a 300-line Lateralus program:

enum PowerState {
    SolarSurplus(watts: int),
    BatteryPowered,
    FuelCellAssist,
    LowReserve,
}

fn determine_state() -> PowerState {
    let solar = sensors.solar_power()
    let load = sensors.load_power()
    let batt = sensors.battery_soc()
    let h2 = sensors.h2_pressure()

    match (solar - load, batt, h2) {
        (surplus, _, _) if surplus > 100 => PowerState::SolarSurplus(surplus),
        (_, batt, _) if batt > 30 => PowerState::BatteryPowered,
        (_, _, h2) if h2 > 2 => PowerState::FuelCellAssist,
        _ => PowerState::LowReserve,
    }
}

fn control_loop() {
    loop {
        let state = determine_state()

        state
            |> apply_power_routing()
            |> log_telemetry()
            |> check_safety_limits()

        sleep(1000)
    }
}

◉ Safety Engineering

Hydrogen safety is non-negotiable:

◉ Economics

Compared to a battery-only system for the same resilience:

System Cost 3-day reserve Lifespan
Battery only (90 kWh LFP)$36,000Yes10-15 years
Hybrid (5 kWh + HHO)$12,000Yes20+ years

The hybrid costs 1/3 as much and lasts longer. The fuel cell and electrolyzer are the lifespan limiters (~20,000 hours), but they're replaceable for ~$2k.

◉ What We'd Do Differently

  1. Bigger electrolyzer. 500W is fine, but 1kW would accumulate faster in summer.
  2. Compression. 10 bar works, but 30 bar would reduce tank volume by 3x.
  3. Combined heat+power. Fuel cell waste heat (50% of input energy) could heat water or the house.

See the HHO page for detailed build guides and component sources.