diff --git a/firmware/config/engines/nissan_primera.cpp b/firmware/config/engines/nissan_primera.cpp index 1a8e3011fa..9a505fdae7 100644 --- a/firmware/config/engines/nissan_primera.cpp +++ b/firmware/config/engines/nissan_primera.cpp @@ -20,7 +20,3 @@ void setNissanPrimeraEngineConfiguration() { engineConfiguration->auxValves[0] = Gpio::E14; engineConfiguration->auxValves[1] = Gpio::E12; } - -void setNissanPrimeraEngineConfiguration_360() { - engineConfiguration->trigger.type = TT_NISSAN_SR20VE_360; -} diff --git a/firmware/config/engines/nissan_primera.h b/firmware/config/engines/nissan_primera.h index b2a4965ca5..9f5f4aa3bb 100644 --- a/firmware/config/engines/nissan_primera.h +++ b/firmware/config/engines/nissan_primera.h @@ -10,4 +10,3 @@ #include "engine_configuration.h" void setNissanPrimeraEngineConfiguration(); -void setNissanPrimeraEngineConfiguration_360(); diff --git a/firmware/controllers/algo/engine_types.h b/firmware/controllers/algo/engine_types.h index be87433e07..a0b21b027c 100644 --- a/firmware/controllers/algo/engine_types.h +++ b/firmware/controllers/algo/engine_types.h @@ -381,7 +381,6 @@ typedef enum { /** * only the 4 tooth signal, without the 360 signal * 8,2,2,2 Nissan pattern - * See also TT_NISSAN_SR20VE_360 */ TT_NISSAN_SR20VE = 24, @@ -424,10 +423,7 @@ typedef enum { // this one is 6 cylinder, see TT_JEEP_4_cyl for 4 cylinders TT_JEEP_18_2_2_2 = 37, - /* - * See also TT_NISSAN_SR20VE - */ - TT_NISSAN_SR20VE_360 = 38, + TT_UNUSED_38 = 38, TT_DODGE_NEON_1995_ONLY_CRANK = 39, diff --git a/firmware/controllers/trigger/decoders/trigger_nissan.cpp b/firmware/controllers/trigger/decoders/trigger_nissan.cpp index 9e647f0d2a..bb83b5b4d3 100644 --- a/firmware/controllers/trigger/decoders/trigger_nissan.cpp +++ b/firmware/controllers/trigger/decoders/trigger_nissan.cpp @@ -15,97 +15,28 @@ /** * 8,2,2,2 Nissan pattern */ -static void initializeNissanSR20VE_4_optional_360(TriggerWaveform *s, bool with2nd) { +void initializeNissanSR20VE_4(TriggerWaveform *s) { s->initialize(FOUR_STROKE_CAM_SENSOR); s->gapBothDirections = true; s->useOnlyPrimaryForSync = true; s->tdcPosition = 630; - float width = 4; s->setTriggerSynchronizationGap2(9.67 * 0.75, 16); - float left = 0; - float right; + float width = 4; - int total = 360; // 360 on cam, over 720 crank degree + s->addEvent720(1 * 180 - 4 * width, T_PRIMARY, TV_RISE); + s->addEvent720(1 * 180, T_PRIMARY, TV_FALL); - float base = 180; - right = base - 4 * width; + s->addEvent720(2 * 180 - width, T_PRIMARY, TV_RISE); + s->addEvent720(2 * 180, T_PRIMARY, TV_FALL); - if (with2nd) { - addSkippedToothTriggerEvents(T_SECONDARY, s, total, 0, 0.5, 0, 720, - left, right); - } + s->addEvent720(3 * 180 - width, T_PRIMARY, TV_RISE); + s->addEvent720(3 * 180, T_PRIMARY, TV_FALL); - s->addEvent720(right, T_PRIMARY, TV_RISE); - - left = right; - right = base; - if (with2nd) { - addSkippedToothTriggerEvents(T_SECONDARY, s, total, 0, 0.5, 0, 720, - left, right); - } - s->addEvent720(right, T_PRIMARY, TV_FALL); - - // was is the the one with 360 opto sensor? - - base += 180; - - left = right; - right = base - width; - if (with2nd) { -// addSkippedToothTriggerEvents(T_SECONDARY, s, total, 0, 0.5, 0, 720, -// left, right); - } - s->addEvent720(right, T_PRIMARY, TV_RISE); - - left = right; - right = base; - if (with2nd) { -// addSkippedToothTriggerEvents(T_SECONDARY, s, total, 0, 0.5, 0, 720, -// left, right); - } - s->addEvent720(right, T_PRIMARY, TV_FALL); - - base += 180; - left = right; - right = base - width; - if (with2nd) { -// addSkippedToothTriggerEvents(T_SECONDARY, s, total, 0, 0.5, 0, 720, -// left, right); - } - s->addEvent720(right, T_PRIMARY, TV_RISE); - - left = right; - right = base; - if (with2nd) { -// addSkippedToothTriggerEvents(T_SECONDARY, s, total, 0, 0.5, 0, 720, -// left, right); - } - s->addEvent720(right, T_PRIMARY, TV_FALL); - - base += 180; - left = right; - right = base - width; - - s->addEvent720(right, T_PRIMARY, TV_RISE); - left = right; - right = base; - s->addEvent720(right, T_PRIMARY, TV_FALL); -} - - -/** - * Nissan Primera p11 year 1995-2002 - */ - -void initializeNissanSR20VE_4(TriggerWaveform *s) { - initializeNissanSR20VE_4_optional_360(s, false); -} - -void initializeNissanSR20VE_4_360(TriggerWaveform *s) { - initializeNissanSR20VE_4_optional_360(s, true); + s->addEvent720(4 * 180 - width, T_PRIMARY, TV_RISE); + s->addEvent720(4 * 180, T_PRIMARY, TV_FALL); } static void addPrimaryToothEndingAt(TriggerWaveform *s, float fallAngle) { diff --git a/firmware/controllers/trigger/decoders/trigger_nissan.h b/firmware/controllers/trigger/decoders/trigger_nissan.h index 8616defec7..7aa3973ab4 100644 --- a/firmware/controllers/trigger/decoders/trigger_nissan.h +++ b/firmware/controllers/trigger/decoders/trigger_nissan.h @@ -10,7 +10,6 @@ class TriggerWaveform; void initializeNissanSR20VE_4(TriggerWaveform *s); -void initializeNissanSR20VE_4_360(TriggerWaveform *s); void initializeNissanVQvvt(TriggerWaveform *s); void initializeNissanMRvvt(TriggerWaveform *s); diff --git a/firmware/controllers/trigger/decoders/trigger_structure.cpp b/firmware/controllers/trigger/decoders/trigger_structure.cpp index 3111478ec8..4f7a75794c 100644 --- a/firmware/controllers/trigger/decoders/trigger_structure.cpp +++ b/firmware/controllers/trigger/decoders/trigger_structure.cpp @@ -726,14 +726,11 @@ void TriggerWaveform::initializeTriggerWaveform(operation_mode_e triggerOperatio initialize2jzGE1_12(this); break; + case TT_UNUSED_38: case TT_NISSAN_SR20VE: initializeNissanSR20VE_4(this); break; - case TT_NISSAN_SR20VE_360: - initializeNissanSR20VE_4_360(this); - break; - case TT_ROVER_K: initializeRoverK(this); break; diff --git a/firmware/integration/rusefi_config.txt b/firmware/integration/rusefi_config.txt index 164cc890c6..161f568bd5 100644 --- a/firmware/integration/rusefi_config.txt +++ b/firmware/integration/rusefi_config.txt @@ -579,7 +579,7 @@ adc_channel_e fuelLevelSensor;+This is the processor pin that your fuel level se struct trigger_config_s @brief Trigger wheel(s) configuration -#define trigger_type_e_enum "custom toothed wheel", "Ford Aspire", "Dodge Neon 1995", "Miata NA", "INVALID", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93", "Honda 4+24", "Honda 1+4+24", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Honda 1+24", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "2JZ_1_12", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "INVALID", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "WIP", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +#define trigger_type_e_enum "custom toothed wheel", "Ford Aspire", "Dodge Neon 1995", "Miata NA", "INVALID", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93", "Honda 4+24", "Honda 1+4+24", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Honda 1+24", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "2JZ_1_12", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "INVALID", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "INVALID", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" custom trigger_type_e 4 bits, U32, @OFFSET@, [0:6], @@trigger_type_e_enum@@ trigger_type_e type;+https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers\nset trigger_type X