diff --git a/firmware/controllers/algo/auto_generated_enums.cpp b/firmware/controllers/algo/auto_generated_enums.cpp index d419255c9f..fe67b62be2 100644 --- a/firmware/controllers/algo/auto_generated_enums.cpp +++ b/firmware/controllers/algo/auto_generated_enums.cpp @@ -179,8 +179,8 @@ case TT_MAZDA_MIATA_VVT_TEST: return "TT_MAZDA_MIATA_VVT_TEST"; case TT_SUBARU_7_6: return "TT_SUBARU_7_6"; -case TT_JEEP_18_2_2_2_SIX_CYLINDER: - return "TT_18_2_2_2 6cyl"; +case TT_JEEP_18_2_2_2: + return "TT_18_2_2_2"; case TT_MINI_COOPER_R50: return "TT_MINI_COOPER_R50"; case TT_MITSU: diff --git a/firmware/controllers/algo/rusefi_enums.h b/firmware/controllers/algo/rusefi_enums.h index de5d269298..4b58da0dcf 100644 --- a/firmware/controllers/algo/rusefi_enums.h +++ b/firmware/controllers/algo/rusefi_enums.h @@ -221,7 +221,7 @@ typedef enum { TT_SUBARU_7_6 = 36, - TT_JEEP_18_2_2_2_SIX_CYLINDER = 37, + TT_JEEP_18_2_2_2 = 37, TT_UNUSED = 38, // this is used if we want to iterate over all trigger types diff --git a/firmware/controllers/trigger/decoders/trigger_chrysler.cpp b/firmware/controllers/trigger/decoders/trigger_chrysler.cpp index aa3ab9818f..b4cb8c94b0 100644 --- a/firmware/controllers/trigger/decoders/trigger_chrysler.cpp +++ b/firmware/controllers/trigger/decoders/trigger_chrysler.cpp @@ -451,12 +451,31 @@ void configureNeon1995TriggerShape(TriggerShape *s DECLARE_ENGINE_PARAMETER_S) { s->useOnlyPrimaryForSync = true; } -void initJeep18_6cyl(TriggerShape *s DECLARE_ENGINE_PARAMETER_S) { +void initJeep18_2_2_2(TriggerShape *s DECLARE_ENGINE_PARAMETER_S) { s->initialize(FOUR_STROKE_CAM_SENSOR, true); s->isSynchronizationNeeded = false; float off = 212; + s->addEvent2(534 - 720 + off, T_SECONDARY, TV_RISE PASS_ENGINE_PARAMETER); + s->addEvent2(536 - 720 + off, T_SECONDARY, TV_FALL PASS_ENGINE_PARAMETER); + s->addEvent2(554 - 720 + off, T_SECONDARY, TV_RISE PASS_ENGINE_PARAMETER); + s->addEvent2(556 - 720 + off, T_SECONDARY, TV_FALL PASS_ENGINE_PARAMETER); + s->addEvent2(574 - 720 + off, T_SECONDARY, TV_RISE PASS_ENGINE_PARAMETER); + s->addEvent2(576 - 720 + off, T_SECONDARY, TV_FALL PASS_ENGINE_PARAMETER); + s->addEvent2(594 - 720 + off, T_SECONDARY, TV_RISE PASS_ENGINE_PARAMETER); + s->addEvent2(596 - 720 + off, T_SECONDARY, TV_FALL PASS_ENGINE_PARAMETER); + + s->addEvent2(654 - 720 + off, T_SECONDARY, TV_RISE PASS_ENGINE_PARAMETER); + s->addEvent2(656 - 720 + off, T_SECONDARY, TV_FALL PASS_ENGINE_PARAMETER); + s->addEvent2(674 - 720 + off, T_SECONDARY, TV_RISE PASS_ENGINE_PARAMETER); + s->addEvent2(676 - 720 + off, T_SECONDARY, TV_FALL PASS_ENGINE_PARAMETER); + s->addEvent2(694 - 720 + off, T_SECONDARY, TV_RISE PASS_ENGINE_PARAMETER); + s->addEvent2(696 - 720 + off, T_SECONDARY, TV_FALL PASS_ENGINE_PARAMETER); + s->addEvent2(714 - 720 + off, T_SECONDARY, TV_RISE PASS_ENGINE_PARAMETER); + s->addEvent2(716 - 720 + off, T_SECONDARY, TV_FALL PASS_ENGINE_PARAMETER); + + s->addEvent2(54 + off, T_SECONDARY, TV_RISE PASS_ENGINE_PARAMETER); s->addEvent2(56 + off, T_SECONDARY, TV_FALL PASS_ENGINE_PARAMETER); s->addEvent2(74 + off, T_SECONDARY, TV_RISE PASS_ENGINE_PARAMETER); @@ -468,6 +487,33 @@ void initJeep18_6cyl(TriggerShape *s DECLARE_ENGINE_PARAMETER_S) { s->addEvent2(148 + off, T_PRIMARY, TV_RISE PASS_ENGINE_PARAMETER); // 360 + s->addEvent2(174 + off, T_SECONDARY, TV_RISE PASS_ENGINE_PARAMETER); + s->addEvent2(176 + off, T_SECONDARY, TV_FALL PASS_ENGINE_PARAMETER); + s->addEvent2(194 + off, T_SECONDARY, TV_RISE PASS_ENGINE_PARAMETER); + s->addEvent2(196 + off, T_SECONDARY, TV_FALL PASS_ENGINE_PARAMETER); + s->addEvent2(214 + off, T_SECONDARY, TV_RISE PASS_ENGINE_PARAMETER); + s->addEvent2(216 + off, T_SECONDARY, TV_FALL PASS_ENGINE_PARAMETER); + s->addEvent2(234 + off, T_SECONDARY, TV_RISE PASS_ENGINE_PARAMETER); + s->addEvent2(236 + off, T_SECONDARY, TV_FALL PASS_ENGINE_PARAMETER); + + s->addEvent2(294 + off, T_SECONDARY, TV_RISE PASS_ENGINE_PARAMETER); + s->addEvent2(296 + off, T_SECONDARY, TV_FALL PASS_ENGINE_PARAMETER); + s->addEvent2(314 + off, T_SECONDARY, TV_RISE PASS_ENGINE_PARAMETER); + s->addEvent2(316 + off, T_SECONDARY, TV_FALL PASS_ENGINE_PARAMETER); + s->addEvent2(334 + off, T_SECONDARY, TV_RISE PASS_ENGINE_PARAMETER); + s->addEvent2(336 + off, T_SECONDARY, TV_FALL PASS_ENGINE_PARAMETER); + s->addEvent2(354 + off, T_SECONDARY, TV_RISE PASS_ENGINE_PARAMETER); + s->addEvent2(356 + off, T_SECONDARY, TV_FALL PASS_ENGINE_PARAMETER); + + s->addEvent2(414 + off, T_SECONDARY, TV_RISE PASS_ENGINE_PARAMETER); + s->addEvent2(416 + off, T_SECONDARY, TV_FALL PASS_ENGINE_PARAMETER); + s->addEvent2(434 + off, T_SECONDARY, TV_RISE PASS_ENGINE_PARAMETER); + s->addEvent2(436 + off, T_SECONDARY, TV_FALL PASS_ENGINE_PARAMETER); + s->addEvent2(454 + off, T_SECONDARY, TV_RISE PASS_ENGINE_PARAMETER); + s->addEvent2(456 + off, T_SECONDARY, TV_FALL PASS_ENGINE_PARAMETER); + s->addEvent2(474 + off, T_SECONDARY, TV_RISE PASS_ENGINE_PARAMETER); + s->addEvent2(476 + off, T_SECONDARY, TV_FALL PASS_ENGINE_PARAMETER); s->addEvent2(508 + off, T_PRIMARY, TV_FALL PASS_ENGINE_PARAMETER); // 720 + } diff --git a/firmware/controllers/trigger/decoders/trigger_chrysler.h b/firmware/controllers/trigger/decoders/trigger_chrysler.h index 4fed49d57f..47cb6b69d8 100644 --- a/firmware/controllers/trigger/decoders/trigger_chrysler.h +++ b/firmware/controllers/trigger/decoders/trigger_chrysler.h @@ -20,6 +20,6 @@ void initDodgeRam(TriggerShape *s DECLARE_ENGINE_PARAMETER_S); void configureDodgeStratusTriggerShape(TriggerShape *s DECLARE_ENGINE_PARAMETER_S); -void initJeep18_6cyl(TriggerShape *s DECLARE_ENGINE_PARAMETER_S); +void initJeep18_2_2_2(TriggerShape *s DECLARE_ENGINE_PARAMETER_S); #endif /* TRIGGER_CHRYSLER_H_ */ diff --git a/firmware/controllers/trigger/main_trigger_callback.cpp b/firmware/controllers/trigger/main_trigger_callback.cpp index 6ba5ff08e9..5df9cb41da 100644 --- a/firmware/controllers/trigger/main_trigger_callback.cpp +++ b/firmware/controllers/trigger/main_trigger_callback.cpp @@ -376,8 +376,8 @@ static void fuelClosedLoopCorrection(DECLARE_ENGINE_PARAMETER_F) { if (ENGINE(rpmCalculator.rpmValue) < CONFIG(fuelClosedLoopRpmThreshold) || ENGINE(engineState.clt) < CONFIG(fuelClosedLoopCltThreshold) || getTPS(PASS_ENGINE_PARAMETER_F) > CONFIG(fuelClosedLoopTpsThreshold) || - ENGINE(engineState.currentAfr) < 10 || - ENGINE(engineState.currentAfr) > 20) { + ENGINE(engineState.currentAfr) < engineConfiguration->fuelClosedLoopAfrLowThreshold || + ENGINE(engineState.currentAfr) > engineConfiguration->fuelClosedLoopAfrHighThreshold) { engine->engineState.fuelPidCorrection = 0; fuelPid.reset(); return; diff --git a/firmware/controllers/trigger/trigger_decoder.cpp b/firmware/controllers/trigger/trigger_decoder.cpp index dfbba3de0f..3a48a952ea 100644 --- a/firmware/controllers/trigger/trigger_decoder.cpp +++ b/firmware/controllers/trigger/trigger_decoder.cpp @@ -558,8 +558,8 @@ void TriggerShape::initializeTriggerShape(Logging *logger DECLARE_ENGINE_PARAMET initDodgeRam(triggerShape PASS_ENGINE_PARAMETER); break; - case TT_JEEP_18_2_2_2_SIX_CYLINDER: - initJeep18_6cyl(triggerShape PASS_ENGINE_PARAMETER); + case TT_JEEP_18_2_2_2: + initJeep18_2_2_2(triggerShape PASS_ENGINE_PARAMETER); break; case TT_SUBARU_7_6: diff --git a/firmware/integration/rusefi_config.txt b/firmware/integration/rusefi_config.txt index 677248db10..12feae1362 100644 --- a/firmware/integration/rusefi_config.txt +++ b/firmware/integration/rusefi_config.txt @@ -334,7 +334,7 @@ struct trigger_config_s @brief Trigger wheel(s) configuration custom bool32_t 4 bits, U32, @OFFSET@, [0:0], "false", "true" -#define trigger_type_e_enum "custom toothed wheel", "ford aspire", "dodge neon", "Miata NA", "Miata NB", "GM_7X", "Cooper", "Mazda SOHC 4", "60/2", "36/1", "Accord CD", "MITSU", "ACCORD 2", "ACCORD DIP", "Neon 2003", "MAZDA D 1+4", "1+1", "1+60/2", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Accord 1+24", "DODGE STRATUS", "36_2_2_2", "Nissan", "2JZ", "Rover K", "GM LS 24", "Honda CBR 600", "2JZ_1_12", "Honda CBR 600 custom", "3/1 skipped" , "2003 neon crank", "Miata VVT", "trg34", "trg35", "Subaru 7+6", "Jeep 18 6cyl", "trg38", "trg39", "INVALID" +#define trigger_type_e_enum "custom toothed wheel", "ford aspire", "dodge neon", "Miata NA", "Miata NB", "GM_7X", "Cooper", "Mazda SOHC 4", "60/2", "36/1", "Accord CD", "MITSU", "ACCORD 2", "ACCORD DIP", "Neon 2003", "MAZDA D 1+4", "1+1", "1+60/2", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Accord 1+24", "DODGE STRATUS", "36_2_2_2", "Nissan", "2JZ", "Rover K", "GM LS 24", "Honda CBR 600", "2JZ_1_12", "Honda CBR 600 custom", "3/1 skipped" , "2003 neon crank", "Miata VVT", "trg34", "trg35", "Subaru 7+6", "Jeep 18-2-2-2", "trg38", "trg39", "INVALID" custom trigger_type_e 4 bits, U32, @OFFSET@, [0:5], @@trigger_type_e_enum@@ trigger_type_e type;set trigger_type X diff --git a/firmware/rusefi.cpp b/firmware/rusefi.cpp index 82950262e6..48add88fa8 100644 --- a/firmware/rusefi.cpp +++ b/firmware/rusefi.cpp @@ -249,5 +249,5 @@ int getRusEfiVersion(void) { return 123; // this is here to make the compiler happy about the unused array if (UNUSED_CCM_SIZE[0] * 0 != 0) return 3211; // this is here to make the compiler happy about the unused array - return 20170122; + return 20170123; } diff --git a/firmware/tunerstudio/rusefi.ini b/firmware/tunerstudio/rusefi.ini index edc569bc78..8e01c62a6c 100644 --- a/firmware/tunerstudio/rusefi.ini +++ b/firmware/tunerstudio/rusefi.ini @@ -42,7 +42,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Mon Jan 23 13:32:15 EST 2017 +; this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Mon Jan 23 20:02:38 EST 2017 pageSize = 16376 page = 1 @@ -155,7 +155,7 @@ page = 1 tpsAdcChannel = bits, U32, 524, [0:4] "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "Disabled", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" ;skipping overrideCrankingIgnition offset 528 sensorChartFrequency = scalar, S32, 532, "index", 1, 0, 0, 300, 0 ; size 4 - trigger_type = bits, U32, 536, [0:5], "custom toothed wheel", "ford aspire", "dodge neon", "Miata NA", "Miata NB", "GM_7X", "Cooper", "Mazda SOHC 4", "60/2", "36/1", "Accord CD", "MITSU", "ACCORD 2", "ACCORD DIP", "Neon 2003", "MAZDA D 1+4", "1+1", "1+60/2", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Accord 1+24", "DODGE STRATUS", "36_2_2_2", "Nissan", "2JZ", "Rover K", "GM LS 24", "Honda CBR 600", "2JZ_1_12", "Honda CBR 600 custom", "3/1 skipped" , "2003 neon crank", "Miata VVT", "trg34", "trg35", "Subaru 7+6", "Jeep 18 6cyl", "trg38", "trg39", "INVALID" + trigger_type = bits, U32, 536, [0:5], "custom toothed wheel", "ford aspire", "dodge neon", "Miata NA", "Miata NB", "GM_7X", "Cooper", "Mazda SOHC 4", "60/2", "36/1", "Accord CD", "MITSU", "ACCORD 2", "ACCORD DIP", "Neon 2003", "MAZDA D 1+4", "1+1", "1+60/2", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Accord 1+24", "DODGE STRATUS", "36_2_2_2", "Nissan", "2JZ", "Rover K", "GM LS 24", "Honda CBR 600", "2JZ_1_12", "Honda CBR 600 custom", "3/1 skipped" , "2003 neon crank", "Miata VVT", "trg34", "trg35", "Subaru 7+6", "Jeep 18-2-2-2", "trg38", "trg39", "INVALID" trigger_customIsSynchronizationNeeded= bits, U32, 540, [0:0], "false", "true" trigger_customNeedSecondTriggerInput= bits, U32, 540, [1:1], "false", "true" trigger_useOnlyFirstChannel= bits, U32, 540, [2:2], "false", "true" @@ -1859,11 +1859,14 @@ cmd_test_idle_valve = "w\x00\x17\x00\x01" dialog = fuelClosedLoopDialog, "Fuel closed-loop correction" field = "Enabled", fuelClosedLoopCorrectionEnabled + field = "!No correction below these value" field = "CLT - low threshod", fuelClosedLoopCltThreshold, {fuelClosedLoopCorrectionEnabled == 1} field = "RPM - low threshod", fuelClosedLoopRpmThreshold, {fuelClosedLoopCorrectionEnabled == 1} - field = "TPS - high threshod", fuelClosedLoopTpsThreshold, {fuelClosedLoopCorrectionEnabled == 1} field = "EGO - low threshod", fuelClosedLoopAfrLowThreshold, {fuelClosedLoopCorrectionEnabled == 1} + field = "!No correction above these value" + field = "TPS - high threshod", fuelClosedLoopTpsThreshold, {fuelClosedLoopCorrectionEnabled == 1} field = "EGO - high threshod", fuelClosedLoopAfrHighThreshold, {fuelClosedLoopCorrectionEnabled == 1} + field = "!PID settings" field = "P factor", fuelClosedLoopPid_pFactor, {fuelClosedLoopCorrectionEnabled == 1} field = "I factor", fuelClosedLoopPid_iFactor, {fuelClosedLoopCorrectionEnabled == 1} field = "D factor", fuelClosedLoopPid_dFactor, {fuelClosedLoopCorrectionEnabled == 1} diff --git a/firmware/tunerstudio/rusefi.input b/firmware/tunerstudio/rusefi.input index 099fd49c0e..3b23ec21b8 100644 --- a/firmware/tunerstudio/rusefi.input +++ b/firmware/tunerstudio/rusefi.input @@ -1794,11 +1794,14 @@ cmd_test_idle_valve = "w\x00\x17\x00\x01" dialog = fuelClosedLoopDialog, "Fuel closed-loop correction" field = "Enabled", fuelClosedLoopCorrectionEnabled + field = "!No correction below these value" field = "CLT - low threshod", fuelClosedLoopCltThreshold, {fuelClosedLoopCorrectionEnabled == 1} field = "RPM - low threshod", fuelClosedLoopRpmThreshold, {fuelClosedLoopCorrectionEnabled == 1} - field = "TPS - high threshod", fuelClosedLoopTpsThreshold, {fuelClosedLoopCorrectionEnabled == 1} field = "EGO - low threshod", fuelClosedLoopAfrLowThreshold, {fuelClosedLoopCorrectionEnabled == 1} + field = "!No correction above these value" + field = "TPS - high threshod", fuelClosedLoopTpsThreshold, {fuelClosedLoopCorrectionEnabled == 1} field = "EGO - high threshod", fuelClosedLoopAfrHighThreshold, {fuelClosedLoopCorrectionEnabled == 1} + field = "!PID settings" field = "P factor", fuelClosedLoopPid_pFactor, {fuelClosedLoopCorrectionEnabled == 1} field = "I factor", fuelClosedLoopPid_iFactor, {fuelClosedLoopCorrectionEnabled == 1} field = "D factor", fuelClosedLoopPid_dFactor, {fuelClosedLoopCorrectionEnabled == 1} diff --git a/java_console/models/src/com/rusefi/config/Fields.java b/java_console/models/src/com/rusefi/config/Fields.java index 20a2fa4a72..c4fb8742fb 100644 --- a/java_console/models/src/com/rusefi/config/Fields.java +++ b/java_console/models/src/com/rusefi/config/Fields.java @@ -1,6 +1,6 @@ package com.rusefi.config; -// this file was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Sun Jan 22 23:36:11 EST 2017 +// this file was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Mon Jan 23 20:02:38 EST 2017 public class Fields { public static final int LE_COMMAND_LENGTH = 200; public static final int FSIO_ADC_COUNT = 4; @@ -1112,7 +1112,7 @@ public class Fields { public static final Field TPSADCCHANNEL = Field.create("TPSADCCHANNEL", 524, FieldType.INT, adc_channel_e); public static final Field OVERRIDECRANKINGIGNITION = Field.create("OVERRIDECRANKINGIGNITION", 528, FieldType.INT); public static final Field SENSORCHARTFREQUENCY = Field.create("SENSORCHARTFREQUENCY", 532, FieldType.INT); - public static final String[] trigger_type_e = {"custom toothed wheel", "ford aspire", "dodge neon", "Miata NA", "Miata NB", "GM_7X", "Cooper", "Mazda SOHC 4", "60/2", "36/1", "Accord CD", "MITSU", "ACCORD 2", "ACCORD DIP", "Neon 2003", "MAZDA D 1+4", "1+1", "1+60/2", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Accord 1+24", "DODGE STRATUS", "36_2_2_2", "Nissan", "2JZ", "Rover K", "GM LS 24", "Honda CBR 600", "2JZ_1_12", "Honda CBR 600 custom", "3/1 skipped" , "2003 neon crank", "Miata VVT", "trg34", "trg35", "Subaru 7+6", "INVALID", "INVALID", "INVALID", "INVALID"}; + public static final String[] trigger_type_e = {"custom toothed wheel", "ford aspire", "dodge neon", "Miata NA", "Miata NB", "GM_7X", "Cooper", "Mazda SOHC 4", "60/2", "36/1", "Accord CD", "MITSU", "ACCORD 2", "ACCORD DIP", "Neon 2003", "MAZDA D 1+4", "1+1", "1+60/2", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Accord 1+24", "DODGE STRATUS", "36_2_2_2", "Nissan", "2JZ", "Rover K", "GM LS 24", "Honda CBR 600", "2JZ_1_12", "Honda CBR 600 custom", "3/1 skipped" , "2003 neon crank", "Miata VVT", "trg34", "trg35", "Subaru 7+6", "Jeep 18-2-2-2", "trg38", "trg39", "INVALID"}; public static final Field TRIGGER_TYPE = Field.create("TRIGGER_TYPE", 536, FieldType.INT, trigger_type_e); public static final Field TRIGGER_CUSTOMISSYNCHRONIZATIONNEEDED = Field.create("TRIGGER_CUSTOMISSYNCHRONIZATIONNEEDED", 540, FieldType.BIT, 0); public static final Field TRIGGER_CUSTOMNEEDSECONDTRIGGERINPUT = Field.create("TRIGGER_CUSTOMNEEDSECONDTRIGGERINPUT", 540, FieldType.BIT, 1);