From 301f5e7ec46c00027cab0fec91f6a957c2994e5b Mon Sep 17 00:00:00 2001 From: Andrey Date: Sun, 12 Sep 2021 11:56:12 -0400 Subject: [PATCH] https://rusefi.com/forum/viewtopic.php?f=5&t=2117 --- .../trigger/decoders/trigger_misc.cpp | 21 +++++++++++++++++++ .../trigger/decoders/trigger_structure.cpp | 3 +++ firmware/integration/rusefi_config.txt | 2 +- 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/firmware/controllers/trigger/decoders/trigger_misc.cpp b/firmware/controllers/trigger/decoders/trigger_misc.cpp index dd3b2244f8..bcd4f6cb38 100644 --- a/firmware/controllers/trigger/decoders/trigger_misc.cpp +++ b/firmware/controllers/trigger/decoders/trigger_misc.cpp @@ -49,7 +49,28 @@ void configureTriTach(TriggerWaveform * s) { NO_RIGHT_FILTER); } +/** + * based on https://fordsix.com/threads/understanding-standard-and-signature-pip-thick-film-ignition.81515/ + * based on https://www.w8ji.com/distributor_stabbing.htm + */ void configureFordPip(TriggerWaveform * s) { + s->initialize(FOUR_STROKE_CAM_SENSOR); + + s->setTriggerSynchronizationGap(0.66); + s->setSecondTriggerSynchronizationGap(1.25); + /** + * sensor is mounted on distributor but trigger shape is defined in engine cycle angles + */ + int oneCylinder = s->getCycleDuration() / 8; + + s->addEventAngle(oneCylinder * 0.75, T_PRIMARY, TV_RISE); + s->addEventAngle(oneCylinder, T_PRIMARY, TV_FALL); + + + for (int i = 2;i<=8;i++) { + s->addEventAngle(oneCylinder * (i - 0.5), T_PRIMARY, TV_RISE); + s->addEventAngle(oneCylinder * i, T_PRIMARY, TV_FALL); + } } diff --git a/firmware/controllers/trigger/decoders/trigger_structure.cpp b/firmware/controllers/trigger/decoders/trigger_structure.cpp index 419df7062f..1b8eeaa420 100644 --- a/firmware/controllers/trigger/decoders/trigger_structure.cpp +++ b/firmware/controllers/trigger/decoders/trigger_structure.cpp @@ -509,6 +509,9 @@ void TriggerWaveform::initializeTriggerWaveform(operation_mode_e ambiguousOperat break; case TT_FORD_TFI_PIP: + configureFordPip(this); + break; + case TT_FORD_ST170: configureFordST170(this); break; diff --git a/firmware/integration/rusefi_config.txt b/firmware/integration/rusefi_config.txt index 64b7cf0ab5..40b3b2de95 100644 --- a/firmware/integration/rusefi_config.txt +++ b/firmware/integration/rusefi_config.txt @@ -702,7 +702,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", "Miata NB", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Honda 4+24+1", "Mitsubishi", "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 LS 24", "Honda CBR 600", "2JZ_1_12", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata VVT", "trg34", "trg35", "Subaru 7+6", "Jeep 18-2-2-2", "WIP", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "trg43", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "trg47", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "trg52", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "trg59", "Nissan VQ30", "Nissan QR25", "trg62", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "trg65", "INVALID" +#define trigger_type_e_enum "custom toothed wheel", "Ford Aspire", "Dodge Neon 1995", "Miata NA", "Miata NB", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Honda 4+24+1", "Mitsubishi", "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 LS 24", "Honda CBR 600", "2JZ_1_12", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata VVT", "trg34", "trg35", "Subaru 7+6", "Jeep 18-2-2-2", "WIP", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "trg43", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "trg47", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "trg52", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "trg59", "Nissan VQ30", "Nissan QR25", "trg62", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "trg66", "trg67", "INVALID" 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