# Tracker Configuration

pvnode supports fixed mounts, single-axis and dual-axis trackers. Tracking is configured
**site-wide** in `config.tracking`. When a tracking mode is active, every string on the site is
treated as tracked — the axis geometry overrides the per-string `slope` and `orientation`.

Set `type` to choose the system:

| Value         | System                              |
|---------------|-------------------------------------|
| `fixed`       | No tracking (fixed mount, default). |
| `single_axis` | Single-axis tracker.                |
| `dual_axis`   | Dual-axis tracker.                  |

## Single-axis tracker

With `type: "single_axis"`, the remaining fields in `config.tracking` define the tracker
geometry:

| Field          | Description                                                  | Range / default      |
|----------------|--------------------------------------------------------------|----------------------|
| `axis_azimuth` | Compass direction of the rotation axis.                      | 0–360° (180 = south) |
| `axis_tilt`    | Tilt of the rotation axis from horizontal.                   | 0–90° (default 0)    |
| `max_angle`    | Maximum rotation angle from horizontal.                      | 0–90° (default 90)   |
| `backtracking` | Reduce row-to-row shading by backtracking at low sun angles. | `true` / `false`     |

```json title="A south-oriented single-axis tracker with backtracking"
{
  "config": {
    "tracking": {
      "type": "single_axis",
      "axis_azimuth": 180,
      "axis_tilt": 0,
      "max_angle": 90,
      "backtracking": true
    }
  }
}
```

This configures a horizontal north–south axis (axis azimuth 180°, no tilt) with a full ±90°
rotation range and backtracking enabled to avoid row shading at low sun angles.

## Dual-axis tracker

Set `type: "dual_axis"`. No further configuration is needed — the system automatically tracks
the sun for maximum irradiance at every timestep.

```json title="Dual-axis tracker"
{
  "config": {
    "tracking": {
      "type": "dual_axis"
    }
  }
}
```
