{
  "pid": {
    "kP": 113.1768,
    "kI": 3.5335,
    "kD": 500.0,
    "proportional_on_measurement": false
  },
  "control": {
    "setpoint": 530,
    "loop_size_ms": 3000,
    "sleep_time": 0.4,
    "enabled": false
  },
  "flight": {
    "mode": "grounded",
    "takeoff_seconds": 300,
    "descent_seconds": 300,
    "turbo": false,
    "descent_target_f": 120,
    "ambient_temp_f": 75
  },
  "scheduler": {
    "enabled": true,
    "cutoff_times": [
      "23:00"
    ]
  },
  "safety": {
    "max_temp_f": 750,
    "spike_threshold_f": 50.0,
    "idle_shutoff_minutes": 30,
    "watchdog_timeout_s": 10,
    "min_temp_f": 0,
    "sensor_stale_seconds": 8,
    "sensor_stale_delta_f": 0.8,
    "stale_output_ratio": 0.65
  },
  "gpio": {
    "relay_pin": 2,
    "clk": 3,
    "cs": 14,
    "do": 4
  },
  "logging": {
    "log_resolution": 1,
    "log_directory": "./logs",
    "max_log_lines": 10000
  },
  "presets": {
    "Low Temp": 450,
    "Medium": 530,
    "High": 650
  },
  "web": {
    "host": "0.0.0.0",
    "port": 5000,
    "update_interval_ms": 500
  },
  "autotune": {
    "hysteresis_f": 8.0,
    "cycles": 4
  },
  "nails": {
    "nail1": {
      "pid": {
        "kP": 113.1768,
        "kI": 3.5335,
        "kD": 500.0,
        "proportional_on_measurement": false
      },
      "control": {
        "setpoint": 530,
        "loop_size_ms": 3000,
        "sleep_time": 0.4,
        "enabled": false
      },
      "flight": {
        "mode": "grounded",
        "takeoff_seconds": 300,
        "descent_seconds": 300,
        "turbo": false,
        "descent_target_f": 120,
        "ambient_temp_f": 75
      },
      "scheduler": {
        "enabled": true,
        "cutoff_times": [
          "23:00"
        ]
      },
      "safety": {
        "max_temp_f": 750,
        "spike_threshold_f": 50.0,
        "idle_shutoff_minutes": 30,
        "watchdog_timeout_s": 10,
        "min_temp_f": 0,
        "sensor_stale_seconds": 8,
        "sensor_stale_delta_f": 0.8,
        "stale_output_ratio": 0.65
      },
      "gpio": {
        "relay_pin": 2,
        "clk": 3,
        "cs": 14,
        "do": 4
      },
      "logging": {
        "log_resolution": 1,
        "log_directory": "./logs/nail1",
        "max_log_lines": 10000
      },
      "autotune": {
        "hysteresis_f": 8.0,
        "cycles": 4
      }
    },
    "nail2": {
      "pid": {
        "kP": 113.1768,
        "kI": 3.5335,
        "kD": 500.0,
        "proportional_on_measurement": false
      },
      "control": {
        "setpoint": 530,
        "loop_size_ms": 3000,
        "sleep_time": 0.4,
        "enabled": false
      },
      "flight": {
        "mode": "grounded",
        "takeoff_seconds": 300,
        "descent_seconds": 300,
        "turbo": false,
        "descent_target_f": 120,
        "ambient_temp_f": 75
      },
      "scheduler": {
        "enabled": true,
        "cutoff_times": [
          "23:00"
        ]
      },
      "safety": {
        "max_temp_f": 750,
        "spike_threshold_f": 50.0,
        "idle_shutoff_minutes": 30,
        "watchdog_timeout_s": 10,
        "min_temp_f": 0,
        "sensor_stale_seconds": 8,
        "sensor_stale_delta_f": 0.8,
        "stale_output_ratio": 0.65
      },
      "gpio": {
        "relay_pin": 22,
        "clk": 27,
        "cs": 18,
        "do": 17
      },
      "logging": {
        "log_resolution": 1,
        "log_directory": "./logs/nail2",
        "max_log_lines": 10000
      },
      "autotune": {
        "hysteresis_f": 8.0,
        "cycles": 4
      }
    }
  }
}
