diff --git a/firmware/console/status_loop.cpp b/firmware/console/status_loop.cpp index 62046284b4..1b8cff3380 100644 --- a/firmware/console/status_loop.cpp +++ b/firmware/console/status_loop.cpp @@ -629,7 +629,8 @@ static void updateFuelInfo() { static void updateIgnition(int rpm) { float timing = engine->engineState.timingAdvance; - tsOutputChannels.ignitionAdvance = timing > 360 ? timing - 720 : timing; + // that's weird logic. also seems broken for two stroke? + tsOutputChannels.ignitionAdvance = timing > FOUR_STROKE_CYCLE_DURATION / 2 ? timing - FOUR_STROKE_CYCLE_DURATION : timing; // 60 tsOutputChannels.sparkDwell = ENGINE(engineState.sparkDwell); diff --git a/firmware/controllers/math/engine_math.cpp b/firmware/controllers/math/engine_math.cpp index c745685479..e618999dff 100644 --- a/firmware/controllers/math/engine_math.cpp +++ b/firmware/controllers/math/engine_math.cpp @@ -424,8 +424,8 @@ ignition_mode_e getCurrentIgnitionMode(DECLARE_ENGINE_PARAMETER_SIGNATURE) { void prepareOutputSignals(DECLARE_ENGINE_PARAMETER_SIGNATURE) { ENGINE(engineCycle) = getEngineCycle(engine->getOperationMode(PASS_ENGINE_PARAMETER_SIGNATURE)); - angle_t maxTimingCorrMap = -720.0f; - angle_t maxTimingMap = -720.0f; + angle_t maxTimingCorrMap = -FOUR_STROKE_CYCLE_DURATION; + angle_t maxTimingMap = -FOUR_STROKE_CYCLE_DURATION; for (int rpmIndex = 0;rpmIndexignitionIatCorrTable[l][rpmIndex]); diff --git a/firmware/controllers/trigger/trigger_central.cpp b/firmware/controllers/trigger/trigger_central.cpp index 0c400dc8b2..fbe1ce4cbd 100644 --- a/firmware/controllers/trigger/trigger_central.cpp +++ b/firmware/controllers/trigger/trigger_central.cpp @@ -341,7 +341,7 @@ void hwHandleVvtCamSignal(trigger_value_e front, efitick_t nowNt, int index DECL if (index != 0) { // todo: only assign initial position of not first cam once cam was synchronized - tc->vvtPosition[bankIndex][camIndex] = wrapVvt(vvtPosition, 720); + tc->vvtPosition[bankIndex][camIndex] = wrapVvt(vvtPosition, FOUR_STROKE_CYCLE_DURATION); // at the moment we use only primary VVT to sync crank phase return; } @@ -350,7 +350,7 @@ void hwHandleVvtCamSignal(trigger_value_e front, efitick_t nowNt, int index DECL // vvtPosition was calculated against wrong crank zero position. Now that we have adjusted crank position we // shall adjust vvt position as well vvtPosition -= crankOffset; - vvtPosition = wrapVvt(vvtPosition, 720); + vvtPosition = wrapVvt(vvtPosition, FOUR_STROKE_CYCLE_DURATION); // this could be just an 'if' but let's have it expandable for future use :) switch(engineConfiguration->vvtMode[camIndex]) {