Release v2.0.0 with dual-nail control and hardened safety

This commit is contained in:
2026-03-12 02:06:42 +00:00
parent cd07703f67
commit c4c86747e5
10 changed files with 2046 additions and 451 deletions
+130 -5
View File
@@ -14,9 +14,9 @@ log = logging.getLogger(__name__)
DEFAULT_CONFIG = {
"pid": {
"kP": 10.0,
"kI": 5.0,
"kD": 1.0,
"kP": 113.1768,
"kI": 3.5335,
"kD": 500.0,
"proportional_on_measurement": False
},
"control": {
@@ -25,12 +25,29 @@ DEFAULT_CONFIG = {
"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": 800,
"max_temp_f": 750,
"spike_threshold_f": 50.0,
"idle_shutoff_minutes": 30,
"watchdog_timeout_s": 10,
"min_temp_f": 0
"min_temp_f": 0,
"sensor_stale_seconds": 8,
"sensor_stale_delta_f": 0.8,
"stale_output_ratio": 0.65
},
"gpio": {
"relay_pin": 2,
@@ -56,6 +73,114 @@ DEFAULT_CONFIG = {
"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
}
}
}
}