diff --git a/firmware/config/boards/hellen/cypress/config/controllers/algo/auto_generated_enums.cpp b/firmware/config/boards/hellen/cypress/config/controllers/algo/auto_generated_enums.cpp index 7a61b8d617..50a5e30d81 100644 --- a/firmware/config/boards/hellen/cypress/config/controllers/algo/auto_generated_enums.cpp +++ b/firmware/config/boards/hellen/cypress/config/controllers/algo/auto_generated_enums.cpp @@ -1,11 +1,20 @@ #include "global.h" #include "rusefi_enums.h" #include "rusefi_hw_enums.h" -// was generated automatically by rusEFI tool from rusefi_hw_enums.h // was generated automatically by rusEFI tool from rusefi_enums.h // by enum2string.jar tool on Tue Jul 06 19:57:20 EDT 2021 +// was generated automatically by rusEFI tool from rusefi_hw_enums.h // was generated automatically by rusEFI tool from rusefi_enums.h // by enum2string.jar tool on Thu Jul 08 03:47:45 UTC 2021 // see also gen_config_and_enums.bat +const char *getInjectorNonlinearMode(InjectorNonlinearMode value){ +switch(value) { +case INJ_None: + return "INJ_None"; +case INJ_PolynomialAdder: + return "INJ_PolynomialAdder"; + } + return NULL; +} const char *getPidAutoTune_AutoTunerState(PidAutoTune_AutoTunerState value){ switch(value) { case AUTOTUNER_OFF: diff --git a/firmware/config/boards/hellen/cypress/config/controllers/algo/auto_generated_enums.h b/firmware/config/boards/hellen/cypress/config/controllers/algo/auto_generated_enums.h index 21dc11eb7b..2325ae14ba 100644 --- a/firmware/config/boards/hellen/cypress/config/controllers/algo/auto_generated_enums.h +++ b/firmware/config/boards/hellen/cypress/config/controllers/algo/auto_generated_enums.h @@ -1,4 +1,4 @@ -// was generated automatically by rusEFI tool from rusefi_hw_enums.h // was generated automatically by rusEFI tool from rusefi_enums.h // by enum2string.jar tool on Sat Jun 12 18:06:27 UTC 2021 +// was generated automatically by rusEFI tool from rusefi_hw_enums.h // was generated automatically by rusEFI tool from rusefi_enums.h // by enum2string.jar tool on Thu Jul 08 03:47:45 UTC 2021 // see also gen_config_and_enums.bat @@ -6,6 +6,7 @@ #include "rusefi_enums.h" #include "rusefi_hw_enums.h" #pragma once +const char *getInjectorNonlinearMode(InjectorNonlinearMode value); const char *getPidAutoTune_AutoTunerState(PidAutoTune_AutoTunerState value); const char *getPidAutoTune_Peak(PidAutoTune_Peak value); const char *getAdc_channel_e(adc_channel_e value); 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 b6ddcc09e5..dfaa06ab84 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 Wed Jul 07 12:39:41 UTC 2021 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Thu Jul 08 03:48:18 UTC 2021 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -3255,20 +3255,28 @@ struct engine_configuration_s { */ float postCrankingDurationSec; /** - * todo: finish implementation #332 * offset 2444 */ ThermistorConf auxTempSensor1; /** - * todo: finish implementation #332 * offset 2476 */ ThermistorConf auxTempSensor2; /** - units + * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. + ms * offset 2508 */ - uint8_t unused2508[6]; + uint16_t applyNonlinearBelowPulse; + /** + * offset 2510 + */ + InjectorNonlinearMode injectorNonlinearMode; + /** + units + * offset 2511 + */ + uint8_t unused2508[3]; /** Hz * offset 2514 @@ -3377,10 +3385,14 @@ struct engine_configuration_s { */ pid_s auxPid[CAMS_PER_BANK]; /** - units * offset 2652 */ - uint8_t unused1366[40]; + float injectorCorrectionPolynomial[8]; + /** + units + * offset 2684 + */ + uint8_t unused1366[8]; /** * offset 2692 */ @@ -4250,4 +4262,4 @@ struct 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 Wed Jul 07 12:39:41 UTC 2021 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Thu Jul 08 03:48:18 UTC 2021 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 00bd43fd9f..3c5be334ee 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 @@ -65,6 +65,7 @@ #define antiLagActivationMode_offset 1024 #define antiLagEnabled_offset 76 #define antiLagRpmTreshold_offset 824 +#define applyNonlinearBelowPulse_offset 2508 #define AUX_DIGITAL_VALVE_COUNT 2 #define auxFastSensor1_adcChannel_offset 680 #define auxPid1_dFactor_offset 2620 @@ -977,6 +978,16 @@ #define injector_pressure_type_e_auto_enum "IPT_Low", "IPT_High" #define injector_s_size 68 #define injectorCompensationMode_offset 2418 +#define injectorCorrectionPolynomial1_offset 2652 +#define injectorCorrectionPolynomial2_offset 2656 +#define injectorCorrectionPolynomial3_offset 2660 +#define injectorCorrectionPolynomial4_offset 2664 +#define injectorCorrectionPolynomial5_offset 2668 +#define injectorCorrectionPolynomial6_offset 2672 +#define injectorCorrectionPolynomial7_offset 2676 +#define injectorCorrectionPolynomial8_offset 2680 +#define InjectorNonlinearMode_auto_enum "INJ_None", "INJ_PolynomialAdder" +#define injectorNonlinearMode_offset 2510 #define injectorPressureType_offset 2129 #define injPhaseLoadBins_offset 15008 #define injPhaseRpmBins_offset 15072 @@ -1298,8 +1309,8 @@ #define showHumanReadableWarning_offset 976 #define showSdCardWarning_offset 76 #define SIGNATURE_BOARD hellen_cypress -#define SIGNATURE_DATE 2021.07.07 -#define SIGNATURE_HASH 953021445 +#define SIGNATURE_DATE 2021.07.08 +#define SIGNATURE_HASH 1858158555 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -1652,7 +1663,7 @@ #define ts_show_spi true #define ts_show_trigger_comparator false #define ts_show_tunerstudio_port true -#define TS_SIGNATURE "rusEFI 2021.07.07.hellen_cypress.953021445" +#define TS_SIGNATURE "rusEFI 2021.07.08.hellen_cypress.1858158555" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' @@ -1714,7 +1725,7 @@ #define unused1128_offset 2116 #define unused1129_offset 2116 #define unused1130_offset 2116 -#define unused1366_offset 2652 +#define unused1366_offset 2684 #define unused1464b0_offset 1464 #define unused1464b4_offset 1464 #define unused1476b19_offset 1476 @@ -1728,7 +1739,7 @@ #define unused2432_offset 2432 #define unused244_2_offset 2424 #define unused244_3_offset 2428 -#define unused2508_offset 2508 +#define unused2508_offset 2511 #define unused2536_offset 2536 #define unused3328_offset 3340 #define unused3942_offset 3992 diff --git a/firmware/config/boards/kinetis/config/controllers/algo/auto_generated_enums.cpp b/firmware/config/boards/kinetis/config/controllers/algo/auto_generated_enums.cpp index ca8aba0c2e..4cff9781cc 100644 --- a/firmware/config/boards/kinetis/config/controllers/algo/auto_generated_enums.cpp +++ b/firmware/config/boards/kinetis/config/controllers/algo/auto_generated_enums.cpp @@ -1,11 +1,20 @@ #include "global.h" #include "rusefi_enums.h" #include "rusefi_hw_enums.h" -// was generated automatically by rusEFI tool from rusefi_hw_enums.h // was generated automatically by rusEFI tool from rusefi_enums.h // by enum2string.jar tool on Tue Jul 06 19:57:20 EDT 2021 +// was generated automatically by rusEFI tool from rusefi_hw_enums.h // was generated automatically by rusEFI tool from rusefi_enums.h // by enum2string.jar tool on Thu Jul 08 03:47:44 UTC 2021 // see also gen_config_and_enums.bat +const char *getInjectorNonlinearMode(InjectorNonlinearMode value){ +switch(value) { +case INJ_None: + return "INJ_None"; +case INJ_PolynomialAdder: + return "INJ_PolynomialAdder"; + } + return NULL; +} const char *getPidAutoTune_AutoTunerState(PidAutoTune_AutoTunerState value){ switch(value) { case AUTOTUNER_OFF: diff --git a/firmware/config/boards/kinetis/config/controllers/algo/auto_generated_enums.h b/firmware/config/boards/kinetis/config/controllers/algo/auto_generated_enums.h index 648d204d43..b519b61d4b 100644 --- a/firmware/config/boards/kinetis/config/controllers/algo/auto_generated_enums.h +++ b/firmware/config/boards/kinetis/config/controllers/algo/auto_generated_enums.h @@ -1,4 +1,4 @@ -// was generated automatically by rusEFI tool from rusefi_hw_enums.h // was generated automatically by rusEFI tool from rusefi_enums.h // by enum2string.jar tool on Sat Jun 12 18:06:26 UTC 2021 +// was generated automatically by rusEFI tool from rusefi_hw_enums.h // was generated automatically by rusEFI tool from rusefi_enums.h // by enum2string.jar tool on Thu Jul 08 03:47:44 UTC 2021 // see also gen_config_and_enums.bat @@ -6,6 +6,7 @@ #include "rusefi_enums.h" #include "rusefi_hw_enums.h" #pragma once +const char *getInjectorNonlinearMode(InjectorNonlinearMode value); const char *getPidAutoTune_AutoTunerState(PidAutoTune_AutoTunerState value); const char *getPidAutoTune_Peak(PidAutoTune_Peak value); const char *getAdc_channel_e(adc_channel_e value); 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 e9dc856782..38af13f222 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 Wed Jul 07 12:39:38 UTC 2021 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Thu Jul 08 03:48:16 UTC 2021 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -3249,20 +3249,28 @@ struct engine_configuration_s { */ float postCrankingDurationSec; /** - * todo: finish implementation #332 * offset 2436 */ ThermistorConf auxTempSensor1; /** - * todo: finish implementation #332 * offset 2468 */ ThermistorConf auxTempSensor2; /** - units + * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. + ms * offset 2500 */ - uint8_t unused2508[6]; + uint16_t applyNonlinearBelowPulse; + /** + * offset 2502 + */ + InjectorNonlinearMode injectorNonlinearMode; + /** + units + * offset 2503 + */ + uint8_t unused2508[3]; /** Hz * offset 2506 @@ -3371,10 +3379,14 @@ struct engine_configuration_s { */ pid_s auxPid[CAMS_PER_BANK]; /** - units * offset 2624 */ - uint8_t unused1366[40]; + float injectorCorrectionPolynomial[8]; + /** + units + * offset 2656 + */ + uint8_t unused1366[8]; /** * offset 2664 */ @@ -4244,4 +4256,4 @@ struct persistent_config_s { }; // end -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Wed Jul 07 12:39:38 UTC 2021 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Thu Jul 08 03:48:16 UTC 2021 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 d42311f48f..65dc9b21c0 100644 --- a/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h +++ b/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h @@ -64,6 +64,7 @@ #define antiLagActivationMode_offset 1024 #define antiLagEnabled_offset 76 #define antiLagRpmTreshold_offset 824 +#define applyNonlinearBelowPulse_offset 2500 #define AUX_DIGITAL_VALVE_COUNT 2 #define auxFastSensor1_adcChannel_offset 680 #define auxPid1_dFactor_offset 2612 @@ -961,6 +962,16 @@ #define injector_pressure_type_e_auto_enum "IPT_Low", "IPT_High" #define injector_s_size 68 #define injectorCompensationMode_offset 2410 +#define injectorCorrectionPolynomial1_offset 2624 +#define injectorCorrectionPolynomial2_offset 2628 +#define injectorCorrectionPolynomial3_offset 2632 +#define injectorCorrectionPolynomial4_offset 2636 +#define injectorCorrectionPolynomial5_offset 2640 +#define injectorCorrectionPolynomial6_offset 2644 +#define injectorCorrectionPolynomial7_offset 2648 +#define injectorCorrectionPolynomial8_offset 2652 +#define InjectorNonlinearMode_auto_enum "INJ_None", "INJ_PolynomialAdder" +#define injectorNonlinearMode_offset 2502 #define injectorPressureType_offset 2129 #define injPhaseLoadBins_offset 14980 #define injPhaseRpmBins_offset 15044 @@ -1282,8 +1293,8 @@ #define showHumanReadableWarning_offset 976 #define showSdCardWarning_offset 76 #define SIGNATURE_BOARD kin -#define SIGNATURE_DATE 2021.07.07 -#define SIGNATURE_HASH 3345496313 +#define SIGNATURE_DATE 2021.07.08 +#define SIGNATURE_HASH 2439312167 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -1636,7 +1647,7 @@ #define ts_show_spi true #define ts_show_trigger_comparator true #define ts_show_tunerstudio_port true -#define TS_SIGNATURE "rusEFI 2021.07.07.kin.3345496313" +#define TS_SIGNATURE "rusEFI 2021.07.08.kin.2439312167" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' @@ -1698,7 +1709,7 @@ #define unused1128_offset 2116 #define unused1129_offset 2116 #define unused1130_offset 2116 -#define unused1366_offset 2624 +#define unused1366_offset 2656 #define unused1464b0_offset 1464 #define unused1464b4_offset 1464 #define unused1476b19_offset 1476 @@ -1712,7 +1723,7 @@ #define unused2432_offset 2424 #define unused244_2_offset 2416 #define unused244_3_offset 2420 -#define unused2508_offset 2500 +#define unused2508_offset 2503 #define unused2536_offset 2528 #define unused3328_offset 3312 #define unused3942_offset 3964 diff --git a/firmware/config/boards/subaru_eg33/config/controllers/algo/auto_generated_enums.cpp b/firmware/config/boards/subaru_eg33/config/controllers/algo/auto_generated_enums.cpp index d210085854..9ed9fbf12b 100644 --- a/firmware/config/boards/subaru_eg33/config/controllers/algo/auto_generated_enums.cpp +++ b/firmware/config/boards/subaru_eg33/config/controllers/algo/auto_generated_enums.cpp @@ -1,11 +1,20 @@ #include "global.h" #include "rusefi_enums.h" #include "rusefi_hw_enums.h" -// was generated automatically by rusEFI tool from rusefi_hw_enums.h // was generated automatically by rusEFI tool from rusefi_enums.h // by enum2string.jar tool on Tue Jul 06 19:57:21 EDT 2021 +// was generated automatically by rusEFI tool from rusefi_hw_enums.h // was generated automatically by rusEFI tool from rusefi_enums.h // by enum2string.jar tool on Thu Jul 08 03:47:45 UTC 2021 // see also gen_config_and_enums.bat +const char *getInjectorNonlinearMode(InjectorNonlinearMode value){ +switch(value) { +case INJ_None: + return "INJ_None"; +case INJ_PolynomialAdder: + return "INJ_PolynomialAdder"; + } + return NULL; +} const char *getPidAutoTune_AutoTunerState(PidAutoTune_AutoTunerState value){ switch(value) { case AUTOTUNER_OFF: diff --git a/firmware/config/boards/subaru_eg33/config/controllers/algo/auto_generated_enums.h b/firmware/config/boards/subaru_eg33/config/controllers/algo/auto_generated_enums.h index 21dc11eb7b..2325ae14ba 100644 --- a/firmware/config/boards/subaru_eg33/config/controllers/algo/auto_generated_enums.h +++ b/firmware/config/boards/subaru_eg33/config/controllers/algo/auto_generated_enums.h @@ -1,4 +1,4 @@ -// was generated automatically by rusEFI tool from rusefi_hw_enums.h // was generated automatically by rusEFI tool from rusefi_enums.h // by enum2string.jar tool on Sat Jun 12 18:06:27 UTC 2021 +// was generated automatically by rusEFI tool from rusefi_hw_enums.h // was generated automatically by rusEFI tool from rusefi_enums.h // by enum2string.jar tool on Thu Jul 08 03:47:45 UTC 2021 // see also gen_config_and_enums.bat @@ -6,6 +6,7 @@ #include "rusefi_enums.h" #include "rusefi_hw_enums.h" #pragma once +const char *getInjectorNonlinearMode(InjectorNonlinearMode value); const char *getPidAutoTune_AutoTunerState(PidAutoTune_AutoTunerState value); const char *getPidAutoTune_Peak(PidAutoTune_Peak value); const char *getAdc_channel_e(adc_channel_e value); diff --git a/firmware/config/boards/subaru_eg33/config/controllers/algo/engine_configuration_generated_structures.h b/firmware/config/boards/subaru_eg33/config/controllers/algo/engine_configuration_generated_structures.h index 57cfd9be46..7458a6cef7 100644 --- a/firmware/config/boards/subaru_eg33/config/controllers/algo/engine_configuration_generated_structures.h +++ b/firmware/config/boards/subaru_eg33/config/controllers/algo/engine_configuration_generated_structures.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on config/boards/subaru_eg33/config/gen_config.sh integration/rusefi_config.txt Wed Jul 07 12:39:43 UTC 2021 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on config/boards/subaru_eg33/config/gen_config.sh integration/rusefi_config.txt Thu Jul 08 03:48:20 UTC 2021 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -3255,20 +3255,28 @@ struct engine_configuration_s { */ float postCrankingDurationSec; /** - * todo: finish implementation #332 * offset 2444 */ ThermistorConf auxTempSensor1; /** - * todo: finish implementation #332 * offset 2476 */ ThermistorConf auxTempSensor2; /** - units + * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. + ms * offset 2508 */ - uint8_t unused2508[6]; + uint16_t applyNonlinearBelowPulse; + /** + * offset 2510 + */ + InjectorNonlinearMode injectorNonlinearMode; + /** + units + * offset 2511 + */ + uint8_t unused2508[3]; /** Hz * offset 2514 @@ -3377,10 +3385,14 @@ struct engine_configuration_s { */ pid_s auxPid[CAMS_PER_BANK]; /** - units * offset 2652 */ - uint8_t unused1366[40]; + float injectorCorrectionPolynomial[8]; + /** + units + * offset 2684 + */ + uint8_t unused1366[8]; /** * offset 2692 */ @@ -4250,4 +4262,4 @@ struct persistent_config_s { }; // end -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on config/boards/subaru_eg33/config/gen_config.sh integration/rusefi_config.txt Wed Jul 07 12:39:43 UTC 2021 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on config/boards/subaru_eg33/config/gen_config.sh integration/rusefi_config.txt Thu Jul 08 03:48:20 UTC 2021 diff --git a/firmware/config/boards/subaru_eg33/config/controllers/algo/rusefi_generated.h b/firmware/config/boards/subaru_eg33/config/controllers/algo/rusefi_generated.h index 51e62fe09c..c2a87b7141 100644 --- a/firmware/config/boards/subaru_eg33/config/controllers/algo/rusefi_generated.h +++ b/firmware/config/boards/subaru_eg33/config/controllers/algo/rusefi_generated.h @@ -65,6 +65,7 @@ #define antiLagActivationMode_offset 1024 #define antiLagEnabled_offset 76 #define antiLagRpmTreshold_offset 824 +#define applyNonlinearBelowPulse_offset 2508 #define AUX_DIGITAL_VALVE_COUNT 2 #define auxFastSensor1_adcChannel_offset 680 #define auxPid1_dFactor_offset 2620 @@ -977,6 +978,16 @@ #define injector_pressure_type_e_auto_enum "IPT_Low", "IPT_High" #define injector_s_size 68 #define injectorCompensationMode_offset 2418 +#define injectorCorrectionPolynomial1_offset 2652 +#define injectorCorrectionPolynomial2_offset 2656 +#define injectorCorrectionPolynomial3_offset 2660 +#define injectorCorrectionPolynomial4_offset 2664 +#define injectorCorrectionPolynomial5_offset 2668 +#define injectorCorrectionPolynomial6_offset 2672 +#define injectorCorrectionPolynomial7_offset 2676 +#define injectorCorrectionPolynomial8_offset 2680 +#define InjectorNonlinearMode_auto_enum "INJ_None", "INJ_PolynomialAdder" +#define injectorNonlinearMode_offset 2510 #define injectorPressureType_offset 2129 #define injPhaseLoadBins_offset 15008 #define injPhaseRpmBins_offset 15072 @@ -1298,8 +1309,8 @@ #define showHumanReadableWarning_offset 976 #define showSdCardWarning_offset 76 #define SIGNATURE_BOARD subaru_eg33_f7 -#define SIGNATURE_DATE 2021.07.07 -#define SIGNATURE_HASH 3622642115 +#define SIGNATURE_DATE 2021.07.08 +#define SIGNATURE_HASH 2179066397 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -1652,7 +1663,7 @@ #define ts_show_spi true #define ts_show_trigger_comparator false #define ts_show_tunerstudio_port false -#define TS_SIGNATURE "rusEFI 2021.07.07.subaru_eg33_f7.3622642115" +#define TS_SIGNATURE "rusEFI 2021.07.08.subaru_eg33_f7.2179066397" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' @@ -1714,7 +1725,7 @@ #define unused1128_offset 2116 #define unused1129_offset 2116 #define unused1130_offset 2116 -#define unused1366_offset 2652 +#define unused1366_offset 2684 #define unused1464b0_offset 1464 #define unused1464b4_offset 1464 #define unused1476b19_offset 1476 @@ -1728,7 +1739,7 @@ #define unused2432_offset 2432 #define unused244_2_offset 2424 #define unused244_3_offset 2428 -#define unused2508_offset 2508 +#define unused2508_offset 2511 #define unused2536_offset 2536 #define unused3328_offset 3340 #define unused3942_offset 3992 diff --git a/firmware/controllers/algo/auto_generated_enums.cpp b/firmware/controllers/algo/auto_generated_enums.cpp index 4e62feb988..46622a99b5 100644 --- a/firmware/controllers/algo/auto_generated_enums.cpp +++ b/firmware/controllers/algo/auto_generated_enums.cpp @@ -1,11 +1,20 @@ #include "global.h" #include "rusefi_enums.h" #include "rusefi_hw_enums.h" -// was generated automatically by rusEFI tool from rusefi_hw_enums.h // was generated automatically by rusEFI tool from rusefi_enums.h // by enum2string.jar tool on Tue Jul 06 19:57:19 EDT 2021 +// was generated automatically by rusEFI tool from rusefi_hw_enums.h // was generated automatically by rusEFI tool from rusefi_enums.h // by enum2string.jar tool on Thu Jul 08 03:47:44 UTC 2021 // see also gen_config_and_enums.bat +const char *getInjectorNonlinearMode(InjectorNonlinearMode value){ +switch(value) { +case INJ_None: + return "INJ_None"; +case INJ_PolynomialAdder: + return "INJ_PolynomialAdder"; + } + return NULL; +} const char *getPidAutoTune_AutoTunerState(PidAutoTune_AutoTunerState value){ switch(value) { case AUTOTUNER_OFF: diff --git a/firmware/controllers/algo/auto_generated_enums.h b/firmware/controllers/algo/auto_generated_enums.h index 648d204d43..b519b61d4b 100644 --- a/firmware/controllers/algo/auto_generated_enums.h +++ b/firmware/controllers/algo/auto_generated_enums.h @@ -1,4 +1,4 @@ -// was generated automatically by rusEFI tool from rusefi_hw_enums.h // was generated automatically by rusEFI tool from rusefi_enums.h // by enum2string.jar tool on Sat Jun 12 18:06:26 UTC 2021 +// was generated automatically by rusEFI tool from rusefi_hw_enums.h // was generated automatically by rusEFI tool from rusefi_enums.h // by enum2string.jar tool on Thu Jul 08 03:47:44 UTC 2021 // see also gen_config_and_enums.bat @@ -6,6 +6,7 @@ #include "rusefi_enums.h" #include "rusefi_hw_enums.h" #pragma once +const char *getInjectorNonlinearMode(InjectorNonlinearMode value); const char *getPidAutoTune_AutoTunerState(PidAutoTune_AutoTunerState value); const char *getPidAutoTune_Peak(PidAutoTune_Peak value); const char *getAdc_channel_e(adc_channel_e value); diff --git a/firmware/controllers/generated/engine_configuration_generated_structures.h b/firmware/controllers/generated/engine_configuration_generated_structures.h index 0a29f79c22..183a3aee83 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 Wed Jul 07 12:39:02 UTC 2021 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 08 03:47:46 UTC 2021 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -3255,20 +3255,28 @@ struct engine_configuration_s { */ float postCrankingDurationSec; /** - * todo: finish implementation #332 * offset 2444 */ ThermistorConf auxTempSensor1; /** - * todo: finish implementation #332 * offset 2476 */ ThermistorConf auxTempSensor2; /** - units + * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. + ms * offset 2508 */ - uint8_t unused2508[6]; + uint16_t applyNonlinearBelowPulse; + /** + * offset 2510 + */ + InjectorNonlinearMode injectorNonlinearMode; + /** + units + * offset 2511 + */ + uint8_t unused2508[3]; /** Hz * offset 2514 @@ -3377,10 +3385,14 @@ struct engine_configuration_s { */ pid_s auxPid[CAMS_PER_BANK]; /** - units * offset 2652 */ - uint8_t unused1366[40]; + float injectorCorrectionPolynomial[8]; + /** + units + * offset 2684 + */ + uint8_t unused1366[8]; /** * offset 2692 */ @@ -4250,4 +4262,4 @@ struct persistent_config_s { }; // end -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Jul 07 12:39:02 UTC 2021 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 08 03:47:46 UTC 2021 diff --git a/firmware/controllers/generated/fsio_enums_generated.def b/firmware/controllers/generated/fsio_enums_generated.def index 4da12fcfc5..ac839bffcf 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 Wed Jul 07 12:39:02 UTC 2021 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 08 03:47:46 UTC 2021 // by class com.rusefi.output.FileFsioSettingsConsumer FSIO_SETTING_ACIDLEEXTRAOFFSET = 1000, diff --git a/firmware/controllers/generated/fsio_getters.def b/firmware/controllers/generated/fsio_getters.def index f97da5bfdc..860c3dcfad 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 Wed Jul 07 12:39:02 UTC 2021 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 08 03:47:46 UTC 2021 // by class com.rusefi.output.FileFsioSettingsConsumer case FSIO_SETTING_ACIDLEEXTRAOFFSET: diff --git a/firmware/controllers/generated/fsio_names.def b/firmware/controllers/generated/fsio_names.def index 7fb5d080e1..aef4b74309 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 Wed Jul 07 12:39:02 UTC 2021 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 08 03:47:46 UTC 2021 // by class com.rusefi.output.FileFsioSettingsConsumer static LENameOrdinalPair leacIdleExtraOffset(FSIO_SETTING_ACIDLEEXTRAOFFSET, "cfg_acIdleExtraOffset"); diff --git a/firmware/controllers/generated/fsio_strings.def b/firmware/controllers/generated/fsio_strings.def index 92c9871cc8..de1ff1dc22 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 Wed Jul 07 12:39:02 UTC 2021 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 08 03:47:46 UTC 2021 // by class com.rusefi.output.FileFsioSettingsConsumer case FSIO_SETTING_ACIDLEEXTRAOFFSET: diff --git a/firmware/controllers/generated/rusefi_generated.h b/firmware/controllers/generated/rusefi_generated.h index 8e9a99207d..bfbedf71b2 100644 --- a/firmware/controllers/generated/rusefi_generated.h +++ b/firmware/controllers/generated/rusefi_generated.h @@ -64,6 +64,7 @@ #define antiLagActivationMode_offset 1024 #define antiLagEnabled_offset 76 #define antiLagRpmTreshold_offset 824 +#define applyNonlinearBelowPulse_offset 2508 #define AUX_DIGITAL_VALVE_COUNT 2 #define auxFastSensor1_adcChannel_offset 680 #define auxPid1_dFactor_offset 2620 @@ -975,6 +976,16 @@ #define injector_pressure_type_e_auto_enum "IPT_Low", "IPT_High" #define injector_s_size 68 #define injectorCompensationMode_offset 2418 +#define injectorCorrectionPolynomial1_offset 2652 +#define injectorCorrectionPolynomial2_offset 2656 +#define injectorCorrectionPolynomial3_offset 2660 +#define injectorCorrectionPolynomial4_offset 2664 +#define injectorCorrectionPolynomial5_offset 2668 +#define injectorCorrectionPolynomial6_offset 2672 +#define injectorCorrectionPolynomial7_offset 2676 +#define injectorCorrectionPolynomial8_offset 2680 +#define InjectorNonlinearMode_auto_enum "INJ_None", "INJ_PolynomialAdder" +#define injectorNonlinearMode_offset 2510 #define injectorPressureType_offset 2129 #define injPhaseLoadBins_offset 15008 #define injPhaseRpmBins_offset 15072 @@ -1295,8 +1306,8 @@ #define showHumanReadableWarning_offset 976 #define showSdCardWarning_offset 76 #define SIGNATURE_BOARD all -#define SIGNATURE_DATE 2021.07.07 -#define SIGNATURE_HASH 2058432469 +#define SIGNATURE_DATE 2021.07.08 +#define SIGNATURE_HASH 750642187 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -1649,7 +1660,7 @@ #define ts_show_spi true #define ts_show_trigger_comparator false #define ts_show_tunerstudio_port true -#define TS_SIGNATURE "rusEFI 2021.07.07.all.2058432469" +#define TS_SIGNATURE "rusEFI 2021.07.08.all.750642187" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' @@ -1711,7 +1722,7 @@ #define unused1128_offset 2116 #define unused1129_offset 2116 #define unused1130_offset 2116 -#define unused1366_offset 2652 +#define unused1366_offset 2684 #define unused1464b0_offset 1464 #define unused1464b4_offset 1464 #define unused1476b19_offset 1476 @@ -1725,7 +1736,7 @@ #define unused2432_offset 2432 #define unused244_2_offset 2424 #define unused244_3_offset 2428 -#define unused2508_offset 2508 +#define unused2508_offset 2511 #define unused2536_offset 2536 #define unused3328_offset 3340 #define unused3942_offset 3992 diff --git a/firmware/controllers/generated/signature_all.h b/firmware/controllers/generated/signature_all.h index c93ed4b6c2..cddde8fa69 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 2021.07.07 -#define SIGNATURE_HASH 2058432469 -#define TS_SIGNATURE "rusEFI 2021.07.07.all.2058432469" +#define SIGNATURE_DATE 2021.07.08 +#define SIGNATURE_HASH 750642187 +#define TS_SIGNATURE "rusEFI 2021.07.08.all.750642187" diff --git a/firmware/controllers/generated/signature_f429-discovery.h b/firmware/controllers/generated/signature_f429-discovery.h index 97cc324c17..c2112bebe3 100644 --- a/firmware/controllers/generated/signature_f429-discovery.h +++ b/firmware/controllers/generated/signature_f429-discovery.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD f429-discovery -#define SIGNATURE_DATE 2021.07.07 -#define SIGNATURE_HASH 953021445 -#define TS_SIGNATURE "rusEFI 2021.07.07.f429-discovery.953021445" +#define SIGNATURE_DATE 2021.07.08 +#define SIGNATURE_HASH 1858158555 +#define TS_SIGNATURE "rusEFI 2021.07.08.f429-discovery.1858158555" diff --git a/firmware/controllers/generated/signature_frankenso_na6.h b/firmware/controllers/generated/signature_frankenso_na6.h index ce306803cb..23ea08b7eb 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 2021.07.07 -#define SIGNATURE_HASH 1124049388 -#define TS_SIGNATURE "rusEFI 2021.07.07.frankenso_na6.1124049388" +#define SIGNATURE_DATE 2021.07.08 +#define SIGNATURE_HASH 351496754 +#define TS_SIGNATURE "rusEFI 2021.07.08.frankenso_na6.351496754" diff --git a/firmware/controllers/generated/signature_hellen121nissan.h b/firmware/controllers/generated/signature_hellen121nissan.h index 0c840ce583..8209b1ce49 100644 --- a/firmware/controllers/generated/signature_hellen121nissan.h +++ b/firmware/controllers/generated/signature_hellen121nissan.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD hellen121nissan -#define SIGNATURE_DATE 2021.07.07 -#define SIGNATURE_HASH 1533223557 -#define TS_SIGNATURE "rusEFI 2021.07.07.hellen121nissan.1533223557" +#define SIGNATURE_DATE 2021.07.08 +#define SIGNATURE_HASH 225438043 +#define TS_SIGNATURE "rusEFI 2021.07.08.hellen121nissan.225438043" diff --git a/firmware/controllers/generated/signature_hellen121vag.h b/firmware/controllers/generated/signature_hellen121vag.h index 36c18c15f0..49c6111d2a 100644 --- a/firmware/controllers/generated/signature_hellen121vag.h +++ b/firmware/controllers/generated/signature_hellen121vag.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD hellen121vag -#define SIGNATURE_DATE 2021.07.07 -#define SIGNATURE_HASH 2290468248 -#define TS_SIGNATURE "rusEFI 2021.07.07.hellen121vag.2290468248" +#define SIGNATURE_DATE 2021.07.08 +#define SIGNATURE_HASH 3733524038 +#define TS_SIGNATURE "rusEFI 2021.07.08.hellen121vag.3733524038" diff --git a/firmware/controllers/generated/signature_hellen128.h b/firmware/controllers/generated/signature_hellen128.h index 8912978a2c..3f6cacab2d 100644 --- a/firmware/controllers/generated/signature_hellen128.h +++ b/firmware/controllers/generated/signature_hellen128.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD hellen128 -#define SIGNATURE_DATE 2021.07.07 -#define SIGNATURE_HASH 873049232 -#define TS_SIGNATURE "rusEFI 2021.07.07.hellen128.873049232" +#define SIGNATURE_DATE 2021.07.08 +#define SIGNATURE_HASH 1644521294 +#define TS_SIGNATURE "rusEFI 2021.07.08.hellen128.1644521294" diff --git a/firmware/controllers/generated/signature_hellen72.h b/firmware/controllers/generated/signature_hellen72.h index c5c7c7ff69..eb9d75d66a 100644 --- a/firmware/controllers/generated/signature_hellen72.h +++ b/firmware/controllers/generated/signature_hellen72.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD hellen72 -#define SIGNATURE_DATE 2021.07.07 -#define SIGNATURE_HASH 1259684650 -#define TS_SIGNATURE "rusEFI 2021.07.07.hellen72.1259684650" +#define SIGNATURE_DATE 2021.07.08 +#define SIGNATURE_HASH 488212724 +#define TS_SIGNATURE "rusEFI 2021.07.08.hellen72.488212724" diff --git a/firmware/controllers/generated/signature_hellenNA6.h b/firmware/controllers/generated/signature_hellenNA6.h index e8a6fe8dc6..5a788bc752 100644 --- a/firmware/controllers/generated/signature_hellenNA6.h +++ b/firmware/controllers/generated/signature_hellenNA6.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD hellenNA6 -#define SIGNATURE_DATE 2021.07.07 -#define SIGNATURE_HASH 120328925 -#define TS_SIGNATURE "rusEFI 2021.07.07.hellenNA6.120328925" +#define SIGNATURE_DATE 2021.07.08 +#define SIGNATURE_HASH 1361107203 +#define TS_SIGNATURE "rusEFI 2021.07.08.hellenNA6.1361107203" diff --git a/firmware/controllers/generated/signature_hellen_cypress.h b/firmware/controllers/generated/signature_hellen_cypress.h index 75c2d61e85..03dc30638a 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 2021.07.07 -#define SIGNATURE_HASH 953021445 -#define TS_SIGNATURE "rusEFI 2021.07.07.hellen_cypress.953021445" +#define SIGNATURE_DATE 2021.07.08 +#define SIGNATURE_HASH 1858158555 +#define TS_SIGNATURE "rusEFI 2021.07.08.hellen_cypress.1858158555" diff --git a/firmware/controllers/generated/signature_kin.h b/firmware/controllers/generated/signature_kin.h index 86adcbff52..f5782978e5 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 2021.07.07 -#define SIGNATURE_HASH 3345496313 -#define TS_SIGNATURE "rusEFI 2021.07.07.kin.3345496313" +#define SIGNATURE_DATE 2021.07.08 +#define SIGNATURE_HASH 2439312167 +#define TS_SIGNATURE "rusEFI 2021.07.08.kin.2439312167" diff --git a/firmware/controllers/generated/signature_mre_f4.h b/firmware/controllers/generated/signature_mre_f4.h index e5f0bfef46..dda8c776fc 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 2021.07.07 -#define SIGNATURE_HASH 2678660225 -#define TS_SIGNATURE "rusEFI 2021.07.07.mre_f4.2678660225" +#define SIGNATURE_DATE 2021.07.08 +#define SIGNATURE_HASH 3383088991 +#define TS_SIGNATURE "rusEFI 2021.07.08.mre_f4.3383088991" diff --git a/firmware/controllers/generated/signature_mre_f7.h b/firmware/controllers/generated/signature_mre_f7.h index d4dafb83c7..1a721cafd4 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 2021.07.07 -#define SIGNATURE_HASH 2678660225 -#define TS_SIGNATURE "rusEFI 2021.07.07.mre_f7.2678660225" +#define SIGNATURE_DATE 2021.07.08 +#define SIGNATURE_HASH 3383088991 +#define TS_SIGNATURE "rusEFI 2021.07.08.mre_f7.3383088991" diff --git a/firmware/controllers/generated/signature_prometheus_405.h b/firmware/controllers/generated/signature_prometheus_405.h index 5c9732bfea..7d18d4729b 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 2021.07.07 -#define SIGNATURE_HASH 1747398115 -#define TS_SIGNATURE "rusEFI 2021.07.07.prometheus_405.1747398115" +#define SIGNATURE_DATE 2021.07.08 +#define SIGNATURE_HASH 1043064381 +#define TS_SIGNATURE "rusEFI 2021.07.08.prometheus_405.1043064381" diff --git a/firmware/controllers/generated/signature_prometheus_469.h b/firmware/controllers/generated/signature_prometheus_469.h index 574185a10a..64d8739926 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 2021.07.07 -#define SIGNATURE_HASH 1747398115 -#define TS_SIGNATURE "rusEFI 2021.07.07.prometheus_469.1747398115" +#define SIGNATURE_DATE 2021.07.08 +#define SIGNATURE_HASH 1043064381 +#define TS_SIGNATURE "rusEFI 2021.07.08.prometheus_469.1043064381" diff --git a/firmware/controllers/generated/signature_proteus_f4.h b/firmware/controllers/generated/signature_proteus_f4.h index 242e720f22..afac45f87e 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 2021.07.07 -#define SIGNATURE_HASH 319263438 -#define TS_SIGNATURE "rusEFI 2021.07.07.proteus_f4.319263438" +#define SIGNATURE_DATE 2021.07.08 +#define SIGNATURE_HASH 1158371600 +#define TS_SIGNATURE "rusEFI 2021.07.08.proteus_f4.1158371600" diff --git a/firmware/controllers/generated/signature_proteus_f7.h b/firmware/controllers/generated/signature_proteus_f7.h index 3aafee6d8d..ad97c3b99d 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 2021.07.07 -#define SIGNATURE_HASH 319263438 -#define TS_SIGNATURE "rusEFI 2021.07.07.proteus_f7.319263438" +#define SIGNATURE_DATE 2021.07.08 +#define SIGNATURE_HASH 1158371600 +#define TS_SIGNATURE "rusEFI 2021.07.08.proteus_f7.1158371600" diff --git a/firmware/controllers/generated/signature_subaru_eg33_f7.h b/firmware/controllers/generated/signature_subaru_eg33_f7.h index 46ec51942c..f091f409fc 100644 --- a/firmware/controllers/generated/signature_subaru_eg33_f7.h +++ b/firmware/controllers/generated/signature_subaru_eg33_f7.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD subaru_eg33_f7 -#define SIGNATURE_DATE 2021.07.07 -#define SIGNATURE_HASH 3622642115 -#define TS_SIGNATURE "rusEFI 2021.07.07.subaru_eg33_f7.3622642115" +#define SIGNATURE_DATE 2021.07.08 +#define SIGNATURE_HASH 2179066397 +#define TS_SIGNATURE "rusEFI 2021.07.08.subaru_eg33_f7.2179066397" diff --git a/firmware/tunerstudio/generated/cache.zip b/firmware/tunerstudio/generated/cache.zip index 6f1685113f..ad778a7fc1 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 aec8345ed7..c295aeb14d 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 2021.07.07.all.2058432469" + signature = "rusEFI 2021.07.08.all.750642187" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.07.07.all.2058432469" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.07.08.all.750642187" ; 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 Wed Jul 07 12:39:02 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 08 03:47:46 UTC 2021 pageSize = 20000 page = 1 @@ -964,7 +964,9 @@ auxTempSensor2_resistance_3 = scalar, F32, 2496, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_bias_resistor = scalar, F32, 2500, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_adcChannel = bits, U08, 2504, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" auxTempSensor2_alignmentFill_at_29 = array, U08, 2505, [3], "units", 1, 0, -20, 100, 0 -unused2508 = array, U08, 2508, [6], "units", 1, 0, -20, 100, 0 +applyNonlinearBelowPulse = scalar, U16, 2508, "ms", 0.001, 0, 0, 30, 3 +injectorNonlinearMode = bits, U08, 2510, [0:0], "None", "Polynomial" +unused2508 = array, U08, 2511, [3], "units", 1, 0, -20, 100, 0 etbFreq = scalar, S16, 2514, "Hz", 1, 0, 0, 10000, 0 etbWastegatePid_pFactor = scalar, F32, 2516, "", 1, 0, -10000, 10000, 4 etbWastegatePid_iFactor = scalar, F32, 2520, "", 1, 0, -10000, 10000, 4 @@ -1019,7 +1021,15 @@ auxPid2_offset = scalar, S16, 2644, "", 1, 0, -1000, 1000, 0 auxPid2_periodMs = scalar, S16, 2646, "ms", 1, 0, 0, 3000, 0 auxPid2_minValue = scalar, S16, 2648, "", 1, 0, -30000, 30000, 0 auxPid2_maxValue = scalar, S16, 2650, "", 1, 0, -30000, 30000, 0 -unused1366 = array, U08, 2652, [40], "units", 1, 0, -20, 100, 0 +injectorCorrectionPolynomial1 = scalar, F32, 2652, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 2656, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 2660, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 2664, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 2668, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 2672, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 2676, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 2680, "", 1, 0, -1000, 1000, 4 +unused1366 = array, U08, 2684, [8], "units", 1, 0, -20, 100, 0 oilPressure_hwChannel = bits, U08, 2692, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" oilPressure_alignmentFill = array, U08, 2693, [3], "unit", 1, 0, 0, 100, 0 oilPressure_v1 = scalar, F32, 2696, "volts", 1, 0, 0, 10, 2 @@ -1504,6 +1514,7 @@ fsioTable4RpmBins = array, F32, 19968, [8], "RPM", 1, 0, 0, 25500, 2 postCrankingDurationSec = "Time over which to taper out after start enrichment" auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + applyNonlinearBelowPulse = "Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment." spi1MosiMode = "Modes count be used for 3v<>5v integration using pull-ups/pull-downs etc." fan2OnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" fan2OffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" @@ -2889,7 +2900,8 @@ menuDialog = main # basic subMenu = injectorConfig, "Injection configuration" subMenu = injectionSettings, "Injection hardware", 0, {isInjectionEnabled == 1} - subMenu = cylinderBankSelect, "Cylinder bank selection" + subMenu = cylinderBankSelect, "Cylinder bank selection", 0, {isInjectionEnabled == 1} + subMenu = injectorNonlinear, "Injector small-pulse correction", 0, {isInjectionEnabled == 1} subMenu = std_separator # Air mass model @@ -3435,6 +3447,21 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "Cylinder 11 ", cylinderBankSelect11, {isInjectionEnabled == 1 && cylindersCount > 10} field = "Cylinder 12 ", cylinderBankSelect12, {isInjectionEnabled == 1 && cylindersCount > 11} + dialog = injectorNonlinearPolynomial, "Polynomial Adder", yAxis + field = "Add nonlinearity below pulse", applyNonlinearBelowPulse + field = "constant", injectorCorrectionPolynomial1 + field = "x^1", injectorCorrectionPolynomial2 + field = "x^2", injectorCorrectionPolynomial3 + field = "x^3", injectorCorrectionPolynomial4 + field = "x^4", injectorCorrectionPolynomial5 + field = "x^5", injectorCorrectionPolynomial6 + field = "x^6", injectorCorrectionPolynomial7 + field = "x^7", injectorCorrectionPolynomial8 + + dialog = injectorNonlinear + field = "Small pulse correction mode", injectorNonlinearMode + panel = injectorNonlinearPolynomial, {1}, { injectorNonlinearMode != 0 } + dialog = testFsio, "FSIO Test" commandButton = "FSIO#1", cmd_test_fsio1 commandButton = "FSIO#2", cmd_test_fsio2 diff --git a/firmware/tunerstudio/generated/rusefi_f429-discovery.ini b/firmware/tunerstudio/generated/rusefi_f429-discovery.ini index fe921660ba..90761cc23a 100644 --- a/firmware/tunerstudio/generated/rusefi_f429-discovery.ini +++ b/firmware/tunerstudio/generated/rusefi_f429-discovery.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.07.07.f429-discovery.953021445" + signature = "rusEFI 2021.07.08.f429-discovery.1858158555" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.07.07.f429-discovery.953021445" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.07.08.f429-discovery.1858158555" ; 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 Wed Jul 07 12:39:05 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 08 03:47:50 UTC 2021 pageSize = 20000 page = 1 @@ -964,7 +964,9 @@ auxTempSensor2_resistance_3 = scalar, F32, 2496, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_bias_resistor = scalar, F32, 2500, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_adcChannel = bits, U08, 2504, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" auxTempSensor2_alignmentFill_at_29 = array, U08, 2505, [3], "units", 1, 0, -20, 100, 0 -unused2508 = array, U08, 2508, [6], "units", 1, 0, -20, 100, 0 +applyNonlinearBelowPulse = scalar, U16, 2508, "ms", 0.001, 0, 0, 30, 3 +injectorNonlinearMode = bits, U08, 2510, [0:0], "None", "Polynomial" +unused2508 = array, U08, 2511, [3], "units", 1, 0, -20, 100, 0 etbFreq = scalar, S16, 2514, "Hz", 1, 0, 0, 10000, 0 etbWastegatePid_pFactor = scalar, F32, 2516, "", 1, 0, -10000, 10000, 4 etbWastegatePid_iFactor = scalar, F32, 2520, "", 1, 0, -10000, 10000, 4 @@ -1019,7 +1021,15 @@ auxPid2_offset = scalar, S16, 2644, "", 1, 0, -1000, 1000, 0 auxPid2_periodMs = scalar, S16, 2646, "ms", 1, 0, 0, 3000, 0 auxPid2_minValue = scalar, S16, 2648, "", 1, 0, -30000, 30000, 0 auxPid2_maxValue = scalar, S16, 2650, "", 1, 0, -30000, 30000, 0 -unused1366 = array, U08, 2652, [40], "units", 1, 0, -20, 100, 0 +injectorCorrectionPolynomial1 = scalar, F32, 2652, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 2656, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 2660, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 2664, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 2668, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 2672, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 2676, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 2680, "", 1, 0, -1000, 1000, 4 +unused1366 = array, U08, 2684, [8], "units", 1, 0, -20, 100, 0 oilPressure_hwChannel = bits, U08, 2692, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" oilPressure_alignmentFill = array, U08, 2693, [3], "unit", 1, 0, 0, 100, 0 oilPressure_v1 = scalar, F32, 2696, "volts", 1, 0, 0, 10, 2 @@ -1504,6 +1514,7 @@ fsioTable4RpmBins = array, F32, 19968, [8], "RPM", 1, 0, 0, 25500, 2 postCrankingDurationSec = "Time over which to taper out after start enrichment" auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + applyNonlinearBelowPulse = "Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment." spi1MosiMode = "Modes count be used for 3v<>5v integration using pull-ups/pull-downs etc." fan2OnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" fan2OffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" @@ -2889,7 +2900,8 @@ menuDialog = main # basic subMenu = injectorConfig, "Injection configuration" subMenu = injectionSettings, "Injection hardware", 0, {isInjectionEnabled == 1} - subMenu = cylinderBankSelect, "Cylinder bank selection" + subMenu = cylinderBankSelect, "Cylinder bank selection", 0, {isInjectionEnabled == 1} + subMenu = injectorNonlinear, "Injector small-pulse correction", 0, {isInjectionEnabled == 1} subMenu = std_separator # Air mass model @@ -3435,6 +3447,21 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "Cylinder 11 ", cylinderBankSelect11, {isInjectionEnabled == 1 && cylindersCount > 10} field = "Cylinder 12 ", cylinderBankSelect12, {isInjectionEnabled == 1 && cylindersCount > 11} + dialog = injectorNonlinearPolynomial, "Polynomial Adder", yAxis + field = "Add nonlinearity below pulse", applyNonlinearBelowPulse + field = "constant", injectorCorrectionPolynomial1 + field = "x^1", injectorCorrectionPolynomial2 + field = "x^2", injectorCorrectionPolynomial3 + field = "x^3", injectorCorrectionPolynomial4 + field = "x^4", injectorCorrectionPolynomial5 + field = "x^5", injectorCorrectionPolynomial6 + field = "x^6", injectorCorrectionPolynomial7 + field = "x^7", injectorCorrectionPolynomial8 + + dialog = injectorNonlinear + field = "Small pulse correction mode", injectorNonlinearMode + panel = injectorNonlinearPolynomial, {1}, { injectorNonlinearMode != 0 } + dialog = testFsio, "FSIO Test" commandButton = "FSIO#1", cmd_test_fsio1 commandButton = "FSIO#2", cmd_test_fsio2 diff --git a/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini b/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini index cf782c4e84..e9f8650028 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 2021.07.07.frankenso_na6.1124049388" + signature = "rusEFI 2021.07.08.frankenso_na6.351496754" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.07.07.frankenso_na6.1124049388" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.07.08.frankenso_na6.351496754" ; 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 Wed Jul 07 12:39:26 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 08 03:48:07 UTC 2021 pageSize = 20000 page = 1 @@ -964,7 +964,9 @@ auxTempSensor2_resistance_3 = scalar, F32, 2496, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_bias_resistor = scalar, F32, 2500, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_adcChannel = bits, U08, 2504, [0:5], "NONE","Analog 3O","Analog 3L","Analog 3M","Analog 3J","Analog 3I","INVALID","Analog 3H","Analog 3G","INVALID","INVALID","INVALID","Analog 3P","Analog 3Q","Analog 3N","Analog VBatt","Analog 3E", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" auxTempSensor2_alignmentFill_at_29 = array, U08, 2505, [3], "units", 1, 0, -20, 100, 0 -unused2508 = array, U08, 2508, [6], "units", 1, 0, -20, 100, 0 +applyNonlinearBelowPulse = scalar, U16, 2508, "ms", 0.001, 0, 0, 30, 3 +injectorNonlinearMode = bits, U08, 2510, [0:0], "None", "Polynomial" +unused2508 = array, U08, 2511, [3], "units", 1, 0, -20, 100, 0 etbFreq = scalar, S16, 2514, "Hz", 1, 0, 0, 10000, 0 etbWastegatePid_pFactor = scalar, F32, 2516, "", 1, 0, -10000, 10000, 4 etbWastegatePid_iFactor = scalar, F32, 2520, "", 1, 0, -10000, 10000, 4 @@ -1019,7 +1021,15 @@ auxPid2_offset = scalar, S16, 2644, "", 1, 0, -1000, 1000, 0 auxPid2_periodMs = scalar, S16, 2646, "ms", 1, 0, 0, 3000, 0 auxPid2_minValue = scalar, S16, 2648, "", 1, 0, -30000, 30000, 0 auxPid2_maxValue = scalar, S16, 2650, "", 1, 0, -30000, 30000, 0 -unused1366 = array, U08, 2652, [40], "units", 1, 0, -20, 100, 0 +injectorCorrectionPolynomial1 = scalar, F32, 2652, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 2656, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 2660, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 2664, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 2668, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 2672, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 2676, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 2680, "", 1, 0, -1000, 1000, 4 +unused1366 = array, U08, 2684, [8], "units", 1, 0, -20, 100, 0 oilPressure_hwChannel = bits, U08, 2692, [0:5], "NONE","Analog 3O","Analog 3L","Analog 3M","Analog 3J","Analog 3I","INVALID","Analog 3H","Analog 3G","INVALID","INVALID","INVALID","Analog 3P","Analog 3Q","Analog 3N","Analog VBatt","Analog 3E", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" oilPressure_alignmentFill = array, U08, 2693, [3], "unit", 1, 0, 0, 100, 0 oilPressure_v1 = scalar, F32, 2696, "volts", 1, 0, 0, 10, 2 @@ -1504,6 +1514,7 @@ fsioTable4RpmBins = array, F32, 19968, [8], "RPM", 1, 0, 0, 25500, 2 postCrankingDurationSec = "Time over which to taper out after start enrichment" auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + applyNonlinearBelowPulse = "Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment." spi1MosiMode = "Modes count be used for 3v<>5v integration using pull-ups/pull-downs etc." fan2OnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" fan2OffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" @@ -2889,7 +2900,8 @@ menuDialog = main # basic subMenu = injectorConfig, "Injection configuration" subMenu = injectionSettings, "Injection hardware", 0, {isInjectionEnabled == 1} - subMenu = cylinderBankSelect, "Cylinder bank selection" + subMenu = cylinderBankSelect, "Cylinder bank selection", 0, {isInjectionEnabled == 1} + subMenu = injectorNonlinear, "Injector small-pulse correction", 0, {isInjectionEnabled == 1} subMenu = std_separator # Air mass model @@ -3435,6 +3447,21 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "Cylinder 11 ", cylinderBankSelect11, {isInjectionEnabled == 1 && cylindersCount > 10} field = "Cylinder 12 ", cylinderBankSelect12, {isInjectionEnabled == 1 && cylindersCount > 11} + dialog = injectorNonlinearPolynomial, "Polynomial Adder", yAxis + field = "Add nonlinearity below pulse", applyNonlinearBelowPulse + field = "constant", injectorCorrectionPolynomial1 + field = "x^1", injectorCorrectionPolynomial2 + field = "x^2", injectorCorrectionPolynomial3 + field = "x^3", injectorCorrectionPolynomial4 + field = "x^4", injectorCorrectionPolynomial5 + field = "x^5", injectorCorrectionPolynomial6 + field = "x^6", injectorCorrectionPolynomial7 + field = "x^7", injectorCorrectionPolynomial8 + + dialog = injectorNonlinear + field = "Small pulse correction mode", injectorNonlinearMode + panel = injectorNonlinearPolynomial, {1}, { injectorNonlinearMode != 0 } + dialog = testFsio, "FSIO Test" commandButton = "FSIO#1", cmd_test_fsio1 commandButton = "FSIO#2", cmd_test_fsio2 diff --git a/firmware/tunerstudio/generated/rusefi_hellen121nissan.ini b/firmware/tunerstudio/generated/rusefi_hellen121nissan.ini index 92e5a0b71c..13d5da239c 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen121nissan.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen121nissan.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.07.07.hellen121nissan.1533223557" + signature = "rusEFI 2021.07.08.hellen121nissan.225438043" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.07.07.hellen121nissan.1533223557" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.07.08.hellen121nissan.225438043" ; 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 Wed Jul 07 12:39:13 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 08 03:47:56 UTC 2021 pageSize = 20000 page = 1 @@ -964,7 +964,9 @@ auxTempSensor2_resistance_3 = scalar, F32, 2496, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_bias_resistor = scalar, F32, 2500, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_adcChannel = bits, U08, 2504, [0:5], "NONE","INVALID","INVALID","INVALID","106 - PPS 1","50 - TPS 1","109 Ignition Key Voltage","INVALID","INVALID","69 - TPS 2","INVALID","INVALID","INVALID","INVALID","INVALID","98 - PPS 2", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" auxTempSensor2_alignmentFill_at_29 = array, U08, 2505, [3], "units", 1, 0, -20, 100, 0 -unused2508 = array, U08, 2508, [6], "units", 1, 0, -20, 100, 0 +applyNonlinearBelowPulse = scalar, U16, 2508, "ms", 0.001, 0, 0, 30, 3 +injectorNonlinearMode = bits, U08, 2510, [0:0], "None", "Polynomial" +unused2508 = array, U08, 2511, [3], "units", 1, 0, -20, 100, 0 etbFreq = scalar, S16, 2514, "Hz", 1, 0, 0, 10000, 0 etbWastegatePid_pFactor = scalar, F32, 2516, "", 1, 0, -10000, 10000, 4 etbWastegatePid_iFactor = scalar, F32, 2520, "", 1, 0, -10000, 10000, 4 @@ -1019,7 +1021,15 @@ auxPid2_offset = scalar, S16, 2644, "", 1, 0, -1000, 1000, 0 auxPid2_periodMs = scalar, S16, 2646, "ms", 1, 0, 0, 3000, 0 auxPid2_minValue = scalar, S16, 2648, "", 1, 0, -30000, 30000, 0 auxPid2_maxValue = scalar, S16, 2650, "", 1, 0, -30000, 30000, 0 -unused1366 = array, U08, 2652, [40], "units", 1, 0, -20, 100, 0 +injectorCorrectionPolynomial1 = scalar, F32, 2652, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 2656, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 2660, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 2664, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 2668, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 2672, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 2676, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 2680, "", 1, 0, -1000, 1000, 4 +unused1366 = array, U08, 2684, [8], "units", 1, 0, -20, 100, 0 oilPressure_hwChannel = bits, U08, 2692, [0:5], "NONE","INVALID","INVALID","INVALID","106 - PPS 1","50 - TPS 1","109 Ignition Key Voltage","INVALID","INVALID","69 - TPS 2","INVALID","INVALID","INVALID","INVALID","INVALID","98 - PPS 2", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" oilPressure_alignmentFill = array, U08, 2693, [3], "unit", 1, 0, 0, 100, 0 oilPressure_v1 = scalar, F32, 2696, "volts", 1, 0, 0, 10, 2 @@ -1504,6 +1514,7 @@ fsioTable4RpmBins = array, F32, 19968, [8], "RPM", 1, 0, 0, 25500, 2 postCrankingDurationSec = "Time over which to taper out after start enrichment" auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + applyNonlinearBelowPulse = "Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment." spi1MosiMode = "Modes count be used for 3v<>5v integration using pull-ups/pull-downs etc." fan2OnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" fan2OffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" @@ -2889,7 +2900,8 @@ menuDialog = main # basic subMenu = injectorConfig, "Injection configuration" subMenu = injectionSettings, "Injection hardware", 0, {isInjectionEnabled == 1} - subMenu = cylinderBankSelect, "Cylinder bank selection" + subMenu = cylinderBankSelect, "Cylinder bank selection", 0, {isInjectionEnabled == 1} + subMenu = injectorNonlinear, "Injector small-pulse correction", 0, {isInjectionEnabled == 1} subMenu = std_separator # Air mass model @@ -3431,6 +3443,21 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "Cylinder 11 ", cylinderBankSelect11, {isInjectionEnabled == 1 && cylindersCount > 10} field = "Cylinder 12 ", cylinderBankSelect12, {isInjectionEnabled == 1 && cylindersCount > 11} + dialog = injectorNonlinearPolynomial, "Polynomial Adder", yAxis + field = "Add nonlinearity below pulse", applyNonlinearBelowPulse + field = "constant", injectorCorrectionPolynomial1 + field = "x^1", injectorCorrectionPolynomial2 + field = "x^2", injectorCorrectionPolynomial3 + field = "x^3", injectorCorrectionPolynomial4 + field = "x^4", injectorCorrectionPolynomial5 + field = "x^5", injectorCorrectionPolynomial6 + field = "x^6", injectorCorrectionPolynomial7 + field = "x^7", injectorCorrectionPolynomial8 + + dialog = injectorNonlinear + field = "Small pulse correction mode", injectorNonlinearMode + panel = injectorNonlinearPolynomial, {1}, { injectorNonlinearMode != 0 } + dialog = testFsio, "FSIO Test" commandButton = "FSIO#1", cmd_test_fsio1 commandButton = "FSIO#2", cmd_test_fsio2 diff --git a/firmware/tunerstudio/generated/rusefi_hellen121vag.ini b/firmware/tunerstudio/generated/rusefi_hellen121vag.ini index c46851d937..9fd5c7738f 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen121vag.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen121vag.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.07.07.hellen121vag.2290468248" + signature = "rusEFI 2021.07.08.hellen121vag.3733524038" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.07.07.hellen121vag.2290468248" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.07.08.hellen121vag.3733524038" ; 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 Wed Jul 07 12:39:10 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 08 03:47:54 UTC 2021 pageSize = 20000 page = 1 @@ -964,7 +964,9 @@ auxTempSensor2_resistance_3 = scalar, F32, 2496, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_bias_resistor = scalar, F32, 2500, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_adcChannel = bits, U08, 2504, [0:5], "NONE","14 - O2","INVALID","INVALID","34 In PPS1","92 - TPS 1","106 - KNOCK","86 - CAM1","87 - CAM2","84 - TPS2","INVALID","29 In Maf","101 - MAP2","93 - CLT","85 - IAT","35 In PPS2", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" auxTempSensor2_alignmentFill_at_29 = array, U08, 2505, [3], "units", 1, 0, -20, 100, 0 -unused2508 = array, U08, 2508, [6], "units", 1, 0, -20, 100, 0 +applyNonlinearBelowPulse = scalar, U16, 2508, "ms", 0.001, 0, 0, 30, 3 +injectorNonlinearMode = bits, U08, 2510, [0:0], "None", "Polynomial" +unused2508 = array, U08, 2511, [3], "units", 1, 0, -20, 100, 0 etbFreq = scalar, S16, 2514, "Hz", 1, 0, 0, 10000, 0 etbWastegatePid_pFactor = scalar, F32, 2516, "", 1, 0, -10000, 10000, 4 etbWastegatePid_iFactor = scalar, F32, 2520, "", 1, 0, -10000, 10000, 4 @@ -1019,7 +1021,15 @@ auxPid2_offset = scalar, S16, 2644, "", 1, 0, -1000, 1000, 0 auxPid2_periodMs = scalar, S16, 2646, "ms", 1, 0, 0, 3000, 0 auxPid2_minValue = scalar, S16, 2648, "", 1, 0, -30000, 30000, 0 auxPid2_maxValue = scalar, S16, 2650, "", 1, 0, -30000, 30000, 0 -unused1366 = array, U08, 2652, [40], "units", 1, 0, -20, 100, 0 +injectorCorrectionPolynomial1 = scalar, F32, 2652, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 2656, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 2660, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 2664, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 2668, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 2672, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 2676, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 2680, "", 1, 0, -1000, 1000, 4 +unused1366 = array, U08, 2684, [8], "units", 1, 0, -20, 100, 0 oilPressure_hwChannel = bits, U08, 2692, [0:5], "NONE","14 - O2","INVALID","INVALID","34 In PPS1","92 - TPS 1","106 - KNOCK","86 - CAM1","87 - CAM2","84 - TPS2","INVALID","29 In Maf","101 - MAP2","93 - CLT","85 - IAT","35 In PPS2", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" oilPressure_alignmentFill = array, U08, 2693, [3], "unit", 1, 0, 0, 100, 0 oilPressure_v1 = scalar, F32, 2696, "volts", 1, 0, 0, 10, 2 @@ -1504,6 +1514,7 @@ fsioTable4RpmBins = array, F32, 19968, [8], "RPM", 1, 0, 0, 25500, 2 postCrankingDurationSec = "Time over which to taper out after start enrichment" auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + applyNonlinearBelowPulse = "Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment." spi1MosiMode = "Modes count be used for 3v<>5v integration using pull-ups/pull-downs etc." fan2OnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" fan2OffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" @@ -2889,7 +2900,8 @@ menuDialog = main # basic subMenu = injectorConfig, "Injection configuration" subMenu = injectionSettings, "Injection hardware", 0, {isInjectionEnabled == 1} - subMenu = cylinderBankSelect, "Cylinder bank selection" + subMenu = cylinderBankSelect, "Cylinder bank selection", 0, {isInjectionEnabled == 1} + subMenu = injectorNonlinear, "Injector small-pulse correction", 0, {isInjectionEnabled == 1} subMenu = std_separator # Air mass model @@ -3431,6 +3443,21 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "Cylinder 11 ", cylinderBankSelect11, {isInjectionEnabled == 1 && cylindersCount > 10} field = "Cylinder 12 ", cylinderBankSelect12, {isInjectionEnabled == 1 && cylindersCount > 11} + dialog = injectorNonlinearPolynomial, "Polynomial Adder", yAxis + field = "Add nonlinearity below pulse", applyNonlinearBelowPulse + field = "constant", injectorCorrectionPolynomial1 + field = "x^1", injectorCorrectionPolynomial2 + field = "x^2", injectorCorrectionPolynomial3 + field = "x^3", injectorCorrectionPolynomial4 + field = "x^4", injectorCorrectionPolynomial5 + field = "x^5", injectorCorrectionPolynomial6 + field = "x^6", injectorCorrectionPolynomial7 + field = "x^7", injectorCorrectionPolynomial8 + + dialog = injectorNonlinear + field = "Small pulse correction mode", injectorNonlinearMode + panel = injectorNonlinearPolynomial, {1}, { injectorNonlinearMode != 0 } + dialog = testFsio, "FSIO Test" commandButton = "FSIO#1", cmd_test_fsio1 commandButton = "FSIO#2", cmd_test_fsio2 diff --git a/firmware/tunerstudio/generated/rusefi_hellen128.ini b/firmware/tunerstudio/generated/rusefi_hellen128.ini index f4413680ec..14561a0ed0 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen128.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen128.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.07.07.hellen128.873049232" + signature = "rusEFI 2021.07.08.hellen128.1644521294" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.07.07.hellen128.873049232" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.07.08.hellen128.1644521294" ; 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 Wed Jul 07 12:39:08 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 08 03:47:52 UTC 2021 pageSize = 20000 page = 1 @@ -964,7 +964,9 @@ auxTempSensor2_resistance_3 = scalar, F32, 2496, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_bias_resistor = scalar, F32, 2500, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_adcChannel = bits, U08, 2504, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" auxTempSensor2_alignmentFill_at_29 = array, U08, 2505, [3], "units", 1, 0, -20, 100, 0 -unused2508 = array, U08, 2508, [6], "units", 1, 0, -20, 100, 0 +applyNonlinearBelowPulse = scalar, U16, 2508, "ms", 0.001, 0, 0, 30, 3 +injectorNonlinearMode = bits, U08, 2510, [0:0], "None", "Polynomial" +unused2508 = array, U08, 2511, [3], "units", 1, 0, -20, 100, 0 etbFreq = scalar, S16, 2514, "Hz", 1, 0, 0, 10000, 0 etbWastegatePid_pFactor = scalar, F32, 2516, "", 1, 0, -10000, 10000, 4 etbWastegatePid_iFactor = scalar, F32, 2520, "", 1, 0, -10000, 10000, 4 @@ -1019,7 +1021,15 @@ auxPid2_offset = scalar, S16, 2644, "", 1, 0, -1000, 1000, 0 auxPid2_periodMs = scalar, S16, 2646, "ms", 1, 0, 0, 3000, 0 auxPid2_minValue = scalar, S16, 2648, "", 1, 0, -30000, 30000, 0 auxPid2_maxValue = scalar, S16, 2650, "", 1, 0, -30000, 30000, 0 -unused1366 = array, U08, 2652, [40], "units", 1, 0, -20, 100, 0 +injectorCorrectionPolynomial1 = scalar, F32, 2652, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 2656, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 2660, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 2664, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 2668, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 2672, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 2676, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 2680, "", 1, 0, -1000, 1000, 4 +unused1366 = array, U08, 2684, [8], "units", 1, 0, -20, 100, 0 oilPressure_hwChannel = bits, U08, 2692, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" oilPressure_alignmentFill = array, U08, 2693, [3], "unit", 1, 0, 0, 100, 0 oilPressure_v1 = scalar, F32, 2696, "volts", 1, 0, 0, 10, 2 @@ -1504,6 +1514,7 @@ fsioTable4RpmBins = array, F32, 19968, [8], "RPM", 1, 0, 0, 25500, 2 postCrankingDurationSec = "Time over which to taper out after start enrichment" auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + applyNonlinearBelowPulse = "Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment." spi1MosiMode = "Modes count be used for 3v<>5v integration using pull-ups/pull-downs etc." fan2OnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" fan2OffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" @@ -2889,7 +2900,8 @@ menuDialog = main # basic subMenu = injectorConfig, "Injection configuration" subMenu = injectionSettings, "Injection hardware", 0, {isInjectionEnabled == 1} - subMenu = cylinderBankSelect, "Cylinder bank selection" + subMenu = cylinderBankSelect, "Cylinder bank selection", 0, {isInjectionEnabled == 1} + subMenu = injectorNonlinear, "Injector small-pulse correction", 0, {isInjectionEnabled == 1} subMenu = std_separator # Air mass model @@ -3431,6 +3443,21 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "Cylinder 11 ", cylinderBankSelect11, {isInjectionEnabled == 1 && cylindersCount > 10} field = "Cylinder 12 ", cylinderBankSelect12, {isInjectionEnabled == 1 && cylindersCount > 11} + dialog = injectorNonlinearPolynomial, "Polynomial Adder", yAxis + field = "Add nonlinearity below pulse", applyNonlinearBelowPulse + field = "constant", injectorCorrectionPolynomial1 + field = "x^1", injectorCorrectionPolynomial2 + field = "x^2", injectorCorrectionPolynomial3 + field = "x^3", injectorCorrectionPolynomial4 + field = "x^4", injectorCorrectionPolynomial5 + field = "x^5", injectorCorrectionPolynomial6 + field = "x^6", injectorCorrectionPolynomial7 + field = "x^7", injectorCorrectionPolynomial8 + + dialog = injectorNonlinear + field = "Small pulse correction mode", injectorNonlinearMode + panel = injectorNonlinearPolynomial, {1}, { injectorNonlinearMode != 0 } + dialog = testFsio, "FSIO Test" commandButton = "FSIO#1", cmd_test_fsio1 commandButton = "FSIO#2", cmd_test_fsio2 diff --git a/firmware/tunerstudio/generated/rusefi_hellen72.ini b/firmware/tunerstudio/generated/rusefi_hellen72.ini index 93cb04d54a..ba4d6303e2 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen72.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen72.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.07.07.hellen72.1259684650" + signature = "rusEFI 2021.07.08.hellen72.488212724" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.07.07.hellen72.1259684650" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.07.08.hellen72.488212724" ; 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 Wed Jul 07 12:39:15 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 08 03:47:58 UTC 2021 pageSize = 20000 page = 1 @@ -964,7 +964,9 @@ auxTempSensor2_resistance_3 = scalar, F32, 2496, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_bias_resistor = scalar, F32, 2500, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_adcChannel = bits, U08, 2504, [0:5], "NONE","4W - O2S (A13)","3L - IGN_7 / AFR","intMAP (A15)","4AB - FTP/PPS (A18)","4V - TPS (A17)","4T - Alternator voltage (A5)","3V - CAM (A19)","4J - VTCS/AUX4 (A20)","4F - AC_PRES/AUX1 (A23)","4AA - O2S2 (A12)","4X - MAF (A9)","4U - MAP2/Ign8 (A10)","4P - CLT (A11)","4N - IAT (A14)","4AD - FUEL_LEVEL (A21)","4AE - EGR/MAP4 (A22)", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" auxTempSensor2_alignmentFill_at_29 = array, U08, 2505, [3], "units", 1, 0, -20, 100, 0 -unused2508 = array, U08, 2508, [6], "units", 1, 0, -20, 100, 0 +applyNonlinearBelowPulse = scalar, U16, 2508, "ms", 0.001, 0, 0, 30, 3 +injectorNonlinearMode = bits, U08, 2510, [0:0], "None", "Polynomial" +unused2508 = array, U08, 2511, [3], "units", 1, 0, -20, 100, 0 etbFreq = scalar, S16, 2514, "Hz", 1, 0, 0, 10000, 0 etbWastegatePid_pFactor = scalar, F32, 2516, "", 1, 0, -10000, 10000, 4 etbWastegatePid_iFactor = scalar, F32, 2520, "", 1, 0, -10000, 10000, 4 @@ -1019,7 +1021,15 @@ auxPid2_offset = scalar, S16, 2644, "", 1, 0, -1000, 1000, 0 auxPid2_periodMs = scalar, S16, 2646, "ms", 1, 0, 0, 3000, 0 auxPid2_minValue = scalar, S16, 2648, "", 1, 0, -30000, 30000, 0 auxPid2_maxValue = scalar, S16, 2650, "", 1, 0, -30000, 30000, 0 -unused1366 = array, U08, 2652, [40], "units", 1, 0, -20, 100, 0 +injectorCorrectionPolynomial1 = scalar, F32, 2652, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 2656, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 2660, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 2664, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 2668, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 2672, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 2676, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 2680, "", 1, 0, -1000, 1000, 4 +unused1366 = array, U08, 2684, [8], "units", 1, 0, -20, 100, 0 oilPressure_hwChannel = bits, U08, 2692, [0:5], "NONE","4W - O2S (A13)","3L - IGN_7 / AFR","intMAP (A15)","4AB - FTP/PPS (A18)","4V - TPS (A17)","4T - Alternator voltage (A5)","3V - CAM (A19)","4J - VTCS/AUX4 (A20)","4F - AC_PRES/AUX1 (A23)","4AA - O2S2 (A12)","4X - MAF (A9)","4U - MAP2/Ign8 (A10)","4P - CLT (A11)","4N - IAT (A14)","4AD - FUEL_LEVEL (A21)","4AE - EGR/MAP4 (A22)", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" oilPressure_alignmentFill = array, U08, 2693, [3], "unit", 1, 0, 0, 100, 0 oilPressure_v1 = scalar, F32, 2696, "volts", 1, 0, 0, 10, 2 @@ -1504,6 +1514,7 @@ fsioTable4RpmBins = array, F32, 19968, [8], "RPM", 1, 0, 0, 25500, 2 postCrankingDurationSec = "Time over which to taper out after start enrichment" auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + applyNonlinearBelowPulse = "Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment." spi1MosiMode = "Modes count be used for 3v<>5v integration using pull-ups/pull-downs etc." fan2OnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" fan2OffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" @@ -2889,7 +2900,8 @@ menuDialog = main # basic subMenu = injectorConfig, "Injection configuration" subMenu = injectionSettings, "Injection hardware", 0, {isInjectionEnabled == 1} - subMenu = cylinderBankSelect, "Cylinder bank selection" + subMenu = cylinderBankSelect, "Cylinder bank selection", 0, {isInjectionEnabled == 1} + subMenu = injectorNonlinear, "Injector small-pulse correction", 0, {isInjectionEnabled == 1} subMenu = std_separator # Air mass model @@ -3431,6 +3443,21 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "Cylinder 11 ", cylinderBankSelect11, {isInjectionEnabled == 1 && cylindersCount > 10} field = "Cylinder 12 ", cylinderBankSelect12, {isInjectionEnabled == 1 && cylindersCount > 11} + dialog = injectorNonlinearPolynomial, "Polynomial Adder", yAxis + field = "Add nonlinearity below pulse", applyNonlinearBelowPulse + field = "constant", injectorCorrectionPolynomial1 + field = "x^1", injectorCorrectionPolynomial2 + field = "x^2", injectorCorrectionPolynomial3 + field = "x^3", injectorCorrectionPolynomial4 + field = "x^4", injectorCorrectionPolynomial5 + field = "x^5", injectorCorrectionPolynomial6 + field = "x^6", injectorCorrectionPolynomial7 + field = "x^7", injectorCorrectionPolynomial8 + + dialog = injectorNonlinear + field = "Small pulse correction mode", injectorNonlinearMode + panel = injectorNonlinearPolynomial, {1}, { injectorNonlinearMode != 0 } + dialog = testFsio, "FSIO Test" commandButton = "FSIO#1", cmd_test_fsio1 commandButton = "FSIO#2", cmd_test_fsio2 diff --git a/firmware/tunerstudio/generated/rusefi_hellenNA6.ini b/firmware/tunerstudio/generated/rusefi_hellenNA6.ini index 4adece3f75..3edf062339 100644 --- a/firmware/tunerstudio/generated/rusefi_hellenNA6.ini +++ b/firmware/tunerstudio/generated/rusefi_hellenNA6.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.07.07.hellenNA6.120328925" + signature = "rusEFI 2021.07.08.hellenNA6.1361107203" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.07.07.hellenNA6.120328925" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.07.08.hellenNA6.1361107203" ; 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 Wed Jul 07 12:39:18 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 08 03:48:00 UTC 2021 pageSize = 20000 page = 1 @@ -964,7 +964,9 @@ auxTempSensor2_resistance_3 = scalar, F32, 2496, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_bias_resistor = scalar, F32, 2500, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_adcChannel = bits, U08, 2504, [0:5], "NONE","3N - O2S","INVALID","intMAP (A15)","INVALID","TPS Input","1B - Battery Sense","INVALID","INVALID","INVALID","INVALID","3O - MAF","INVALID","3Q - CLT","3P - IAT","1V - Clutch Switch","1Q AC Switch", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" auxTempSensor2_alignmentFill_at_29 = array, U08, 2505, [3], "units", 1, 0, -20, 100, 0 -unused2508 = array, U08, 2508, [6], "units", 1, 0, -20, 100, 0 +applyNonlinearBelowPulse = scalar, U16, 2508, "ms", 0.001, 0, 0, 30, 3 +injectorNonlinearMode = bits, U08, 2510, [0:0], "None", "Polynomial" +unused2508 = array, U08, 2511, [3], "units", 1, 0, -20, 100, 0 etbFreq = scalar, S16, 2514, "Hz", 1, 0, 0, 10000, 0 etbWastegatePid_pFactor = scalar, F32, 2516, "", 1, 0, -10000, 10000, 4 etbWastegatePid_iFactor = scalar, F32, 2520, "", 1, 0, -10000, 10000, 4 @@ -1019,7 +1021,15 @@ auxPid2_offset = scalar, S16, 2644, "", 1, 0, -1000, 1000, 0 auxPid2_periodMs = scalar, S16, 2646, "ms", 1, 0, 0, 3000, 0 auxPid2_minValue = scalar, S16, 2648, "", 1, 0, -30000, 30000, 0 auxPid2_maxValue = scalar, S16, 2650, "", 1, 0, -30000, 30000, 0 -unused1366 = array, U08, 2652, [40], "units", 1, 0, -20, 100, 0 +injectorCorrectionPolynomial1 = scalar, F32, 2652, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 2656, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 2660, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 2664, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 2668, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 2672, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 2676, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 2680, "", 1, 0, -1000, 1000, 4 +unused1366 = array, U08, 2684, [8], "units", 1, 0, -20, 100, 0 oilPressure_hwChannel = bits, U08, 2692, [0:5], "NONE","3N - O2S","INVALID","intMAP (A15)","INVALID","TPS Input","1B - Battery Sense","INVALID","INVALID","INVALID","INVALID","3O - MAF","INVALID","3Q - CLT","3P - IAT","1V - Clutch Switch","1Q AC Switch", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" oilPressure_alignmentFill = array, U08, 2693, [3], "unit", 1, 0, 0, 100, 0 oilPressure_v1 = scalar, F32, 2696, "volts", 1, 0, 0, 10, 2 @@ -1504,6 +1514,7 @@ fsioTable4RpmBins = array, F32, 19968, [8], "RPM", 1, 0, 0, 25500, 2 postCrankingDurationSec = "Time over which to taper out after start enrichment" auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + applyNonlinearBelowPulse = "Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment." spi1MosiMode = "Modes count be used for 3v<>5v integration using pull-ups/pull-downs etc." fan2OnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" fan2OffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" @@ -2889,7 +2900,8 @@ menuDialog = main # basic subMenu = injectorConfig, "Injection configuration" subMenu = injectionSettings, "Injection hardware", 0, {isInjectionEnabled == 1} - subMenu = cylinderBankSelect, "Cylinder bank selection" + subMenu = cylinderBankSelect, "Cylinder bank selection", 0, {isInjectionEnabled == 1} + subMenu = injectorNonlinear, "Injector small-pulse correction", 0, {isInjectionEnabled == 1} subMenu = std_separator # Air mass model @@ -3431,6 +3443,21 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "Cylinder 11 ", cylinderBankSelect11, {isInjectionEnabled == 1 && cylindersCount > 10} field = "Cylinder 12 ", cylinderBankSelect12, {isInjectionEnabled == 1 && cylindersCount > 11} + dialog = injectorNonlinearPolynomial, "Polynomial Adder", yAxis + field = "Add nonlinearity below pulse", applyNonlinearBelowPulse + field = "constant", injectorCorrectionPolynomial1 + field = "x^1", injectorCorrectionPolynomial2 + field = "x^2", injectorCorrectionPolynomial3 + field = "x^3", injectorCorrectionPolynomial4 + field = "x^4", injectorCorrectionPolynomial5 + field = "x^5", injectorCorrectionPolynomial6 + field = "x^6", injectorCorrectionPolynomial7 + field = "x^7", injectorCorrectionPolynomial8 + + dialog = injectorNonlinear + field = "Small pulse correction mode", injectorNonlinearMode + panel = injectorNonlinearPolynomial, {1}, { injectorNonlinearMode != 0 } + dialog = testFsio, "FSIO Test" commandButton = "FSIO#1", cmd_test_fsio1 commandButton = "FSIO#2", cmd_test_fsio2 diff --git a/firmware/tunerstudio/generated/rusefi_hellen_cypress.ini b/firmware/tunerstudio/generated/rusefi_hellen_cypress.ini index 2ece7bf87d..a5bc4418e2 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 2021.07.07.hellen_cypress.953021445" + signature = "rusEFI 2021.07.08.hellen_cypress.1858158555" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.07.07.hellen_cypress.953021445" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.07.08.hellen_cypress.1858158555" ; 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 Wed Jul 07 12:39:41 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Thu Jul 08 03:48:18 UTC 2021 pageSize = 20000 page = 1 @@ -964,7 +964,9 @@ auxTempSensor2_resistance_3 = scalar, F32, 2496, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_bias_resistor = scalar, F32, 2500, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_adcChannel = bits, U08, 2504, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" auxTempSensor2_alignmentFill_at_29 = array, U08, 2505, [3], "units", 1, 0, -20, 100, 0 -unused2508 = array, U08, 2508, [6], "units", 1, 0, -20, 100, 0 +applyNonlinearBelowPulse = scalar, U16, 2508, "ms", 0.001, 0, 0, 30, 3 +injectorNonlinearMode = bits, U08, 2510, [0:0], "None", "Polynomial" +unused2508 = array, U08, 2511, [3], "units", 1, 0, -20, 100, 0 etbFreq = scalar, S16, 2514, "Hz", 1, 0, 0, 10000, 0 etbWastegatePid_pFactor = scalar, F32, 2516, "", 1, 0, -10000, 10000, 4 etbWastegatePid_iFactor = scalar, F32, 2520, "", 1, 0, -10000, 10000, 4 @@ -1019,7 +1021,15 @@ auxPid2_offset = scalar, S16, 2644, "", 1, 0, -1000, 1000, 0 auxPid2_periodMs = scalar, S16, 2646, "ms", 1, 0, 0, 3000, 0 auxPid2_minValue = scalar, S16, 2648, "", 1, 0, -30000, 30000, 0 auxPid2_maxValue = scalar, S16, 2650, "", 1, 0, -30000, 30000, 0 -unused1366 = array, U08, 2652, [40], "units", 1, 0, -20, 100, 0 +injectorCorrectionPolynomial1 = scalar, F32, 2652, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 2656, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 2660, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 2664, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 2668, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 2672, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 2676, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 2680, "", 1, 0, -1000, 1000, 4 +unused1366 = array, U08, 2684, [8], "units", 1, 0, -20, 100, 0 oilPressure_hwChannel = bits, U08, 2692, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" oilPressure_alignmentFill = array, U08, 2693, [3], "unit", 1, 0, 0, 100, 0 oilPressure_v1 = scalar, F32, 2696, "volts", 1, 0, 0, 10, 2 @@ -1504,6 +1514,7 @@ fsioTable4RpmBins = array, F32, 19968, [8], "RPM", 1, 0, 0, 25500, 2 postCrankingDurationSec = "Time over which to taper out after start enrichment" auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + applyNonlinearBelowPulse = "Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment." spi1MosiMode = "Modes count be used for 3v<>5v integration using pull-ups/pull-downs etc." fan2OnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" fan2OffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" @@ -2889,7 +2900,8 @@ menuDialog = main # basic subMenu = injectorConfig, "Injection configuration" subMenu = injectionSettings, "Injection hardware", 0, {isInjectionEnabled == 1} - subMenu = cylinderBankSelect, "Cylinder bank selection" + subMenu = cylinderBankSelect, "Cylinder bank selection", 0, {isInjectionEnabled == 1} + subMenu = injectorNonlinear, "Injector small-pulse correction", 0, {isInjectionEnabled == 1} subMenu = std_separator # Air mass model @@ -3435,6 +3447,21 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "Cylinder 11 ", cylinderBankSelect11, {isInjectionEnabled == 1 && cylindersCount > 10} field = "Cylinder 12 ", cylinderBankSelect12, {isInjectionEnabled == 1 && cylindersCount > 11} + dialog = injectorNonlinearPolynomial, "Polynomial Adder", yAxis + field = "Add nonlinearity below pulse", applyNonlinearBelowPulse + field = "constant", injectorCorrectionPolynomial1 + field = "x^1", injectorCorrectionPolynomial2 + field = "x^2", injectorCorrectionPolynomial3 + field = "x^3", injectorCorrectionPolynomial4 + field = "x^4", injectorCorrectionPolynomial5 + field = "x^5", injectorCorrectionPolynomial6 + field = "x^6", injectorCorrectionPolynomial7 + field = "x^7", injectorCorrectionPolynomial8 + + dialog = injectorNonlinear + field = "Small pulse correction mode", injectorNonlinearMode + panel = injectorNonlinearPolynomial, {1}, { injectorNonlinearMode != 0 } + dialog = testFsio, "FSIO Test" commandButton = "FSIO#1", cmd_test_fsio1 commandButton = "FSIO#2", cmd_test_fsio2 diff --git a/firmware/tunerstudio/generated/rusefi_kinetis.ini b/firmware/tunerstudio/generated/rusefi_kinetis.ini index 8fcd5f47cf..6dc9cbc654 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 2021.07.07.kin.3345496313" + signature = "rusEFI 2021.07.08.kin.2439312167" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.07.07.kin.3345496313" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.07.08.kin.2439312167" ; 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 Wed Jul 07 12:39:38 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Thu Jul 08 03:48:16 UTC 2021 pageSize = 19972 page = 1 @@ -952,7 +952,9 @@ auxTempSensor2_resistance_3 = scalar, F32, 2488, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_bias_resistor = scalar, F32, 2492, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_adcChannel = bits, U08, 2496, [0:5], "Disabled", "PA2", "PA3", "INVALID", "PD3", "INVALID", "INVALID", "INVALID", "PB12", "PB13", "INVALID", "PE2", "INVALID", "PC14", "PC15", "PC16", "PC17", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" auxTempSensor2_alignmentFill_at_29 = array, U08, 2497, [3], "units", 1, 0, -20, 100, 0 -unused2508 = array, U08, 2500, [6], "units", 1, 0, -20, 100, 0 +applyNonlinearBelowPulse = scalar, U16, 2500, "ms", 0.001, 0, 0, 30, 3 +injectorNonlinearMode = bits, U08, 2502, [0:0], "None", "Polynomial" +unused2508 = array, U08, 2503, [3], "units", 1, 0, -20, 100, 0 etbFreq = scalar, S16, 2506, "Hz", 1, 0, 0, 10000, 0 etbWastegatePid_pFactor = scalar, F32, 2508, "", 1, 0, -10000, 10000, 4 etbWastegatePid_iFactor = scalar, F32, 2512, "", 1, 0, -10000, 10000, 4 @@ -1000,7 +1002,15 @@ auxPid1_offset = scalar, S16, 2616, "", 1, 0, -1000, 1000, 0 auxPid1_periodMs = scalar, S16, 2618, "ms", 1, 0, 0, 3000, 0 auxPid1_minValue = scalar, S16, 2620, "", 1, 0, -30000, 30000, 0 auxPid1_maxValue = scalar, S16, 2622, "", 1, 0, -30000, 30000, 0 -unused1366 = array, U08, 2624, [40], "units", 1, 0, -20, 100, 0 +injectorCorrectionPolynomial1 = scalar, F32, 2624, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 2628, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 2632, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 2636, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 2640, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 2644, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 2648, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 2652, "", 1, 0, -1000, 1000, 4 +unused1366 = array, U08, 2656, [8], "units", 1, 0, -20, 100, 0 oilPressure_hwChannel = bits, U08, 2664, [0:5], "Disabled", "PA2", "PA3", "INVALID", "PD3", "INVALID", "INVALID", "INVALID", "PB12", "PB13", "INVALID", "PE2", "INVALID", "PC14", "PC15", "PC16", "PC17", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" oilPressure_alignmentFill = array, U08, 2665, [3], "unit", 1, 0, 0, 100, 0 oilPressure_v1 = scalar, F32, 2668, "volts", 1, 0, 0, 10, 2 @@ -1479,6 +1489,7 @@ fsioTable4RpmBins = array, F32, 19940, [8], "RPM", 1, 0, 0, 25500, 2 postCrankingDurationSec = "Time over which to taper out after start enrichment" auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + applyNonlinearBelowPulse = "Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment." spi1MosiMode = "Modes count be used for 3v<>5v integration using pull-ups/pull-downs etc." fan2OnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" fan2OffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" @@ -2864,7 +2875,8 @@ menuDialog = main # basic subMenu = injectorConfig, "Injection configuration" subMenu = injectionSettings, "Injection hardware", 0, {isInjectionEnabled == 1} - subMenu = cylinderBankSelect, "Cylinder bank selection" + subMenu = cylinderBankSelect, "Cylinder bank selection", 0, {isInjectionEnabled == 1} + subMenu = injectorNonlinear, "Injector small-pulse correction", 0, {isInjectionEnabled == 1} subMenu = std_separator # Air mass model @@ -3411,6 +3423,21 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "Cylinder 11 ", cylinderBankSelect11, {isInjectionEnabled == 1 && cylindersCount > 10} field = "Cylinder 12 ", cylinderBankSelect12, {isInjectionEnabled == 1 && cylindersCount > 11} + dialog = injectorNonlinearPolynomial, "Polynomial Adder", yAxis + field = "Add nonlinearity below pulse", applyNonlinearBelowPulse + field = "constant", injectorCorrectionPolynomial1 + field = "x^1", injectorCorrectionPolynomial2 + field = "x^2", injectorCorrectionPolynomial3 + field = "x^3", injectorCorrectionPolynomial4 + field = "x^4", injectorCorrectionPolynomial5 + field = "x^5", injectorCorrectionPolynomial6 + field = "x^6", injectorCorrectionPolynomial7 + field = "x^7", injectorCorrectionPolynomial8 + + dialog = injectorNonlinear + field = "Small pulse correction mode", injectorNonlinearMode + panel = injectorNonlinearPolynomial, {1}, { injectorNonlinearMode != 0 } + dialog = testFsio, "FSIO Test" commandButton = "FSIO#1", cmd_test_fsio1 commandButton = "FSIO#2", cmd_test_fsio2 diff --git a/firmware/tunerstudio/generated/rusefi_mre_f4.ini b/firmware/tunerstudio/generated/rusefi_mre_f4.ini index 60916ceba7..500316668f 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 2021.07.07.mre_f4.2678660225" + signature = "rusEFI 2021.07.08.mre_f4.3383088991" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.07.07.mre_f4.2678660225" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.07.08.mre_f4.3383088991" ; 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 Wed Jul 07 12:39:23 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 08 03:48:04 UTC 2021 pageSize = 20000 page = 1 @@ -964,7 +964,9 @@ auxTempSensor2_resistance_3 = scalar, F32, 2496, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_bias_resistor = scalar, F32, 2500, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_adcChannel = bits, U08, 2504, [0:5], "NONE","18 - AN temp 1","23 - AN temp 2","24 - AN temp 3","22 - AN temp 4","28 - AN volt 10","INVALID","26 - AN volt 2","31 - AN volt 3","36 - AN volt 8","40 - AN volt 9","27 - AN volt 1","Battery Sense","19 - AN volt 4","20 - AN volt 5","32 - AN volt 6","30 - AN volt 7", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" auxTempSensor2_alignmentFill_at_29 = array, U08, 2505, [3], "units", 1, 0, -20, 100, 0 -unused2508 = array, U08, 2508, [6], "units", 1, 0, -20, 100, 0 +applyNonlinearBelowPulse = scalar, U16, 2508, "ms", 0.001, 0, 0, 30, 3 +injectorNonlinearMode = bits, U08, 2510, [0:0], "None", "Polynomial" +unused2508 = array, U08, 2511, [3], "units", 1, 0, -20, 100, 0 etbFreq = scalar, S16, 2514, "Hz", 1, 0, 0, 10000, 0 etbWastegatePid_pFactor = scalar, F32, 2516, "", 1, 0, -10000, 10000, 4 etbWastegatePid_iFactor = scalar, F32, 2520, "", 1, 0, -10000, 10000, 4 @@ -1019,7 +1021,15 @@ auxPid2_offset = scalar, S16, 2644, "", 1, 0, -1000, 1000, 0 auxPid2_periodMs = scalar, S16, 2646, "ms", 1, 0, 0, 3000, 0 auxPid2_minValue = scalar, S16, 2648, "", 1, 0, -30000, 30000, 0 auxPid2_maxValue = scalar, S16, 2650, "", 1, 0, -30000, 30000, 0 -unused1366 = array, U08, 2652, [40], "units", 1, 0, -20, 100, 0 +injectorCorrectionPolynomial1 = scalar, F32, 2652, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 2656, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 2660, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 2664, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 2668, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 2672, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 2676, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 2680, "", 1, 0, -1000, 1000, 4 +unused1366 = array, U08, 2684, [8], "units", 1, 0, -20, 100, 0 oilPressure_hwChannel = bits, U08, 2692, [0:5], "NONE","18 - AN temp 1","23 - AN temp 2","24 - AN temp 3","22 - AN temp 4","28 - AN volt 10","INVALID","26 - AN volt 2","31 - AN volt 3","36 - AN volt 8","40 - AN volt 9","27 - AN volt 1","Battery Sense","19 - AN volt 4","20 - AN volt 5","32 - AN volt 6","30 - AN volt 7", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" oilPressure_alignmentFill = array, U08, 2693, [3], "unit", 1, 0, 0, 100, 0 oilPressure_v1 = scalar, F32, 2696, "volts", 1, 0, 0, 10, 2 @@ -1504,6 +1514,7 @@ fsioTable4RpmBins = array, F32, 19968, [8], "RPM", 1, 0, 0, 25500, 2 postCrankingDurationSec = "Time over which to taper out after start enrichment" auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + applyNonlinearBelowPulse = "Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment." spi1MosiMode = "Modes count be used for 3v<>5v integration using pull-ups/pull-downs etc." fan2OnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" fan2OffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" @@ -2889,7 +2900,8 @@ menuDialog = main # basic subMenu = injectorConfig, "Injection configuration" subMenu = injectionSettings, "Injection hardware", 0, {isInjectionEnabled == 1} - subMenu = cylinderBankSelect, "Cylinder bank selection" + subMenu = cylinderBankSelect, "Cylinder bank selection", 0, {isInjectionEnabled == 1} + subMenu = injectorNonlinear, "Injector small-pulse correction", 0, {isInjectionEnabled == 1} subMenu = std_separator # Air mass model @@ -3431,6 +3443,21 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "Cylinder 11 ", cylinderBankSelect11, {isInjectionEnabled == 1 && cylindersCount > 10} field = "Cylinder 12 ", cylinderBankSelect12, {isInjectionEnabled == 1 && cylindersCount > 11} + dialog = injectorNonlinearPolynomial, "Polynomial Adder", yAxis + field = "Add nonlinearity below pulse", applyNonlinearBelowPulse + field = "constant", injectorCorrectionPolynomial1 + field = "x^1", injectorCorrectionPolynomial2 + field = "x^2", injectorCorrectionPolynomial3 + field = "x^3", injectorCorrectionPolynomial4 + field = "x^4", injectorCorrectionPolynomial5 + field = "x^5", injectorCorrectionPolynomial6 + field = "x^6", injectorCorrectionPolynomial7 + field = "x^7", injectorCorrectionPolynomial8 + + dialog = injectorNonlinear + field = "Small pulse correction mode", injectorNonlinearMode + panel = injectorNonlinearPolynomial, {1}, { injectorNonlinearMode != 0 } + dialog = testFsio, "FSIO Test" commandButton = "FSIO#1", cmd_test_fsio1 commandButton = "FSIO#2", cmd_test_fsio2 diff --git a/firmware/tunerstudio/generated/rusefi_mre_f7.ini b/firmware/tunerstudio/generated/rusefi_mre_f7.ini index ec71dcf5b7..c6aa5e61e9 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 2021.07.07.mre_f7.2678660225" + signature = "rusEFI 2021.07.08.mre_f7.3383088991" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.07.07.mre_f7.2678660225" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.07.08.mre_f7.3383088991" ; 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 Wed Jul 07 12:39:20 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 08 03:48:02 UTC 2021 pageSize = 20000 page = 1 @@ -964,7 +964,9 @@ auxTempSensor2_resistance_3 = scalar, F32, 2496, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_bias_resistor = scalar, F32, 2500, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_adcChannel = bits, U08, 2504, [0:5], "NONE","18 - AN temp 1","23 - AN temp 2","24 - AN temp 3","22 - AN temp 4","28 - AN volt 10","INVALID","26 - AN volt 2","31 - AN volt 3","36 - AN volt 8","40 - AN volt 9","27 - AN volt 1","Battery Sense","19 - AN volt 4","20 - AN volt 5","32 - AN volt 6","30 - AN volt 7", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" auxTempSensor2_alignmentFill_at_29 = array, U08, 2505, [3], "units", 1, 0, -20, 100, 0 -unused2508 = array, U08, 2508, [6], "units", 1, 0, -20, 100, 0 +applyNonlinearBelowPulse = scalar, U16, 2508, "ms", 0.001, 0, 0, 30, 3 +injectorNonlinearMode = bits, U08, 2510, [0:0], "None", "Polynomial" +unused2508 = array, U08, 2511, [3], "units", 1, 0, -20, 100, 0 etbFreq = scalar, S16, 2514, "Hz", 1, 0, 0, 10000, 0 etbWastegatePid_pFactor = scalar, F32, 2516, "", 1, 0, -10000, 10000, 4 etbWastegatePid_iFactor = scalar, F32, 2520, "", 1, 0, -10000, 10000, 4 @@ -1019,7 +1021,15 @@ auxPid2_offset = scalar, S16, 2644, "", 1, 0, -1000, 1000, 0 auxPid2_periodMs = scalar, S16, 2646, "ms", 1, 0, 0, 3000, 0 auxPid2_minValue = scalar, S16, 2648, "", 1, 0, -30000, 30000, 0 auxPid2_maxValue = scalar, S16, 2650, "", 1, 0, -30000, 30000, 0 -unused1366 = array, U08, 2652, [40], "units", 1, 0, -20, 100, 0 +injectorCorrectionPolynomial1 = scalar, F32, 2652, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 2656, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 2660, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 2664, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 2668, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 2672, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 2676, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 2680, "", 1, 0, -1000, 1000, 4 +unused1366 = array, U08, 2684, [8], "units", 1, 0, -20, 100, 0 oilPressure_hwChannel = bits, U08, 2692, [0:5], "NONE","18 - AN temp 1","23 - AN temp 2","24 - AN temp 3","22 - AN temp 4","28 - AN volt 10","INVALID","26 - AN volt 2","31 - AN volt 3","36 - AN volt 8","40 - AN volt 9","27 - AN volt 1","Battery Sense","19 - AN volt 4","20 - AN volt 5","32 - AN volt 6","30 - AN volt 7", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" oilPressure_alignmentFill = array, U08, 2693, [3], "unit", 1, 0, 0, 100, 0 oilPressure_v1 = scalar, F32, 2696, "volts", 1, 0, 0, 10, 2 @@ -1504,6 +1514,7 @@ fsioTable4RpmBins = array, F32, 19968, [8], "RPM", 1, 0, 0, 25500, 2 postCrankingDurationSec = "Time over which to taper out after start enrichment" auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + applyNonlinearBelowPulse = "Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment." spi1MosiMode = "Modes count be used for 3v<>5v integration using pull-ups/pull-downs etc." fan2OnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" fan2OffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" @@ -2889,7 +2900,8 @@ menuDialog = main # basic subMenu = injectorConfig, "Injection configuration" subMenu = injectionSettings, "Injection hardware", 0, {isInjectionEnabled == 1} - subMenu = cylinderBankSelect, "Cylinder bank selection" + subMenu = cylinderBankSelect, "Cylinder bank selection", 0, {isInjectionEnabled == 1} + subMenu = injectorNonlinear, "Injector small-pulse correction", 0, {isInjectionEnabled == 1} subMenu = std_separator # Air mass model @@ -3431,6 +3443,21 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "Cylinder 11 ", cylinderBankSelect11, {isInjectionEnabled == 1 && cylindersCount > 10} field = "Cylinder 12 ", cylinderBankSelect12, {isInjectionEnabled == 1 && cylindersCount > 11} + dialog = injectorNonlinearPolynomial, "Polynomial Adder", yAxis + field = "Add nonlinearity below pulse", applyNonlinearBelowPulse + field = "constant", injectorCorrectionPolynomial1 + field = "x^1", injectorCorrectionPolynomial2 + field = "x^2", injectorCorrectionPolynomial3 + field = "x^3", injectorCorrectionPolynomial4 + field = "x^4", injectorCorrectionPolynomial5 + field = "x^5", injectorCorrectionPolynomial6 + field = "x^6", injectorCorrectionPolynomial7 + field = "x^7", injectorCorrectionPolynomial8 + + dialog = injectorNonlinear + field = "Small pulse correction mode", injectorNonlinearMode + panel = injectorNonlinearPolynomial, {1}, { injectorNonlinearMode != 0 } + dialog = testFsio, "FSIO Test" commandButton = "FSIO#1", cmd_test_fsio1 commandButton = "FSIO#2", cmd_test_fsio2 diff --git a/firmware/tunerstudio/generated/rusefi_prometheus_405.ini b/firmware/tunerstudio/generated/rusefi_prometheus_405.ini index a1b4102ee6..dd7c27b41c 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 2021.07.07.prometheus_405.1747398115" + signature = "rusEFI 2021.07.08.prometheus_405.1043064381" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.07.07.prometheus_405.1747398115" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.07.08.prometheus_405.1043064381" ; 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 Wed Jul 07 12:39:30 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 08 03:48:10 UTC 2021 pageSize = 20000 page = 1 @@ -964,7 +964,9 @@ auxTempSensor2_resistance_3 = scalar, F32, 2496, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_bias_resistor = scalar, F32, 2500, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_adcChannel = bits, U08, 2504, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" auxTempSensor2_alignmentFill_at_29 = array, U08, 2505, [3], "units", 1, 0, -20, 100, 0 -unused2508 = array, U08, 2508, [6], "units", 1, 0, -20, 100, 0 +applyNonlinearBelowPulse = scalar, U16, 2508, "ms", 0.001, 0, 0, 30, 3 +injectorNonlinearMode = bits, U08, 2510, [0:0], "None", "Polynomial" +unused2508 = array, U08, 2511, [3], "units", 1, 0, -20, 100, 0 etbFreq = scalar, S16, 2514, "Hz", 1, 0, 0, 10000, 0 etbWastegatePid_pFactor = scalar, F32, 2516, "", 1, 0, -10000, 10000, 4 etbWastegatePid_iFactor = scalar, F32, 2520, "", 1, 0, -10000, 10000, 4 @@ -1019,7 +1021,15 @@ auxPid2_offset = scalar, S16, 2644, "", 1, 0, -1000, 1000, 0 auxPid2_periodMs = scalar, S16, 2646, "ms", 1, 0, 0, 3000, 0 auxPid2_minValue = scalar, S16, 2648, "", 1, 0, -30000, 30000, 0 auxPid2_maxValue = scalar, S16, 2650, "", 1, 0, -30000, 30000, 0 -unused1366 = array, U08, 2652, [40], "units", 1, 0, -20, 100, 0 +injectorCorrectionPolynomial1 = scalar, F32, 2652, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 2656, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 2660, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 2664, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 2668, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 2672, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 2676, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 2680, "", 1, 0, -1000, 1000, 4 +unused1366 = array, U08, 2684, [8], "units", 1, 0, -20, 100, 0 oilPressure_hwChannel = bits, U08, 2692, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" oilPressure_alignmentFill = array, U08, 2693, [3], "unit", 1, 0, 0, 100, 0 oilPressure_v1 = scalar, F32, 2696, "volts", 1, 0, 0, 10, 2 @@ -1504,6 +1514,7 @@ fsioTable4RpmBins = array, F32, 19968, [8], "RPM", 1, 0, 0, 25500, 2 postCrankingDurationSec = "Time over which to taper out after start enrichment" auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + applyNonlinearBelowPulse = "Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment." spi1MosiMode = "Modes count be used for 3v<>5v integration using pull-ups/pull-downs etc." fan2OnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" fan2OffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" @@ -2889,7 +2900,8 @@ menuDialog = main # basic subMenu = injectorConfig, "Injection configuration" subMenu = injectionSettings, "Injection hardware", 0, {isInjectionEnabled == 1} - subMenu = cylinderBankSelect, "Cylinder bank selection" + subMenu = cylinderBankSelect, "Cylinder bank selection", 0, {isInjectionEnabled == 1} + subMenu = injectorNonlinear, "Injector small-pulse correction", 0, {isInjectionEnabled == 1} subMenu = std_separator # Air mass model @@ -3430,6 +3442,21 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "Cylinder 11 ", cylinderBankSelect11, {isInjectionEnabled == 1 && cylindersCount > 10} field = "Cylinder 12 ", cylinderBankSelect12, {isInjectionEnabled == 1 && cylindersCount > 11} + dialog = injectorNonlinearPolynomial, "Polynomial Adder", yAxis + field = "Add nonlinearity below pulse", applyNonlinearBelowPulse + field = "constant", injectorCorrectionPolynomial1 + field = "x^1", injectorCorrectionPolynomial2 + field = "x^2", injectorCorrectionPolynomial3 + field = "x^3", injectorCorrectionPolynomial4 + field = "x^4", injectorCorrectionPolynomial5 + field = "x^5", injectorCorrectionPolynomial6 + field = "x^6", injectorCorrectionPolynomial7 + field = "x^7", injectorCorrectionPolynomial8 + + dialog = injectorNonlinear + field = "Small pulse correction mode", injectorNonlinearMode + panel = injectorNonlinearPolynomial, {1}, { injectorNonlinearMode != 0 } + dialog = testFsio, "FSIO Test" commandButton = "FSIO#1", cmd_test_fsio1 commandButton = "FSIO#2", cmd_test_fsio2 diff --git a/firmware/tunerstudio/generated/rusefi_prometheus_469.ini b/firmware/tunerstudio/generated/rusefi_prometheus_469.ini index d38afff2eb..0a77190621 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 2021.07.07.prometheus_469.1747398115" + signature = "rusEFI 2021.07.08.prometheus_469.1043064381" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.07.07.prometheus_469.1747398115" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.07.08.prometheus_469.1043064381" ; 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 Wed Jul 07 12:39:28 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 08 03:48:08 UTC 2021 pageSize = 20000 page = 1 @@ -964,7 +964,9 @@ auxTempSensor2_resistance_3 = scalar, F32, 2496, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_bias_resistor = scalar, F32, 2500, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_adcChannel = bits, U08, 2504, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" auxTempSensor2_alignmentFill_at_29 = array, U08, 2505, [3], "units", 1, 0, -20, 100, 0 -unused2508 = array, U08, 2508, [6], "units", 1, 0, -20, 100, 0 +applyNonlinearBelowPulse = scalar, U16, 2508, "ms", 0.001, 0, 0, 30, 3 +injectorNonlinearMode = bits, U08, 2510, [0:0], "None", "Polynomial" +unused2508 = array, U08, 2511, [3], "units", 1, 0, -20, 100, 0 etbFreq = scalar, S16, 2514, "Hz", 1, 0, 0, 10000, 0 etbWastegatePid_pFactor = scalar, F32, 2516, "", 1, 0, -10000, 10000, 4 etbWastegatePid_iFactor = scalar, F32, 2520, "", 1, 0, -10000, 10000, 4 @@ -1019,7 +1021,15 @@ auxPid2_offset = scalar, S16, 2644, "", 1, 0, -1000, 1000, 0 auxPid2_periodMs = scalar, S16, 2646, "ms", 1, 0, 0, 3000, 0 auxPid2_minValue = scalar, S16, 2648, "", 1, 0, -30000, 30000, 0 auxPid2_maxValue = scalar, S16, 2650, "", 1, 0, -30000, 30000, 0 -unused1366 = array, U08, 2652, [40], "units", 1, 0, -20, 100, 0 +injectorCorrectionPolynomial1 = scalar, F32, 2652, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 2656, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 2660, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 2664, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 2668, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 2672, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 2676, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 2680, "", 1, 0, -1000, 1000, 4 +unused1366 = array, U08, 2684, [8], "units", 1, 0, -20, 100, 0 oilPressure_hwChannel = bits, U08, 2692, [0:5], "Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" oilPressure_alignmentFill = array, U08, 2693, [3], "unit", 1, 0, 0, 100, 0 oilPressure_v1 = scalar, F32, 2696, "volts", 1, 0, 0, 10, 2 @@ -1504,6 +1514,7 @@ fsioTable4RpmBins = array, F32, 19968, [8], "RPM", 1, 0, 0, 25500, 2 postCrankingDurationSec = "Time over which to taper out after start enrichment" auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + applyNonlinearBelowPulse = "Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment." spi1MosiMode = "Modes count be used for 3v<>5v integration using pull-ups/pull-downs etc." fan2OnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" fan2OffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" @@ -2889,7 +2900,8 @@ menuDialog = main # basic subMenu = injectorConfig, "Injection configuration" subMenu = injectionSettings, "Injection hardware", 0, {isInjectionEnabled == 1} - subMenu = cylinderBankSelect, "Cylinder bank selection" + subMenu = cylinderBankSelect, "Cylinder bank selection", 0, {isInjectionEnabled == 1} + subMenu = injectorNonlinear, "Injector small-pulse correction", 0, {isInjectionEnabled == 1} subMenu = std_separator # Air mass model @@ -3430,6 +3442,21 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "Cylinder 11 ", cylinderBankSelect11, {isInjectionEnabled == 1 && cylindersCount > 10} field = "Cylinder 12 ", cylinderBankSelect12, {isInjectionEnabled == 1 && cylindersCount > 11} + dialog = injectorNonlinearPolynomial, "Polynomial Adder", yAxis + field = "Add nonlinearity below pulse", applyNonlinearBelowPulse + field = "constant", injectorCorrectionPolynomial1 + field = "x^1", injectorCorrectionPolynomial2 + field = "x^2", injectorCorrectionPolynomial3 + field = "x^3", injectorCorrectionPolynomial4 + field = "x^4", injectorCorrectionPolynomial5 + field = "x^5", injectorCorrectionPolynomial6 + field = "x^6", injectorCorrectionPolynomial7 + field = "x^7", injectorCorrectionPolynomial8 + + dialog = injectorNonlinear + field = "Small pulse correction mode", injectorNonlinearMode + panel = injectorNonlinearPolynomial, {1}, { injectorNonlinearMode != 0 } + dialog = testFsio, "FSIO Test" commandButton = "FSIO#1", cmd_test_fsio1 commandButton = "FSIO#2", cmd_test_fsio2 diff --git a/firmware/tunerstudio/generated/rusefi_proteus_f4.ini b/firmware/tunerstudio/generated/rusefi_proteus_f4.ini index ec1c39823f..f5249e047a 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 2021.07.07.proteus_f4.319263438" + signature = "rusEFI 2021.07.08.proteus_f4.1158371600" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.07.07.proteus_f4.319263438" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.07.08.proteus_f4.1158371600" ; 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 Wed Jul 07 12:39:35 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 08 03:48:14 UTC 2021 pageSize = 20000 page = 1 @@ -964,7 +964,9 @@ auxTempSensor2_resistance_3 = scalar, F32, 2496, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_bias_resistor = scalar, F32, 2500, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_adcChannel = bits, U08, 2504, [0:5], "NONE","Analog Volt 5","Analog Volt 6","Analog Volt 7","Analog Volt 8","Analog Volt 9","Analog Volt 10","Analog Volt 11","Battery Sense","Analog Temp 3","Analog Temp 4","Analog Volt 1","Analog Volt 2","Analog Volt 3","Analog Volt 4","Analog Temp 1","Analog Temp 2", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" auxTempSensor2_alignmentFill_at_29 = array, U08, 2505, [3], "units", 1, 0, -20, 100, 0 -unused2508 = array, U08, 2508, [6], "units", 1, 0, -20, 100, 0 +applyNonlinearBelowPulse = scalar, U16, 2508, "ms", 0.001, 0, 0, 30, 3 +injectorNonlinearMode = bits, U08, 2510, [0:0], "None", "Polynomial" +unused2508 = array, U08, 2511, [3], "units", 1, 0, -20, 100, 0 etbFreq = scalar, S16, 2514, "Hz", 1, 0, 0, 10000, 0 etbWastegatePid_pFactor = scalar, F32, 2516, "", 1, 0, -10000, 10000, 4 etbWastegatePid_iFactor = scalar, F32, 2520, "", 1, 0, -10000, 10000, 4 @@ -1019,7 +1021,15 @@ auxPid2_offset = scalar, S16, 2644, "", 1, 0, -1000, 1000, 0 auxPid2_periodMs = scalar, S16, 2646, "ms", 1, 0, 0, 3000, 0 auxPid2_minValue = scalar, S16, 2648, "", 1, 0, -30000, 30000, 0 auxPid2_maxValue = scalar, S16, 2650, "", 1, 0, -30000, 30000, 0 -unused1366 = array, U08, 2652, [40], "units", 1, 0, -20, 100, 0 +injectorCorrectionPolynomial1 = scalar, F32, 2652, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 2656, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 2660, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 2664, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 2668, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 2672, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 2676, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 2680, "", 1, 0, -1000, 1000, 4 +unused1366 = array, U08, 2684, [8], "units", 1, 0, -20, 100, 0 oilPressure_hwChannel = bits, U08, 2692, [0:5], "NONE","Analog Volt 5","Analog Volt 6","Analog Volt 7","Analog Volt 8","Analog Volt 9","Analog Volt 10","Analog Volt 11","Battery Sense","Analog Temp 3","Analog Temp 4","Analog Volt 1","Analog Volt 2","Analog Volt 3","Analog Volt 4","Analog Temp 1","Analog Temp 2", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" oilPressure_alignmentFill = array, U08, 2693, [3], "unit", 1, 0, 0, 100, 0 oilPressure_v1 = scalar, F32, 2696, "volts", 1, 0, 0, 10, 2 @@ -1504,6 +1514,7 @@ fsioTable4RpmBins = array, F32, 19968, [8], "RPM", 1, 0, 0, 25500, 2 postCrankingDurationSec = "Time over which to taper out after start enrichment" auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + applyNonlinearBelowPulse = "Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment." spi1MosiMode = "Modes count be used for 3v<>5v integration using pull-ups/pull-downs etc." fan2OnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" fan2OffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" @@ -2889,7 +2900,8 @@ menuDialog = main # basic subMenu = injectorConfig, "Injection configuration" subMenu = injectionSettings, "Injection hardware", 0, {isInjectionEnabled == 1} - subMenu = cylinderBankSelect, "Cylinder bank selection" + subMenu = cylinderBankSelect, "Cylinder bank selection", 0, {isInjectionEnabled == 1} + subMenu = injectorNonlinear, "Injector small-pulse correction", 0, {isInjectionEnabled == 1} subMenu = std_separator # Air mass model @@ -3427,6 +3439,21 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "Cylinder 11 ", cylinderBankSelect11, {isInjectionEnabled == 1 && cylindersCount > 10} field = "Cylinder 12 ", cylinderBankSelect12, {isInjectionEnabled == 1 && cylindersCount > 11} + dialog = injectorNonlinearPolynomial, "Polynomial Adder", yAxis + field = "Add nonlinearity below pulse", applyNonlinearBelowPulse + field = "constant", injectorCorrectionPolynomial1 + field = "x^1", injectorCorrectionPolynomial2 + field = "x^2", injectorCorrectionPolynomial3 + field = "x^3", injectorCorrectionPolynomial4 + field = "x^4", injectorCorrectionPolynomial5 + field = "x^5", injectorCorrectionPolynomial6 + field = "x^6", injectorCorrectionPolynomial7 + field = "x^7", injectorCorrectionPolynomial8 + + dialog = injectorNonlinear + field = "Small pulse correction mode", injectorNonlinearMode + panel = injectorNonlinearPolynomial, {1}, { injectorNonlinearMode != 0 } + dialog = testFsio, "FSIO Test" commandButton = "FSIO#1", cmd_test_fsio1 commandButton = "FSIO#2", cmd_test_fsio2 diff --git a/firmware/tunerstudio/generated/rusefi_proteus_f7.ini b/firmware/tunerstudio/generated/rusefi_proteus_f7.ini index 7d32d599e4..1f7f05256e 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 2021.07.07.proteus_f7.319263438" + signature = "rusEFI 2021.07.08.proteus_f7.1158371600" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.07.07.proteus_f7.319263438" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.07.08.proteus_f7.1158371600" ; 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 Wed Jul 07 12:39:33 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 08 03:48:12 UTC 2021 pageSize = 20000 page = 1 @@ -964,7 +964,9 @@ auxTempSensor2_resistance_3 = scalar, F32, 2496, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_bias_resistor = scalar, F32, 2500, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_adcChannel = bits, U08, 2504, [0:5], "NONE","Analog Volt 5","Analog Volt 6","Analog Volt 7","Analog Volt 8","Analog Volt 9","Analog Volt 10","Analog Volt 11","Battery Sense","Analog Temp 3","Analog Temp 4","Analog Volt 1","Analog Volt 2","Analog Volt 3","Analog Volt 4","Analog Temp 1","Analog Temp 2", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" auxTempSensor2_alignmentFill_at_29 = array, U08, 2505, [3], "units", 1, 0, -20, 100, 0 -unused2508 = array, U08, 2508, [6], "units", 1, 0, -20, 100, 0 +applyNonlinearBelowPulse = scalar, U16, 2508, "ms", 0.001, 0, 0, 30, 3 +injectorNonlinearMode = bits, U08, 2510, [0:0], "None", "Polynomial" +unused2508 = array, U08, 2511, [3], "units", 1, 0, -20, 100, 0 etbFreq = scalar, S16, 2514, "Hz", 1, 0, 0, 10000, 0 etbWastegatePid_pFactor = scalar, F32, 2516, "", 1, 0, -10000, 10000, 4 etbWastegatePid_iFactor = scalar, F32, 2520, "", 1, 0, -10000, 10000, 4 @@ -1019,7 +1021,15 @@ auxPid2_offset = scalar, S16, 2644, "", 1, 0, -1000, 1000, 0 auxPid2_periodMs = scalar, S16, 2646, "ms", 1, 0, 0, 3000, 0 auxPid2_minValue = scalar, S16, 2648, "", 1, 0, -30000, 30000, 0 auxPid2_maxValue = scalar, S16, 2650, "", 1, 0, -30000, 30000, 0 -unused1366 = array, U08, 2652, [40], "units", 1, 0, -20, 100, 0 +injectorCorrectionPolynomial1 = scalar, F32, 2652, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 2656, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 2660, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 2664, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 2668, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 2672, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 2676, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 2680, "", 1, 0, -1000, 1000, 4 +unused1366 = array, U08, 2684, [8], "units", 1, 0, -20, 100, 0 oilPressure_hwChannel = bits, U08, 2692, [0:5], "NONE","Analog Volt 5","Analog Volt 6","Analog Volt 7","Analog Volt 8","Analog Volt 9","Analog Volt 10","Analog Volt 11","Battery Sense","Analog Temp 3","Analog Temp 4","Analog Volt 1","Analog Volt 2","Analog Volt 3","Analog Volt 4","Analog Temp 1","Analog Temp 2", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" oilPressure_alignmentFill = array, U08, 2693, [3], "unit", 1, 0, 0, 100, 0 oilPressure_v1 = scalar, F32, 2696, "volts", 1, 0, 0, 10, 2 @@ -1504,6 +1514,7 @@ fsioTable4RpmBins = array, F32, 19968, [8], "RPM", 1, 0, 0, 25500, 2 postCrankingDurationSec = "Time over which to taper out after start enrichment" auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + applyNonlinearBelowPulse = "Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment." spi1MosiMode = "Modes count be used for 3v<>5v integration using pull-ups/pull-downs etc." fan2OnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" fan2OffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" @@ -2889,7 +2900,8 @@ menuDialog = main # basic subMenu = injectorConfig, "Injection configuration" subMenu = injectionSettings, "Injection hardware", 0, {isInjectionEnabled == 1} - subMenu = cylinderBankSelect, "Cylinder bank selection" + subMenu = cylinderBankSelect, "Cylinder bank selection", 0, {isInjectionEnabled == 1} + subMenu = injectorNonlinear, "Injector small-pulse correction", 0, {isInjectionEnabled == 1} subMenu = std_separator # Air mass model @@ -3427,6 +3439,21 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "Cylinder 11 ", cylinderBankSelect11, {isInjectionEnabled == 1 && cylindersCount > 10} field = "Cylinder 12 ", cylinderBankSelect12, {isInjectionEnabled == 1 && cylindersCount > 11} + dialog = injectorNonlinearPolynomial, "Polynomial Adder", yAxis + field = "Add nonlinearity below pulse", applyNonlinearBelowPulse + field = "constant", injectorCorrectionPolynomial1 + field = "x^1", injectorCorrectionPolynomial2 + field = "x^2", injectorCorrectionPolynomial3 + field = "x^3", injectorCorrectionPolynomial4 + field = "x^4", injectorCorrectionPolynomial5 + field = "x^5", injectorCorrectionPolynomial6 + field = "x^6", injectorCorrectionPolynomial7 + field = "x^7", injectorCorrectionPolynomial8 + + dialog = injectorNonlinear + field = "Small pulse correction mode", injectorNonlinearMode + panel = injectorNonlinearPolynomial, {1}, { injectorNonlinearMode != 0 } + dialog = testFsio, "FSIO Test" commandButton = "FSIO#1", cmd_test_fsio1 commandButton = "FSIO#2", cmd_test_fsio2 diff --git a/firmware/tunerstudio/generated/rusefi_subaru_eg33_f7.ini b/firmware/tunerstudio/generated/rusefi_subaru_eg33_f7.ini index 33c911ae4b..da1149fc2a 100644 --- a/firmware/tunerstudio/generated/rusefi_subaru_eg33_f7.ini +++ b/firmware/tunerstudio/generated/rusefi_subaru_eg33_f7.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.07.07.subaru_eg33_f7.3622642115" + signature = "rusEFI 2021.07.08.subaru_eg33_f7.2179066397" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.07.07.subaru_eg33_f7.3622642115" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.07.08.subaru_eg33_f7.2179066397" ; 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 config/boards/subaru_eg33/config/gen_config.sh integration/rusefi_config.txt Wed Jul 07 12:39:43 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on config/boards/subaru_eg33/config/gen_config.sh integration/rusefi_config.txt Thu Jul 08 03:48:20 UTC 2021 pageSize = 20000 page = 1 @@ -964,7 +964,9 @@ auxTempSensor2_resistance_3 = scalar, F32, 2496, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_bias_resistor = scalar, F32, 2500, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_adcChannel = bits, U08, 2504, [0:5], "NONE","INVALID","INVALID","INVALID","B05 - MAF Ain","INVALID","INVALID","INVALID","INVALID","A06 - Oxyg 2 Ain","A04 - EGR t Ain","INVALID","A18 - AUX0 Ain","B02 - TPS Ain","INVALID","A03 - Coolant t Ain","A06 - Oxyg 1 Ain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" auxTempSensor2_alignmentFill_at_29 = array, U08, 2505, [3], "units", 1, 0, -20, 100, 0 -unused2508 = array, U08, 2508, [6], "units", 1, 0, -20, 100, 0 +applyNonlinearBelowPulse = scalar, U16, 2508, "ms", 0.001, 0, 0, 30, 3 +injectorNonlinearMode = bits, U08, 2510, [0:0], "None", "Polynomial" +unused2508 = array, U08, 2511, [3], "units", 1, 0, -20, 100, 0 etbFreq = scalar, S16, 2514, "Hz", 1, 0, 0, 10000, 0 etbWastegatePid_pFactor = scalar, F32, 2516, "", 1, 0, -10000, 10000, 4 etbWastegatePid_iFactor = scalar, F32, 2520, "", 1, 0, -10000, 10000, 4 @@ -1019,7 +1021,15 @@ auxPid2_offset = scalar, S16, 2644, "", 1, 0, -1000, 1000, 0 auxPid2_periodMs = scalar, S16, 2646, "ms", 1, 0, 0, 3000, 0 auxPid2_minValue = scalar, S16, 2648, "", 1, 0, -30000, 30000, 0 auxPid2_maxValue = scalar, S16, 2650, "", 1, 0, -30000, 30000, 0 -unused1366 = array, U08, 2652, [40], "units", 1, 0, -20, 100, 0 +injectorCorrectionPolynomial1 = scalar, F32, 2652, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 2656, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 2660, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 2664, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 2668, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 2672, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 2676, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 2680, "", 1, 0, -1000, 1000, 4 +unused1366 = array, U08, 2684, [8], "units", 1, 0, -20, 100, 0 oilPressure_hwChannel = bits, U08, 2692, [0:5], "NONE","INVALID","INVALID","INVALID","B05 - MAF Ain","INVALID","INVALID","INVALID","INVALID","A06 - Oxyg 2 Ain","A04 - EGR t Ain","INVALID","A18 - AUX0 Ain","B02 - TPS Ain","INVALID","A03 - Coolant t Ain","A06 - Oxyg 1 Ain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" oilPressure_alignmentFill = array, U08, 2693, [3], "unit", 1, 0, 0, 100, 0 oilPressure_v1 = scalar, F32, 2696, "volts", 1, 0, 0, 10, 2 @@ -1504,6 +1514,7 @@ fsioTable4RpmBins = array, F32, 19968, [8], "RPM", 1, 0, 0, 25500, 2 postCrankingDurationSec = "Time over which to taper out after start enrichment" auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + applyNonlinearBelowPulse = "Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment." spi1MosiMode = "Modes count be used for 3v<>5v integration using pull-ups/pull-downs etc." fan2OnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" fan2OffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" @@ -2889,7 +2900,8 @@ menuDialog = main # basic subMenu = injectorConfig, "Injection configuration" subMenu = injectionSettings, "Injection hardware", 0, {isInjectionEnabled == 1} - subMenu = cylinderBankSelect, "Cylinder bank selection" + subMenu = cylinderBankSelect, "Cylinder bank selection", 0, {isInjectionEnabled == 1} + subMenu = injectorNonlinear, "Injector small-pulse correction", 0, {isInjectionEnabled == 1} subMenu = std_separator # Air mass model @@ -3431,6 +3443,21 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00" field = "Cylinder 11 ", cylinderBankSelect11, {isInjectionEnabled == 1 && cylindersCount > 10} field = "Cylinder 12 ", cylinderBankSelect12, {isInjectionEnabled == 1 && cylindersCount > 11} + dialog = injectorNonlinearPolynomial, "Polynomial Adder", yAxis + field = "Add nonlinearity below pulse", applyNonlinearBelowPulse + field = "constant", injectorCorrectionPolynomial1 + field = "x^1", injectorCorrectionPolynomial2 + field = "x^2", injectorCorrectionPolynomial3 + field = "x^3", injectorCorrectionPolynomial4 + field = "x^4", injectorCorrectionPolynomial5 + field = "x^5", injectorCorrectionPolynomial6 + field = "x^6", injectorCorrectionPolynomial7 + field = "x^7", injectorCorrectionPolynomial8 + + dialog = injectorNonlinear + field = "Small pulse correction mode", injectorNonlinearMode + panel = injectorNonlinearPolynomial, {1}, { injectorNonlinearMode != 0 } + dialog = testFsio, "FSIO Test" commandButton = "FSIO#1", cmd_test_fsio1 commandButton = "FSIO#2", cmd_test_fsio2 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 070fcda7e1..4964f71c59 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 Wed Jul 07 12:39:02 UTC 2021 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 08 03:47:46 UTC 2021 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; @@ -61,6 +61,7 @@ public class Fields { public static final int antiLagActivationMode_offset = 1024; public static final int antiLagEnabled_offset = 76; public static final int antiLagRpmTreshold_offset = 824; + public static final int applyNonlinearBelowPulse_offset = 2508; public static final int AUX_DIGITAL_VALVE_COUNT = 2; public static final int auxFastSensor1_adcChannel_offset = 680; public static final int auxPid1_dFactor_offset = 2620; @@ -949,6 +950,15 @@ public class Fields { public static final int injector_offset = 8; public static final int injector_s_size = 68; public static final int injectorCompensationMode_offset = 2418; + public static final int injectorCorrectionPolynomial1_offset = 2652; + public static final int injectorCorrectionPolynomial2_offset = 2656; + public static final int injectorCorrectionPolynomial3_offset = 2660; + public static final int injectorCorrectionPolynomial4_offset = 2664; + public static final int injectorCorrectionPolynomial5_offset = 2668; + public static final int injectorCorrectionPolynomial6_offset = 2672; + public static final int injectorCorrectionPolynomial7_offset = 2676; + public static final int injectorCorrectionPolynomial8_offset = 2680; + public static final int injectorNonlinearMode_offset = 2510; public static final int injectorPressureType_offset = 2129; public static final int injPhaseLoadBins_offset = 15008; public static final int injPhaseRpmBins_offset = 15072; @@ -1250,7 +1260,7 @@ public class Fields { public static final int servoOutputPins8_offset = 3147; public static final int showHumanReadableWarning_offset = 976; public static final int showSdCardWarning_offset = 76; - public static final int SIGNATURE_HASH = 2058432469; + public static final int SIGNATURE_HASH = 750642187; public static final int silentTriggerError_offset = 1464; public static final int slowAdcAlpha_offset = 2088; public static final int sparkDwellRpmBins_offset = 332; @@ -1552,7 +1562,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 2021.07.07.all.2058432469"; + public static final String TS_SIGNATURE = "rusEFI 2021.07.08.all.750642187"; public static final char TS_SINGLE_WRITE_COMMAND = 'W'; public static final char TS_TEST_COMMAND = 't'; public static final int TT_TT_1_16 = 50; @@ -1611,7 +1621,7 @@ public class Fields { public static final int unused1128_offset = 2116; public static final int unused1129_offset = 2116; public static final int unused1130_offset = 2116; - public static final int unused1366_offset = 2652; + public static final int unused1366_offset = 2684; public static final int unused1464b0_offset = 1464; public static final int unused1464b4_offset = 1464; public static final int unused1476b19_offset = 1476; @@ -1625,7 +1635,7 @@ public class Fields { public static final int unused2432_offset = 2432; public static final int unused244_2_offset = 2424; public static final int unused244_3_offset = 2428; - public static final int unused2508_offset = 2508; + public static final int unused2508_offset = 2511; public static final int unused2536_offset = 2536; public static final int unused3328_offset = 3340; public static final int unused3942_offset = 3992; @@ -2623,6 +2633,8 @@ public class Fields { public static final Field AUXTEMPSENSOR2_RESISTANCE_3 = Field.create("AUXTEMPSENSOR2_RESISTANCE_3", 2496, FieldType.FLOAT); public static final Field AUXTEMPSENSOR2_BIAS_RESISTOR = Field.create("AUXTEMPSENSOR2_BIAS_RESISTOR", 2500, FieldType.FLOAT); public static final Field AUXTEMPSENSOR2_ADCCHANNEL = Field.create("AUXTEMPSENSOR2_ADCCHANNEL", 2504, FieldType.INT8, adc_channel_e); + public static final Field APPLYNONLINEARBELOWPULSE = Field.create("APPLYNONLINEARBELOWPULSE", 2508, FieldType.INT16); + public static final Field INJECTORNONLINEARMODE = Field.create("INJECTORNONLINEARMODE", 2510, FieldType.INT8); public static final Field ETBFREQ = Field.create("ETBFREQ", 2514, FieldType.INT16); public static final Field ETBWASTEGATEPID_PFACTOR = Field.create("ETBWASTEGATEPID_PFACTOR", 2516, FieldType.FLOAT); public static final Field ETBWASTEGATEPID_IFACTOR = Field.create("ETBWASTEGATEPID_IFACTOR", 2520, FieldType.FLOAT); @@ -2676,6 +2688,14 @@ public class Fields { public static final Field AUXPID2_PERIODMS = Field.create("AUXPID2_PERIODMS", 2646, FieldType.INT16); public static final Field AUXPID2_MINVALUE = Field.create("AUXPID2_MINVALUE", 2648, FieldType.INT16); public static final Field AUXPID2_MAXVALUE = Field.create("AUXPID2_MAXVALUE", 2650, FieldType.INT16); + public static final Field INJECTORCORRECTIONPOLYNOMIAL1 = Field.create("INJECTORCORRECTIONPOLYNOMIAL1", 2652, FieldType.FLOAT); + public static final Field INJECTORCORRECTIONPOLYNOMIAL2 = Field.create("INJECTORCORRECTIONPOLYNOMIAL2", 2656, FieldType.FLOAT); + public static final Field INJECTORCORRECTIONPOLYNOMIAL3 = Field.create("INJECTORCORRECTIONPOLYNOMIAL3", 2660, FieldType.FLOAT); + public static final Field INJECTORCORRECTIONPOLYNOMIAL4 = Field.create("INJECTORCORRECTIONPOLYNOMIAL4", 2664, FieldType.FLOAT); + public static final Field INJECTORCORRECTIONPOLYNOMIAL5 = Field.create("INJECTORCORRECTIONPOLYNOMIAL5", 2668, FieldType.FLOAT); + public static final Field INJECTORCORRECTIONPOLYNOMIAL6 = Field.create("INJECTORCORRECTIONPOLYNOMIAL6", 2672, FieldType.FLOAT); + public static final Field INJECTORCORRECTIONPOLYNOMIAL7 = Field.create("INJECTORCORRECTIONPOLYNOMIAL7", 2676, FieldType.FLOAT); + public static final Field INJECTORCORRECTIONPOLYNOMIAL8 = Field.create("INJECTORCORRECTIONPOLYNOMIAL8", 2680, FieldType.FLOAT); public static final Field OILPRESSURE_HWCHANNEL = Field.create("OILPRESSURE_HWCHANNEL", 2692, FieldType.INT8, adc_channel_e); public static final Field OILPRESSURE_V1 = Field.create("OILPRESSURE_V1", 2696, FieldType.FLOAT); public static final Field OILPRESSURE_VALUE1 = Field.create("OILPRESSURE_VALUE1", 2700, FieldType.FLOAT); @@ -3726,6 +3746,8 @@ public class Fields { AUXTEMPSENSOR2_RESISTANCE_3, AUXTEMPSENSOR2_BIAS_RESISTOR, AUXTEMPSENSOR2_ADCCHANNEL, + APPLYNONLINEARBELOWPULSE, + INJECTORNONLINEARMODE, ETBFREQ, ETBWASTEGATEPID_PFACTOR, ETBWASTEGATEPID_IFACTOR, @@ -3778,6 +3800,14 @@ public class Fields { AUXPID2_PERIODMS, AUXPID2_MINVALUE, AUXPID2_MAXVALUE, + INJECTORCORRECTIONPOLYNOMIAL1, + INJECTORCORRECTIONPOLYNOMIAL2, + INJECTORCORRECTIONPOLYNOMIAL3, + INJECTORCORRECTIONPOLYNOMIAL4, + INJECTORCORRECTIONPOLYNOMIAL5, + INJECTORCORRECTIONPOLYNOMIAL6, + INJECTORCORRECTIONPOLYNOMIAL7, + INJECTORCORRECTIONPOLYNOMIAL8, OILPRESSURE_HWCHANNEL, OILPRESSURE_V1, OILPRESSURE_VALUE1, diff --git a/java_console/rusefi.xml b/java_console/rusefi.xml index 256ef50e3c..f8a3d5731f 100644 --- a/java_console/rusefi.xml +++ b/java_console/rusefi.xml @@ -1,6 +1,6 @@ - +