diff --git a/firmware/controllers/settings.cpp b/firmware/controllers/settings.cpp index b5db262b0a..d6161d0629 100644 --- a/firmware/controllers/settings.cpp +++ b/firmware/controllers/settings.cpp @@ -479,8 +479,6 @@ static void enableOrDisable(const char *param, bool isEnabled) { engineConfiguration->verboseTriggerSynchDetails = isEnabled; } else if (strEqualCaseInsensitive(param, "vvt_details")) { engineConfiguration->verboseVVTDecoding = isEnabled; - } else if (strEqualCaseInsensitive(param, "invertCamVVTSignal")) { - engineConfiguration->invertCamVVTSignal = isEnabled; } else if (strEqualCaseInsensitive(param, CMD_IGNITION)) { engineConfiguration->isIgnitionEnabled = isEnabled; #if EFI_EMULATE_POSITION_SENSORS diff --git a/firmware/controllers/trigger/trigger_central.cpp b/firmware/controllers/trigger/trigger_central.cpp index 56091a2f5d..fcb9fcd75e 100644 --- a/firmware/controllers/trigger/trigger_central.cpp +++ b/firmware/controllers/trigger/trigger_central.cpp @@ -229,6 +229,9 @@ void hwHandleVvtCamSignal(bool isRising, efitick_t nowNt, int index) { return; } + // Invert if so configured + isRising ^= engineConfiguration->invertCamVVTSignal; + int bankIndex = index / CAMS_PER_BANK; int camIndex = index % CAMS_PER_BANK; if (isRising) { diff --git a/firmware/hw_layer/digital_input/trigger/trigger_input_exti.cpp b/firmware/hw_layer/digital_input/trigger/trigger_input_exti.cpp index 26aca8e31e..4717ad551a 100644 --- a/firmware/hw_layer/digital_input/trigger/trigger_input_exti.cpp +++ b/firmware/hw_layer/digital_input/trigger/trigger_input_exti.cpp @@ -42,8 +42,6 @@ static void cam_callback(void *arg, efitick_t stamp) { bool rise = (palReadLine(pal_line) == PAL_HIGH); - rise ^= engineConfiguration->invertCamVVTSignal; - hwHandleVvtCamSignal(rise, stamp, index); } diff --git a/unit_tests/logicdata_csv_reader.cpp b/unit_tests/logicdata_csv_reader.cpp index a8fb81f64b..a11d3673bd 100644 --- a/unit_tests/logicdata_csv_reader.cpp +++ b/unit_tests/logicdata_csv_reader.cpp @@ -107,7 +107,7 @@ void CsvReader::processLine(EngineTestHelper *eth) { } efitick_t nowNt = getTimeNowNt(); - bool isRising = newVvtState[vvtIndex] ^ engineConfiguration->invertCamVVTSignal; + bool isRising = newVvtState[vvtIndex]; // todo: configurable selection of vvt mode - dual bank or dual cam single bank int bankIndex; int camIndex; diff --git a/unit_tests/tests/trigger/test_nissan_vq_vvt.cpp b/unit_tests/tests/trigger/test_nissan_vq_vvt.cpp index b31931301c..729581231e 100644 --- a/unit_tests/tests/trigger/test_nissan_vq_vvt.cpp +++ b/unit_tests/tests/trigger/test_nissan_vq_vvt.cpp @@ -27,7 +27,7 @@ static void func(TriggerCallback *callback) { efitick_t nowNt = getTimeNowNt(); if (callback->isVvt) { - hwHandleVvtCamSignal(value, nowNt, callback->vvtBankIndex * CAMS_PER_BANK); + hwHandleVvtCamSignal(!value, nowNt, callback->vvtBankIndex * CAMS_PER_BANK); } else { handleShaftSignal(0, value, nowNt); }