diff --git a/firmware/controllers/actuators/idle_thread.cpp b/firmware/controllers/actuators/idle_thread.cpp index ddbb7ed7a6..c327ea5624 100644 --- a/firmware/controllers/actuators/idle_thread.cpp +++ b/firmware/controllers/actuators/idle_thread.cpp @@ -283,6 +283,9 @@ public: * @see stepper.cpp */ + idleRpmPid.iTermMin = engineConfiguration->idlerpmpid_iTermMin; + idleRpmPid.iTermMax = engineConfiguration->idlerpmpid_iTermMax; + engine->engineState.isAutomaticIdle = engineConfiguration->idleMode == IM_AUTO; if (engineConfiguration->isVerboseIAC && engine->engineState.isAutomaticIdle) { @@ -416,6 +419,9 @@ void setDefaultIdleParameters(DECLARE_CONFIG_PARAMETER_SIGNATURE) { engineConfiguration->idleRpmPid.iFactor = 0.05f; engineConfiguration->idleRpmPid.dFactor = 0.0f; engineConfiguration->idleRpmPid.periodMs = 10; + + engineConfiguration->idlerpmpid_iTermMin = -200; + engineConfiguration->idlerpmpid_iTermMax = 200; } #if ! EFI_UNIT_TEST diff --git a/firmware/controllers/engine_controller.cpp b/firmware/controllers/engine_controller.cpp index 4df1eacdaf..5a84d019c3 100644 --- a/firmware/controllers/engine_controller.cpp +++ b/firmware/controllers/engine_controller.cpp @@ -816,6 +816,6 @@ int getRusEfiVersion(void) { if (initBootloader() != 0) return 123; #endif /* EFI_BOOTLOADER_INCLUDE_CODE */ - return 20190901; + return 20190902; } #endif /* EFI_UNIT_TEST */ diff --git a/firmware/integration/rusefi_config.txt b/firmware/integration/rusefi_config.txt index bb212a6cf3..6e86f0de2d 100644 --- a/firmware/integration/rusefi_config.txt +++ b/firmware/integration/rusefi_config.txt @@ -1040,9 +1040,12 @@ tChargeMode_e tChargeMode; spi_device_e tle8888spiDevice; spi_device_e mc33816spiDevice; - uint8_t[2] unusedSpiPadding6; + int16_t idlerpmpid_iTermMin;iTerm min value;"", 1, 0, -30000, 30000.0, 0 + spi_device_e tle6240spiDevice; - uint8_t[3] unusedSpiPadding7; + uint8_t[1] unusedSpiPadding7; + int16_t idlerpmpid_iTermMax;iTerm max value;"", 1, 0, -30000, 30000.0, 0 + spi_device_e mc33972spiDevice; uint8_t[3] unusedSpiPadding8; diff --git a/firmware/tunerstudio/rusefi.input b/firmware/tunerstudio/rusefi.input index 29d04a30eb..5f6b3929e8 100644 --- a/firmware/tunerstudio/rusefi.input +++ b/firmware/tunerstudio/rusefi.input @@ -1920,6 +1920,8 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00" field = "Offset", idleRpmPid_offset field = "Min", idleRpmPid_minValue field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax field = "period", idleRpmPid_periodMs field = "RPM dead zone to deactivate IAC pid", idlePidRpmDeadZone field = "RPM upper limit to deactivate IAC pid",idlePidRpmUpperLimit diff --git a/java_console/models/src/com/rusefi/config/generated/Fields.java b/java_console/models/src/com/rusefi/config/generated/Fields.java index a8b4f25834..4e32669b8a 100644 --- a/java_console/models/src/com/rusefi/config/generated/Fields.java +++ b/java_console/models/src/com/rusefi/config/generated/Fields.java @@ -1,6 +1,6 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on integration\rusefi_config.txt Sun Sep 01 17:24:09 EDT 2019 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on integration\rusefi_config.txt Mon Sep 02 00:13:32 EDT 2019 // by class com.rusefi.output.JavaFieldsConsumer import com.rusefi.config.*; @@ -712,6 +712,8 @@ public class Fields { public static final int idleRpmPid_dFactor_offset_hex = 704; public static final int idleRpmPid_iFactor_offset = 1792; public static final int idleRpmPid_iFactor_offset_hex = 700; + public static final int idlerpmpid_iTermMax_offset = 4006; + public static final int idlerpmpid_iTermMin_offset = 4002; public static final int idleRpmPid_maxValue_offset = 1806; public static final int idleRpmPid_minValue_offset = 1804; public static final int idleRpmPid_offset = 1788; @@ -1218,7 +1220,6 @@ public class Fields { public static final int unusedSpiPadding3_offset = 4036; public static final int unusedSpiPadding4_offset = 2593; public static final int unusedSpiPadding5_offset = 2713; - public static final int unusedSpiPadding6_offset = 4002; public static final int unusedSpiPadding7_offset = 4005; public static final int unusedSpiPadding8_offset = 4009; public static final int unuseduartPadding1_offset = 808; @@ -2027,7 +2028,10 @@ public class Fields { public static final Field TPSACCELFRACTIONDIVISOR = Field.create("TPSACCELFRACTIONDIVISOR", 3996, FieldType.FLOAT); public static final Field TLE8888SPIDEVICE = Field.create("TLE8888SPIDEVICE", 4000, FieldType.INT8); public static final Field MC33816SPIDEVICE = Field.create("MC33816SPIDEVICE", 4001, FieldType.INT8); + public static final Field IDLERPMPID_ITERMMIN = Field.create("IDLERPMPID_ITERMMIN", 4002, FieldType.INT16); public static final Field TLE6240SPIDEVICE = Field.create("TLE6240SPIDEVICE", 4004, FieldType.INT8); + public static final Field UNUSEDSPIPADDING7 = Field.create("UNUSEDSPIPADDING7", 4005, FieldType.INT8); + public static final Field IDLERPMPID_ITERMMAX = Field.create("IDLERPMPID_ITERMMAX", 4006, FieldType.INT16); public static final Field MC33972SPIDEVICE = Field.create("MC33972SPIDEVICE", 4008, FieldType.INT8); public static final Field ETBIDLETHROTTLERANGE = Field.create("ETBIDLETHROTTLERANGE", 4012, FieldType.FLOAT); public static final Field PEDALTOTPSTABLE = Field.create("PEDALTOTPSTABLE", 6400, FieldType.INT); @@ -2791,7 +2795,10 @@ public class Fields { TPSACCELFRACTIONDIVISOR, TLE8888SPIDEVICE, MC33816SPIDEVICE, + IDLERPMPID_ITERMMIN, TLE6240SPIDEVICE, + UNUSEDSPIPADDING7, + IDLERPMPID_ITERMMAX, MC33972SPIDEVICE, ETBIDLETHROTTLERANGE, PEDALTOTPSTABLE,