diff --git a/firmware/controllers/actuators/electronic_throttle.cpp b/firmware/controllers/actuators/electronic_throttle.cpp index e5c59b75b8..962f83b7a1 100644 --- a/firmware/controllers/actuators/electronic_throttle.cpp +++ b/firmware/controllers/actuators/electronic_throttle.cpp @@ -495,6 +495,15 @@ void EtbController::update() { return; } + if (CONFIG(disableEtbWhenEngineStopped)) { + if (engine->triggerCentral.getTimeSinceTriggerEvent(getTimeNowNt()) > 1) { + // If engine is stopped and so configured, skip the ETB update entirely + // This is quieter and pulls less power than leaving it on all the time + m_motor->disable(); + return; + } + } + #if EFI_TUNER_STUDIO if (engineConfiguration->debugMode == DBG_ETB_LOGIC) { tsOutputChannels.debugFloatField1 = engine->engineState.targetFromTable; diff --git a/firmware/controllers/actuators/idle_hardware.cpp b/firmware/controllers/actuators/idle_hardware.cpp index 74c0ae171f..3d75cccd66 100644 --- a/firmware/controllers/actuators/idle_hardware.cpp +++ b/firmware/controllers/actuators/idle_hardware.cpp @@ -66,7 +66,7 @@ void applyIACposition(percent_t position DECLARE_ENGINE_PARAMETER_SUFFIX) { #endif /* EFI_UNIT_TEST */ } else { // if not spinning or running a bench test, turn off the idle valve(s) to be quieter and save power - if (engine->triggerCentral.getTimeSinceTriggerEvent(getTimeNowNt()) > 1.0f && timeToStopIdleTest == 0) { + if (!engine->triggerCentral.engineMovedRecently() && timeToStopIdleTest == 0) { idleSolenoidOpen.setSimplePwmDutyCycle(0); idleSolenoidClose.setSimplePwmDutyCycle(0); return; diff --git a/firmware/controllers/generated/fsio_enums_generated.def b/firmware/controllers/generated/fsio_enums_generated.def index 1be40ee05f..1fa27d32a6 100644 --- a/firmware/controllers/generated/fsio_enums_generated.def +++ b/firmware/controllers/generated/fsio_enums_generated.def @@ -1,4 +1,4 @@ -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 03 19:36:03 UTC 2021 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Feb 05 23:21:13 UTC 2021 // by class com.rusefi.output.FileFsioSettingsConsumer FSIO_SETTING_FANONTEMPERATURE = 1000, diff --git a/firmware/controllers/generated/fsio_getters.def b/firmware/controllers/generated/fsio_getters.def index 977b609864..82851f2d64 100644 --- a/firmware/controllers/generated/fsio_getters.def +++ b/firmware/controllers/generated/fsio_getters.def @@ -1,4 +1,4 @@ -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 03 19:36:03 UTC 2021 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Feb 05 23:21:13 UTC 2021 // by class com.rusefi.output.FileFsioSettingsConsumer case FSIO_SETTING_FANONTEMPERATURE: diff --git a/firmware/controllers/generated/fsio_names.def b/firmware/controllers/generated/fsio_names.def index bae57d34ff..004db3f89b 100644 --- a/firmware/controllers/generated/fsio_names.def +++ b/firmware/controllers/generated/fsio_names.def @@ -1,4 +1,4 @@ -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 03 19:36:03 UTC 2021 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Feb 05 23:21:13 UTC 2021 // by class com.rusefi.output.FileFsioSettingsConsumer static LENameOrdinalPair lefanOnTemperature(FSIO_SETTING_FANONTEMPERATURE, "cfg_fanOnTemperature"); diff --git a/firmware/controllers/generated/fsio_strings.def b/firmware/controllers/generated/fsio_strings.def index fa0e855297..6ff30b099f 100644 --- a/firmware/controllers/generated/fsio_strings.def +++ b/firmware/controllers/generated/fsio_strings.def @@ -1,4 +1,4 @@ -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 03 19:36:03 UTC 2021 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Feb 05 23:21:13 UTC 2021 // by class com.rusefi.output.FileFsioSettingsConsumer case FSIO_SETTING_FANONTEMPERATURE: diff --git a/firmware/controllers/generated/signature_all.h b/firmware/controllers/generated/signature_all.h index ab8726ee47..1d308567b4 100644 --- a/firmware/controllers/generated/signature_all.h +++ b/firmware/controllers/generated/signature_all.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD all -#define SIGNATURE_DATE 2021.02.03 -#define SIGNATURE_HASH 920683779 -#define TS_SIGNATURE "rusEFI 2021.02.03.all.920683779" +#define SIGNATURE_DATE 2021.02.05 +#define SIGNATURE_HASH 2191466603 +#define TS_SIGNATURE "rusEFI 2021.02.05.all.2191466603" diff --git a/firmware/controllers/generated/signature_frankenso_na6.h b/firmware/controllers/generated/signature_frankenso_na6.h index 4acdcb8b56..0bd82cb629 100644 --- a/firmware/controllers/generated/signature_frankenso_na6.h +++ b/firmware/controllers/generated/signature_frankenso_na6.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD frankenso_na6 -#define SIGNATURE_DATE 2021.02.03 -#define SIGNATURE_HASH 2996480144 -#define TS_SIGNATURE "rusEFI 2021.02.03.frankenso_na6.2996480144" +#define SIGNATURE_DATE 2021.02.05 +#define SIGNATURE_HASH 115674616 +#define TS_SIGNATURE "rusEFI 2021.02.05.frankenso_na6.115674616" diff --git a/firmware/controllers/generated/signature_hellen72.h b/firmware/controllers/generated/signature_hellen72.h index 23e0bbf3a9..620c6b0580 100644 --- a/firmware/controllers/generated/signature_hellen72.h +++ b/firmware/controllers/generated/signature_hellen72.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD hellen72 -#define SIGNATURE_DATE 2021.02.03 -#define SIGNATURE_HASH 615833019 -#define TS_SIGNATURE "rusEFI 2021.02.03.hellen72.615833019" +#define SIGNATURE_DATE 2021.02.05 +#define SIGNATURE_HASH 2429253843 +#define TS_SIGNATURE "rusEFI 2021.02.05.hellen72.2429253843" diff --git a/firmware/controllers/generated/signature_hellen_cypress.h b/firmware/controllers/generated/signature_hellen_cypress.h index bb875dd60f..735e966e1f 100644 --- a/firmware/controllers/generated/signature_hellen_cypress.h +++ b/firmware/controllers/generated/signature_hellen_cypress.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD hellen_cypress -#define SIGNATURE_DATE 2021.02.03 -#define SIGNATURE_HASH 1956404947 -#define TS_SIGNATURE "rusEFI 2021.02.03.hellen_cypress.1956404947" +#define SIGNATURE_DATE 2021.02.05 +#define SIGNATURE_HASH 3236166587 +#define TS_SIGNATURE "rusEFI 2021.02.05.hellen_cypress.3236166587" diff --git a/firmware/controllers/generated/signature_kin.h b/firmware/controllers/generated/signature_kin.h index 56e06c7f40..a674387a7f 100644 --- a/firmware/controllers/generated/signature_kin.h +++ b/firmware/controllers/generated/signature_kin.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD kin -#define SIGNATURE_DATE 2021.02.03 -#define SIGNATURE_HASH 1956404947 -#define TS_SIGNATURE "rusEFI 2021.02.03.kin.1956404947" +#define SIGNATURE_DATE 2021.02.05 +#define SIGNATURE_HASH 3236166587 +#define TS_SIGNATURE "rusEFI 2021.02.05.kin.3236166587" diff --git a/firmware/controllers/generated/signature_mre_f4.h b/firmware/controllers/generated/signature_mre_f4.h index a0c3769427..abfda2c6db 100644 --- a/firmware/controllers/generated/signature_mre_f4.h +++ b/firmware/controllers/generated/signature_mre_f4.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD mre_f4 -#define SIGNATURE_DATE 2021.02.03 -#define SIGNATURE_HASH 405207017 -#define TS_SIGNATURE "rusEFI 2021.02.03.mre_f4.405207017" +#define SIGNATURE_DATE 2021.02.05 +#define SIGNATURE_HASH 2891534977 +#define TS_SIGNATURE "rusEFI 2021.02.05.mre_f4.2891534977" diff --git a/firmware/controllers/generated/signature_mre_f7.h b/firmware/controllers/generated/signature_mre_f7.h index 14791adc12..9421f4376f 100644 --- a/firmware/controllers/generated/signature_mre_f7.h +++ b/firmware/controllers/generated/signature_mre_f7.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD mre_f7 -#define SIGNATURE_DATE 2021.02.03 -#define SIGNATURE_HASH 405207017 -#define TS_SIGNATURE "rusEFI 2021.02.03.mre_f7.405207017" +#define SIGNATURE_DATE 2021.02.05 +#define SIGNATURE_HASH 2891534977 +#define TS_SIGNATURE "rusEFI 2021.02.05.mre_f7.2891534977" diff --git a/firmware/controllers/generated/signature_prometheus_405.h b/firmware/controllers/generated/signature_prometheus_405.h index ac67d006d1..71771e38f3 100644 --- a/firmware/controllers/generated/signature_prometheus_405.h +++ b/firmware/controllers/generated/signature_prometheus_405.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD prometheus_405 -#define SIGNATURE_DATE 2021.02.03 -#define SIGNATURE_HASH 611747637 -#define TS_SIGNATURE "rusEFI 2021.02.03.prometheus_405.611747637" +#define SIGNATURE_DATE 2021.02.05 +#define SIGNATURE_HASH 2416517725 +#define TS_SIGNATURE "rusEFI 2021.02.05.prometheus_405.2416517725" diff --git a/firmware/controllers/generated/signature_prometheus_469.h b/firmware/controllers/generated/signature_prometheus_469.h index 6cf4635601..4b0dbaf178 100644 --- a/firmware/controllers/generated/signature_prometheus_469.h +++ b/firmware/controllers/generated/signature_prometheus_469.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD prometheus_469 -#define SIGNATURE_DATE 2021.02.03 -#define SIGNATURE_HASH 611747637 -#define TS_SIGNATURE "rusEFI 2021.02.03.prometheus_469.611747637" +#define SIGNATURE_DATE 2021.02.05 +#define SIGNATURE_HASH 2416517725 +#define TS_SIGNATURE "rusEFI 2021.02.05.prometheus_469.2416517725" diff --git a/firmware/controllers/generated/signature_proteus_f4.h b/firmware/controllers/generated/signature_proteus_f4.h index e3a0b36451..59fd85888a 100644 --- a/firmware/controllers/generated/signature_proteus_f4.h +++ b/firmware/controllers/generated/signature_proteus_f4.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD proteus_f4 -#define SIGNATURE_DATE 2021.02.03 -#define SIGNATURE_HASH 1372671276 -#define TS_SIGNATURE "rusEFI 2021.02.03.proteus_f4.1372671276" +#define SIGNATURE_DATE 2021.02.05 +#define SIGNATURE_HASH 3853445188 +#define TS_SIGNATURE "rusEFI 2021.02.05.proteus_f4.3853445188" diff --git a/firmware/controllers/generated/signature_proteus_f7.h b/firmware/controllers/generated/signature_proteus_f7.h index c8c07611f7..18de47632c 100644 --- a/firmware/controllers/generated/signature_proteus_f7.h +++ b/firmware/controllers/generated/signature_proteus_f7.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD proteus_f7 -#define SIGNATURE_DATE 2021.02.03 -#define SIGNATURE_HASH 1372671276 -#define TS_SIGNATURE "rusEFI 2021.02.03.proteus_f7.1372671276" +#define SIGNATURE_DATE 2021.02.05 +#define SIGNATURE_HASH 3853445188 +#define TS_SIGNATURE "rusEFI 2021.02.05.proteus_f7.3853445188" diff --git a/firmware/controllers/trigger/trigger_central.h b/firmware/controllers/trigger/trigger_central.h index f96399e8cc..aed9386015 100644 --- a/firmware/controllers/trigger/trigger_central.h +++ b/firmware/controllers/trigger/trigger_central.h @@ -49,6 +49,11 @@ public: return m_lastEventTimer.getElapsedSeconds(nowNt); } + bool engineMovedRecently() const { + // Trigger event some time in the past second = engine moving + return getTimeSinceTriggerEvent(getTimeNowNt()) < 1.0f; + } + TriggerNoiseFilter noiseFilter; trigger_type_e vvtTriggerType; diff --git a/firmware/integration/rusefi_config.txt b/firmware/integration/rusefi_config.txt index c55bc9e9db..bc38e75f79 100644 --- a/firmware/integration/rusefi_config.txt +++ b/firmware/integration/rusefi_config.txt @@ -831,7 +831,7 @@ bit is_enabled_spi_2 bit useIacTableForCoasting;+This setting allows the ECU to open the IAC during overrun conditions to help reduce engine breaking, this can be helpful for large engines in light weight cars. Used in Auto-PID Idle mode. bit useNoiselessTriggerDecoder bit useIdleTimingPidControl - bit unused744b25 + bit disableEtbWhenEngineStopped;+Allows disabling the ETB when the engine is stopped. You may not like the power draw or PWM noise from the motor, so this lets you turn it off until it's necessary. bit is_enabled_spi_4 bit pauseEtbControl;+Disable the electronic throttle motor and DC idle motor for testing.\nThis mode is for testing ETB/DC idle position sensors, etc without actually driving the throttle. bit alignEngineSnifferAtTDC diff --git a/firmware/tunerstudio/rusefi.input b/firmware/tunerstudio/rusefi.input index de2c448fd8..fe995c8909 100644 --- a/firmware/tunerstudio/rusefi.input +++ b/firmware/tunerstudio/rusefi.input @@ -3254,6 +3254,7 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@\x00\x31\x00\x00" dialog = etbDialogLeft field = "https://rusefi.com/s/etb" field = "Detailed status in console", isVerboseETB + field = "Disable ETB if engine is stopped", disableEtbWhenEngineStopped field = "Disable ETB Motor", pauseEtbControl field = "H-Bridge #1 function", etbFunctions1 field = "H-Bridge #2 function", etbFunctions2