add option to disable ETB if engine not spinning (#2280)
* config/ui * trigger central mods * implement
This commit is contained in:
parent
e7900850c5
commit
9b5fa40d16
|
@ -495,6 +495,15 @@ void EtbController::update() {
|
||||||
return;
|
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 EFI_TUNER_STUDIO
|
||||||
if (engineConfiguration->debugMode == DBG_ETB_LOGIC) {
|
if (engineConfiguration->debugMode == DBG_ETB_LOGIC) {
|
||||||
tsOutputChannels.debugFloatField1 = engine->engineState.targetFromTable;
|
tsOutputChannels.debugFloatField1 = engine->engineState.targetFromTable;
|
||||||
|
|
|
@ -66,7 +66,7 @@ void applyIACposition(percent_t position DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
||||||
#endif /* EFI_UNIT_TEST */
|
#endif /* EFI_UNIT_TEST */
|
||||||
} else {
|
} else {
|
||||||
// if not spinning or running a bench test, turn off the idle valve(s) to be quieter and save power
|
// 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);
|
idleSolenoidOpen.setSimplePwmDutyCycle(0);
|
||||||
idleSolenoidClose.setSimplePwmDutyCycle(0);
|
idleSolenoidClose.setSimplePwmDutyCycle(0);
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -49,6 +49,11 @@ public:
|
||||||
return m_lastEventTimer.getElapsedSeconds(nowNt);
|
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;
|
TriggerNoiseFilter noiseFilter;
|
||||||
|
|
||||||
trigger_type_e vvtTriggerType;
|
trigger_type_e vvtTriggerType;
|
||||||
|
|
|
@ -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 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 useNoiselessTriggerDecoder
|
||||||
bit useIdleTimingPidControl
|
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 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 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
|
bit alignEngineSnifferAtTDC
|
||||||
|
|
|
@ -3254,6 +3254,7 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@\x00\x31\x00\x00"
|
||||||
dialog = etbDialogLeft
|
dialog = etbDialogLeft
|
||||||
field = "https://rusefi.com/s/etb"
|
field = "https://rusefi.com/s/etb"
|
||||||
field = "Detailed status in console", isVerboseETB
|
field = "Detailed status in console", isVerboseETB
|
||||||
|
field = "Disable ETB if engine is stopped", disableEtbWhenEngineStopped
|
||||||
field = "Disable ETB Motor", pauseEtbControl
|
field = "Disable ETB Motor", pauseEtbControl
|
||||||
field = "H-Bridge #1 function", etbFunctions1
|
field = "H-Bridge #1 function", etbFunctions1
|
||||||
field = "H-Bridge #2 function", etbFunctions2
|
field = "H-Bridge #2 function", etbFunctions2
|
||||||
|
|
Loading…
Reference in New Issue