diff --git a/firmware/config/boards/prometheus/board_configuration.cpp b/firmware/config/boards/prometheus/board_configuration.cpp index c0a8f6a1c2..f4a58e2d80 100644 --- a/firmware/config/boards/prometheus/board_configuration.cpp +++ b/firmware/config/boards/prometheus/board_configuration.cpp @@ -17,7 +17,7 @@ static bool is469 = false; static void setPrometheusDefaults() { - setOperationMode(engineConfiguration, FOUR_STROKE_CRANK_SENSOR/*FOUR_STROKE_CAM_SENSOR*/); + setCrankOperationMode(engineConfiguration); engineConfiguration->trigger.type = TT_TOOTHED_WHEEL_60_2; //engineConfiguration->useOnlyRisingEdgeForTrigger = true; setAlgorithm(LM_SPEED_DENSITY); diff --git a/firmware/config/engines/ford_1995_inline_6.cpp b/firmware/config/engines/ford_1995_inline_6.cpp index fe99f7b7d6..78bbb1014d 100644 --- a/firmware/config/engines/ford_1995_inline_6.cpp +++ b/firmware/config/engines/ford_1995_inline_6.cpp @@ -23,7 +23,7 @@ void setFordInline6() { engineConfiguration->specs.cylindersCount = 6; - setOperationMode(engineConfiguration, FOUR_STROKE_CAM_SENSOR); + setCamOperationMode(engineConfiguration); engineConfiguration->ignitionMode = IM_ONE_COIL; engineConfiguration->specs.firingOrder = FO_1_5_3_6_2_4; diff --git a/firmware/config/engines/sachs.cpp b/firmware/config/engines/sachs.cpp index d1cbabc1ac..0b71b0ba56 100644 --- a/firmware/config/engines/sachs.cpp +++ b/firmware/config/engines/sachs.cpp @@ -18,6 +18,7 @@ void setSachs() { engineConfiguration->specs.displacement = 0.1; // 100cc engineConfiguration->specs.cylindersCount = 1; + engineConfiguration->twoStroke = true; setOperationMode(engineConfiguration, TWO_STROKE); engineConfiguration->specs.firingOrder = FO_1; engineConfiguration->engineChartSize = 400; diff --git a/firmware/config/engines/subaru.cpp b/firmware/config/engines/subaru.cpp index 5ad73d65b5..5de93097e5 100644 --- a/firmware/config/engines/subaru.cpp +++ b/firmware/config/engines/subaru.cpp @@ -66,7 +66,7 @@ void setSubaruEJ18_MRE() { */ void setSubaruEG33Defaults() { - setOperationMode(engineConfiguration, FOUR_STROKE_CAM_SENSOR); + setCamOperationMode(engineConfiguration); engineConfiguration->trigger.type = TT_SUBARU_SVX; engineConfiguration->useOnlyRisingEdgeForTrigger = true; diff --git a/firmware/config/engines/toyota_jzs147.cpp b/firmware/config/engines/toyota_jzs147.cpp index db6ddfb969..43129a12cc 100644 --- a/firmware/config/engines/toyota_jzs147.cpp +++ b/firmware/config/engines/toyota_jzs147.cpp @@ -70,7 +70,7 @@ static void common2jz() { void setToyota_jzs147EngineConfiguration() { common2jz(); - setOperationMode(engineConfiguration, FOUR_STROKE_CAM_SENSOR); + setCamOperationMode(engineConfiguration); engineConfiguration->trigger.type = TT_2JZ_1_12; //// temporary while I am fixing trigger bug diff --git a/firmware/controllers/algo/defaults/default_base_engine.cpp b/firmware/controllers/algo/defaults/default_base_engine.cpp index e6ecc3d8a4..be02742b04 100644 --- a/firmware/controllers/algo/defaults/default_base_engine.cpp +++ b/firmware/controllers/algo/defaults/default_base_engine.cpp @@ -35,8 +35,7 @@ void setDefaultBaseEngine() { // Trigger engineConfiguration->trigger.type = TT_TOOTHED_WHEEL_60_2; // huh WAT? our default is skipped on CAM?! and *many* our tests are relying on that?! - setOperationMode(engineConfiguration, FOUR_STROKE_CAM_SENSOR); - engineConfiguration->skippedWheelOnCam = true; + setCamOperationMode(engineConfiguration); engineConfiguration->useOnlyRisingEdgeForTrigger = false; engineConfiguration->globalTriggerAngleOffset = 0; diff --git a/firmware/controllers/algo/engine_configuration.cpp b/firmware/controllers/algo/engine_configuration.cpp index 67c753edec..5eb6585096 100644 --- a/firmware/controllers/algo/engine_configuration.cpp +++ b/firmware/controllers/algo/engine_configuration.cpp @@ -1178,8 +1178,14 @@ void setOperationMode(engine_configuration_s *engineConfiguration, operation_mod engineConfiguration->ambiguousOperationMode = mode; } +void setCamOperationMode(engine_configuration_s *engineConfiguration) { + engineConfiguration->ambiguousOperationMode = FOUR_STROKE_CAM_SENSOR; + engineConfiguration->skippedWheelOnCam = true; +} + void setCrankOperationMode(engine_configuration_s *engineConfiguration) { engineConfiguration->ambiguousOperationMode = FOUR_STROKE_CRANK_SENSOR; + engineConfiguration->skippedWheelOnCam = false; } void commonFrankensoAnalogInputs(engine_configuration_s *engineConfiguration) { diff --git a/firmware/controllers/algo/engine_configuration.h b/firmware/controllers/algo/engine_configuration.h index 055c284ed0..4a854c2bbf 100644 --- a/firmware/controllers/algo/engine_configuration.h +++ b/firmware/controllers/algo/engine_configuration.h @@ -23,6 +23,7 @@ void setOperationMode(engine_configuration_s *engineConfiguration, operation_mode_e mode); void setCrankOperationMode(engine_configuration_s *engineConfiguration); +void setCamOperationMode(engine_configuration_s *engineConfiguration); void prepareVoidConfiguration(engine_configuration_s *activeConfiguration); void setTargetRpmCurve(int rpm); diff --git a/firmware/controllers/settings.cpp b/firmware/controllers/settings.cpp index d61a19e352..40ed81910d 100644 --- a/firmware/controllers/settings.cpp +++ b/firmware/controllers/settings.cpp @@ -202,11 +202,6 @@ static void setSensorChartMode(int value) { doPrintConfiguration(); } -static void setOperationMode(int value) { - engineConfiguration->ambiguousOperationMode = (operation_mode_e)value; - doPrintConfiguration(); -} - static void printTpsSenser(const char *msg, SensorType sensor, int16_t min, int16_t max, adc_channel_e channel) { auto tps = Sensor::get(sensor); auto raw = Sensor::getRaw(sensor); @@ -1068,7 +1063,6 @@ const command_i_s commandsI[] = {{"ignition_mode", setIgnitionMode}, {"idle_pin_mode", setIdlePinMode}, {"fuel_pump_pin_mode", setFuelPumpPinMode}, {"malfunction_indicator_pin_mode", setMalfunctionIndicatorPinMode}, - {"operation_mode", setOperationMode}, {"debug_mode", setDebugMode}, {"trigger_type", setTriggerType}, {"idle_solenoid_freq", setIdleSolenoidFrequency},