{ "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 } } } }