diff --git a/firmware/config/boards/microrusefi/board.mk b/firmware/config/boards/microrusefi/board.mk index d6a3db90c6..9d8c9f6936 100644 --- a/firmware/config/boards/microrusefi/board.mk +++ b/firmware/config/boards/microrusefi/board.mk @@ -22,6 +22,8 @@ DDEFS += -DEFI_USE_UART_DMA=FALSE # temp work-around only until June 3rd 2024 DDEFS += -DETB_INTERMITTENT_LIMIT=30000 +DDEFS += -DEFI_AUX_VALVES=TRUE + # maybe a way to disable SPI2 privately #DDEFS += -DSTM32_SPI_USE_SPI2=FALSE diff --git a/firmware/controllers/algo/engine.h b/firmware/controllers/algo/engine.h index 816692817f..1b80274fc6 100644 --- a/firmware/controllers/algo/engine.h +++ b/firmware/controllers/algo/engine.h @@ -217,7 +217,9 @@ public: void setConfig(); +#if EFI_AUX_VALVES AuxActor auxValves[AUX_DIGITAL_VALVE_COUNT][2]; +#endif // EFI_AUX_VALVES #if EFI_UNIT_TEST bool needTdcCallback = true; diff --git a/firmware/controllers/algo/engine2.cpp b/firmware/controllers/algo/engine2.cpp index 74427691ba..8fa35b0f6c 100644 --- a/firmware/controllers/algo/engine2.cpp +++ b/firmware/controllers/algo/engine2.cpp @@ -116,7 +116,9 @@ void EngineState::periodicFastCallback() { engine->fuelComputer.running.timeSinceCrankingInSecs = crankingTimer.getElapsedSeconds(nowNt); +#if EFI_AUX_VALVES recalculateAuxValveTiming(); +#endif //EFI_AUX_VALVES float rpm = Sensor::getOrZero(SensorType::Rpm); engine->ignitionState.sparkDwell = engine->ignitionState.getSparkDwell(rpm); diff --git a/firmware/controllers/engine_controller.cpp b/firmware/controllers/engine_controller.cpp index c1d60b8839..06a366c815 100644 --- a/firmware/controllers/engine_controller.cpp +++ b/firmware/controllers/engine_controller.cpp @@ -504,9 +504,9 @@ void commonInitEngineController() { engine->rpmCalculator.Register(); #endif /* EFI_UNIT_TEST */ -#if (EFI_ENGINE_CONTROL && EFI_SHAFT_POSITION_INPUT) || EFI_SIMULATOR || EFI_UNIT_TEST +#if EFI_AUX_VALVES initAuxValves(); -#endif /* EFI_ENGINE_CONTROL */ +#endif /* EFI_AUX_VALVES */ initTachometer(); initSpeedometer(); diff --git a/firmware/controllers/engine_cycle/aux_valves.cpp b/firmware/controllers/engine_cycle/aux_valves.cpp index 09aa14cb8d..cc794a9624 100644 --- a/firmware/controllers/engine_cycle/aux_valves.cpp +++ b/firmware/controllers/engine_cycle/aux_valves.cpp @@ -19,6 +19,8 @@ #include "trigger_central.h" #include "spark_logic.h" +#if EFI_AUX_VALVES + static void plainPinTurnOff(NamedOutputPin *output) { output->setLow(); } @@ -102,3 +104,5 @@ void recalculateAuxValveTiming() { engine->engineState.auxValveEnd); } } + +#endif // EFI_AUX_VALVES diff --git a/firmware/controllers/system/efi_gpio.cpp b/firmware/controllers/system/efi_gpio.cpp index 1347c5c8ac..d66c0b4b2c 100644 --- a/firmware/controllers/system/efi_gpio.cpp +++ b/firmware/controllers/system/efi_gpio.cpp @@ -229,7 +229,9 @@ bool EnginePins::stopPins() { void EnginePins::unregisterPins() { stopInjectionPins(); stopIgnitionPins(); +#if EFI_AUX_VALVES stopAuxValves(); +#endif #if EFI_ELECTRONIC_THROTTLE_BODY unregisterEtbPins(); @@ -258,9 +260,12 @@ void EnginePins::startPins() { #if EFI_ENGINE_CONTROL startInjectionPins(); startIgnitionPins(); - startAuxValves(); #endif /* EFI_ENGINE_CONTROL */ +#if EFI_AUX_VALVES + startAuxValves(); +#endif // EFI_AUX_VALVES + RegisteredOutputPin * pin = registeredOutputHead; while (pin != nullptr) { pin->init(); @@ -290,6 +295,7 @@ void EnginePins::stopInjectionPins() { } } +#if EFI_AUX_VALVES void EnginePins::stopAuxValves() { for (int i = 0; i < AUX_DIGITAL_VALVE_COUNT; i++) { NamedOutputPin *output = &enginePins.auxValve[i]; @@ -311,6 +317,7 @@ void EnginePins::startAuxValves() { } #endif /* EFI_PROD_CODE */ } +#endif // EFI_AUX_VALVES void EnginePins::startIgnitionPins() { #if EFI_PROD_CODE diff --git a/simulator/simulator/efifeatures.h b/simulator/simulator/efifeatures.h index 838d877e5b..c64681bd0b 100644 --- a/simulator/simulator/efifeatures.h +++ b/simulator/simulator/efifeatures.h @@ -17,6 +17,7 @@ #define EFI_ENABLE_ASSERTS TRUE #define EFI_LAUNCH_CONTROL TRUE +#define EFI_AUX_VALVES FALSE #define EFI_TS_TUNNEL_CAN TRUE diff --git a/unit_tests/efifeatures.h b/unit_tests/efifeatures.h index 8ee9ca13d7..a17ba70678 100644 --- a/unit_tests/efifeatures.h +++ b/unit_tests/efifeatures.h @@ -13,6 +13,8 @@ #define EFI_TUNER_STUDIO TRUE +#define EFI_AUX_VALVES TRUE + #define EFI_EMULATE_POSITION_SENSORS TRUE #define EFI_VEHICLE_SPEED TRUE