From cbe407f46569b81aff5fee082f3813796373be30 Mon Sep 17 00:00:00 2001 From: Andrey Date: Thu, 8 Jul 2021 20:42:35 -0400 Subject: [PATCH] VAG canned tunes --- .../config/controllers/algo/auto_generated_enums.cpp | 8 +++++--- firmware/config/engines/vw.cpp | 7 ++++++- firmware/config/engines/vw.h | 3 ++- firmware/controllers/algo/auto_generated_enums.cpp | 8 +++++--- firmware/controllers/algo/engine_configuration.cpp | 7 +++++-- firmware/controllers/algo/firing_order.h | 5 +++-- firmware/controllers/algo/rusefi_enums.h | 3 ++- firmware/controllers/math/engine_math.cpp | 4 ++++ 8 files changed, 32 insertions(+), 13 deletions(-) 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 9ed9fbf12b..c42996c09d 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,7 +1,7 @@ #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 Thu Jul 08 03:47:45 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 20:15:18 EDT 2021 // see also gen_config_and_enums.bat @@ -898,10 +898,12 @@ case HELLEN_121_VAG: return "HELLEN_121_VAG"; case HELLEN_121_VAG_5_CYL: return "HELLEN_121_VAG_5_CYL"; -case HELLEN_121_VAG_6_CYL: - return "HELLEN_121_VAG_6_CYL"; case HELLEN_121_VAG_8_CYL: return "HELLEN_121_VAG_8_CYL"; +case HELLEN_121_VAG_V6_CYL: + return "HELLEN_121_VAG_V6_CYL"; +case HELLEN_121_VAG_VR6_CYL: + return "HELLEN_121_VAG_VR6_CYL"; case HELLEN_128_MERCEDES: return "HELLEN_128_MERCEDES"; case HELLEN_134_BMW: diff --git a/firmware/config/engines/vw.cpp b/firmware/config/engines/vw.cpp index 77cd4e3a8a..daacd230da 100644 --- a/firmware/config/engines/vw.cpp +++ b/firmware/config/engines/vw.cpp @@ -73,7 +73,12 @@ void setHellen121Vag_5_cyl(DECLARE_CONFIG_PARAMETER_SIGNATURE) { engineConfiguration->specs.firingOrder = FO_1_2_4_5_3; } -void setHellen121Vag_6_cyl(DECLARE_CONFIG_PARAMETER_SIGNATURE) { +void setHellen121Vag_vr6_cyl(DECLARE_CONFIG_PARAMETER_SIGNATURE) { + engineConfiguration->specs.cylindersCount = 6; + engineConfiguration->specs.firingOrder = FO_1_5_3_6_2_4; +} + +void setHellen121Vag_v6_cyl(DECLARE_CONFIG_PARAMETER_SIGNATURE) { engineConfiguration->specs.cylindersCount = 6; engineConfiguration->specs.displacement = 2.7; // todo? typo? missing? engineConfiguration->specs.firingOrder = FO_1_4_3_6_2_5; diff --git a/firmware/config/engines/vw.h b/firmware/config/engines/vw.h index 0d65791513..357d0c1435 100644 --- a/firmware/config/engines/vw.h +++ b/firmware/config/engines/vw.h @@ -13,5 +13,6 @@ void setVwAba(DECLARE_CONFIG_PARAMETER_SIGNATURE); void setHellen121Vag_5_cyl(DECLARE_CONFIG_PARAMETER_SIGNATURE); -void setHellen121Vag_6_cyl(DECLARE_CONFIG_PARAMETER_SIGNATURE); +void setHellen121Vag_vr6_cyl(DECLARE_CONFIG_PARAMETER_SIGNATURE); +void setHellen121Vag_v6_cyl(DECLARE_CONFIG_PARAMETER_SIGNATURE); void setHellen121Vag_8_cyl(DECLARE_CONFIG_PARAMETER_SIGNATURE); diff --git a/firmware/controllers/algo/auto_generated_enums.cpp b/firmware/controllers/algo/auto_generated_enums.cpp index 46622a99b5..eb5cf8d63d 100644 --- a/firmware/controllers/algo/auto_generated_enums.cpp +++ b/firmware/controllers/algo/auto_generated_enums.cpp @@ -1,7 +1,7 @@ #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 Thu Jul 08 03:47:44 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 20:15:17 EDT 2021 // see also gen_config_and_enums.bat @@ -874,10 +874,12 @@ case HELLEN_121_VAG: return "HELLEN_121_VAG"; case HELLEN_121_VAG_5_CYL: return "HELLEN_121_VAG_5_CYL"; -case HELLEN_121_VAG_6_CYL: - return "HELLEN_121_VAG_6_CYL"; case HELLEN_121_VAG_8_CYL: return "HELLEN_121_VAG_8_CYL"; +case HELLEN_121_VAG_V6_CYL: + return "HELLEN_121_VAG_V6_CYL"; +case HELLEN_121_VAG_VR6_CYL: + return "HELLEN_121_VAG_VR6_CYL"; case HELLEN_128_MERCEDES: return "HELLEN_128_MERCEDES"; case HELLEN_134_BMW: diff --git a/firmware/controllers/algo/engine_configuration.cpp b/firmware/controllers/algo/engine_configuration.cpp index 77b5431aed..bd6ad3cbe1 100644 --- a/firmware/controllers/algo/engine_configuration.cpp +++ b/firmware/controllers/algo/engine_configuration.cpp @@ -950,8 +950,11 @@ void resetConfigurationExt(configuration_callback_t boardCallback, engine_type_e case HELLEN_121_VAG_5_CYL: setHellen121Vag_5_cyl(PASS_CONFIG_PARAMETER_SIGNATURE); break; - case HELLEN_121_VAG_6_CYL: - setHellen121Vag_6_cyl(PASS_CONFIG_PARAMETER_SIGNATURE); + case HELLEN_121_VAG_V6_CYL: + setHellen121Vag_v6_cyl(PASS_CONFIG_PARAMETER_SIGNATURE); + break; + case HELLEN_121_VAG_VR6_CYL: + setHellen121Vag_vr6_cyl(PASS_CONFIG_PARAMETER_SIGNATURE); break; case HELLEN_121_VAG_8_CYL: setHellen121Vag_8_cyl(PASS_CONFIG_PARAMETER_SIGNATURE); diff --git a/firmware/controllers/algo/firing_order.h b/firmware/controllers/algo/firing_order.h index 284c3e40fa..68232e9bc2 100644 --- a/firmware/controllers/algo/firing_order.h +++ b/firmware/controllers/algo/firing_order.h @@ -31,10 +31,11 @@ typedef enum { FO_1_2_4_5_3 = 6, // 6 cylinder - FO_1_5_3_6_2_4 = 4, + FO_1_5_3_6_2_4 = 4, // VAG VR6 FO_1_4_2_5_3_6 = 7, FO_1_2_3_4_5_6 = 9, // all Nissan v6 FO_1_6_3_2_5_4 = 13, // EG33 + FO_1_4_3_6_2_5 = 27, // VAG v6 different from VAG VR6 // todo: one day we shall support 7 cylinder radial, probably not before one actually approaches us @@ -65,7 +66,7 @@ typedef enum { // unfortunately not supported by default firmware because MAX_CYLINDER_COUNT=12 by default FO_1_14_9_4_7_12_15_6_13_8_3_16_11_2_5_10 = 22, // WR16 - // max used = 26 + // max used = 27 Force_4b_firing_order = ENUM_32_BITS, } firing_order_e; diff --git a/firmware/controllers/algo/rusefi_enums.h b/firmware/controllers/algo/rusefi_enums.h index 40caebcc6c..2b08c0be42 100644 --- a/firmware/controllers/algo/rusefi_enums.h +++ b/firmware/controllers/algo/rusefi_enums.h @@ -201,7 +201,8 @@ typedef enum { HELLEN_154_VAG = ET_HELLEN_154_VAG, HELLEN_121_VAG_5_CYL = ET_HELLEN_121_VAG_5_CYL, - HELLEN_121_VAG_6_CYL = ET_HELLEN_121_VAG_6_CYL, + HELLEN_121_VAG_V6_CYL = ET_HELLEN_121_VAG_V6_CYL, + HELLEN_121_VAG_VR6_CYL = ET_HELLEN_121_VAG_VR6_CYL, HELLEN_121_VAG_8_CYL = ET_HELLEN_121_VAG_8_CYL, HELLEN_NA94 = ET_HELLEN_NA94, diff --git a/firmware/controllers/math/engine_math.cpp b/firmware/controllers/math/engine_math.cpp index 812843c692..0afda0c356 100644 --- a/firmware/controllers/math/engine_math.cpp +++ b/firmware/controllers/math/engine_math.cpp @@ -122,6 +122,7 @@ static const int order_1_THEN_5_THEN_3_THEN_6_THEN_2_THEN_4[] = { 1, 5, 3, 6, 2, static const int order_1_THEN_4_THEN_2_THEN_5_THEN_3_THEN_6[] = { 1, 4, 2, 5, 3, 6 }; static const int order_1_THEN_2_THEN_3_THEN_4_THEN_5_THEN_6[] = { 1, 2, 3, 4, 5, 6 }; static const int order_1_6_3_2_5_4[] = {1, 6, 3, 2, 5, 4}; +static const int order_1_4_3_6_2_5[] = {1, 4, 3, 6, 2, 5}; // 8 cylinder static const int order_1_8_4_3_6_5_7_2[] = { 1, 8, 4, 3, 6, 5, 7, 2 }; @@ -174,6 +175,7 @@ static int getFiringOrderLength(DECLARE_ENGINE_PARAMETER_SIGNATURE) { case FO_1_4_2_5_3_6: case FO_1_2_3_4_5_6: case FO_1_6_3_2_5_4: + case FO_1_4_3_6_2_5: return 6; // 8 cylinder @@ -245,6 +247,8 @@ static const int *getFiringOrderTable(DECLARE_ENGINE_PARAMETER_SIGNATURE) return order_1_THEN_2_THEN_3_THEN_4_THEN_5_THEN_6; case FO_1_6_3_2_5_4: return order_1_6_3_2_5_4; + case FO_1_4_3_6_2_5: + return order_1_4_3_6_2_5; // 8 cylinder case FO_1_8_4_3_6_5_7_2: