From 1a55d40863639c2fb1b596d838afd5291bdecc9a Mon Sep 17 00:00:00 2001 From: rusefi Date: Sat, 9 May 2020 03:46:08 -0400 Subject: [PATCH 1/2] Fresh generated - auto --- firmware/tunerstudio/rusefi.ini | 7 ++----- firmware/tunerstudio/rusefi_frankenso.ini | 7 ++----- firmware/tunerstudio/rusefi_kinetis.ini | 7 ++----- firmware/tunerstudio/rusefi_microrusefi.ini | 7 ++----- firmware/tunerstudio/rusefi_prometheus.ini | 7 ++----- firmware/tunerstudio/rusefi_proteus.ini | 7 ++----- 6 files changed, 12 insertions(+), 30 deletions(-) diff --git a/firmware/tunerstudio/rusefi.ini b/firmware/tunerstudio/rusefi.ini index 41fb7279a0..4e468831e5 100644 --- a/firmware/tunerstudio/rusefi.ini +++ b/firmware/tunerstudio/rusefi.ini @@ -89,7 +89,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.bat integration\rusefi_config.txt Thu May 07 13:45:58 EDT 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt Sat May 09 03:45:38 EDT 2020 pageSize = 20000 page = 1 @@ -1430,8 +1430,6 @@ page = 1 [OutputChannels] -fileVersion = { 20200310 } - ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code @@ -1557,7 +1555,7 @@ fileVersion = { 20200310 } seconds = scalar, U32, 112, "sec", 1, 0.0 engineMode = scalar, U32, 116, "em", 1, 0.0; firmwareVersion = scalar, U32, 120,"version_f", 1, 0 - firmwareTsVersion=scalar, U32, 124,"version_p", 1, 0 + ; calibation helpers calibrationValue = scalar, F32, 128, "", 1, 0 @@ -2312,7 +2310,6 @@ gaugeCategory = Sensors - Raw ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg ; important status indicator = { ind_hasFatalError }, "", "CRITICAL ERROR", white, black, red, black - indicator = { firmwareTsVersion == fileVersion }, "WRONG VERSION", "version ok", red, black, white, black indicator = { ind_isWarnNow }, "", "WARNING", white, black, yellow, black indicator = { ind_check_engine }, "", "Check Engine", white, black, red, black indicator = { isIgnitionEnabledIndicator}, "no ignition", "ignition", yellow, black, white, black diff --git a/firmware/tunerstudio/rusefi_frankenso.ini b/firmware/tunerstudio/rusefi_frankenso.ini index 5d03c729c2..87c651c425 100644 --- a/firmware/tunerstudio/rusefi_frankenso.ini +++ b/firmware/tunerstudio/rusefi_frankenso.ini @@ -89,7 +89,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.bat integration\rusefi_config.txt Thu May 07 13:46:02 EDT 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt Sat May 09 03:45:51 EDT 2020 pageSize = 20000 page = 1 @@ -1430,8 +1430,6 @@ page = 1 [OutputChannels] -fileVersion = { 20200310 } - ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code @@ -1557,7 +1555,7 @@ fileVersion = { 20200310 } seconds = scalar, U32, 112, "sec", 1, 0.0 engineMode = scalar, U32, 116, "em", 1, 0.0; firmwareVersion = scalar, U32, 120,"version_f", 1, 0 - firmwareTsVersion=scalar, U32, 124,"version_p", 1, 0 + ; calibation helpers calibrationValue = scalar, F32, 128, "", 1, 0 @@ -2312,7 +2310,6 @@ gaugeCategory = Sensors - Raw ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg ; important status indicator = { ind_hasFatalError }, "", "CRITICAL ERROR", white, black, red, black - indicator = { firmwareTsVersion == fileVersion }, "WRONG VERSION", "version ok", red, black, white, black indicator = { ind_isWarnNow }, "", "WARNING", white, black, yellow, black indicator = { ind_check_engine }, "", "Check Engine", white, black, red, black indicator = { isIgnitionEnabledIndicator}, "no ignition", "ignition", yellow, black, white, black diff --git a/firmware/tunerstudio/rusefi_kinetis.ini b/firmware/tunerstudio/rusefi_kinetis.ini index 169396753c..9bf3ae6fb1 100644 --- a/firmware/tunerstudio/rusefi_kinetis.ini +++ b/firmware/tunerstudio/rusefi_kinetis.ini @@ -89,7 +89,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 kineris_gen_config.bat integration/rusefi_config.txt Fri May 08 16:32:39 EDT 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kineris_gen_config.bat integration/rusefi_config.txt Sat May 09 03:45:55 EDT 2020 pageSize = 20000 page = 1 @@ -1430,8 +1430,6 @@ page = 1 [OutputChannels] -fileVersion = { 20200310 } - ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code @@ -1557,7 +1555,7 @@ fileVersion = { 20200310 } seconds = scalar, U32, 112, "sec", 1, 0.0 engineMode = scalar, U32, 116, "em", 1, 0.0; firmwareVersion = scalar, U32, 120,"version_f", 1, 0 - firmwareTsVersion=scalar, U32, 124,"version_p", 1, 0 + ; calibation helpers calibrationValue = scalar, F32, 128, "", 1, 0 @@ -2312,7 +2310,6 @@ gaugeCategory = Sensors - Raw ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg ; important status indicator = { ind_hasFatalError }, "", "CRITICAL ERROR", white, black, red, black - indicator = { firmwareTsVersion == fileVersion }, "WRONG VERSION", "version ok", red, black, white, black indicator = { ind_isWarnNow }, "", "WARNING", white, black, yellow, black indicator = { ind_check_engine }, "", "Check Engine", white, black, red, black indicator = { isIgnitionEnabledIndicator}, "no ignition", "ignition", yellow, black, white, black diff --git a/firmware/tunerstudio/rusefi_microrusefi.ini b/firmware/tunerstudio/rusefi_microrusefi.ini index c65df9350d..3464a2fee0 100644 --- a/firmware/tunerstudio/rusefi_microrusefi.ini +++ b/firmware/tunerstudio/rusefi_microrusefi.ini @@ -89,7 +89,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.bat integration\rusefi_config.txt Thu May 07 13:46:01 EDT 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt Sat May 09 03:45:49 EDT 2020 pageSize = 20000 page = 1 @@ -1430,8 +1430,6 @@ page = 1 [OutputChannels] -fileVersion = { 20200310 } - ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code @@ -1557,7 +1555,7 @@ fileVersion = { 20200310 } seconds = scalar, U32, 112, "sec", 1, 0.0 engineMode = scalar, U32, 116, "em", 1, 0.0; firmwareVersion = scalar, U32, 120,"version_f", 1, 0 - firmwareTsVersion=scalar, U32, 124,"version_p", 1, 0 + ; calibation helpers calibrationValue = scalar, F32, 128, "", 1, 0 @@ -2312,7 +2310,6 @@ gaugeCategory = Sensors - Raw ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg ; important status indicator = { ind_hasFatalError }, "", "CRITICAL ERROR", white, black, red, black - indicator = { firmwareTsVersion == fileVersion }, "WRONG VERSION", "version ok", red, black, white, black indicator = { ind_isWarnNow }, "", "WARNING", white, black, yellow, black indicator = { ind_check_engine }, "", "Check Engine", white, black, red, black indicator = { isIgnitionEnabledIndicator}, "no ignition", "ignition", yellow, black, white, black diff --git a/firmware/tunerstudio/rusefi_prometheus.ini b/firmware/tunerstudio/rusefi_prometheus.ini index 1924b9b997..d0ecd48207 100644 --- a/firmware/tunerstudio/rusefi_prometheus.ini +++ b/firmware/tunerstudio/rusefi_prometheus.ini @@ -89,7 +89,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.bat integration\rusefi_config.txt Thu May 07 13:46:03 EDT 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt Sat May 09 03:45:52 EDT 2020 pageSize = 20000 page = 1 @@ -1430,8 +1430,6 @@ page = 1 [OutputChannels] -fileVersion = { 20200310 } - ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code @@ -1557,7 +1555,7 @@ fileVersion = { 20200310 } seconds = scalar, U32, 112, "sec", 1, 0.0 engineMode = scalar, U32, 116, "em", 1, 0.0; firmwareVersion = scalar, U32, 120,"version_f", 1, 0 - firmwareTsVersion=scalar, U32, 124,"version_p", 1, 0 + ; calibation helpers calibrationValue = scalar, F32, 128, "", 1, 0 @@ -2312,7 +2310,6 @@ gaugeCategory = Sensors - Raw ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg ; important status indicator = { ind_hasFatalError }, "", "CRITICAL ERROR", white, black, red, black - indicator = { firmwareTsVersion == fileVersion }, "WRONG VERSION", "version ok", red, black, white, black indicator = { ind_isWarnNow }, "", "WARNING", white, black, yellow, black indicator = { ind_check_engine }, "", "Check Engine", white, black, red, black indicator = { isIgnitionEnabledIndicator}, "no ignition", "ignition", yellow, black, white, black diff --git a/firmware/tunerstudio/rusefi_proteus.ini b/firmware/tunerstudio/rusefi_proteus.ini index b43eee3c45..7a3c72d339 100644 --- a/firmware/tunerstudio/rusefi_proteus.ini +++ b/firmware/tunerstudio/rusefi_proteus.ini @@ -89,7 +89,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.bat integration\rusefi_config.txt Thu May 07 13:46:05 EDT 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt Sat May 09 03:45:53 EDT 2020 pageSize = 20000 page = 1 @@ -1430,8 +1430,6 @@ page = 1 [OutputChannels] -fileVersion = { 20200310 } - ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code @@ -1557,7 +1555,7 @@ fileVersion = { 20200310 } seconds = scalar, U32, 112, "sec", 1, 0.0 engineMode = scalar, U32, 116, "em", 1, 0.0; firmwareVersion = scalar, U32, 120,"version_f", 1, 0 - firmwareTsVersion=scalar, U32, 124,"version_p", 1, 0 + ; calibation helpers calibrationValue = scalar, F32, 128, "", 1, 0 @@ -2312,7 +2310,6 @@ gaugeCategory = Sensors - Raw ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg ; important status indicator = { ind_hasFatalError }, "", "CRITICAL ERROR", white, black, red, black - indicator = { firmwareTsVersion == fileVersion }, "WRONG VERSION", "version ok", red, black, white, black indicator = { ind_isWarnNow }, "", "WARNING", white, black, yellow, black indicator = { ind_check_engine }, "", "Check Engine", white, black, red, black indicator = { isIgnitionEnabledIndicator}, "no ignition", "ignition", yellow, black, white, black From 96a800acb969c6d0b6394845c200127c349e81d1 Mon Sep 17 00:00:00 2001 From: Matthew Kennedy Date: Sat, 9 May 2020 06:25:45 -0700 Subject: [PATCH 2/2] fix gppwm on-off mode (#1406) * fix * put it back * do it with PWM instead * comments Co-authored-by: Matthew Kennedy --- .../system/timer/pwm_generator_logic.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/firmware/controllers/system/timer/pwm_generator_logic.cpp b/firmware/controllers/system/timer/pwm_generator_logic.cpp index dc24038a63..e4185e04ca 100644 --- a/firmware/controllers/system/timer/pwm_generator_logic.cpp +++ b/firmware/controllers/system/timer/pwm_generator_logic.cpp @@ -75,13 +75,14 @@ void SimplePwm::setSimplePwmDutyCycle(float dutyCycle) { warning(CUSTOM_PWM_DUTY_TOO_HIGH, "%s duty %.2f", name, dutyCycle); dutyCycle = 1; } - if (dutyCycle == 0.0f && stateChangeCallback != NULL) { - /** - * set the pin low just to be super sure - * this custom handling of zero value comes from CJ125 heater code - * TODO: is this really needed? cover by unit test? - */ + + // Handle zero and full duty cycle. This will cause the PWM output to behave like a plain digital output. + if (dutyCycle == 0.0f && stateChangeCallback) { + // Manually fire falling edge stateChangeCallback(0, arg); + } else if (dutyCycle == 1.0f && stateChangeCallback) { + // Manually fire rising edge + stateChangeCallback(1, arg); } if (dutyCycle < ZERO_PWM_THRESHOLD) {