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