diff --git a/firmware/config/boards/hellen/cypress/config/controllers/algo/engine_configuration_generated_structures.h b/firmware/config/boards/hellen/cypress/config/controllers/algo/engine_configuration_generated_structures.h index 942eb83996..62adfbdcad 100644 --- a/firmware/config/boards/hellen/cypress/config/controllers/algo/engine_configuration_generated_structures.h +++ b/firmware/config/boards/hellen/cypress/config/controllers/algo/engine_configuration_generated_structures.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Thu Dec 24 12:33:03 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Wed Dec 30 13:37:33 UTC 2020 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -1596,6 +1596,7 @@ struct engine_configuration_s { */ int mapMinBufferLength; /** + * Below this throttle position, the engine is considered idling. * offset 816 */ int16_t idlePidDeactivationTpsThreshold; @@ -3782,4 +3783,4 @@ struct persistent_config_s { typedef struct persistent_config_s persistent_config_s; // end -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Thu Dec 24 12:33:03 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Wed Dec 30 13:37:33 UTC 2020 diff --git a/firmware/config/boards/hellen/cypress/config/controllers/algo/rusefi_generated.h b/firmware/config/boards/hellen/cypress/config/controllers/algo/rusefi_generated.h index 2599118c06..fb1ff90aad 100644 --- a/firmware/config/boards/hellen/cypress/config/controllers/algo/rusefi_generated.h +++ b/firmware/config/boards/hellen/cypress/config/controllers/algo/rusefi_generated.h @@ -1226,8 +1226,8 @@ #define showHumanReadableWarning_offset 976 #define showSdCardWarning_offset 76 #define SIGNATURE_BOARD hellen_cypress -#define SIGNATURE_DATE 2020.12.24 -#define SIGNATURE_HASH 140549664 +#define SIGNATURE_DATE 2020.12.30 +#define SIGNATURE_HASH 1738189114 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -1558,7 +1558,7 @@ #define ts_show_spi true #define ts_show_trigger_comparator false #define ts_show_tunerstudio_port true -#define TS_SIGNATURE "rusEFI 2020.12.24.hellen_cypress.140549664" +#define TS_SIGNATURE "rusEFI 2020.12.30.hellen_cypress.1738189114" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' // 0x74 diff --git a/firmware/config/boards/kinetis/config/controllers/algo/engine_configuration_generated_structures.h b/firmware/config/boards/kinetis/config/controllers/algo/engine_configuration_generated_structures.h index 1e81ba0a73..b7637350c7 100644 --- a/firmware/config/boards/kinetis/config/controllers/algo/engine_configuration_generated_structures.h +++ b/firmware/config/boards/kinetis/config/controllers/algo/engine_configuration_generated_structures.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Thu Dec 24 12:33:01 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Wed Dec 30 13:37:29 UTC 2020 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -1596,6 +1596,7 @@ struct engine_configuration_s { */ int mapMinBufferLength; /** + * Below this throttle position, the engine is considered idling. * offset 816 */ int16_t idlePidDeactivationTpsThreshold; @@ -3782,4 +3783,4 @@ struct persistent_config_s { typedef struct persistent_config_s persistent_config_s; // end -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Thu Dec 24 12:33:01 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Wed Dec 30 13:37:29 UTC 2020 diff --git a/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h b/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h index 182ca85bea..472f274056 100644 --- a/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h +++ b/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h @@ -1226,8 +1226,8 @@ #define showHumanReadableWarning_offset 976 #define showSdCardWarning_offset 76 #define SIGNATURE_BOARD kin -#define SIGNATURE_DATE 2020.12.24 -#define SIGNATURE_HASH 1501340890 +#define SIGNATURE_DATE 2020.12.30 +#define SIGNATURE_HASH 914789312 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -1558,7 +1558,7 @@ #define ts_show_spi true #define ts_show_trigger_comparator true #define ts_show_tunerstudio_port true -#define TS_SIGNATURE "rusEFI 2020.12.24.kin.1501340890" +#define TS_SIGNATURE "rusEFI 2020.12.30.kin.914789312" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' // 0x74 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures.h b/firmware/controllers/generated/engine_configuration_generated_structures.h index 6208087b86..74805c0fe3 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Dec 24 12:32:41 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Dec 30 13:37:13 UTC 2020 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -1596,6 +1596,7 @@ struct engine_configuration_s { */ int mapMinBufferLength; /** + * Below this throttle position, the engine is considered idling. * offset 816 */ int16_t idlePidDeactivationTpsThreshold; @@ -3782,4 +3783,4 @@ struct persistent_config_s { typedef struct persistent_config_s persistent_config_s; // end -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Dec 24 12:32:41 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Dec 30 13:37:13 UTC 2020 diff --git a/firmware/controllers/generated/fsio_enums_generated.def b/firmware/controllers/generated/fsio_enums_generated.def index e181293c3d..5594958c63 100644 --- a/firmware/controllers/generated/fsio_enums_generated.def +++ b/firmware/controllers/generated/fsio_enums_generated.def @@ -1,4 +1,4 @@ -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Dec 24 12:32:41 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Dec 30 13:37:13 UTC 2020 // by class com.rusefi.output.FileFsioSettingsConsumer FSIO_SETTING_FANONTEMPERATURE = 1000, diff --git a/firmware/controllers/generated/fsio_getters.def b/firmware/controllers/generated/fsio_getters.def index 5815cf3a9d..ea08227e0d 100644 --- a/firmware/controllers/generated/fsio_getters.def +++ b/firmware/controllers/generated/fsio_getters.def @@ -1,4 +1,4 @@ -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Dec 24 12:32:41 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Dec 30 13:37:13 UTC 2020 // by class com.rusefi.output.FileFsioSettingsConsumer case FSIO_SETTING_FANONTEMPERATURE: diff --git a/firmware/controllers/generated/fsio_names.def b/firmware/controllers/generated/fsio_names.def index 5c4e2c5357..2683e09324 100644 --- a/firmware/controllers/generated/fsio_names.def +++ b/firmware/controllers/generated/fsio_names.def @@ -1,4 +1,4 @@ -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Dec 24 12:32:41 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Dec 30 13:37:13 UTC 2020 // by class com.rusefi.output.FileFsioSettingsConsumer static LENameOrdinalPair lefanOnTemperature(FSIO_SETTING_FANONTEMPERATURE, "cfg_fanOnTemperature"); diff --git a/firmware/controllers/generated/fsio_strings.def b/firmware/controllers/generated/fsio_strings.def index 77de84eedb..28de736a75 100644 --- a/firmware/controllers/generated/fsio_strings.def +++ b/firmware/controllers/generated/fsio_strings.def @@ -1,4 +1,4 @@ -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Dec 24 12:32:41 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Dec 30 13:37:13 UTC 2020 // by class com.rusefi.output.FileFsioSettingsConsumer case FSIO_SETTING_FANONTEMPERATURE: diff --git a/firmware/controllers/generated/rusefi_generated.h b/firmware/controllers/generated/rusefi_generated.h index f02d9e6db5..67ad520555 100644 --- a/firmware/controllers/generated/rusefi_generated.h +++ b/firmware/controllers/generated/rusefi_generated.h @@ -1226,8 +1226,8 @@ #define showHumanReadableWarning_offset 976 #define showSdCardWarning_offset 76 #define SIGNATURE_BOARD all -#define SIGNATURE_DATE 2020.12.24 -#define SIGNATURE_HASH 3247519971 +#define SIGNATURE_DATE 2020.12.30 +#define SIGNATURE_HASH 2926252025 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -1558,7 +1558,7 @@ #define ts_show_spi true #define ts_show_trigger_comparator false #define ts_show_tunerstudio_port true -#define TS_SIGNATURE "rusEFI 2020.12.24.all.3247519971" +#define TS_SIGNATURE "rusEFI 2020.12.30.all.2926252025" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' // 0x74 diff --git a/firmware/controllers/generated/signature_all.h b/firmware/controllers/generated/signature_all.h index 5e0f8851a5..f55f78b93e 100644 --- a/firmware/controllers/generated/signature_all.h +++ b/firmware/controllers/generated/signature_all.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD all -#define SIGNATURE_DATE 2020.12.26 -#define SIGNATURE_HASH 267210507 -#define TS_SIGNATURE "rusEFI 2020.12.26.all.267210507" +#define SIGNATURE_DATE 2020.12.30 +#define SIGNATURE_HASH 2926252025 +#define TS_SIGNATURE "rusEFI 2020.12.30.all.2926252025" diff --git a/firmware/controllers/generated/signature_frankenso_na6.h b/firmware/controllers/generated/signature_frankenso_na6.h index c7b798f76a..8be47649d6 100644 --- a/firmware/controllers/generated/signature_frankenso_na6.h +++ b/firmware/controllers/generated/signature_frankenso_na6.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD frankenso_na6 -#define SIGNATURE_DATE 2020.12.26 -#define SIGNATURE_HASH 2577268464 -#define TS_SIGNATURE "rusEFI 2020.12.26.frankenso_na6.2577268464" +#define SIGNATURE_DATE 2020.12.30 +#define SIGNATURE_HASH 941342210 +#define TS_SIGNATURE "rusEFI 2020.12.30.frankenso_na6.941342210" diff --git a/firmware/controllers/generated/signature_hellen_cypress.h b/firmware/controllers/generated/signature_hellen_cypress.h index cca275d6e7..e8e8939ec2 100644 --- a/firmware/controllers/generated/signature_hellen_cypress.h +++ b/firmware/controllers/generated/signature_hellen_cypress.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD hellen_cypress -#define SIGNATURE_DATE 2020.12.26 -#define SIGNATURE_HASH 3323783624 -#define TS_SIGNATURE "rusEFI 2020.12.26.hellen_cypress.3323783624" +#define SIGNATURE_DATE 2020.12.30 +#define SIGNATURE_HASH 1738189114 +#define TS_SIGNATURE "rusEFI 2020.12.30.hellen_cypress.1738189114" diff --git a/firmware/controllers/generated/signature_kin.h b/firmware/controllers/generated/signature_kin.h index c1ddc2bfe6..5a5f58f58a 100644 --- a/firmware/controllers/generated/signature_kin.h +++ b/firmware/controllers/generated/signature_kin.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD kin -#define SIGNATURE_DATE 2020.12.26 -#define SIGNATURE_HASH 2533413682 -#define TS_SIGNATURE "rusEFI 2020.12.26.kin.2533413682" +#define SIGNATURE_DATE 2020.12.30 +#define SIGNATURE_HASH 914789312 +#define TS_SIGNATURE "rusEFI 2020.12.30.kin.914789312" diff --git a/firmware/controllers/generated/signature_mre_f4.h b/firmware/controllers/generated/signature_mre_f4.h index ece5831ba8..1849fdfb52 100644 --- a/firmware/controllers/generated/signature_mre_f4.h +++ b/firmware/controllers/generated/signature_mre_f4.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD mre_f4 -#define SIGNATURE_DATE 2020.12.26 -#define SIGNATURE_HASH 406688114 -#define TS_SIGNATURE "rusEFI 2020.12.26.mre_f4.406688114" +#define SIGNATURE_DATE 2020.12.30 +#define SIGNATURE_HASH 3116093824 +#define TS_SIGNATURE "rusEFI 2020.12.30.mre_f4.3116093824" diff --git a/firmware/controllers/generated/signature_mre_f7.h b/firmware/controllers/generated/signature_mre_f7.h index 8325770c3f..a5da4d48cc 100644 --- a/firmware/controllers/generated/signature_mre_f7.h +++ b/firmware/controllers/generated/signature_mre_f7.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD mre_f7 -#define SIGNATURE_DATE 2020.12.26 -#define SIGNATURE_HASH 406688114 -#define TS_SIGNATURE "rusEFI 2020.12.26.mre_f7.406688114" +#define SIGNATURE_DATE 2020.12.30 +#define SIGNATURE_HASH 3116093824 +#define TS_SIGNATURE "rusEFI 2020.12.30.mre_f7.3116093824" diff --git a/firmware/controllers/generated/signature_prometheus_405.h b/firmware/controllers/generated/signature_prometheus_405.h index 6172b83271..8fc2972a90 100644 --- a/firmware/controllers/generated/signature_prometheus_405.h +++ b/firmware/controllers/generated/signature_prometheus_405.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD prometheus_405 -#define SIGNATURE_DATE 2020.12.26 -#define SIGNATURE_HASH 1295337818 -#define TS_SIGNATURE "rusEFI 2020.12.26.prometheus_405.1295337818" +#define SIGNATURE_DATE 2020.12.30 +#define SIGNATURE_HASH 3971156392 +#define TS_SIGNATURE "rusEFI 2020.12.30.prometheus_405.3971156392" diff --git a/firmware/controllers/generated/signature_prometheus_469.h b/firmware/controllers/generated/signature_prometheus_469.h index e57426daa6..b5c7e2217c 100644 --- a/firmware/controllers/generated/signature_prometheus_469.h +++ b/firmware/controllers/generated/signature_prometheus_469.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD prometheus_469 -#define SIGNATURE_DATE 2020.12.26 -#define SIGNATURE_HASH 1295337818 -#define TS_SIGNATURE "rusEFI 2020.12.26.prometheus_469.1295337818" +#define SIGNATURE_DATE 2020.12.30 +#define SIGNATURE_HASH 3971156392 +#define TS_SIGNATURE "rusEFI 2020.12.30.prometheus_469.3971156392" diff --git a/firmware/controllers/generated/signature_proteus_f4.h b/firmware/controllers/generated/signature_proteus_f4.h index cf7dc6955c..0befaabfc4 100644 --- a/firmware/controllers/generated/signature_proteus_f4.h +++ b/firmware/controllers/generated/signature_proteus_f4.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD proteus_f4 -#define SIGNATURE_DATE 2020.12.26 -#define SIGNATURE_HASH 3326543317 -#define TS_SIGNATURE "rusEFI 2020.12.26.proteus_f4.3326543317" +#define SIGNATURE_DATE 2020.12.30 +#define SIGNATURE_HASH 1740719399 +#define TS_SIGNATURE "rusEFI 2020.12.30.proteus_f4.1740719399" diff --git a/firmware/controllers/generated/signature_proteus_f7.h b/firmware/controllers/generated/signature_proteus_f7.h index 5e171da64f..419e387bcd 100644 --- a/firmware/controllers/generated/signature_proteus_f7.h +++ b/firmware/controllers/generated/signature_proteus_f7.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD proteus_f7 -#define SIGNATURE_DATE 2020.12.26 -#define SIGNATURE_HASH 3326543317 -#define TS_SIGNATURE "rusEFI 2020.12.26.proteus_f7.3326543317" +#define SIGNATURE_DATE 2020.12.30 +#define SIGNATURE_HASH 1740719399 +#define TS_SIGNATURE "rusEFI 2020.12.30.proteus_f7.1740719399" diff --git a/firmware/tunerstudio/generated/cache.zip b/firmware/tunerstudio/generated/cache.zip index 78fce35615..1bb361c081 100644 Binary files a/firmware/tunerstudio/generated/cache.zip and b/firmware/tunerstudio/generated/cache.zip differ diff --git a/firmware/tunerstudio/generated/rusefi.ini b/firmware/tunerstudio/generated/rusefi.ini index 5409333c68..7f1e5849ee 100644 --- a/firmware/tunerstudio/generated/rusefi.ini +++ b/firmware/tunerstudio/generated/rusefi.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.12.26.all.267210507" + signature = "rusEFI 2020.12.30.all.2926252025" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.12.26.all.267210507" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.12.30.all.2926252025" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -77,7 +77,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sat Dec 26 21:17:38 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Dec 30 13:37:13 UTC 2020 pageSize = 20000 page = 1 @@ -1336,6 +1336,7 @@ page = 1 acIdleExtraMin = "Additional idle PID minValue while A/C is active" acFanPin = "Optional Radiator Fan used with A/C" sdCardPeriodMs = "SD card logging period, in milliseconds" + idlePidDeactivationTpsThreshold = "Below this throttle position, the engine is considered idling." triggerErrorPin = "This pin is used for debugging - snap a logic analyzer on it and see if it's ever high" cdmInputPin = "Saab Combustion Detection Module knock signal input pin\nalso known as Saab Ion Sensing Module" sensorChartMode = "rusEfi console Sensor Sniffer mode" @@ -2796,16 +2797,16 @@ menuDialog = main menu = "&Idle" subMenu = idleSettings, "Idle settings" subMenu = idlehw, "Idle hardware" - subMenu = std_separator - subMenu = cltIdleRPMCurve, "Target RPM", 0, {idleMode == 0} + subMenu = std_separator + subMenu = cltIdleRPMCurve, "Target RPM" + subMenu = cltIdleCurve, "CLT multiplier" + subMenu = std_separator + subMenu = idleTimingPidCorrDialog, "Closed-loop idle timing" subMenu = iacPidMultTbl, "IAC PID Multiplier", 0, {idleMode == 0 && useIacPidMultTable == 1} + subMenu = iacCoastingCurve, "Coasting IAC Position for Auto-Idle", 0, {useIacTableForCoasting == 1} subMenu = std_separator subMenu = idleVeCurve, "VE", 0, {useSeparateVeForIdle == 1} subMenu = idleAdvanceCurve, "Ignition advance", 0, {useSeparateAdvanceForIdle == 1} - subMenu = std_separator - subMenu = idleTimingPidCorrDialog, "Closed-loop idle timing" - subMenu = cltIdleCurve, "CLT multiplier" - subMenu = iacCoastingCurve, "Coasting IAC Position for Auto-Idle", 0, {useIacTableForCoasting == 1} menu = "&Advanced" subMenu = boostDialog, "Boost Control" @@ -3879,11 +3880,11 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "!ECU reboot needed to apply these settings" field = "Use Stepper", useStepperIdle field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Use electronic throttle for idle", useETBforIdleControl, { throttlePedalPositionAdcChannel != 0 } + field = "Electronic throttle idle range", etbIdleThrottleRange, { useETBforIdleControl == 1 } panel = idleHwType - dialog = idlePidSettings, "PID IAC Control" - field = "#See Idle Target RPM Curve" - field = "use Cic Pid", useCicPidForIdle + dialog = idlePidSettings, "Closed Loop Idle" field = "P-factor", idleRpmPid_pFactor field = "I-factor", idleRpmPid_iFactor field = "derivativeFilterLoss", idle_derivativeFilterLoss @@ -3896,43 +3897,48 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "Max", idleRpmPid_maxValue field = "iTerm Min", idlerpmpid_iTermMin field = "iTerm Max", idlerpmpid_iTermMax - field = "RPM dead zone to deactivate IAC pid", idlePidRpmDeadZone - field = "RPM upper limit to deactivate IAC pid",idlePidRpmUpperLimit field = "PID Extra for low RPM", pidExtraForLowRpm - field = "Use IAC PID Multiplier Table", useIacPidMultTable - - - dialog = idleSettings, "", yAxis - field = "Idle IAC control mode", idleMode - field = useInstantRpmForIdle, useInstantRpmForIdle - field = "use ETB for idle", useETBforIdleControl, { throttlePedalPositionAdcChannel != 0 } - field = "ETB Idle range", etbIdleThrottleRange, {useETBforIdleControl == 1} - field = "Use separate Ignition Table for idle", useSeparateAdvanceForIdle - field = "Use separate VE Table for idle", useSeparateVeForIdle - field = "Use separate IAC Table For Coasting", useIacTableForCoasting, {idleMode == 0} field = idleIncrementalPidCic, idleIncrementalPidCic - field = "TPS deactivation threshold", idlePidDeactivationTpsThreshold + field = "use Cic Pid", useCicPidForIdle + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM dead zone", idlePidRpmDeadZone + + dialog = idleExtra, "Extra Idle Features" + field = "Extra idle air if throttle pressed", iacByTpsTaper + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "Use coasting idle table", useIacTableForCoasting, {idleMode == 0} + field = useInstantRpmForIdle, useInstantRpmForIdle + field = "Detailed status in console", isVerboseIAC + + dialog = idleSettings, "", yAxis + field = "Idle control mode", idleMode + + field = "! Solenoid idle control requires above zero RPM" + slider = "Open loop idle position", manIdlePosition, horizontal + field = "" + + panel = idleGating, "" panel = idlePidSettings, { idleMode == 0} - field = "Extra IAC if Throttle Pressed", iacByTpsTaper; - field = "Detailed status in console", isVerboseIAC - field = "#See Warmup idle multiplier" - field = "! Solenoid Idle control requires above zero RPM" - slider = "Manual IAC Position", manIdlePosition, horizontal + panel = idleExtra dialog = idleTimingPidCorrDialog, "", yAxis - field = "!This timing correction mode is Alpha Version" - field = "Use Auto-PID ignition advance control", useIdleTimingPidControl - field = "#See Idle Target RPM Curve" - field = "P-factor", idleTimingPid_pFactor, {useIdleTimingPidControl == 1} - field = "I-factor", idleTimingPid_iFactor, {useIdleTimingPidControl == 1} - field = "D-factor", idleTimingPid_dFactor, {useIdleTimingPidControl == 1} - field = "Offset", idleTimingPid_offset, {useIdleTimingPidControl == 1} - field = "Min Delta", idleTimingPid_minValue, {useIdleTimingPidControl == 1} - field = "Max Delta", idleTimingPid_maxValue, {useIdleTimingPidControl == 1} - field = "#See RPM dead zone to deactivate IAC pid" - field = "RPM working zone for timing pid", idleTimingPidWorkZone, {useIdleTimingPidControl == 1} - field = "RPM working zone falloff", idlePidFalloffDeltaRpm, {useIdleTimingPidControl == 1} - field = "RPM dead zone to deactivate timing pid", idleTimingPidDeadZone, {useIdleTimingPidControl == 1} + field = "" + field = "Enable closed loop idle ignition timing", useIdleTimingPidControl + field = "" + field = "#Gain is in degrees advance per rpm away from target" + field = "#A good starting point is 0.1 = 10 deg per 100 rpm" + field = "Proportional gain", idleTimingPid_pFactor, {useIdleTimingPidControl == 1} + field = "Derivative gain", idleTimingPid_dFactor, {useIdleTimingPidControl == 1} + field = "" + field = "Min adjustment (retard)", idleTimingPid_minValue, {useIdleTimingPidControl == 1} + field = "Max adjustment (advance)", idleTimingPid_maxValue, {useIdleTimingPidControl == 1} + field = "" + field = "#Use debug mode 'Timing' to view idle timing adjustment" ; Engine->Fan Settings dialog = fanSetting, "Fan Settings" diff --git a/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini b/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini index 09d0aba13f..0f5b9cf3a7 100644 --- a/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini +++ b/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.12.26.frankenso_na6.2577268464" + signature = "rusEFI 2020.12.30.frankenso_na6.941342210" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.12.26.frankenso_na6.2577268464" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.12.30.frankenso_na6.941342210" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -77,7 +77,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sat Dec 26 21:17:43 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Dec 30 13:37:19 UTC 2020 pageSize = 20000 page = 1 @@ -1336,6 +1336,7 @@ page = 1 acIdleExtraMin = "Additional idle PID minValue while A/C is active" acFanPin = "Optional Radiator Fan used with A/C" sdCardPeriodMs = "SD card logging period, in milliseconds" + idlePidDeactivationTpsThreshold = "Below this throttle position, the engine is considered idling." triggerErrorPin = "This pin is used for debugging - snap a logic analyzer on it and see if it's ever high" cdmInputPin = "Saab Combustion Detection Module knock signal input pin\nalso known as Saab Ion Sensing Module" sensorChartMode = "rusEfi console Sensor Sniffer mode" @@ -2796,16 +2797,16 @@ menuDialog = main menu = "&Idle" subMenu = idleSettings, "Idle settings" subMenu = idlehw, "Idle hardware" - subMenu = std_separator - subMenu = cltIdleRPMCurve, "Target RPM", 0, {idleMode == 0} + subMenu = std_separator + subMenu = cltIdleRPMCurve, "Target RPM" + subMenu = cltIdleCurve, "CLT multiplier" + subMenu = std_separator + subMenu = idleTimingPidCorrDialog, "Closed-loop idle timing" subMenu = iacPidMultTbl, "IAC PID Multiplier", 0, {idleMode == 0 && useIacPidMultTable == 1} + subMenu = iacCoastingCurve, "Coasting IAC Position for Auto-Idle", 0, {useIacTableForCoasting == 1} subMenu = std_separator subMenu = idleVeCurve, "VE", 0, {useSeparateVeForIdle == 1} subMenu = idleAdvanceCurve, "Ignition advance", 0, {useSeparateAdvanceForIdle == 1} - subMenu = std_separator - subMenu = idleTimingPidCorrDialog, "Closed-loop idle timing" - subMenu = cltIdleCurve, "CLT multiplier" - subMenu = iacCoastingCurve, "Coasting IAC Position for Auto-Idle", 0, {useIacTableForCoasting == 1} menu = "&Advanced" subMenu = boostDialog, "Boost Control" @@ -3879,11 +3880,11 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "!ECU reboot needed to apply these settings" field = "Use Stepper", useStepperIdle field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Use electronic throttle for idle", useETBforIdleControl, { throttlePedalPositionAdcChannel != 0 } + field = "Electronic throttle idle range", etbIdleThrottleRange, { useETBforIdleControl == 1 } panel = idleHwType - dialog = idlePidSettings, "PID IAC Control" - field = "#See Idle Target RPM Curve" - field = "use Cic Pid", useCicPidForIdle + dialog = idlePidSettings, "Closed Loop Idle" field = "P-factor", idleRpmPid_pFactor field = "I-factor", idleRpmPid_iFactor field = "derivativeFilterLoss", idle_derivativeFilterLoss @@ -3896,43 +3897,48 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "Max", idleRpmPid_maxValue field = "iTerm Min", idlerpmpid_iTermMin field = "iTerm Max", idlerpmpid_iTermMax - field = "RPM dead zone to deactivate IAC pid", idlePidRpmDeadZone - field = "RPM upper limit to deactivate IAC pid",idlePidRpmUpperLimit field = "PID Extra for low RPM", pidExtraForLowRpm - field = "Use IAC PID Multiplier Table", useIacPidMultTable - - - dialog = idleSettings, "", yAxis - field = "Idle IAC control mode", idleMode - field = useInstantRpmForIdle, useInstantRpmForIdle - field = "use ETB for idle", useETBforIdleControl, { throttlePedalPositionAdcChannel != 0 } - field = "ETB Idle range", etbIdleThrottleRange, {useETBforIdleControl == 1} - field = "Use separate Ignition Table for idle", useSeparateAdvanceForIdle - field = "Use separate VE Table for idle", useSeparateVeForIdle - field = "Use separate IAC Table For Coasting", useIacTableForCoasting, {idleMode == 0} field = idleIncrementalPidCic, idleIncrementalPidCic - field = "TPS deactivation threshold", idlePidDeactivationTpsThreshold + field = "use Cic Pid", useCicPidForIdle + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM dead zone", idlePidRpmDeadZone + + dialog = idleExtra, "Extra Idle Features" + field = "Extra idle air if throttle pressed", iacByTpsTaper + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "Use coasting idle table", useIacTableForCoasting, {idleMode == 0} + field = useInstantRpmForIdle, useInstantRpmForIdle + field = "Detailed status in console", isVerboseIAC + + dialog = idleSettings, "", yAxis + field = "Idle control mode", idleMode + + field = "! Solenoid idle control requires above zero RPM" + slider = "Open loop idle position", manIdlePosition, horizontal + field = "" + + panel = idleGating, "" panel = idlePidSettings, { idleMode == 0} - field = "Extra IAC if Throttle Pressed", iacByTpsTaper; - field = "Detailed status in console", isVerboseIAC - field = "#See Warmup idle multiplier" - field = "! Solenoid Idle control requires above zero RPM" - slider = "Manual IAC Position", manIdlePosition, horizontal + panel = idleExtra dialog = idleTimingPidCorrDialog, "", yAxis - field = "!This timing correction mode is Alpha Version" - field = "Use Auto-PID ignition advance control", useIdleTimingPidControl - field = "#See Idle Target RPM Curve" - field = "P-factor", idleTimingPid_pFactor, {useIdleTimingPidControl == 1} - field = "I-factor", idleTimingPid_iFactor, {useIdleTimingPidControl == 1} - field = "D-factor", idleTimingPid_dFactor, {useIdleTimingPidControl == 1} - field = "Offset", idleTimingPid_offset, {useIdleTimingPidControl == 1} - field = "Min Delta", idleTimingPid_minValue, {useIdleTimingPidControl == 1} - field = "Max Delta", idleTimingPid_maxValue, {useIdleTimingPidControl == 1} - field = "#See RPM dead zone to deactivate IAC pid" - field = "RPM working zone for timing pid", idleTimingPidWorkZone, {useIdleTimingPidControl == 1} - field = "RPM working zone falloff", idlePidFalloffDeltaRpm, {useIdleTimingPidControl == 1} - field = "RPM dead zone to deactivate timing pid", idleTimingPidDeadZone, {useIdleTimingPidControl == 1} + field = "" + field = "Enable closed loop idle ignition timing", useIdleTimingPidControl + field = "" + field = "#Gain is in degrees advance per rpm away from target" + field = "#A good starting point is 0.1 = 10 deg per 100 rpm" + field = "Proportional gain", idleTimingPid_pFactor, {useIdleTimingPidControl == 1} + field = "Derivative gain", idleTimingPid_dFactor, {useIdleTimingPidControl == 1} + field = "" + field = "Min adjustment (retard)", idleTimingPid_minValue, {useIdleTimingPidControl == 1} + field = "Max adjustment (advance)", idleTimingPid_maxValue, {useIdleTimingPidControl == 1} + field = "" + field = "#Use debug mode 'Timing' to view idle timing adjustment" ; Engine->Fan Settings dialog = fanSetting, "Fan Settings" diff --git a/firmware/tunerstudio/generated/rusefi_hellen_cypress.ini b/firmware/tunerstudio/generated/rusefi_hellen_cypress.ini index f061731920..2b32f661dc 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen_cypress.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen_cypress.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.12.26.hellen_cypress.3323783624" + signature = "rusEFI 2020.12.30.hellen_cypress.1738189114" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.12.26.hellen_cypress.3323783624" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.12.30.hellen_cypress.1738189114" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -77,7 +77,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Sat Dec 26 21:18:00 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Wed Dec 30 13:37:33 UTC 2020 pageSize = 20000 page = 1 @@ -1336,6 +1336,7 @@ page = 1 acIdleExtraMin = "Additional idle PID minValue while A/C is active" acFanPin = "Optional Radiator Fan used with A/C" sdCardPeriodMs = "SD card logging period, in milliseconds" + idlePidDeactivationTpsThreshold = "Below this throttle position, the engine is considered idling." triggerErrorPin = "This pin is used for debugging - snap a logic analyzer on it and see if it's ever high" cdmInputPin = "Saab Combustion Detection Module knock signal input pin\nalso known as Saab Ion Sensing Module" sensorChartMode = "rusEfi console Sensor Sniffer mode" @@ -2796,16 +2797,16 @@ menuDialog = main menu = "&Idle" subMenu = idleSettings, "Idle settings" subMenu = idlehw, "Idle hardware" - subMenu = std_separator - subMenu = cltIdleRPMCurve, "Target RPM", 0, {idleMode == 0} + subMenu = std_separator + subMenu = cltIdleRPMCurve, "Target RPM" + subMenu = cltIdleCurve, "CLT multiplier" + subMenu = std_separator + subMenu = idleTimingPidCorrDialog, "Closed-loop idle timing" subMenu = iacPidMultTbl, "IAC PID Multiplier", 0, {idleMode == 0 && useIacPidMultTable == 1} + subMenu = iacCoastingCurve, "Coasting IAC Position for Auto-Idle", 0, {useIacTableForCoasting == 1} subMenu = std_separator subMenu = idleVeCurve, "VE", 0, {useSeparateVeForIdle == 1} subMenu = idleAdvanceCurve, "Ignition advance", 0, {useSeparateAdvanceForIdle == 1} - subMenu = std_separator - subMenu = idleTimingPidCorrDialog, "Closed-loop idle timing" - subMenu = cltIdleCurve, "CLT multiplier" - subMenu = iacCoastingCurve, "Coasting IAC Position for Auto-Idle", 0, {useIacTableForCoasting == 1} menu = "&Advanced" subMenu = boostDialog, "Boost Control" @@ -3879,11 +3880,11 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "!ECU reboot needed to apply these settings" field = "Use Stepper", useStepperIdle field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Use electronic throttle for idle", useETBforIdleControl, { throttlePedalPositionAdcChannel != 0 } + field = "Electronic throttle idle range", etbIdleThrottleRange, { useETBforIdleControl == 1 } panel = idleHwType - dialog = idlePidSettings, "PID IAC Control" - field = "#See Idle Target RPM Curve" - field = "use Cic Pid", useCicPidForIdle + dialog = idlePidSettings, "Closed Loop Idle" field = "P-factor", idleRpmPid_pFactor field = "I-factor", idleRpmPid_iFactor field = "derivativeFilterLoss", idle_derivativeFilterLoss @@ -3896,43 +3897,48 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "Max", idleRpmPid_maxValue field = "iTerm Min", idlerpmpid_iTermMin field = "iTerm Max", idlerpmpid_iTermMax - field = "RPM dead zone to deactivate IAC pid", idlePidRpmDeadZone - field = "RPM upper limit to deactivate IAC pid",idlePidRpmUpperLimit field = "PID Extra for low RPM", pidExtraForLowRpm - field = "Use IAC PID Multiplier Table", useIacPidMultTable - - - dialog = idleSettings, "", yAxis - field = "Idle IAC control mode", idleMode - field = useInstantRpmForIdle, useInstantRpmForIdle - field = "use ETB for idle", useETBforIdleControl, { throttlePedalPositionAdcChannel != 0 } - field = "ETB Idle range", etbIdleThrottleRange, {useETBforIdleControl == 1} - field = "Use separate Ignition Table for idle", useSeparateAdvanceForIdle - field = "Use separate VE Table for idle", useSeparateVeForIdle - field = "Use separate IAC Table For Coasting", useIacTableForCoasting, {idleMode == 0} field = idleIncrementalPidCic, idleIncrementalPidCic - field = "TPS deactivation threshold", idlePidDeactivationTpsThreshold + field = "use Cic Pid", useCicPidForIdle + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM dead zone", idlePidRpmDeadZone + + dialog = idleExtra, "Extra Idle Features" + field = "Extra idle air if throttle pressed", iacByTpsTaper + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "Use coasting idle table", useIacTableForCoasting, {idleMode == 0} + field = useInstantRpmForIdle, useInstantRpmForIdle + field = "Detailed status in console", isVerboseIAC + + dialog = idleSettings, "", yAxis + field = "Idle control mode", idleMode + + field = "! Solenoid idle control requires above zero RPM" + slider = "Open loop idle position", manIdlePosition, horizontal + field = "" + + panel = idleGating, "" panel = idlePidSettings, { idleMode == 0} - field = "Extra IAC if Throttle Pressed", iacByTpsTaper; - field = "Detailed status in console", isVerboseIAC - field = "#See Warmup idle multiplier" - field = "! Solenoid Idle control requires above zero RPM" - slider = "Manual IAC Position", manIdlePosition, horizontal + panel = idleExtra dialog = idleTimingPidCorrDialog, "", yAxis - field = "!This timing correction mode is Alpha Version" - field = "Use Auto-PID ignition advance control", useIdleTimingPidControl - field = "#See Idle Target RPM Curve" - field = "P-factor", idleTimingPid_pFactor, {useIdleTimingPidControl == 1} - field = "I-factor", idleTimingPid_iFactor, {useIdleTimingPidControl == 1} - field = "D-factor", idleTimingPid_dFactor, {useIdleTimingPidControl == 1} - field = "Offset", idleTimingPid_offset, {useIdleTimingPidControl == 1} - field = "Min Delta", idleTimingPid_minValue, {useIdleTimingPidControl == 1} - field = "Max Delta", idleTimingPid_maxValue, {useIdleTimingPidControl == 1} - field = "#See RPM dead zone to deactivate IAC pid" - field = "RPM working zone for timing pid", idleTimingPidWorkZone, {useIdleTimingPidControl == 1} - field = "RPM working zone falloff", idlePidFalloffDeltaRpm, {useIdleTimingPidControl == 1} - field = "RPM dead zone to deactivate timing pid", idleTimingPidDeadZone, {useIdleTimingPidControl == 1} + field = "" + field = "Enable closed loop idle ignition timing", useIdleTimingPidControl + field = "" + field = "#Gain is in degrees advance per rpm away from target" + field = "#A good starting point is 0.1 = 10 deg per 100 rpm" + field = "Proportional gain", idleTimingPid_pFactor, {useIdleTimingPidControl == 1} + field = "Derivative gain", idleTimingPid_dFactor, {useIdleTimingPidControl == 1} + field = "" + field = "Min adjustment (retard)", idleTimingPid_minValue, {useIdleTimingPidControl == 1} + field = "Max adjustment (advance)", idleTimingPid_maxValue, {useIdleTimingPidControl == 1} + field = "" + field = "#Use debug mode 'Timing' to view idle timing adjustment" ; Engine->Fan Settings dialog = fanSetting, "Fan Settings" diff --git a/firmware/tunerstudio/generated/rusefi_kinetis.ini b/firmware/tunerstudio/generated/rusefi_kinetis.ini index b0bd27c91d..26ee43583e 100644 --- a/firmware/tunerstudio/generated/rusefi_kinetis.ini +++ b/firmware/tunerstudio/generated/rusefi_kinetis.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.12.26.kin.2533413682" + signature = "rusEFI 2020.12.30.kin.914789312" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.12.26.kin.2533413682" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.12.30.kin.914789312" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -77,7 +77,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sat Dec 26 21:17:51 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Wed Dec 30 13:37:29 UTC 2020 pageSize = 20000 page = 1 @@ -1336,6 +1336,7 @@ page = 1 acIdleExtraMin = "Additional idle PID minValue while A/C is active" acFanPin = "Optional Radiator Fan used with A/C" sdCardPeriodMs = "SD card logging period, in milliseconds" + idlePidDeactivationTpsThreshold = "Below this throttle position, the engine is considered idling." triggerErrorPin = "This pin is used for debugging - snap a logic analyzer on it and see if it's ever high" cdmInputPin = "Saab Combustion Detection Module knock signal input pin\nalso known as Saab Ion Sensing Module" sensorChartMode = "rusEfi console Sensor Sniffer mode" @@ -2796,16 +2797,16 @@ menuDialog = main menu = "&Idle" subMenu = idleSettings, "Idle settings" subMenu = idlehw, "Idle hardware" - subMenu = std_separator - subMenu = cltIdleRPMCurve, "Target RPM", 0, {idleMode == 0} + subMenu = std_separator + subMenu = cltIdleRPMCurve, "Target RPM" + subMenu = cltIdleCurve, "CLT multiplier" + subMenu = std_separator + subMenu = idleTimingPidCorrDialog, "Closed-loop idle timing" subMenu = iacPidMultTbl, "IAC PID Multiplier", 0, {idleMode == 0 && useIacPidMultTable == 1} + subMenu = iacCoastingCurve, "Coasting IAC Position for Auto-Idle", 0, {useIacTableForCoasting == 1} subMenu = std_separator subMenu = idleVeCurve, "VE", 0, {useSeparateVeForIdle == 1} subMenu = idleAdvanceCurve, "Ignition advance", 0, {useSeparateAdvanceForIdle == 1} - subMenu = std_separator - subMenu = idleTimingPidCorrDialog, "Closed-loop idle timing" - subMenu = cltIdleCurve, "CLT multiplier" - subMenu = iacCoastingCurve, "Coasting IAC Position for Auto-Idle", 0, {useIacTableForCoasting == 1} menu = "&Advanced" subMenu = boostDialog, "Boost Control" @@ -3880,11 +3881,11 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "!ECU reboot needed to apply these settings" field = "Use Stepper", useStepperIdle field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Use electronic throttle for idle", useETBforIdleControl, { throttlePedalPositionAdcChannel != 0 } + field = "Electronic throttle idle range", etbIdleThrottleRange, { useETBforIdleControl == 1 } panel = idleHwType - dialog = idlePidSettings, "PID IAC Control" - field = "#See Idle Target RPM Curve" - field = "use Cic Pid", useCicPidForIdle + dialog = idlePidSettings, "Closed Loop Idle" field = "P-factor", idleRpmPid_pFactor field = "I-factor", idleRpmPid_iFactor field = "derivativeFilterLoss", idle_derivativeFilterLoss @@ -3897,43 +3898,48 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "Max", idleRpmPid_maxValue field = "iTerm Min", idlerpmpid_iTermMin field = "iTerm Max", idlerpmpid_iTermMax - field = "RPM dead zone to deactivate IAC pid", idlePidRpmDeadZone - field = "RPM upper limit to deactivate IAC pid",idlePidRpmUpperLimit field = "PID Extra for low RPM", pidExtraForLowRpm - field = "Use IAC PID Multiplier Table", useIacPidMultTable - - - dialog = idleSettings, "", yAxis - field = "Idle IAC control mode", idleMode - field = useInstantRpmForIdle, useInstantRpmForIdle - field = "use ETB for idle", useETBforIdleControl, { throttlePedalPositionAdcChannel != 0 } - field = "ETB Idle range", etbIdleThrottleRange, {useETBforIdleControl == 1} - field = "Use separate Ignition Table for idle", useSeparateAdvanceForIdle - field = "Use separate VE Table for idle", useSeparateVeForIdle - field = "Use separate IAC Table For Coasting", useIacTableForCoasting, {idleMode == 0} field = idleIncrementalPidCic, idleIncrementalPidCic - field = "TPS deactivation threshold", idlePidDeactivationTpsThreshold + field = "use Cic Pid", useCicPidForIdle + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM dead zone", idlePidRpmDeadZone + + dialog = idleExtra, "Extra Idle Features" + field = "Extra idle air if throttle pressed", iacByTpsTaper + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "Use coasting idle table", useIacTableForCoasting, {idleMode == 0} + field = useInstantRpmForIdle, useInstantRpmForIdle + field = "Detailed status in console", isVerboseIAC + + dialog = idleSettings, "", yAxis + field = "Idle control mode", idleMode + + field = "! Solenoid idle control requires above zero RPM" + slider = "Open loop idle position", manIdlePosition, horizontal + field = "" + + panel = idleGating, "" panel = idlePidSettings, { idleMode == 0} - field = "Extra IAC if Throttle Pressed", iacByTpsTaper; - field = "Detailed status in console", isVerboseIAC - field = "#See Warmup idle multiplier" - field = "! Solenoid Idle control requires above zero RPM" - slider = "Manual IAC Position", manIdlePosition, horizontal + panel = idleExtra dialog = idleTimingPidCorrDialog, "", yAxis - field = "!This timing correction mode is Alpha Version" - field = "Use Auto-PID ignition advance control", useIdleTimingPidControl - field = "#See Idle Target RPM Curve" - field = "P-factor", idleTimingPid_pFactor, {useIdleTimingPidControl == 1} - field = "I-factor", idleTimingPid_iFactor, {useIdleTimingPidControl == 1} - field = "D-factor", idleTimingPid_dFactor, {useIdleTimingPidControl == 1} - field = "Offset", idleTimingPid_offset, {useIdleTimingPidControl == 1} - field = "Min Delta", idleTimingPid_minValue, {useIdleTimingPidControl == 1} - field = "Max Delta", idleTimingPid_maxValue, {useIdleTimingPidControl == 1} - field = "#See RPM dead zone to deactivate IAC pid" - field = "RPM working zone for timing pid", idleTimingPidWorkZone, {useIdleTimingPidControl == 1} - field = "RPM working zone falloff", idlePidFalloffDeltaRpm, {useIdleTimingPidControl == 1} - field = "RPM dead zone to deactivate timing pid", idleTimingPidDeadZone, {useIdleTimingPidControl == 1} + field = "" + field = "Enable closed loop idle ignition timing", useIdleTimingPidControl + field = "" + field = "#Gain is in degrees advance per rpm away from target" + field = "#A good starting point is 0.1 = 10 deg per 100 rpm" + field = "Proportional gain", idleTimingPid_pFactor, {useIdleTimingPidControl == 1} + field = "Derivative gain", idleTimingPid_dFactor, {useIdleTimingPidControl == 1} + field = "" + field = "Min adjustment (retard)", idleTimingPid_minValue, {useIdleTimingPidControl == 1} + field = "Max adjustment (advance)", idleTimingPid_maxValue, {useIdleTimingPidControl == 1} + field = "" + field = "#Use debug mode 'Timing' to view idle timing adjustment" ; Engine->Fan Settings dialog = fanSetting, "Fan Settings" diff --git a/firmware/tunerstudio/generated/rusefi_mre_f4.ini b/firmware/tunerstudio/generated/rusefi_mre_f4.ini index e521d8cdda..4ce372741b 100644 --- a/firmware/tunerstudio/generated/rusefi_mre_f4.ini +++ b/firmware/tunerstudio/generated/rusefi_mre_f4.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.12.26.mre_f4.406688114" + signature = "rusEFI 2020.12.30.mre_f4.3116093824" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.12.26.mre_f4.406688114" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.12.30.mre_f4.3116093824" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -77,7 +77,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sat Dec 26 21:17:41 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Dec 30 13:37:17 UTC 2020 pageSize = 20000 page = 1 @@ -1336,6 +1336,7 @@ page = 1 acIdleExtraMin = "Additional idle PID minValue while A/C is active" acFanPin = "Optional Radiator Fan used with A/C" sdCardPeriodMs = "SD card logging period, in milliseconds" + idlePidDeactivationTpsThreshold = "Below this throttle position, the engine is considered idling." triggerErrorPin = "This pin is used for debugging - snap a logic analyzer on it and see if it's ever high" cdmInputPin = "Saab Combustion Detection Module knock signal input pin\nalso known as Saab Ion Sensing Module" sensorChartMode = "rusEfi console Sensor Sniffer mode" @@ -2796,16 +2797,16 @@ menuDialog = main menu = "&Idle" subMenu = idleSettings, "Idle settings" subMenu = idlehw, "Idle hardware" - subMenu = std_separator - subMenu = cltIdleRPMCurve, "Target RPM", 0, {idleMode == 0} + subMenu = std_separator + subMenu = cltIdleRPMCurve, "Target RPM" + subMenu = cltIdleCurve, "CLT multiplier" + subMenu = std_separator + subMenu = idleTimingPidCorrDialog, "Closed-loop idle timing" subMenu = iacPidMultTbl, "IAC PID Multiplier", 0, {idleMode == 0 && useIacPidMultTable == 1} + subMenu = iacCoastingCurve, "Coasting IAC Position for Auto-Idle", 0, {useIacTableForCoasting == 1} subMenu = std_separator subMenu = idleVeCurve, "VE", 0, {useSeparateVeForIdle == 1} subMenu = idleAdvanceCurve, "Ignition advance", 0, {useSeparateAdvanceForIdle == 1} - subMenu = std_separator - subMenu = idleTimingPidCorrDialog, "Closed-loop idle timing" - subMenu = cltIdleCurve, "CLT multiplier" - subMenu = iacCoastingCurve, "Coasting IAC Position for Auto-Idle", 0, {useIacTableForCoasting == 1} menu = "&Advanced" subMenu = boostDialog, "Boost Control" @@ -3863,11 +3864,11 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "!ECU reboot needed to apply these settings" field = "Use Stepper", useStepperIdle field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Use electronic throttle for idle", useETBforIdleControl, { throttlePedalPositionAdcChannel != 0 } + field = "Electronic throttle idle range", etbIdleThrottleRange, { useETBforIdleControl == 1 } panel = idleHwType - dialog = idlePidSettings, "PID IAC Control" - field = "#See Idle Target RPM Curve" - field = "use Cic Pid", useCicPidForIdle + dialog = idlePidSettings, "Closed Loop Idle" field = "P-factor", idleRpmPid_pFactor field = "I-factor", idleRpmPid_iFactor field = "derivativeFilterLoss", idle_derivativeFilterLoss @@ -3880,43 +3881,48 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "Max", idleRpmPid_maxValue field = "iTerm Min", idlerpmpid_iTermMin field = "iTerm Max", idlerpmpid_iTermMax - field = "RPM dead zone to deactivate IAC pid", idlePidRpmDeadZone - field = "RPM upper limit to deactivate IAC pid",idlePidRpmUpperLimit field = "PID Extra for low RPM", pidExtraForLowRpm - field = "Use IAC PID Multiplier Table", useIacPidMultTable - - - dialog = idleSettings, "", yAxis - field = "Idle IAC control mode", idleMode - field = useInstantRpmForIdle, useInstantRpmForIdle - field = "use ETB for idle", useETBforIdleControl, { throttlePedalPositionAdcChannel != 0 } - field = "ETB Idle range", etbIdleThrottleRange, {useETBforIdleControl == 1} - field = "Use separate Ignition Table for idle", useSeparateAdvanceForIdle - field = "Use separate VE Table for idle", useSeparateVeForIdle - field = "Use separate IAC Table For Coasting", useIacTableForCoasting, {idleMode == 0} field = idleIncrementalPidCic, idleIncrementalPidCic - field = "TPS deactivation threshold", idlePidDeactivationTpsThreshold + field = "use Cic Pid", useCicPidForIdle + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM dead zone", idlePidRpmDeadZone + + dialog = idleExtra, "Extra Idle Features" + field = "Extra idle air if throttle pressed", iacByTpsTaper + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "Use coasting idle table", useIacTableForCoasting, {idleMode == 0} + field = useInstantRpmForIdle, useInstantRpmForIdle + field = "Detailed status in console", isVerboseIAC + + dialog = idleSettings, "", yAxis + field = "Idle control mode", idleMode + + field = "! Solenoid idle control requires above zero RPM" + slider = "Open loop idle position", manIdlePosition, horizontal + field = "" + + panel = idleGating, "" panel = idlePidSettings, { idleMode == 0} - field = "Extra IAC if Throttle Pressed", iacByTpsTaper; - field = "Detailed status in console", isVerboseIAC - field = "#See Warmup idle multiplier" - field = "! Solenoid Idle control requires above zero RPM" - slider = "Manual IAC Position", manIdlePosition, horizontal + panel = idleExtra dialog = idleTimingPidCorrDialog, "", yAxis - field = "!This timing correction mode is Alpha Version" - field = "Use Auto-PID ignition advance control", useIdleTimingPidControl - field = "#See Idle Target RPM Curve" - field = "P-factor", idleTimingPid_pFactor, {useIdleTimingPidControl == 1} - field = "I-factor", idleTimingPid_iFactor, {useIdleTimingPidControl == 1} - field = "D-factor", idleTimingPid_dFactor, {useIdleTimingPidControl == 1} - field = "Offset", idleTimingPid_offset, {useIdleTimingPidControl == 1} - field = "Min Delta", idleTimingPid_minValue, {useIdleTimingPidControl == 1} - field = "Max Delta", idleTimingPid_maxValue, {useIdleTimingPidControl == 1} - field = "#See RPM dead zone to deactivate IAC pid" - field = "RPM working zone for timing pid", idleTimingPidWorkZone, {useIdleTimingPidControl == 1} - field = "RPM working zone falloff", idlePidFalloffDeltaRpm, {useIdleTimingPidControl == 1} - field = "RPM dead zone to deactivate timing pid", idleTimingPidDeadZone, {useIdleTimingPidControl == 1} + field = "" + field = "Enable closed loop idle ignition timing", useIdleTimingPidControl + field = "" + field = "#Gain is in degrees advance per rpm away from target" + field = "#A good starting point is 0.1 = 10 deg per 100 rpm" + field = "Proportional gain", idleTimingPid_pFactor, {useIdleTimingPidControl == 1} + field = "Derivative gain", idleTimingPid_dFactor, {useIdleTimingPidControl == 1} + field = "" + field = "Min adjustment (retard)", idleTimingPid_minValue, {useIdleTimingPidControl == 1} + field = "Max adjustment (advance)", idleTimingPid_maxValue, {useIdleTimingPidControl == 1} + field = "" + field = "#Use debug mode 'Timing' to view idle timing adjustment" ; Engine->Fan Settings dialog = fanSetting, "Fan Settings" diff --git a/firmware/tunerstudio/generated/rusefi_mre_f7.ini b/firmware/tunerstudio/generated/rusefi_mre_f7.ini index 7c168e524d..7bd15d8223 100644 --- a/firmware/tunerstudio/generated/rusefi_mre_f7.ini +++ b/firmware/tunerstudio/generated/rusefi_mre_f7.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.12.26.mre_f7.406688114" + signature = "rusEFI 2020.12.30.mre_f7.3116093824" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.12.26.mre_f7.406688114" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.12.30.mre_f7.3116093824" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -77,7 +77,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sat Dec 26 21:17:39 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Dec 30 13:37:15 UTC 2020 pageSize = 20000 page = 1 @@ -1336,6 +1336,7 @@ page = 1 acIdleExtraMin = "Additional idle PID minValue while A/C is active" acFanPin = "Optional Radiator Fan used with A/C" sdCardPeriodMs = "SD card logging period, in milliseconds" + idlePidDeactivationTpsThreshold = "Below this throttle position, the engine is considered idling." triggerErrorPin = "This pin is used for debugging - snap a logic analyzer on it and see if it's ever high" cdmInputPin = "Saab Combustion Detection Module knock signal input pin\nalso known as Saab Ion Sensing Module" sensorChartMode = "rusEfi console Sensor Sniffer mode" @@ -2796,16 +2797,16 @@ menuDialog = main menu = "&Idle" subMenu = idleSettings, "Idle settings" subMenu = idlehw, "Idle hardware" - subMenu = std_separator - subMenu = cltIdleRPMCurve, "Target RPM", 0, {idleMode == 0} + subMenu = std_separator + subMenu = cltIdleRPMCurve, "Target RPM" + subMenu = cltIdleCurve, "CLT multiplier" + subMenu = std_separator + subMenu = idleTimingPidCorrDialog, "Closed-loop idle timing" subMenu = iacPidMultTbl, "IAC PID Multiplier", 0, {idleMode == 0 && useIacPidMultTable == 1} + subMenu = iacCoastingCurve, "Coasting IAC Position for Auto-Idle", 0, {useIacTableForCoasting == 1} subMenu = std_separator subMenu = idleVeCurve, "VE", 0, {useSeparateVeForIdle == 1} subMenu = idleAdvanceCurve, "Ignition advance", 0, {useSeparateAdvanceForIdle == 1} - subMenu = std_separator - subMenu = idleTimingPidCorrDialog, "Closed-loop idle timing" - subMenu = cltIdleCurve, "CLT multiplier" - subMenu = iacCoastingCurve, "Coasting IAC Position for Auto-Idle", 0, {useIacTableForCoasting == 1} menu = "&Advanced" subMenu = boostDialog, "Boost Control" @@ -3863,11 +3864,11 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "!ECU reboot needed to apply these settings" field = "Use Stepper", useStepperIdle field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Use electronic throttle for idle", useETBforIdleControl, { throttlePedalPositionAdcChannel != 0 } + field = "Electronic throttle idle range", etbIdleThrottleRange, { useETBforIdleControl == 1 } panel = idleHwType - dialog = idlePidSettings, "PID IAC Control" - field = "#See Idle Target RPM Curve" - field = "use Cic Pid", useCicPidForIdle + dialog = idlePidSettings, "Closed Loop Idle" field = "P-factor", idleRpmPid_pFactor field = "I-factor", idleRpmPid_iFactor field = "derivativeFilterLoss", idle_derivativeFilterLoss @@ -3880,43 +3881,48 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "Max", idleRpmPid_maxValue field = "iTerm Min", idlerpmpid_iTermMin field = "iTerm Max", idlerpmpid_iTermMax - field = "RPM dead zone to deactivate IAC pid", idlePidRpmDeadZone - field = "RPM upper limit to deactivate IAC pid",idlePidRpmUpperLimit field = "PID Extra for low RPM", pidExtraForLowRpm - field = "Use IAC PID Multiplier Table", useIacPidMultTable - - - dialog = idleSettings, "", yAxis - field = "Idle IAC control mode", idleMode - field = useInstantRpmForIdle, useInstantRpmForIdle - field = "use ETB for idle", useETBforIdleControl, { throttlePedalPositionAdcChannel != 0 } - field = "ETB Idle range", etbIdleThrottleRange, {useETBforIdleControl == 1} - field = "Use separate Ignition Table for idle", useSeparateAdvanceForIdle - field = "Use separate VE Table for idle", useSeparateVeForIdle - field = "Use separate IAC Table For Coasting", useIacTableForCoasting, {idleMode == 0} field = idleIncrementalPidCic, idleIncrementalPidCic - field = "TPS deactivation threshold", idlePidDeactivationTpsThreshold + field = "use Cic Pid", useCicPidForIdle + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM dead zone", idlePidRpmDeadZone + + dialog = idleExtra, "Extra Idle Features" + field = "Extra idle air if throttle pressed", iacByTpsTaper + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "Use coasting idle table", useIacTableForCoasting, {idleMode == 0} + field = useInstantRpmForIdle, useInstantRpmForIdle + field = "Detailed status in console", isVerboseIAC + + dialog = idleSettings, "", yAxis + field = "Idle control mode", idleMode + + field = "! Solenoid idle control requires above zero RPM" + slider = "Open loop idle position", manIdlePosition, horizontal + field = "" + + panel = idleGating, "" panel = idlePidSettings, { idleMode == 0} - field = "Extra IAC if Throttle Pressed", iacByTpsTaper; - field = "Detailed status in console", isVerboseIAC - field = "#See Warmup idle multiplier" - field = "! Solenoid Idle control requires above zero RPM" - slider = "Manual IAC Position", manIdlePosition, horizontal + panel = idleExtra dialog = idleTimingPidCorrDialog, "", yAxis - field = "!This timing correction mode is Alpha Version" - field = "Use Auto-PID ignition advance control", useIdleTimingPidControl - field = "#See Idle Target RPM Curve" - field = "P-factor", idleTimingPid_pFactor, {useIdleTimingPidControl == 1} - field = "I-factor", idleTimingPid_iFactor, {useIdleTimingPidControl == 1} - field = "D-factor", idleTimingPid_dFactor, {useIdleTimingPidControl == 1} - field = "Offset", idleTimingPid_offset, {useIdleTimingPidControl == 1} - field = "Min Delta", idleTimingPid_minValue, {useIdleTimingPidControl == 1} - field = "Max Delta", idleTimingPid_maxValue, {useIdleTimingPidControl == 1} - field = "#See RPM dead zone to deactivate IAC pid" - field = "RPM working zone for timing pid", idleTimingPidWorkZone, {useIdleTimingPidControl == 1} - field = "RPM working zone falloff", idlePidFalloffDeltaRpm, {useIdleTimingPidControl == 1} - field = "RPM dead zone to deactivate timing pid", idleTimingPidDeadZone, {useIdleTimingPidControl == 1} + field = "" + field = "Enable closed loop idle ignition timing", useIdleTimingPidControl + field = "" + field = "#Gain is in degrees advance per rpm away from target" + field = "#A good starting point is 0.1 = 10 deg per 100 rpm" + field = "Proportional gain", idleTimingPid_pFactor, {useIdleTimingPidControl == 1} + field = "Derivative gain", idleTimingPid_dFactor, {useIdleTimingPidControl == 1} + field = "" + field = "Min adjustment (retard)", idleTimingPid_minValue, {useIdleTimingPidControl == 1} + field = "Max adjustment (advance)", idleTimingPid_maxValue, {useIdleTimingPidControl == 1} + field = "" + field = "#Use debug mode 'Timing' to view idle timing adjustment" ; Engine->Fan Settings dialog = fanSetting, "Fan Settings" diff --git a/firmware/tunerstudio/generated/rusefi_prometheus_405.ini b/firmware/tunerstudio/generated/rusefi_prometheus_405.ini index 8dd83cf55f..c3ad843c32 100644 --- a/firmware/tunerstudio/generated/rusefi_prometheus_405.ini +++ b/firmware/tunerstudio/generated/rusefi_prometheus_405.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.12.26.prometheus_405.1295337818" + signature = "rusEFI 2020.12.30.prometheus_405.3971156392" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.12.26.prometheus_405.1295337818" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.12.30.prometheus_405.3971156392" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -77,7 +77,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sat Dec 26 21:17:46 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Dec 30 13:37:23 UTC 2020 pageSize = 20000 page = 1 @@ -1336,6 +1336,7 @@ page = 1 acIdleExtraMin = "Additional idle PID minValue while A/C is active" acFanPin = "Optional Radiator Fan used with A/C" sdCardPeriodMs = "SD card logging period, in milliseconds" + idlePidDeactivationTpsThreshold = "Below this throttle position, the engine is considered idling." triggerErrorPin = "This pin is used for debugging - snap a logic analyzer on it and see if it's ever high" cdmInputPin = "Saab Combustion Detection Module knock signal input pin\nalso known as Saab Ion Sensing Module" sensorChartMode = "rusEfi console Sensor Sniffer mode" @@ -2796,16 +2797,16 @@ menuDialog = main menu = "&Idle" subMenu = idleSettings, "Idle settings" subMenu = idlehw, "Idle hardware" - subMenu = std_separator - subMenu = cltIdleRPMCurve, "Target RPM", 0, {idleMode == 0} + subMenu = std_separator + subMenu = cltIdleRPMCurve, "Target RPM" + subMenu = cltIdleCurve, "CLT multiplier" + subMenu = std_separator + subMenu = idleTimingPidCorrDialog, "Closed-loop idle timing" subMenu = iacPidMultTbl, "IAC PID Multiplier", 0, {idleMode == 0 && useIacPidMultTable == 1} + subMenu = iacCoastingCurve, "Coasting IAC Position for Auto-Idle", 0, {useIacTableForCoasting == 1} subMenu = std_separator subMenu = idleVeCurve, "VE", 0, {useSeparateVeForIdle == 1} subMenu = idleAdvanceCurve, "Ignition advance", 0, {useSeparateAdvanceForIdle == 1} - subMenu = std_separator - subMenu = idleTimingPidCorrDialog, "Closed-loop idle timing" - subMenu = cltIdleCurve, "CLT multiplier" - subMenu = iacCoastingCurve, "Coasting IAC Position for Auto-Idle", 0, {useIacTableForCoasting == 1} menu = "&Advanced" subMenu = boostDialog, "Boost Control" @@ -3875,11 +3876,11 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "!ECU reboot needed to apply these settings" field = "Use Stepper", useStepperIdle field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Use electronic throttle for idle", useETBforIdleControl, { throttlePedalPositionAdcChannel != 0 } + field = "Electronic throttle idle range", etbIdleThrottleRange, { useETBforIdleControl == 1 } panel = idleHwType - dialog = idlePidSettings, "PID IAC Control" - field = "#See Idle Target RPM Curve" - field = "use Cic Pid", useCicPidForIdle + dialog = idlePidSettings, "Closed Loop Idle" field = "P-factor", idleRpmPid_pFactor field = "I-factor", idleRpmPid_iFactor field = "derivativeFilterLoss", idle_derivativeFilterLoss @@ -3892,43 +3893,48 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "Max", idleRpmPid_maxValue field = "iTerm Min", idlerpmpid_iTermMin field = "iTerm Max", idlerpmpid_iTermMax - field = "RPM dead zone to deactivate IAC pid", idlePidRpmDeadZone - field = "RPM upper limit to deactivate IAC pid",idlePidRpmUpperLimit field = "PID Extra for low RPM", pidExtraForLowRpm - field = "Use IAC PID Multiplier Table", useIacPidMultTable - - - dialog = idleSettings, "", yAxis - field = "Idle IAC control mode", idleMode - field = useInstantRpmForIdle, useInstantRpmForIdle - field = "use ETB for idle", useETBforIdleControl, { throttlePedalPositionAdcChannel != 0 } - field = "ETB Idle range", etbIdleThrottleRange, {useETBforIdleControl == 1} - field = "Use separate Ignition Table for idle", useSeparateAdvanceForIdle - field = "Use separate VE Table for idle", useSeparateVeForIdle - field = "Use separate IAC Table For Coasting", useIacTableForCoasting, {idleMode == 0} field = idleIncrementalPidCic, idleIncrementalPidCic - field = "TPS deactivation threshold", idlePidDeactivationTpsThreshold + field = "use Cic Pid", useCicPidForIdle + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM dead zone", idlePidRpmDeadZone + + dialog = idleExtra, "Extra Idle Features" + field = "Extra idle air if throttle pressed", iacByTpsTaper + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "Use coasting idle table", useIacTableForCoasting, {idleMode == 0} + field = useInstantRpmForIdle, useInstantRpmForIdle + field = "Detailed status in console", isVerboseIAC + + dialog = idleSettings, "", yAxis + field = "Idle control mode", idleMode + + field = "! Solenoid idle control requires above zero RPM" + slider = "Open loop idle position", manIdlePosition, horizontal + field = "" + + panel = idleGating, "" panel = idlePidSettings, { idleMode == 0} - field = "Extra IAC if Throttle Pressed", iacByTpsTaper; - field = "Detailed status in console", isVerboseIAC - field = "#See Warmup idle multiplier" - field = "! Solenoid Idle control requires above zero RPM" - slider = "Manual IAC Position", manIdlePosition, horizontal + panel = idleExtra dialog = idleTimingPidCorrDialog, "", yAxis - field = "!This timing correction mode is Alpha Version" - field = "Use Auto-PID ignition advance control", useIdleTimingPidControl - field = "#See Idle Target RPM Curve" - field = "P-factor", idleTimingPid_pFactor, {useIdleTimingPidControl == 1} - field = "I-factor", idleTimingPid_iFactor, {useIdleTimingPidControl == 1} - field = "D-factor", idleTimingPid_dFactor, {useIdleTimingPidControl == 1} - field = "Offset", idleTimingPid_offset, {useIdleTimingPidControl == 1} - field = "Min Delta", idleTimingPid_minValue, {useIdleTimingPidControl == 1} - field = "Max Delta", idleTimingPid_maxValue, {useIdleTimingPidControl == 1} - field = "#See RPM dead zone to deactivate IAC pid" - field = "RPM working zone for timing pid", idleTimingPidWorkZone, {useIdleTimingPidControl == 1} - field = "RPM working zone falloff", idlePidFalloffDeltaRpm, {useIdleTimingPidControl == 1} - field = "RPM dead zone to deactivate timing pid", idleTimingPidDeadZone, {useIdleTimingPidControl == 1} + field = "" + field = "Enable closed loop idle ignition timing", useIdleTimingPidControl + field = "" + field = "#Gain is in degrees advance per rpm away from target" + field = "#A good starting point is 0.1 = 10 deg per 100 rpm" + field = "Proportional gain", idleTimingPid_pFactor, {useIdleTimingPidControl == 1} + field = "Derivative gain", idleTimingPid_dFactor, {useIdleTimingPidControl == 1} + field = "" + field = "Min adjustment (retard)", idleTimingPid_minValue, {useIdleTimingPidControl == 1} + field = "Max adjustment (advance)", idleTimingPid_maxValue, {useIdleTimingPidControl == 1} + field = "" + field = "#Use debug mode 'Timing' to view idle timing adjustment" ; Engine->Fan Settings dialog = fanSetting, "Fan Settings" diff --git a/firmware/tunerstudio/generated/rusefi_prometheus_469.ini b/firmware/tunerstudio/generated/rusefi_prometheus_469.ini index 4e106b5f66..1d51e0e6bc 100644 --- a/firmware/tunerstudio/generated/rusefi_prometheus_469.ini +++ b/firmware/tunerstudio/generated/rusefi_prometheus_469.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.12.26.prometheus_469.1295337818" + signature = "rusEFI 2020.12.30.prometheus_469.3971156392" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.12.26.prometheus_469.1295337818" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.12.30.prometheus_469.3971156392" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -77,7 +77,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sat Dec 26 21:17:44 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Dec 30 13:37:21 UTC 2020 pageSize = 20000 page = 1 @@ -1336,6 +1336,7 @@ page = 1 acIdleExtraMin = "Additional idle PID minValue while A/C is active" acFanPin = "Optional Radiator Fan used with A/C" sdCardPeriodMs = "SD card logging period, in milliseconds" + idlePidDeactivationTpsThreshold = "Below this throttle position, the engine is considered idling." triggerErrorPin = "This pin is used for debugging - snap a logic analyzer on it and see if it's ever high" cdmInputPin = "Saab Combustion Detection Module knock signal input pin\nalso known as Saab Ion Sensing Module" sensorChartMode = "rusEfi console Sensor Sniffer mode" @@ -2796,16 +2797,16 @@ menuDialog = main menu = "&Idle" subMenu = idleSettings, "Idle settings" subMenu = idlehw, "Idle hardware" - subMenu = std_separator - subMenu = cltIdleRPMCurve, "Target RPM", 0, {idleMode == 0} + subMenu = std_separator + subMenu = cltIdleRPMCurve, "Target RPM" + subMenu = cltIdleCurve, "CLT multiplier" + subMenu = std_separator + subMenu = idleTimingPidCorrDialog, "Closed-loop idle timing" subMenu = iacPidMultTbl, "IAC PID Multiplier", 0, {idleMode == 0 && useIacPidMultTable == 1} + subMenu = iacCoastingCurve, "Coasting IAC Position for Auto-Idle", 0, {useIacTableForCoasting == 1} subMenu = std_separator subMenu = idleVeCurve, "VE", 0, {useSeparateVeForIdle == 1} subMenu = idleAdvanceCurve, "Ignition advance", 0, {useSeparateAdvanceForIdle == 1} - subMenu = std_separator - subMenu = idleTimingPidCorrDialog, "Closed-loop idle timing" - subMenu = cltIdleCurve, "CLT multiplier" - subMenu = iacCoastingCurve, "Coasting IAC Position for Auto-Idle", 0, {useIacTableForCoasting == 1} menu = "&Advanced" subMenu = boostDialog, "Boost Control" @@ -3875,11 +3876,11 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "!ECU reboot needed to apply these settings" field = "Use Stepper", useStepperIdle field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Use electronic throttle for idle", useETBforIdleControl, { throttlePedalPositionAdcChannel != 0 } + field = "Electronic throttle idle range", etbIdleThrottleRange, { useETBforIdleControl == 1 } panel = idleHwType - dialog = idlePidSettings, "PID IAC Control" - field = "#See Idle Target RPM Curve" - field = "use Cic Pid", useCicPidForIdle + dialog = idlePidSettings, "Closed Loop Idle" field = "P-factor", idleRpmPid_pFactor field = "I-factor", idleRpmPid_iFactor field = "derivativeFilterLoss", idle_derivativeFilterLoss @@ -3892,43 +3893,48 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "Max", idleRpmPid_maxValue field = "iTerm Min", idlerpmpid_iTermMin field = "iTerm Max", idlerpmpid_iTermMax - field = "RPM dead zone to deactivate IAC pid", idlePidRpmDeadZone - field = "RPM upper limit to deactivate IAC pid",idlePidRpmUpperLimit field = "PID Extra for low RPM", pidExtraForLowRpm - field = "Use IAC PID Multiplier Table", useIacPidMultTable - - - dialog = idleSettings, "", yAxis - field = "Idle IAC control mode", idleMode - field = useInstantRpmForIdle, useInstantRpmForIdle - field = "use ETB for idle", useETBforIdleControl, { throttlePedalPositionAdcChannel != 0 } - field = "ETB Idle range", etbIdleThrottleRange, {useETBforIdleControl == 1} - field = "Use separate Ignition Table for idle", useSeparateAdvanceForIdle - field = "Use separate VE Table for idle", useSeparateVeForIdle - field = "Use separate IAC Table For Coasting", useIacTableForCoasting, {idleMode == 0} field = idleIncrementalPidCic, idleIncrementalPidCic - field = "TPS deactivation threshold", idlePidDeactivationTpsThreshold + field = "use Cic Pid", useCicPidForIdle + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM dead zone", idlePidRpmDeadZone + + dialog = idleExtra, "Extra Idle Features" + field = "Extra idle air if throttle pressed", iacByTpsTaper + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "Use coasting idle table", useIacTableForCoasting, {idleMode == 0} + field = useInstantRpmForIdle, useInstantRpmForIdle + field = "Detailed status in console", isVerboseIAC + + dialog = idleSettings, "", yAxis + field = "Idle control mode", idleMode + + field = "! Solenoid idle control requires above zero RPM" + slider = "Open loop idle position", manIdlePosition, horizontal + field = "" + + panel = idleGating, "" panel = idlePidSettings, { idleMode == 0} - field = "Extra IAC if Throttle Pressed", iacByTpsTaper; - field = "Detailed status in console", isVerboseIAC - field = "#See Warmup idle multiplier" - field = "! Solenoid Idle control requires above zero RPM" - slider = "Manual IAC Position", manIdlePosition, horizontal + panel = idleExtra dialog = idleTimingPidCorrDialog, "", yAxis - field = "!This timing correction mode is Alpha Version" - field = "Use Auto-PID ignition advance control", useIdleTimingPidControl - field = "#See Idle Target RPM Curve" - field = "P-factor", idleTimingPid_pFactor, {useIdleTimingPidControl == 1} - field = "I-factor", idleTimingPid_iFactor, {useIdleTimingPidControl == 1} - field = "D-factor", idleTimingPid_dFactor, {useIdleTimingPidControl == 1} - field = "Offset", idleTimingPid_offset, {useIdleTimingPidControl == 1} - field = "Min Delta", idleTimingPid_minValue, {useIdleTimingPidControl == 1} - field = "Max Delta", idleTimingPid_maxValue, {useIdleTimingPidControl == 1} - field = "#See RPM dead zone to deactivate IAC pid" - field = "RPM working zone for timing pid", idleTimingPidWorkZone, {useIdleTimingPidControl == 1} - field = "RPM working zone falloff", idlePidFalloffDeltaRpm, {useIdleTimingPidControl == 1} - field = "RPM dead zone to deactivate timing pid", idleTimingPidDeadZone, {useIdleTimingPidControl == 1} + field = "" + field = "Enable closed loop idle ignition timing", useIdleTimingPidControl + field = "" + field = "#Gain is in degrees advance per rpm away from target" + field = "#A good starting point is 0.1 = 10 deg per 100 rpm" + field = "Proportional gain", idleTimingPid_pFactor, {useIdleTimingPidControl == 1} + field = "Derivative gain", idleTimingPid_dFactor, {useIdleTimingPidControl == 1} + field = "" + field = "Min adjustment (retard)", idleTimingPid_minValue, {useIdleTimingPidControl == 1} + field = "Max adjustment (advance)", idleTimingPid_maxValue, {useIdleTimingPidControl == 1} + field = "" + field = "#Use debug mode 'Timing' to view idle timing adjustment" ; Engine->Fan Settings dialog = fanSetting, "Fan Settings" diff --git a/firmware/tunerstudio/generated/rusefi_proteus_f4.ini b/firmware/tunerstudio/generated/rusefi_proteus_f4.ini index ca8a88b4ee..34eef91b6b 100644 --- a/firmware/tunerstudio/generated/rusefi_proteus_f4.ini +++ b/firmware/tunerstudio/generated/rusefi_proteus_f4.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.12.26.proteus_f4.3326543317" + signature = "rusEFI 2020.12.30.proteus_f4.1740719399" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.12.26.proteus_f4.3326543317" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.12.30.proteus_f4.1740719399" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -77,7 +77,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sat Dec 26 21:17:49 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Dec 30 13:37:27 UTC 2020 pageSize = 20000 page = 1 @@ -1336,6 +1336,7 @@ page = 1 acIdleExtraMin = "Additional idle PID minValue while A/C is active" acFanPin = "Optional Radiator Fan used with A/C" sdCardPeriodMs = "SD card logging period, in milliseconds" + idlePidDeactivationTpsThreshold = "Below this throttle position, the engine is considered idling." triggerErrorPin = "This pin is used for debugging - snap a logic analyzer on it and see if it's ever high" cdmInputPin = "Saab Combustion Detection Module knock signal input pin\nalso known as Saab Ion Sensing Module" sensorChartMode = "rusEfi console Sensor Sniffer mode" @@ -2796,16 +2797,16 @@ menuDialog = main menu = "&Idle" subMenu = idleSettings, "Idle settings" subMenu = idlehw, "Idle hardware" - subMenu = std_separator - subMenu = cltIdleRPMCurve, "Target RPM", 0, {idleMode == 0} + subMenu = std_separator + subMenu = cltIdleRPMCurve, "Target RPM" + subMenu = cltIdleCurve, "CLT multiplier" + subMenu = std_separator + subMenu = idleTimingPidCorrDialog, "Closed-loop idle timing" subMenu = iacPidMultTbl, "IAC PID Multiplier", 0, {idleMode == 0 && useIacPidMultTable == 1} + subMenu = iacCoastingCurve, "Coasting IAC Position for Auto-Idle", 0, {useIacTableForCoasting == 1} subMenu = std_separator subMenu = idleVeCurve, "VE", 0, {useSeparateVeForIdle == 1} subMenu = idleAdvanceCurve, "Ignition advance", 0, {useSeparateAdvanceForIdle == 1} - subMenu = std_separator - subMenu = idleTimingPidCorrDialog, "Closed-loop idle timing" - subMenu = cltIdleCurve, "CLT multiplier" - subMenu = iacCoastingCurve, "Coasting IAC Position for Auto-Idle", 0, {useIacTableForCoasting == 1} menu = "&Advanced" subMenu = boostDialog, "Boost Control" @@ -3856,11 +3857,11 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "!ECU reboot needed to apply these settings" field = "Use Stepper", useStepperIdle field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Use electronic throttle for idle", useETBforIdleControl, { throttlePedalPositionAdcChannel != 0 } + field = "Electronic throttle idle range", etbIdleThrottleRange, { useETBforIdleControl == 1 } panel = idleHwType - dialog = idlePidSettings, "PID IAC Control" - field = "#See Idle Target RPM Curve" - field = "use Cic Pid", useCicPidForIdle + dialog = idlePidSettings, "Closed Loop Idle" field = "P-factor", idleRpmPid_pFactor field = "I-factor", idleRpmPid_iFactor field = "derivativeFilterLoss", idle_derivativeFilterLoss @@ -3873,43 +3874,48 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "Max", idleRpmPid_maxValue field = "iTerm Min", idlerpmpid_iTermMin field = "iTerm Max", idlerpmpid_iTermMax - field = "RPM dead zone to deactivate IAC pid", idlePidRpmDeadZone - field = "RPM upper limit to deactivate IAC pid",idlePidRpmUpperLimit field = "PID Extra for low RPM", pidExtraForLowRpm - field = "Use IAC PID Multiplier Table", useIacPidMultTable - - - dialog = idleSettings, "", yAxis - field = "Idle IAC control mode", idleMode - field = useInstantRpmForIdle, useInstantRpmForIdle - field = "use ETB for idle", useETBforIdleControl, { throttlePedalPositionAdcChannel != 0 } - field = "ETB Idle range", etbIdleThrottleRange, {useETBforIdleControl == 1} - field = "Use separate Ignition Table for idle", useSeparateAdvanceForIdle - field = "Use separate VE Table for idle", useSeparateVeForIdle - field = "Use separate IAC Table For Coasting", useIacTableForCoasting, {idleMode == 0} field = idleIncrementalPidCic, idleIncrementalPidCic - field = "TPS deactivation threshold", idlePidDeactivationTpsThreshold + field = "use Cic Pid", useCicPidForIdle + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM dead zone", idlePidRpmDeadZone + + dialog = idleExtra, "Extra Idle Features" + field = "Extra idle air if throttle pressed", iacByTpsTaper + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "Use coasting idle table", useIacTableForCoasting, {idleMode == 0} + field = useInstantRpmForIdle, useInstantRpmForIdle + field = "Detailed status in console", isVerboseIAC + + dialog = idleSettings, "", yAxis + field = "Idle control mode", idleMode + + field = "! Solenoid idle control requires above zero RPM" + slider = "Open loop idle position", manIdlePosition, horizontal + field = "" + + panel = idleGating, "" panel = idlePidSettings, { idleMode == 0} - field = "Extra IAC if Throttle Pressed", iacByTpsTaper; - field = "Detailed status in console", isVerboseIAC - field = "#See Warmup idle multiplier" - field = "! Solenoid Idle control requires above zero RPM" - slider = "Manual IAC Position", manIdlePosition, horizontal + panel = idleExtra dialog = idleTimingPidCorrDialog, "", yAxis - field = "!This timing correction mode is Alpha Version" - field = "Use Auto-PID ignition advance control", useIdleTimingPidControl - field = "#See Idle Target RPM Curve" - field = "P-factor", idleTimingPid_pFactor, {useIdleTimingPidControl == 1} - field = "I-factor", idleTimingPid_iFactor, {useIdleTimingPidControl == 1} - field = "D-factor", idleTimingPid_dFactor, {useIdleTimingPidControl == 1} - field = "Offset", idleTimingPid_offset, {useIdleTimingPidControl == 1} - field = "Min Delta", idleTimingPid_minValue, {useIdleTimingPidControl == 1} - field = "Max Delta", idleTimingPid_maxValue, {useIdleTimingPidControl == 1} - field = "#See RPM dead zone to deactivate IAC pid" - field = "RPM working zone for timing pid", idleTimingPidWorkZone, {useIdleTimingPidControl == 1} - field = "RPM working zone falloff", idlePidFalloffDeltaRpm, {useIdleTimingPidControl == 1} - field = "RPM dead zone to deactivate timing pid", idleTimingPidDeadZone, {useIdleTimingPidControl == 1} + field = "" + field = "Enable closed loop idle ignition timing", useIdleTimingPidControl + field = "" + field = "#Gain is in degrees advance per rpm away from target" + field = "#A good starting point is 0.1 = 10 deg per 100 rpm" + field = "Proportional gain", idleTimingPid_pFactor, {useIdleTimingPidControl == 1} + field = "Derivative gain", idleTimingPid_dFactor, {useIdleTimingPidControl == 1} + field = "" + field = "Min adjustment (retard)", idleTimingPid_minValue, {useIdleTimingPidControl == 1} + field = "Max adjustment (advance)", idleTimingPid_maxValue, {useIdleTimingPidControl == 1} + field = "" + field = "#Use debug mode 'Timing' to view idle timing adjustment" ; Engine->Fan Settings dialog = fanSetting, "Fan Settings" diff --git a/firmware/tunerstudio/generated/rusefi_proteus_f7.ini b/firmware/tunerstudio/generated/rusefi_proteus_f7.ini index e30cecb1e0..9242c2cdd6 100644 --- a/firmware/tunerstudio/generated/rusefi_proteus_f7.ini +++ b/firmware/tunerstudio/generated/rusefi_proteus_f7.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.12.26.proteus_f7.3326543317" + signature = "rusEFI 2020.12.30.proteus_f7.1740719399" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.12.26.proteus_f7.3326543317" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.12.30.proteus_f7.1740719399" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -77,7 +77,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sat Dec 26 21:17:48 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Dec 30 13:37:25 UTC 2020 pageSize = 20000 page = 1 @@ -1336,6 +1336,7 @@ page = 1 acIdleExtraMin = "Additional idle PID minValue while A/C is active" acFanPin = "Optional Radiator Fan used with A/C" sdCardPeriodMs = "SD card logging period, in milliseconds" + idlePidDeactivationTpsThreshold = "Below this throttle position, the engine is considered idling." triggerErrorPin = "This pin is used for debugging - snap a logic analyzer on it and see if it's ever high" cdmInputPin = "Saab Combustion Detection Module knock signal input pin\nalso known as Saab Ion Sensing Module" sensorChartMode = "rusEfi console Sensor Sniffer mode" @@ -2796,16 +2797,16 @@ menuDialog = main menu = "&Idle" subMenu = idleSettings, "Idle settings" subMenu = idlehw, "Idle hardware" - subMenu = std_separator - subMenu = cltIdleRPMCurve, "Target RPM", 0, {idleMode == 0} + subMenu = std_separator + subMenu = cltIdleRPMCurve, "Target RPM" + subMenu = cltIdleCurve, "CLT multiplier" + subMenu = std_separator + subMenu = idleTimingPidCorrDialog, "Closed-loop idle timing" subMenu = iacPidMultTbl, "IAC PID Multiplier", 0, {idleMode == 0 && useIacPidMultTable == 1} + subMenu = iacCoastingCurve, "Coasting IAC Position for Auto-Idle", 0, {useIacTableForCoasting == 1} subMenu = std_separator subMenu = idleVeCurve, "VE", 0, {useSeparateVeForIdle == 1} subMenu = idleAdvanceCurve, "Ignition advance", 0, {useSeparateAdvanceForIdle == 1} - subMenu = std_separator - subMenu = idleTimingPidCorrDialog, "Closed-loop idle timing" - subMenu = cltIdleCurve, "CLT multiplier" - subMenu = iacCoastingCurve, "Coasting IAC Position for Auto-Idle", 0, {useIacTableForCoasting == 1} menu = "&Advanced" subMenu = boostDialog, "Boost Control" @@ -3856,11 +3857,11 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "!ECU reboot needed to apply these settings" field = "Use Stepper", useStepperIdle field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Use electronic throttle for idle", useETBforIdleControl, { throttlePedalPositionAdcChannel != 0 } + field = "Electronic throttle idle range", etbIdleThrottleRange, { useETBforIdleControl == 1 } panel = idleHwType - dialog = idlePidSettings, "PID IAC Control" - field = "#See Idle Target RPM Curve" - field = "use Cic Pid", useCicPidForIdle + dialog = idlePidSettings, "Closed Loop Idle" field = "P-factor", idleRpmPid_pFactor field = "I-factor", idleRpmPid_iFactor field = "derivativeFilterLoss", idle_derivativeFilterLoss @@ -3873,43 +3874,48 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "Max", idleRpmPid_maxValue field = "iTerm Min", idlerpmpid_iTermMin field = "iTerm Max", idlerpmpid_iTermMax - field = "RPM dead zone to deactivate IAC pid", idlePidRpmDeadZone - field = "RPM upper limit to deactivate IAC pid",idlePidRpmUpperLimit field = "PID Extra for low RPM", pidExtraForLowRpm - field = "Use IAC PID Multiplier Table", useIacPidMultTable - - - dialog = idleSettings, "", yAxis - field = "Idle IAC control mode", idleMode - field = useInstantRpmForIdle, useInstantRpmForIdle - field = "use ETB for idle", useETBforIdleControl, { throttlePedalPositionAdcChannel != 0 } - field = "ETB Idle range", etbIdleThrottleRange, {useETBforIdleControl == 1} - field = "Use separate Ignition Table for idle", useSeparateAdvanceForIdle - field = "Use separate VE Table for idle", useSeparateVeForIdle - field = "Use separate IAC Table For Coasting", useIacTableForCoasting, {idleMode == 0} field = idleIncrementalPidCic, idleIncrementalPidCic - field = "TPS deactivation threshold", idlePidDeactivationTpsThreshold + field = "use Cic Pid", useCicPidForIdle + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM dead zone", idlePidRpmDeadZone + + dialog = idleExtra, "Extra Idle Features" + field = "Extra idle air if throttle pressed", iacByTpsTaper + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "Use coasting idle table", useIacTableForCoasting, {idleMode == 0} + field = useInstantRpmForIdle, useInstantRpmForIdle + field = "Detailed status in console", isVerboseIAC + + dialog = idleSettings, "", yAxis + field = "Idle control mode", idleMode + + field = "! Solenoid idle control requires above zero RPM" + slider = "Open loop idle position", manIdlePosition, horizontal + field = "" + + panel = idleGating, "" panel = idlePidSettings, { idleMode == 0} - field = "Extra IAC if Throttle Pressed", iacByTpsTaper; - field = "Detailed status in console", isVerboseIAC - field = "#See Warmup idle multiplier" - field = "! Solenoid Idle control requires above zero RPM" - slider = "Manual IAC Position", manIdlePosition, horizontal + panel = idleExtra dialog = idleTimingPidCorrDialog, "", yAxis - field = "!This timing correction mode is Alpha Version" - field = "Use Auto-PID ignition advance control", useIdleTimingPidControl - field = "#See Idle Target RPM Curve" - field = "P-factor", idleTimingPid_pFactor, {useIdleTimingPidControl == 1} - field = "I-factor", idleTimingPid_iFactor, {useIdleTimingPidControl == 1} - field = "D-factor", idleTimingPid_dFactor, {useIdleTimingPidControl == 1} - field = "Offset", idleTimingPid_offset, {useIdleTimingPidControl == 1} - field = "Min Delta", idleTimingPid_minValue, {useIdleTimingPidControl == 1} - field = "Max Delta", idleTimingPid_maxValue, {useIdleTimingPidControl == 1} - field = "#See RPM dead zone to deactivate IAC pid" - field = "RPM working zone for timing pid", idleTimingPidWorkZone, {useIdleTimingPidControl == 1} - field = "RPM working zone falloff", idlePidFalloffDeltaRpm, {useIdleTimingPidControl == 1} - field = "RPM dead zone to deactivate timing pid", idleTimingPidDeadZone, {useIdleTimingPidControl == 1} + field = "" + field = "Enable closed loop idle ignition timing", useIdleTimingPidControl + field = "" + field = "#Gain is in degrees advance per rpm away from target" + field = "#A good starting point is 0.1 = 10 deg per 100 rpm" + field = "Proportional gain", idleTimingPid_pFactor, {useIdleTimingPidControl == 1} + field = "Derivative gain", idleTimingPid_dFactor, {useIdleTimingPidControl == 1} + field = "" + field = "Min adjustment (retard)", idleTimingPid_minValue, {useIdleTimingPidControl == 1} + field = "Max adjustment (advance)", idleTimingPid_maxValue, {useIdleTimingPidControl == 1} + field = "" + field = "#Use debug mode 'Timing' to view idle timing adjustment" ; Engine->Fan Settings dialog = fanSetting, "Fan Settings" diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/Fields.java b/java_console/models/src/main/java/com/rusefi/config/generated/Fields.java index 2983fdb26f..783ec1b45c 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/Fields.java +++ b/java_console/models/src/main/java/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 gen_config.sh integration/rusefi_config.txt Thu Dec 24 12:32:41 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Dec 30 13:37:13 UTC 2020 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; @@ -1461,7 +1461,7 @@ public class Fields { public static final char TS_SD_R_COMMAND = 'r'; public static final char TS_SD_W_COMMAND = 'w'; public static final char TS_SET_LOGGER_SWITCH = 'l'; - public static final String TS_SIGNATURE = "rusEFI 2020.12.24.all.3247519971"; + public static final String TS_SIGNATURE = "rusEFI 2020.12.30.all.2926252025"; public static final char TS_SINGLE_WRITE_COMMAND = 'W'; public static final int TT_TT_1_16 = 50; public static final int TT_TT_2JZ_1_12 = 29; diff --git a/java_console/rusefi.xml b/java_console/rusefi.xml index e73b37ecca..133ebf3803 100644 --- a/java_console/rusefi.xml +++ b/java_console/rusefi.xml @@ -1,6 +1,6 @@ - +