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 "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);

View File

@ -231,6 +231,6 @@ InjectorModelPrimary::InjectorModelPrimary()
// TODO: actual separate config for second bank!
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,
! 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.

View File

@ -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}