From 999d8d99feafd8f8b8feaea43dcf37c9373b5d4f Mon Sep 17 00:00:00 2001 From: Matthew Kennedy Date: Wed, 17 Jan 2024 05:20:16 -0500 Subject: [PATCH] separate config for secondary injectors --- .../algo/defaults/default_fuel.cpp | 38 ++++++++++--------- .../controllers/algo/fuel/injector_model.cpp | 2 +- firmware/integration/rusefi_config.txt | 3 +- firmware/tunerstudio/rusefi.input | 26 +++++++++---- 4 files changed, 42 insertions(+), 27 deletions(-) diff --git a/firmware/controllers/algo/defaults/default_fuel.cpp b/firmware/controllers/algo/defaults/default_fuel.cpp index d0807df6ee..a5dddd3af5 100644 --- a/firmware/controllers/algo/defaults/default_fuel.cpp +++ b/firmware/controllers/algo/defaults/default_fuel.cpp @@ -4,31 +4,31 @@ #include "table_helper.h" #include "mazda_miata_vvt.h" -static void setBosch02880155868() { +static void setBosch02880155868(injector_s& cfg) { // http://www.boschdealer.com/specsheets/0280155868cs.jpg - engineConfiguration->injector.battLagCorrBins[0] = 6; - engineConfiguration->injector.battLagCorr[0] = 3.371; + cfg.battLagCorrBins[0] = 6; + cfg.battLagCorr[0] = 3.371; - engineConfiguration->injector.battLagCorrBins[1] = 8; - engineConfiguration->injector.battLagCorr[1] = 1.974; + cfg.battLagCorrBins[1] = 8; + cfg.battLagCorr[1] = 1.974; - engineConfiguration->injector.battLagCorrBins[2] = 10; - engineConfiguration->injector.battLagCorr[2] = 1.383; + cfg.battLagCorrBins[2] = 10; + cfg.battLagCorr[2] = 1.383; - engineConfiguration->injector.battLagCorrBins[3] = 11; - engineConfiguration->injector.battLagCorr[3] = 1.194; + cfg.battLagCorrBins[3] = 11; + cfg.battLagCorr[3] = 1.194; - engineConfiguration->injector.battLagCorrBins[4] = 12; - engineConfiguration->injector.battLagCorr[4] = 1.04; + cfg.battLagCorrBins[4] = 12; + cfg.battLagCorr[4] = 1.04; - engineConfiguration->injector.battLagCorrBins[5] = 13; - engineConfiguration->injector.battLagCorr[5] = 0.914; + cfg.battLagCorrBins[5] = 13; + cfg.battLagCorr[5] = 0.914; - engineConfiguration->injector.battLagCorrBins[6] = 14; - engineConfiguration->injector.battLagCorr[6] = 0.797; + cfg.battLagCorrBins[6] = 14; + cfg.battLagCorr[6] = 0.797; - engineConfiguration->injector.battLagCorrBins[7] = 15; - engineConfiguration->injector.battLagCorr[7] = 0.726; + cfg.battLagCorrBins[7] = 15; + cfg.battLagCorr[7] = 0.726; } static void setDefaultWarmupFuelEnrichment() { @@ -255,13 +255,15 @@ void setDefaultFuel() { * By the way http://users.erols.com/srweiss/tableifc.htm has a LOT of data */ engineConfiguration->injector.flow = 200; + engineConfiguration->injectorSecondary.flow = 200; engineConfiguration->stoichRatioPrimary = STOICH_RATIO; // 9.0 = E100 pure ethanol engineConfiguration->stoichRatioSecondary = 9.0f; // Injector deadtime - setBosch02880155868(); + setBosch02880155868(engineConfiguration->injector); + setBosch02880155868(engineConfiguration->injectorSecondary); // Tables setFuelTablesLoadBin(10, 160); diff --git a/firmware/controllers/algo/fuel/injector_model.cpp b/firmware/controllers/algo/fuel/injector_model.cpp index d4c829a561..4483f5e846 100644 --- a/firmware/controllers/algo/fuel/injector_model.cpp +++ b/firmware/controllers/algo/fuel/injector_model.cpp @@ -231,6 +231,6 @@ InjectorModelPrimary::InjectorModelPrimary() // TODO: actual separate config for second bank! InjectorModelSecondary::InjectorModelSecondary() - : InjectorModelWithConfig(&engineConfiguration->injector) + : InjectorModelWithConfig(&engineConfiguration->injectorSecondary) { } diff --git a/firmware/integration/rusefi_config.txt b/firmware/integration/rusefi_config.txt index ce1e22a2a5..7581ec31c9 100644 --- a/firmware/integration/rusefi_config.txt +++ b/firmware/integration/rusefi_config.txt @@ -99,7 +99,7 @@ ! Any time an incompatible change is made to the configuration format stored in flash, ! update this string to the current date! It is required to also update TS_SIGNATURE above ! when this happens. -#define FLASH_DATA_VERSION 230721 +#define FLASH_DATA_VERSION 20014 ! this offset is part of console compatibility mechanism, please DO NOT change this offset #define TS_FILE_VERSION_OFFSET 124 @@ -428,6 +428,7 @@ struct injector_s end_struct injector_s injector +injector_s injectorSecondary bit isForcedInduction;Does the vehicle have a turbo or supercharger? bit useFordRedundantTps;On some Ford and Toyota vehicles one of the throttle sensors is not linear on the full range, i.e. in the specific range of the positions we effectively have only one sensor. diff --git a/firmware/tunerstudio/rusefi.input b/firmware/tunerstudio/rusefi.input index a8f2f39c06..0f8de868bf 100644 --- a/firmware/tunerstudio/rusefi.input +++ b/firmware/tunerstudio/rusefi.input @@ -452,6 +452,14 @@ enable2ndByteCanID = false yBins = injector_battLagCorr gauge = VBattGauge + curve = injectorsSecondaryDeadTime, "Secondary injector dead time" + columnLabel = "Battery", "Dead Time" + xAxis = 6, 16, 11 + yAxis = 0, 8, 9 + xBins = injectorSecondary_battLagCorrBins, VBatt + yBins = injectorSecondary_battLagCorr + gauge = VBattGauge + curve = vrThresholdCurve1, "VR 1 Threshold" columnLabel = "RPM", "Voltage" xAxis = 0, 8000, 9 @@ -1745,7 +1753,10 @@ menuDialog = main subMenu = injectionSettings, "Injection hardware", 0, {isInjectionEnabled == 1} subMenu = cylinderBankSelect, "Cylinder bank selection", 0, {isInjectionEnabled == 1} subMenu = injectorNonlinear, "Injector small-pulse correction", 0, {isInjectionEnabled == 1} + subMenu = stagedInjection, "Staged injection", 0, {isInjectionEnabled} + subMenu = stagedInjectionOutputs, "Staged injection outputs", 0, {isInjectionEnabled && enableStagedInjection} + subMenu = stagedInjectionTbl, "Staged injection % table", 0, {isInjectionEnabled && enableStagedInjection} groupMenu = "Cylinder fuel trims" groupChildMenu = fuelTrimTbl1, "Fuel trim cyl 1" @@ -2571,7 +2582,7 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_ panel = baseInjection panel = injChars panel = fuelParams - panel = injectorsDeadTime + panel = injectorsDeadTime, {isInjectionEnabled} dialog = ignitionCylExtra, "Cylinder offsets" field = "Offset angle for each cylinder if you have an odd fire" @@ -2590,9 +2601,7 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_ field = "Offset cyl 11", timing_offset_cylinder11, {cylindersCount > 10} field = "Offset cyl 12", timing_offset_cylinder12, {cylindersCount > 11} - dialog = stagedInjectionLeft, "", yAxis - field = "Enable", enableStagedInjection, {isInjectionEnabled} - field = "" + dialog = stagedInjectionOutputs, "", yAxis field = "Injection Stage 2 Output 1", injectionPinsStage21, {isInjectionEnabled && enableStagedInjection} field = "Injection Stage 2 Output 2", injectionPinsStage22, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 1} field = "Injection Stage 2 Output 3", injectionPinsStage23, {isInjectionEnabled && enableStagedInjection && injectionMode != @@injection_mode_e_IM_SINGLE_POINT@@ && cylindersCount > 2} @@ -2606,9 +2615,12 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_ field = "Injection Stage 2 Output 11 ", injectionPinsStage211, {isInjectionEnabled && enableStagedInjection && cylindersCount > 10} field = "Injection Stage 2 Output 12 ", injectionPinsStage212, {isInjectionEnabled && enableStagedInjection && cylindersCount > 11} - dialog = stagedInjection, "", xAxis - panel = stagedInjectionLeft - panel = stagedInjectionTbl, {isInjectionEnabled && enableStagedInjection} + dialog = stagedInjection, "", yAxis + field = "Enable", enableStagedInjection, {isInjectionEnabled} + field = "" + field = "Secondary injector flow", injectorSecondary_flow {isInjectionEnabled && enableStagedInjection} + field = "" + panel = injectorsSecondaryDeadTime, {isInjectionEnabled && enableStagedInjection} dialog = multisparkDwellParams, "Delay & Dwell" field = "Spark duration", multisparkSparkDuration, {multisparkEnable}