diff --git a/firmware/controllers/actuators/electronic_throttle.cpp b/firmware/controllers/actuators/electronic_throttle.cpp index 690663e1a0..d34ed62a23 100644 --- a/firmware/controllers/actuators/electronic_throttle.cpp +++ b/firmware/controllers/actuators/electronic_throttle.cpp @@ -275,8 +275,16 @@ expected EtbController::getSetpointEtb() const { } expected EtbController::getOpenLoop(percent_t target) const { - float ff = interpolate2d("etbb", target, engineConfiguration->etbBiasBins, engineConfiguration->etbBiasValues); + float ff = 0; + + // Don't apply open loop for wastegate/idle valve, only real ETB + if (m_function != ETB_Wastegate + && m_function != ETB_IdleValve) { + ff = interpolate2d("etbb", target, engineConfiguration->etbBiasBins, engineConfiguration->etbBiasValues); + } + engine->engineState.etbFeedForward = ff; + return ff; }