From 6da8c3444afb3c143f786d9df1433fe5256acb02 Mon Sep 17 00:00:00 2001 From: rusefi Date: Wed, 27 Dec 2017 00:26:40 -0500 Subject: [PATCH] more idle control complexity --- firmware/controllers/algo/engine_configuration.cpp | 2 +- .../engine_configuration_generated_structures.h | 14 ++++++++------ firmware/controllers/algo/rusefi_generated.h | 10 ++++++---- firmware/integration/rusefi_config.txt | 5 +++-- .../models/src/com/rusefi/config/Fields.java | 12 +++++++----- 5 files changed, 25 insertions(+), 18 deletions(-) diff --git a/firmware/controllers/algo/engine_configuration.cpp b/firmware/controllers/algo/engine_configuration.cpp index b911e4686b..14b90d1a81 100644 --- a/firmware/controllers/algo/engine_configuration.cpp +++ b/firmware/controllers/algo/engine_configuration.cpp @@ -593,7 +593,7 @@ void setDefaultConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { boardConfiguration->mapMinBufferLength = 1; - engineConfiguration->iacRPMErrorThreshold = 0; + engineConfiguration->idlePidRpmDeadZone = 50; engineConfiguration->startOfCrankingPrimingPulse = 0; engineConfiguration->acCutoffLowRpm = 700; diff --git a/firmware/controllers/algo/engine_configuration_generated_structures.h b/firmware/controllers/algo/engine_configuration_generated_structures.h index 5be3588b1b..748bd171b7 100644 --- a/firmware/controllers/algo/engine_configuration_generated_structures.h +++ b/firmware/controllers/algo/engine_configuration_generated_structures.h @@ -1,4 +1,4 @@ -// this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Sun Dec 24 21:42:02 EST 2017 +// this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Tue Dec 26 11:24:20 EST 2017 // begin #ifndef ENGINE_CONFIGURATION_GENERATED_H_ #define ENGINE_CONFIGURATION_GENERATED_H_ @@ -1353,11 +1353,13 @@ typedef struct { */ uint32_t engineChartSize; /** - * set idle_rpm X - * See also cltIdleCorr * offset 1492 */ - int unusedIdleRpm; + int16_t idlePidRpmUpperLimit; + /** + * offset 1494 + */ + int16_t unusedInt16; /** * A/C button input handled as analog input * offset 1496 @@ -1574,7 +1576,7 @@ typedef struct { * If RPM is close enough let's leave IAC alone * offset 2010 */ - int16_t iacRPMErrorThreshold; + int16_t idlePidRpmDeadZone; /** * CLT-based target RPM for automatic idle controller * offset 2012 @@ -2233,4 +2235,4 @@ typedef struct { #endif // end -// this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Sun Dec 24 21:42:02 EST 2017 +// this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Tue Dec 26 11:24:20 EST 2017 diff --git a/firmware/controllers/algo/rusefi_generated.h b/firmware/controllers/algo/rusefi_generated.h index 9eee75dcca..fb202739a8 100644 --- a/firmware/controllers/algo/rusefi_generated.h +++ b/firmware/controllers/algo/rusefi_generated.h @@ -918,8 +918,10 @@ #define twoWireBatchIgnition_offset_hex 5cc #define engineChartSize_offset 1488 #define engineChartSize_offset_hex 5d0 -#define unusedIdleRpm_offset 1492 -#define unusedIdleRpm_offset_hex 5d4 +#define idlePidRpmUpperLimit_offset 1492 +#define idlePidRpmUpperLimit_offset_hex 5d4 +#define unusedInt16_offset 1494 +#define unusedInt16_offset_hex 5d6 #define acSwitchAdc_offset 1496 #define acSwitchAdc_offset_hex 5d8 #define ignMathCalculateAtIndex_offset 1500 @@ -1104,8 +1106,8 @@ #define stepperDirectionPinMode_offset_hex 7d4 #define startUpFuelPumpDuration_offset 2008 #define startUpFuelPumpDuration_offset_hex 7d8 -#define iacRPMErrorThreshold_offset 2010 -#define iacRPMErrorThreshold_offset_hex 7da +#define idlePidRpmDeadZone_offset 2010 +#define idlePidRpmDeadZone_offset_hex 7da #define cltIdleRpmBins_offset 2012 #define cltIdleRpmBins_offset_hex 7dc #define cltIdleRpm_offset 2076 diff --git a/firmware/integration/rusefi_config.txt b/firmware/integration/rusefi_config.txt index 7e7c3412f3..b034e47f48 100644 --- a/firmware/integration/rusefi_config.txt +++ b/firmware/integration/rusefi_config.txt @@ -667,7 +667,8 @@ custom idle_mode_e 4 bits, U32, @OFFSET@, [0:0], "false", "true" uint32_t engineChartSize;;"count", 1, 0, 0, 300, 0 - int unusedIdleRpm;set idle_rpm X\nSee also cltIdleCorr;"RPM", 1, 0, 0, 7000, 0 + int16_t idlePidRpmUpperLimit;;"RPM", 1, 0, 0, 9000, 0 + int16_t unusedInt16; adc_channel_e acSwitchAdc;A/C button input handled as analog input @@ -743,7 +744,7 @@ custom pin_mode_e 4 bits, U32, @OFFSET@, [0:5], @@pin_mode_e_enum@@ pin_output_mode_e stepperDirectionPinMode; int16_t startUpFuelPumpDuration;;"seconds", 1, 0, 0, 6000, 0 - int16_t iacRPMErrorThreshold;If RPM is close enough let's leave IAC alone;"C", 1, 0, 0, 1000, 0 + int16_t idlePidRpmDeadZone;If RPM is close enough let's leave IAC alone;"C", 1, 0, 0, 1000, 0 float[CLT_CURVE_SIZE] cltIdleRpmBins;CLT-based target RPM for automatic idle controller;"C", 1, 0, -100.0, 250.0, 2 diff --git a/java_console/models/src/com/rusefi/config/Fields.java b/java_console/models/src/com/rusefi/config/Fields.java index f92fd1c434..d74b12cc7b 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 Dec 24 21:42:02 EST 2017 +// this file was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Tue Dec 26 11:24:20 EST 2017 public class Fields { public static final int LE_COMMAND_LENGTH = 200; public static final int BLOCKING_FACTOR = 400; @@ -628,7 +628,8 @@ public class Fields { public static final int useOnlyRisingEdgeForTrigger_offset = 1484; public static final int twoWireBatchIgnition_offset = 1484; public static final int engineChartSize_offset = 1488; - public static final int unusedIdleRpm_offset = 1492; + public static final int idlePidRpmUpperLimit_offset = 1492; + public static final int unusedInt16_offset = 1494; public static final int acSwitchAdc_offset = 1496; public static final int ignMathCalculateAtIndex_offset = 1500; public static final int acCutoffLowRpm_offset = 1504; @@ -767,7 +768,7 @@ public class Fields { public static final int throttlePedalWOTVoltage_offset = 2000; public static final int stepperDirectionPinMode_offset = 2004; public static final int startUpFuelPumpDuration_offset = 2008; - public static final int iacRPMErrorThreshold_offset = 2010; + public static final int idlePidRpmDeadZone_offset = 2010; public static final int cltIdleRpmBins_offset = 2012; public static final int cltIdleRpm_offset = 2076; public static final int targetVBatt_offset = 2140; @@ -1533,7 +1534,8 @@ public class Fields { public static final Field USEONLYRISINGEDGEFORTRIGGER = Field.create("USEONLYRISINGEDGEFORTRIGGER", 1484, FieldType.BIT, 14); public static final Field TWOWIREBATCHIGNITION = Field.create("TWOWIREBATCHIGNITION", 1484, FieldType.BIT, 15); public static final Field ENGINECHARTSIZE = Field.create("ENGINECHARTSIZE", 1488, FieldType.INT); - public static final Field UNUSEDIDLERPM = Field.create("UNUSEDIDLERPM", 1492, FieldType.INT); + public static final Field IDLEPIDRPMUPPERLIMIT = Field.create("IDLEPIDRPMUPPERLIMIT", 1492, FieldType.INT); + public static final Field UNUSEDINT16 = Field.create("UNUSEDINT16", 1494, FieldType.INT); public static final Field ACSWITCHADC = Field.create("ACSWITCHADC", 1496, FieldType.INT, adc_channel_e); public static final Field IGNMATHCALCULATEATINDEX = Field.create("IGNMATHCALCULATEATINDEX", 1500, FieldType.INT); public static final Field ACCUTOFFLOWRPM = Field.create("ACCUTOFFLOWRPM", 1504, FieldType.INT); @@ -1616,7 +1618,7 @@ public class Fields { public static final Field THROTTLEPEDALWOTVOLTAGE = Field.create("THROTTLEPEDALWOTVOLTAGE", 2000, FieldType.FLOAT); public static final Field STEPPERDIRECTIONPINMODE = Field.create("STEPPERDIRECTIONPINMODE", 2004, FieldType.INT, pin_output_mode_e); public static final Field STARTUPFUELPUMPDURATION = Field.create("STARTUPFUELPUMPDURATION", 2008, FieldType.INT); - public static final Field IACRPMERRORTHRESHOLD = Field.create("IACRPMERRORTHRESHOLD", 2010, FieldType.INT); + public static final Field IDLEPIDRPMDEADZONE = Field.create("IDLEPIDRPMDEADZONE", 2010, FieldType.INT); public static final Field TARGETVBATT = Field.create("TARGETVBATT", 2140, FieldType.FLOAT); public static final Field ALTERNATOROFFABOVETPS = Field.create("ALTERNATOROFFABOVETPS", 2144, FieldType.FLOAT); public static final Field STARTOFCRANKINGPRIMINGPULSE = Field.create("STARTOFCRANKINGPRIMINGPULSE", 2148, FieldType.FLOAT);