diff --git a/firmware/controllers/actuators/electronic_throttle.cpp b/firmware/controllers/actuators/electronic_throttle.cpp index b944111731..fc1cf6903d 100644 --- a/firmware/controllers/actuators/electronic_throttle.cpp +++ b/firmware/controllers/actuators/electronic_throttle.cpp @@ -332,8 +332,13 @@ expected EtbController::getSetpointEtb() { auto etbRpmLimit = engineConfiguration->etbRevLimitStart; if (etbRpmLimit != 0) { auto fullyLimitedRpm = etbRpmLimit + engineConfiguration->etbRevLimitRange; + + float targetPositionBefore = targetPosition; // Linearly taper throttle to closed from the limit across the range targetPosition = interpolateClamped(etbRpmLimit, targetPosition, fullyLimitedRpm, 0, rpm); + + // rev limit active if the position was changed by rev limiter + etbRevLimitActive = absF(targetPosition - targetPositionBefore) > 0.1f; } float minPosition = engineConfiguration->etbMinimumPosition; diff --git a/firmware/controllers/actuators/electronic_throttle.txt b/firmware/controllers/actuators/electronic_throttle.txt index a9fed8de2c..16408bd6bb 100644 --- a/firmware/controllers/actuators/electronic_throttle.txt +++ b/firmware/controllers/actuators/electronic_throttle.txt @@ -10,5 +10,6 @@ float luaAdjustment float etbIntegralError;;"", 1, 0, -10000, 10000, 3 float etbCurrentTarget;;"%", 1, 0, -10000, 10000, 3 + bit etbRevLimitActive end_struct \ No newline at end of file diff --git a/firmware/tunerstudio/rusefi.input b/firmware/tunerstudio/rusefi.input index e4d424607d..cce42974d6 100644 --- a/firmware/tunerstudio/rusefi.input +++ b/firmware/tunerstudio/rusefi.input @@ -1362,6 +1362,7 @@ gaugeCategory = Outputs indicator = { sd_logging_internal }, "SD logging", "SD logging", white, black, green, black indicator = { sd_msd }, "SD USB", "SD USB", white, black, green, black indicator = { isPumpOn }, "No Pump", "Pump", white, black, green, black + indicator = { etbRevLimitActive }, "", "ETB RPM Limit", white, black, yellow, black ; looks like TS would append four system indicators below: Data Logging, ???, Not Connected, Protocol Error