diff --git a/firmware/tunerstudio/tunerstudio.template.ini b/firmware/tunerstudio/tunerstudio.template.ini index c1b9e47123..6eab50af23 100644 --- a/firmware/tunerstudio/tunerstudio.template.ini +++ b/firmware/tunerstudio/tunerstudio.template.ini @@ -1834,13 +1834,11 @@ menuDialog = main subMenu = cltCrankingTaperDurationCurve, "Cranking taper duration multiplier", 0, {useCrankingIdleTaperTableSetting} menu = "&Idle" @@if_ts_show_idle - subMenu = idleSettings, "Idle settings" @@if_ts_show_idle - subMenu = idlehw, "Idle hardware" @@if_ts_show_idle - subMenu = std_separator @@if_ts_show_idle subMenu = cltIdleRPMCurve, "Target RPM" @@if_ts_show_idle - subMenu = cltIdleCurve, "CLT multiplier" @@if_ts_show_idle + subMenu = idleSettingsOpen, "Open Loop Idle" @@if_ts_show_idle + subMenu = idleSettingsClosed, "Closed Loop Idle" @@if_ts_show_idle + subMenu = idlehw, "Idle hardware" @@if_ts_show_idle subMenu = std_separator @@if_ts_show_idle - subMenu = idleTimingPidCorrDialog, "Closed-loop idle timing" @@if_ts_show_idle subMenu = iacPidMultTbl, "IAC PID multiplier", 0, {idleMode == 0 && useIacPidMultTable} @@if_ts_show_idle subMenu = iacCoastingCurve, "Coasting IAC position", 0, {useIacTableForCoasting} @@if_ts_show_idle subMenu = std_separator @@if_ts_show_idle @@ -3345,18 +3343,20 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_ field = "Electronic throttle idle range", etbIdleThrottleRange panel = idleHwType - dialog = idlePidSettings, "Closed Loop Idle" - field = "P-factor", idleRpmPid_pFactor - field = "I-factor", idleRpmPid_iFactor - field = "derivativeFilterLoss", idle_derivativeFilterLoss - field = "antiwindupFreq", idle_antiwindupFreq - field = "D-factor", idleRpmPid_dFactor - field = "Min", idleRpmPid_minValue - field = "Max", idleRpmPid_maxValue - field = "iTerm Min", idlerpmpid_iTermMin - field = "iTerm Max", idlerpmpid_iTermMax - field = "PID Extra for low RPM", pidExtraForLowRpm - field = "Use IAC PID Multiplier Table", useIacPidMultTable + dialog = idlePidSettings, "IAC Position" + field = "Idle control mode", idleMode + field = "RPM deadzone", idlePidRpmDeadZone { idleMode == @@idle_mode_e_IM_AUTO@@ } + field = "P-factor", idleRpmPid_pFactor { idleMode == @@idle_mode_e_IM_AUTO@@ } + field = "I-factor", idleRpmPid_iFactor { idleMode == @@idle_mode_e_IM_AUTO@@ } + field = "derivativeFilterLoss", idle_derivativeFilterLoss { idleMode == @@idle_mode_e_IM_AUTO@@ } + field = "antiwindupFreq", idle_antiwindupFreq { idleMode == @@idle_mode_e_IM_AUTO@@ } + field = "D-factor", idleRpmPid_dFactor { idleMode == @@idle_mode_e_IM_AUTO@@ } + field = "Min", idleRpmPid_minValue { idleMode == @@idle_mode_e_IM_AUTO@@ } + field = "Max", idleRpmPid_maxValue { idleMode == @@idle_mode_e_IM_AUTO@@ } + field = "iTerm Min", idlerpmpid_iTermMin { idleMode == @@idle_mode_e_IM_AUTO@@ } + field = "iTerm Max", idlerpmpid_iTermMax { idleMode == @@idle_mode_e_IM_AUTO@@ } + field = "PID Extra for low RPM", pidExtraForLowRpm { idleMode == @@idle_mode_e_IM_AUTO@@ } + field = "Use IAC PID Multiplier Table", useIacPidMultTable { idleMode == @@idle_mode_e_IM_AUTO@@ } dialog = idleOpenLoop, "Open Loop Idle" slider = "Open loop base position", manIdlePosition, horizontal @@ -3369,7 +3369,6 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_ dialog = idleGating, "Idle Detection Thresholds" field = "TPS threshold", idlePidDeactivationTpsThreshold field = "RPM upper limit", idlePidRpmUpperLimit - field = "RPM deadzone", idlePidRpmDeadZone field = "Max vehicle speed", maxIdleVss dialog = idleExtra, "Extra Idle Features" @@ -3379,20 +3378,19 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_ field = "Use idle tables for cranking taper", useSeparateIdleTablesForCrankingTaper field = "Use coasting idle table", useIacTableForCoasting - dialog = idleSettings, "", yAxis - field = "Idle control mode", idleMode - + dialog = idleSettingsLeft, "", yAxis field = "! Solenoid idle control is disabled at zero RPM" - ; gating applies both to open loop and closed loop! panel = idleGating ; closed loop mode is an addition on top of open loop, so idleOpenLoop stays open even when closed loop is selected panel = idleOpenLoop - panel = idlePidSettings, { idleMode == @@idle_mode_e_IM_AUTO@@ } panel = idleExtra - dialog = idleTimingPidCorrDialog, "", yAxis - field = "" + dialog = idleSettingsOpen, "", xAxis + panel = idleSettingsLeft + panel = cltIdleCurve + + dialog = idleTimingPidCorrDialog, "Ignition Timing", yAxis field = "Enable closed loop idle ignition timing", useIdleTimingPidControl field = "" field = "#Gain is in degrees advance per rpm away from target" @@ -3402,9 +3400,12 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_ field = "" field = "Min adjustment (retard)", idleTimingPid_minValue, {useIdleTimingPidControl} field = "Max adjustment (advance)", idleTimingPid_maxValue, {useIdleTimingPidControl} - field = "" field = "#Use debug mode 'Timing' to view idle timing adjustment" + dialog = idleSettingsClosed, "", xAxis + panel = idlePidSettings + panel = idleTimingPidCorrDialog + ; Engine->Fan Settings dialog = fan1Settings, "Fan 1" field = "Output", fanPin