From 691306f12a511fc4db8d8f27441535ccea8abc5e Mon Sep 17 00:00:00 2001 From: Andrey Date: Sun, 28 Aug 2022 22:42:53 -0400 Subject: [PATCH] TT_VVT_MAZDA_MYSTERY --- .../trigger/decoders/trigger_mazda.cpp | 32 +++++++++++++++++++ .../trigger/decoders/trigger_mazda.h | 2 ++ .../trigger/decoders/trigger_structure.cpp | 3 ++ 3 files changed, 37 insertions(+) diff --git a/firmware/controllers/trigger/decoders/trigger_mazda.cpp b/firmware/controllers/trigger/decoders/trigger_mazda.cpp index 0c9ff5aaf0..ffbd009b37 100644 --- a/firmware/controllers/trigger/decoders/trigger_mazda.cpp +++ b/firmware/controllers/trigger/decoders/trigger_mazda.cpp @@ -196,3 +196,35 @@ void initializeMazdaMiataVVtCamShape(TriggerWaveform *s) { s->addEvent720(700, T_PRIMARY, TV_FALL); s->addEvent720(720, T_PRIMARY, TV_RISE); } + +// https://rusefi.com/forum/viewtopic.php?f=17&t=2417 +// Mazda Skyactiv +void initializeMazdaMysteryCamShape(TriggerWaveform *s) { + s->initialize(FOUR_STROKE_CAM_SENSOR); + + // wide + s->addEvent360(50, T_PRIMARY, TV_RISE); + s->addEvent360(70, T_PRIMARY, TV_FALL); + // narrow + s->addEvent360(80, T_PRIMARY, TV_RISE); + s->addEvent360(90, T_PRIMARY, TV_FALL); + + // wide + s->addEvent360(140, T_PRIMARY, TV_RISE); + s->addEvent360(160, T_PRIMARY, TV_FALL); + // narrow + s->addEvent360(170, T_PRIMARY, TV_RISE); + s->addEvent360(180, T_PRIMARY, TV_FALL); + + // wide + s->addEvent360(250, T_PRIMARY, TV_RISE); + s->addEvent360(270, T_PRIMARY, TV_FALL); + + // wide + s->addEvent360(340, T_PRIMARY, TV_RISE); + s->addEvent360(360, T_PRIMARY, TV_FALL); + + s->setTriggerSynchronizationGap(0.43); + s->setSecondTriggerSynchronizationGap(0.78); + s->setThirdTriggerSynchronizationGap(1.12); // 3rd gap is not required but let's have it for some resiliency +} diff --git a/firmware/controllers/trigger/decoders/trigger_mazda.h b/firmware/controllers/trigger/decoders/trigger_mazda.h index c46a78c588..ef7a6fabc3 100644 --- a/firmware/controllers/trigger/decoders/trigger_mazda.h +++ b/firmware/controllers/trigger/decoders/trigger_mazda.h @@ -23,3 +23,5 @@ void configureMazdaProtegeLx(TriggerWaveform *s); * same decoder is used for VVT processing */ void initializeMazdaMiataVVtCamShape(TriggerWaveform *s); + +void initializeMazdaMysteryCamShape(TriggerWaveform *s); diff --git a/firmware/controllers/trigger/decoders/trigger_structure.cpp b/firmware/controllers/trigger/decoders/trigger_structure.cpp index d7ea71e57c..0042af5bfc 100644 --- a/firmware/controllers/trigger/decoders/trigger_structure.cpp +++ b/firmware/controllers/trigger/decoders/trigger_structure.cpp @@ -688,6 +688,9 @@ void TriggerWaveform::initializeTriggerWaveform(operation_mode_e triggerOperatio break; case TT_VVT_MAZDA_MYSTERY: + initializeMazdaMysteryCamShape(this); + break; + case UNUSED_21: case UNUSED_34: case TT_1_16: