From 3b3f62b24fcd56366c210f08691625650fba342a Mon Sep 17 00:00:00 2001 From: rusefillc Date: Mon, 2 May 2022 05:24:50 -0400 Subject: [PATCH] Make ETB low limit configurable fix #4119 --- firmware/controllers/actuators/electronic_throttle.cpp | 8 +++++++- .../controllers/algo/defaults/default_base_engine.cpp | 2 ++ firmware/integration/rusefi_config.txt | 6 ------ 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/firmware/controllers/actuators/electronic_throttle.cpp b/firmware/controllers/actuators/electronic_throttle.cpp index c75a27c76a..289567b0d0 100644 --- a/firmware/controllers/actuators/electronic_throttle.cpp +++ b/firmware/controllers/actuators/electronic_throttle.cpp @@ -330,6 +330,12 @@ expected EtbController::getSetpointEtb() { targetPosition = interpolateClamped(etbRpmLimit, targetPosition, fullyLimitedRpm, 0, rpm); } + float minPosition = engineConfiguration->etbMinimumPosition; + if (minPosition < 0.01) { + // compatibility with legacy tunes, todo: remove in Nov of 2022 + minPosition = 1; + } + // Keep the throttle just barely off the lower stop, and less than the user-configured maximum float maxPosition = engineConfiguration->etbMaximumPosition; @@ -341,7 +347,7 @@ expected EtbController::getSetpointEtb() { maxPosition = minF(maxPosition, 100); } - targetPosition = clampF(1, targetPosition, maxPosition); + targetPosition = clampF(minPosition, targetPosition, maxPosition); #if EFI_TUNER_STUDIO if (m_function == ETB_Throttle1) { diff --git a/firmware/controllers/algo/defaults/default_base_engine.cpp b/firmware/controllers/algo/defaults/default_base_engine.cpp index 32ea57d6c8..95259939a9 100644 --- a/firmware/controllers/algo/defaults/default_base_engine.cpp +++ b/firmware/controllers/algo/defaults/default_base_engine.cpp @@ -66,6 +66,8 @@ void setDefaultBaseEngine() { engineConfiguration->tachPulseDuractionMs = 0.5; engineConfiguration->tachPulsePerRev = 1; + engineConfiguration->etbMinimumPosition = 1; + engineConfiguration->etbMaximumPosition = 100; engineConfiguration->tcuInputSpeedSensorTeeth = 1; engineConfiguration->issFilterReciprocal = 2; diff --git a/firmware/integration/rusefi_config.txt b/firmware/integration/rusefi_config.txt index 294a82872a..90aa656a7d 100644 --- a/firmware/integration/rusefi_config.txt +++ b/firmware/integration/rusefi_config.txt @@ -108,12 +108,6 @@ struct_no_prefix engine_configuration_s ! see 'blockingFactor' in rusefi.ini #define BLOCKING_FACTOR 256 -! Back in the day we wanted enums to be 32 bit integers. -! as of 2020 preference is with ' __attribute__ ((__packed__))' allowing one-byte enums -! todo: Technical debt: ENUM_32_BITS #3874 -#define ENUM_16_BITS 60000 -#define ENUM_32_BITS 2000000000 - #define AUX_ANALOG_INPUT_COUNT 8 #define LUA_PWM_COUNT 8