From cd5653ff846222959c75b97a7e5270bd6002b2b5 Mon Sep 17 00:00:00 2001 From: Andrey Date: Sun, 23 May 2021 20:52:18 -0400 Subject: [PATCH] Override trigger gaps feature #2734 --- firmware/controllers/algo/engine.cpp | 16 ++++++++++++++-- .../trigger/decoders/trigger_mazda.cpp | 2 +- firmware/controllers/trigger/trigger_central.cpp | 4 ++++ firmware/tunerstudio/rusefi.input | 10 ++++++++++ 4 files changed, 29 insertions(+), 3 deletions(-) diff --git a/firmware/controllers/algo/engine.cpp b/firmware/controllers/algo/engine.cpp index a8d36ad200..1b08a3d1c3 100644 --- a/firmware/controllers/algo/engine.cpp +++ b/firmware/controllers/algo/engine.cpp @@ -146,6 +146,17 @@ void Engine::initializeTriggerWaveform(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->ambiguousOperationMode, engineConfiguration->useOnlyRisingEdgeForTrigger, &engineConfiguration->trigger)); + /** + * this is only useful while troubleshooting a new trigger shape in the field + * in very VERY rare circumstances + */ + if (CONFIG(overrideTriggerGaps)) { + for (int gapIndex = 0;gapIndexinitialize(FOUR_STROKE_CAM_SENSOR); - s->setTriggerSynchronizationGap2(8.50 * 0.75, 14.0); + s->setTriggerSynchronizationGap2(8.50 * TRIGGER_GAP_DEVIATION_LOW, 14.0); s->addEvent720(325, T_PRIMARY, TV_FALL); diff --git a/firmware/controllers/trigger/trigger_central.cpp b/firmware/controllers/trigger/trigger_central.cpp index a118b793d4..30c782494e 100644 --- a/firmware/controllers/trigger/trigger_central.cpp +++ b/firmware/controllers/trigger/trigger_central.cpp @@ -689,6 +689,10 @@ void onConfigurationChangeTriggerCallback(DECLARE_ENGINE_PARAMETER_SIGNATURE) { changed |= isConfigurationChanged(camInputs[i]); } + for (int i = 0; i < GAP_TRACKING_LENGTH; i++) { + changed |= isConfigurationChanged(triggerGapOverride[i]); + } + changed |= isConfigurationChanged(trigger.type) || isConfigurationChanged(ambiguousOperationMode) || diff --git a/firmware/tunerstudio/rusefi.input b/firmware/tunerstudio/rusefi.input index 468d45af34..418bc3019f 100644 --- a/firmware/tunerstudio/rusefi.input +++ b/firmware/tunerstudio/rusefi.input @@ -1376,6 +1376,7 @@ menuDialog = main subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" subMenu = triggerConfiguration_IO, "Advanced Trigger" + subMenu = triggerConfiguration_gap, "Trigger Gap Override" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -1835,6 +1836,15 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@\x00\x31\x00\x00" field = "Trigger Angle Advance", globalTriggerAngleOffset field = "Display logic signals", displayLogicLevelsInEngineSniffer + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is a pretty advanced feature for when you are debugging trigger syncronizaion" + field = "Override well known trigger gaps", overrideTriggerGaps + field = gapTrackingLengthOverride, gapTrackingLengthOverride + field = "First gap", triggerGapOverride1 + field = "Second gap", triggerGapOverride2 + field = "Third gap", triggerGapOverride3 + + dialog = triggerConfiguration_IO, "Advanced Trigger" field = "!https://rusefi.com/s/vvt" ; todo: code generator to hard-code all triggers not requiring VVT?