separate config for secondary injectors

This commit is contained in:
Matthew Kennedy 2024-01-17 05:20:16 -05:00 committed by rusefillc
parent 8c73ae8ec6
commit 999d8d99fe
4 changed files with 42 additions and 27 deletions

View File

@ -4,31 +4,31 @@
#include "table_helper.h" #include "table_helper.h"
#include "mazda_miata_vvt.h" #include "mazda_miata_vvt.h"
static void setBosch02880155868() { static void setBosch02880155868(injector_s& cfg) {
// http://www.boschdealer.com/specsheets/0280155868cs.jpg // http://www.boschdealer.com/specsheets/0280155868cs.jpg
engineConfiguration->injector.battLagCorrBins[0] = 6; cfg.battLagCorrBins[0] = 6;
engineConfiguration->injector.battLagCorr[0] = 3.371; cfg.battLagCorr[0] = 3.371;
engineConfiguration->injector.battLagCorrBins[1] = 8; cfg.battLagCorrBins[1] = 8;
engineConfiguration->injector.battLagCorr[1] = 1.974; cfg.battLagCorr[1] = 1.974;
engineConfiguration->injector.battLagCorrBins[2] = 10; cfg.battLagCorrBins[2] = 10;
engineConfiguration->injector.battLagCorr[2] = 1.383; cfg.battLagCorr[2] = 1.383;
engineConfiguration->injector.battLagCorrBins[3] = 11; cfg.battLagCorrBins[3] = 11;
engineConfiguration->injector.battLagCorr[3] = 1.194; cfg.battLagCorr[3] = 1.194;
engineConfiguration->injector.battLagCorrBins[4] = 12; cfg.battLagCorrBins[4] = 12;
engineConfiguration->injector.battLagCorr[4] = 1.04; cfg.battLagCorr[4] = 1.04;
engineConfiguration->injector.battLagCorrBins[5] = 13; cfg.battLagCorrBins[5] = 13;
engineConfiguration->injector.battLagCorr[5] = 0.914; cfg.battLagCorr[5] = 0.914;
engineConfiguration->injector.battLagCorrBins[6] = 14; cfg.battLagCorrBins[6] = 14;
engineConfiguration->injector.battLagCorr[6] = 0.797; cfg.battLagCorr[6] = 0.797;
engineConfiguration->injector.battLagCorrBins[7] = 15; cfg.battLagCorrBins[7] = 15;
engineConfiguration->injector.battLagCorr[7] = 0.726; cfg.battLagCorr[7] = 0.726;
} }
static void setDefaultWarmupFuelEnrichment() { static void setDefaultWarmupFuelEnrichment() {
@ -255,13 +255,15 @@ void setDefaultFuel() {
* By the way http://users.erols.com/srweiss/tableifc.htm has a LOT of data * By the way http://users.erols.com/srweiss/tableifc.htm has a LOT of data
*/ */
engineConfiguration->injector.flow = 200; engineConfiguration->injector.flow = 200;
engineConfiguration->injectorSecondary.flow = 200;
engineConfiguration->stoichRatioPrimary = STOICH_RATIO; engineConfiguration->stoichRatioPrimary = STOICH_RATIO;
// 9.0 = E100 pure ethanol // 9.0 = E100 pure ethanol
engineConfiguration->stoichRatioSecondary = 9.0f; engineConfiguration->stoichRatioSecondary = 9.0f;
// Injector deadtime // Injector deadtime
setBosch02880155868(); setBosch02880155868(engineConfiguration->injector);
setBosch02880155868(engineConfiguration->injectorSecondary);
// Tables // Tables
setFuelTablesLoadBin(10, 160); setFuelTablesLoadBin(10, 160);

View File

@ -231,6 +231,6 @@ InjectorModelPrimary::InjectorModelPrimary()
// TODO: actual separate config for second bank! // TODO: actual separate config for second bank!
InjectorModelSecondary::InjectorModelSecondary() InjectorModelSecondary::InjectorModelSecondary()
: InjectorModelWithConfig(&engineConfiguration->injector) : InjectorModelWithConfig(&engineConfiguration->injectorSecondary)
{ {
} }

View File

@ -99,7 +99,7 @@
! Any time an incompatible change is made to the configuration format stored in flash, ! 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 ! update this string to the current date! It is required to also update TS_SIGNATURE above
! when this happens. ! 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 ! this offset is part of console compatibility mechanism, please DO NOT change this offset
#define TS_FILE_VERSION_OFFSET 124 #define TS_FILE_VERSION_OFFSET 124
@ -428,6 +428,7 @@ struct injector_s
end_struct end_struct
injector_s injector injector_s injector
injector_s injectorSecondary
bit isForcedInduction;Does the vehicle have a turbo or supercharger? 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. 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.

View File

@ -452,6 +452,14 @@ enable2ndByteCanID = false
yBins = injector_battLagCorr yBins = injector_battLagCorr
gauge = VBattGauge 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" curve = vrThresholdCurve1, "VR 1 Threshold"
columnLabel = "RPM", "Voltage" columnLabel = "RPM", "Voltage"
xAxis = 0, 8000, 9 xAxis = 0, 8000, 9
@ -1745,7 +1753,10 @@ menuDialog = main
subMenu = injectionSettings, "Injection hardware", 0, {isInjectionEnabled == 1} subMenu = injectionSettings, "Injection hardware", 0, {isInjectionEnabled == 1}
subMenu = cylinderBankSelect, "Cylinder bank selection", 0, {isInjectionEnabled == 1} subMenu = cylinderBankSelect, "Cylinder bank selection", 0, {isInjectionEnabled == 1}
subMenu = injectorNonlinear, "Injector small-pulse correction", 0, {isInjectionEnabled == 1} subMenu = injectorNonlinear, "Injector small-pulse correction", 0, {isInjectionEnabled == 1}
subMenu = stagedInjection, "Staged injection", 0, {isInjectionEnabled} 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" groupMenu = "Cylinder fuel trims"
groupChildMenu = fuelTrimTbl1, "Fuel trim cyl 1" 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 = baseInjection
panel = injChars panel = injChars
panel = fuelParams panel = fuelParams
panel = injectorsDeadTime panel = injectorsDeadTime, {isInjectionEnabled}
dialog = ignitionCylExtra, "Cylinder offsets" dialog = ignitionCylExtra, "Cylinder offsets"
field = "Offset angle for each cylinder if you have an odd fire" 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 11", timing_offset_cylinder11, {cylindersCount > 10}
field = "Offset cyl 12", timing_offset_cylinder12, {cylindersCount > 11} field = "Offset cyl 12", timing_offset_cylinder12, {cylindersCount > 11}
dialog = stagedInjectionLeft, "", yAxis dialog = stagedInjectionOutputs, "", yAxis
field = "Enable", enableStagedInjection, {isInjectionEnabled}
field = ""
field = "Injection Stage 2 Output 1", injectionPinsStage21, {isInjectionEnabled && enableStagedInjection} 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 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} 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 11 ", injectionPinsStage211, {isInjectionEnabled && enableStagedInjection && cylindersCount > 10}
field = "Injection Stage 2 Output 12 ", injectionPinsStage212, {isInjectionEnabled && enableStagedInjection && cylindersCount > 11} field = "Injection Stage 2 Output 12 ", injectionPinsStage212, {isInjectionEnabled && enableStagedInjection && cylindersCount > 11}
dialog = stagedInjection, "", xAxis dialog = stagedInjection, "", yAxis
panel = stagedInjectionLeft field = "Enable", enableStagedInjection, {isInjectionEnabled}
panel = stagedInjectionTbl, {isInjectionEnabled && enableStagedInjection} field = ""
field = "Secondary injector flow", injectorSecondary_flow {isInjectionEnabled && enableStagedInjection}
field = ""
panel = injectorsSecondaryDeadTime, {isInjectionEnabled && enableStagedInjection}
dialog = multisparkDwellParams, "Delay & Dwell" dialog = multisparkDwellParams, "Delay & Dwell"
field = "Spark duration", multisparkSparkDuration, {multisparkEnable} field = "Spark duration", multisparkSparkDuration, {multisparkEnable}