diff --git a/Software/MainBoard/rust/src/config.rs b/Software/MainBoard/rust/src/config.rs index 041cbb3..b74bdb3 100644 --- a/Software/MainBoard/rust/src/config.rs +++ b/Software/MainBoard/rust/src/config.rs @@ -129,6 +129,7 @@ pub struct PlantConfig { pub min_pump_current_ma: u16, pub max_pump_current_ma: u16, pub ignore_current_error: bool, + pub fertilizer_s: u16, } impl Default for PlantConfig { @@ -150,6 +151,7 @@ impl Default for PlantConfig { min_pump_current_ma: 10, max_pump_current_ma: 3000, ignore_current_error: true, + fertilizer_s: 0, } } } diff --git a/Software/MainBoard/rust/src/main.rs b/Software/MainBoard/rust/src/main.rs index ffa206c..9b42c27 100644 --- a/Software/MainBoard/rust/src/main.rs +++ b/Software/MainBoard/rust/src/main.rs @@ -715,6 +715,15 @@ pub async fn do_secure_pump( let mut pump_time_ms: u32 = 0; if !dry_run { + // Run fertilizer pump first if configured + if plant_config.fertilizer_s > 0 { + info!("Starting fertilizer pump for {} seconds", plant_config.fertilizer_s); + board.board_hal.extra2(true).await?; + Timer::after_millis(plant_config.fertilizer_s as u64 * 1000).await; + board.board_hal.extra2(false).await?; + info!("Fertilizer pump stopped"); + } + board.board_hal.get_tank_sensor()?.reset_flow_meter(); board.board_hal.get_tank_sensor()?.start_flow_meter(); board.board_hal.pump(plant_id, true).await?; diff --git a/Software/MainBoard/rust/src_webpack/src/api.ts b/Software/MainBoard/rust/src_webpack/src/api.ts index 7e2aa68..1bbb99b 100644 --- a/Software/MainBoard/rust/src_webpack/src/api.ts +++ b/Software/MainBoard/rust/src_webpack/src/api.ts @@ -128,6 +128,7 @@ export interface PlantConfig { min_moisture: number, pump_time_s: number, pump_cooldown_min: number, + fertilizer_s: number, pump_hour_start: number, pump_hour_end: number, pump_limit_ml: number, diff --git a/Software/MainBoard/rust/src_webpack/src/plant.html b/Software/MainBoard/rust/src_webpack/src/plant.html index 1ab0213..9b0f92b 100644 --- a/Software/MainBoard/rust/src_webpack/src/plant.html +++ b/Software/MainBoard/rust/src_webpack/src/plant.html @@ -78,6 +78,11 @@ +