diff --git a/source/Core/Inc/configuration.h b/source/Core/Inc/configuration.h index 4b5d430f..304dcc46 100644 --- a/source/Core/Inc/configuration.h +++ b/source/Core/Inc/configuration.h @@ -130,7 +130,13 @@ #define OP_AMP_GAIN_STAGE OP_AMP_GAIN_STAGE_TS100 // #define TEMP_uV_LOOKUP_HAKKO // #define USB_PD_VMAX 20 // Maximum voltage for PD to negotiate -#define PID_TIM_HZ (8) +#define PID_TIM_HZ (8) // Tick rate of the PID loop +#define MAX_TEMP_C 450 // Max soldering temp selectable °C +#define MAX_TEMP_F 850 // Max soldering temp selectable °F +#define MIN_TEMP_C 10 // Min soldering temp selectable °C +#define MIN_TEMP_F 60 // Min soldering temp selectable °F +#define MIN_BOOST_TEMP_C 250 // The min settable temp for boost mode °C +#define MIN_BOOST_TEMP_F 480 // The min settable temp for boost mode °F #endif #ifdef MODEL_Pinecil @@ -144,7 +150,13 @@ #define OP_AMP_GAIN_STAGE OP_AMP_GAIN_STAGE_TS100 // Uses TS100 resistors #define TEMP_uV_LOOKUP_HAKKO // Use Hakko lookup table #define USB_PD_VMAX 20 // Maximum voltage for PD to negotiate -#define PID_TIM_HZ (8) +#define PID_TIM_HZ (8) // Tick rate of the PID loop +#define MAX_TEMP_C 450 // Max soldering temp selectable °C +#define MAX_TEMP_F 850 // Max soldering temp selectable °F +#define MIN_TEMP_C 10 // Min soldering temp selectable °C +#define MIN_TEMP_F 60 // Min soldering temp selectable °F +#define MIN_BOOST_TEMP_C 250 // The min settable temp for boost mode °C +#define MIN_BOOST_TEMP_F 480 // The min settable temp for boost mode °F #endif #ifdef MODEL_TS80 @@ -158,7 +170,13 @@ #define OP_AMP_GAIN_STAGE OP_AMP_GAIN_STAGE_TS80 // #define TEMP_uV_LOOKUP_TS80 // #define USB_PD_VMAX 12 // Maximum voltage for PD to negotiate -#define PID_TIM_HZ (8) +#define PID_TIM_HZ (8) // Tick rate of the PID loop +#define MAX_TEMP_C 450 // Max soldering temp selectable °C +#define MAX_TEMP_F 850 // Max soldering temp selectable °F +#define MIN_TEMP_C 10 // Min soldering temp selectable °C +#define MIN_TEMP_F 60 // Min soldering temp selectable °F +#define MIN_BOOST_TEMP_C 250 // The min settable temp for boost mode °C +#define MIN_BOOST_TEMP_F 480 // The min settable temp for boost mode °F #endif #ifdef MODEL_TS80P @@ -172,22 +190,36 @@ #define OP_AMP_GAIN_STAGE OP_AMP_GAIN_STAGE_TS80 // #define TEMP_uV_LOOKUP_TS80 // #define USB_PD_VMAX 12 // Maximum voltage for PD to negotiate -#define PID_TIM_HZ (8) +#define PID_TIM_HZ (8) // Tick rate of the PID loop +#define MAX_TEMP_C 450 // Max soldering temp selectable °C +#define MAX_TEMP_F 850 // Max soldering temp selectable °F +#define MIN_TEMP_C 10 // Min soldering temp selectable °C +#define MIN_TEMP_F 60 // Min soldering temp selectable °F +#define MIN_BOOST_TEMP_C 250 // The min settable temp for boost mode °C +#define MIN_BOOST_TEMP_F 480 // The min settable temp for boost mode °F + #endif #ifdef MODEL_MHP30 -#define SOLDERING_TEMP 200 // Default soldering temp is 200.0 °C -#define VOLTAGE_DIV 360 // Default for MHP30 -#define PID_POWER_LIMIT 65 // Sets the max pwm power limit -#define CALIBRATION_OFFSET 0 // the adc offset in uV - MHP compensates automagically -#define POWER_LIMIT 65 // 65 watts default power limit -#define MAX_POWER_LIMIT 65 // -#define POWER_LIMIT_STEPS 2 // -#define OP_AMP_GAIN_STAGE OP_AMP_GAIN_STAGE_MHP30 // -#define USB_PD_VMAX 20 // Maximum voltage for PD to negotiate -#define MODEL_HAS_DCDC // Has inductor to current filter -#define PID_TIM_HZ (16) // -#define THERMAL_MASS_OVERSHOOTS +#define SOLDERING_TEMP 200 // Default soldering temp is 200.0 °C +#define VOLTAGE_DIV 360 // Default for MHP30 +#define PID_POWER_LIMIT 65 // Sets the max pwm power limit +#define CALIBRATION_OFFSET 0 // the adc offset in uV - MHP compensates automagically +#define POWER_LIMIT 65 // 65 watts default power limit +#define MAX_POWER_LIMIT 65 // +#define POWER_LIMIT_STEPS 2 // +#define OP_AMP_GAIN_STAGE OP_AMP_GAIN_STAGE_MHP30 // +#define USB_PD_VMAX 20 // Maximum voltage for PD to negotiate +#define MODEL_HAS_DCDC // Has inductor to current filter +#define PID_TIM_HZ (16) // +#define THERMAL_MASS_OVERSHOOTS // We have overshoot so reverse direction of compensation +#define MAX_TEMP_C 300 // Max soldering temp selectable °C +#define MAX_TEMP_F 570 // Max soldering temp selectable °F +#define MIN_TEMP_C 10 // Min soldering temp selectable °C +#define MIN_TEMP_F 60 // Min soldering temp selectable °F +#define MIN_BOOST_TEMP_C 150 // The min settable temp for boost mode °C +#define MIN_BOOST_TEMP_F 300 // The min settable temp for boost mode °F + #endif #ifdef MODEL_TS100 diff --git a/source/Core/Src/gui.cpp b/source/Core/Src/gui.cpp index 92e3a894..62a0a3b0 100644 --- a/source/Core/Src/gui.cpp +++ b/source/Core/Src/gui.cpp @@ -587,25 +587,25 @@ static bool settings_displayDisplayRotation(void) { static bool settings_setBoostTemp(void) { if (systemSettings.temperatureInF) { if (systemSettings.BoostTemp == 0) { - systemSettings.BoostTemp = 480; // loop back at 480 + systemSettings.BoostTemp = MIN_BOOST_TEMP_F; // loop back at 480 } else { systemSettings.BoostTemp += 20; // Go up 20F at a time } - if (systemSettings.BoostTemp > 850) { + if (systemSettings.BoostTemp > MAX_TEMP_F) { systemSettings.BoostTemp = 0; // jump to off } - return systemSettings.BoostTemp == 840; + return systemSettings.BoostTemp == MAX_TEMP_F - 10; } else { if (systemSettings.BoostTemp == 0) { - systemSettings.BoostTemp = 250; // loop back at 250 + systemSettings.BoostTemp = MIN_BOOST_TEMP_C; // loop back at 250 } else { systemSettings.BoostTemp += 10; // Go up 10C at a time } - if (systemSettings.BoostTemp > 450) { + if (systemSettings.BoostTemp > MAX_TEMP_C) { systemSettings.BoostTemp = 0; // Go to off state } - return systemSettings.BoostTemp == 450; + return systemSettings.BoostTemp == MAX_TEMP_C; } } diff --git a/source/Core/Threads/GUIThread.cpp b/source/Core/Threads/GUIThread.cpp index a4ae0be9..06443717 100644 --- a/source/Core/Threads/GUIThread.cpp +++ b/source/Core/Threads/GUIThread.cpp @@ -239,15 +239,15 @@ static void gui_solderingTempAdjust() { } // constrain between 10-450 C if (systemSettings.temperatureInF) { - if (systemSettings.SolderingTemp > 850) - systemSettings.SolderingTemp = 850; - if (systemSettings.SolderingTemp < 60) - systemSettings.SolderingTemp = 60; + if (systemSettings.SolderingTemp > MAX_TEMP_F) + systemSettings.SolderingTemp = MAX_TEMP_F; + if (systemSettings.SolderingTemp < MIN_TEMP_F) + systemSettings.SolderingTemp = MIN_TEMP_F; } else { - if (systemSettings.SolderingTemp > 450) - systemSettings.SolderingTemp = 450; - if (systemSettings.SolderingTemp < 10) - systemSettings.SolderingTemp = 10; + if (systemSettings.SolderingTemp > MAX_TEMP_C) + systemSettings.SolderingTemp = MAX_TEMP_C; + if (systemSettings.SolderingTemp < MIN_TEMP_C) + systemSettings.SolderingTemp = MIN_TEMP_C; } if (xTaskGetTickCount() - lastChange > (TICKS_SECOND * 2))