From 2bbe5258538007854765b0fb3f3f50a23c5f90a9 Mon Sep 17 00:00:00 2001 From: ctzsnooze Date: Sat, 15 Feb 2020 12:19:01 +1100 Subject: [PATCH] Fix iterm_relax at low cutoff values Doesn't adjust threshold upwards when cutoff is reduced below default. This reverts to original setpoint code behaviour. Probably better to go back entirely to the original code. Add changed max on iterm_relax_cutoff to CMS Restore ITERM_RELAX_SETPOINT_THRESHOLD to float to fix Travis error --- src/main/cli/settings.c | 2 +- src/main/cms/cms_menu_imu.c | 2 +- src/main/flight/pid.c | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/cli/settings.c b/src/main/cli/settings.c index e5416bf176..d0e6b272f8 100644 --- a/src/main/cli/settings.c +++ b/src/main/cli/settings.c @@ -1020,7 +1020,7 @@ const clivalue_t valueTable[] = { #if defined(USE_ITERM_RELAX) { "iterm_relax", VAR_UINT8 | PROFILE_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_ITERM_RELAX }, PG_PID_PROFILE, offsetof(pidProfile_t, iterm_relax) }, { "iterm_relax_type", VAR_UINT8 | PROFILE_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_ITERM_RELAX_TYPE }, PG_PID_PROFILE, offsetof(pidProfile_t, iterm_relax_type) }, - { "iterm_relax_cutoff", VAR_UINT8 | PROFILE_VALUE, .config.minmaxUnsigned = { 1, 100 }, PG_PID_PROFILE, offsetof(pidProfile_t, iterm_relax_cutoff) }, + { "iterm_relax_cutoff", VAR_UINT8 | PROFILE_VALUE, .config.minmaxUnsigned = { 1, 50 }, PG_PID_PROFILE, offsetof(pidProfile_t, iterm_relax_cutoff) }, #endif { "iterm_windup", VAR_UINT8 | PROFILE_VALUE, .config.minmaxUnsigned = { 30, 100 }, PG_PID_PROFILE, offsetof(pidProfile_t, itermWindupPointPercent) }, { "iterm_limit", VAR_UINT16 | PROFILE_VALUE, .config.minmaxUnsigned = { 0, 500 }, PG_PID_PROFILE, offsetof(pidProfile_t, itermLimit) }, diff --git a/src/main/cms/cms_menu_imu.c b/src/main/cms/cms_menu_imu.c index abe5088ace..e122218935 100644 --- a/src/main/cms/cms_menu_imu.c +++ b/src/main/cms/cms_menu_imu.c @@ -461,7 +461,7 @@ static const OSD_Entry cmsx_menuProfileOtherEntries[] = { #ifdef USE_ITERM_RELAX { "I_RELAX", OME_TAB, NULL, &(OSD_TAB_t) { &cmsx_iterm_relax, ITERM_RELAX_COUNT - 1, lookupTableItermRelax }, 0 }, { "I_RELAX TYPE", OME_TAB, NULL, &(OSD_TAB_t) { &cmsx_iterm_relax_type, ITERM_RELAX_TYPE_COUNT - 1, lookupTableItermRelaxType }, 0 }, - { "I_RELAX CUTOFF", OME_UINT8, NULL, &(OSD_UINT8_t) { &cmsx_iterm_relax_cutoff, 1, 100, 1 }, 0 }, + { "I_RELAX CUTOFF", OME_UINT8, NULL, &(OSD_UINT8_t) { &cmsx_iterm_relax_cutoff, 1, 50, 1 }, 0 }, #endif #ifdef USE_LAUNCH_CONTROL {"LAUNCH CONTROL", OME_Submenu, cmsMenuChange, &cmsx_menuLaunchControl, 0 }, diff --git a/src/main/flight/pid.c b/src/main/flight/pid.c index 0579cad919..a474bbd6ec 100644 --- a/src/main/flight/pid.c +++ b/src/main/flight/pid.c @@ -665,8 +665,7 @@ void pidInitConfig(const pidProfile_t *pidProfile) itermRelax = pidProfile->iterm_relax; itermRelaxType = pidProfile->iterm_relax_type; itermRelaxCutoff = pidProfile->iterm_relax_cutoff; - // adapt setpoint threshold to user changes from default cutoff value - itermRelaxSetpointThreshold = ITERM_RELAX_SETPOINT_THRESHOLD * ITERM_RELAX_CUTOFF_DEFAULT / itermRelaxCutoff; + itermRelaxSetpointThreshold = ITERM_RELAX_SETPOINT_THRESHOLD; #endif #ifdef USE_ACRO_TRAINER