mirror of https://github.com/FOME-Tech/fome-fw.git
This commit is contained in:
parent
9e979e973b
commit
b0c3357cba
|
@ -36,6 +36,7 @@ Release template (copy/paste this for new release):
|
|||
- Improved bench test resolution (more usable for testing injectors, dwell, etc)
|
||||
- Maximum knock retard table displays correct Y axis values in TunerStudio
|
||||
- Make errors about fuel pressure sensors less aggressive #111 #117
|
||||
- Always operate in "two wire" mode for batch fuel, fixing batch firing order #23
|
||||
|
||||
## May 2023 Release
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ void setCamaro4() {
|
|||
engineConfiguration->triggerInputPins[1] = Gpio::C6;
|
||||
|
||||
engineConfiguration->injectionMode = IM_BATCH;
|
||||
engineConfiguration->twoWireBatchInjection = true;
|
||||
|
||||
// set ignition_mode 2
|
||||
engineConfiguration->ignitionMode = IM_WASTED_SPARK;
|
||||
|
||||
|
|
|
@ -46,10 +46,6 @@ void setDodgeNeon1995EngineConfiguration() {
|
|||
// set injection_mode 1
|
||||
engineConfiguration->injectionMode = IM_SEQUENTIAL;
|
||||
|
||||
// this is needed for injector lag auto-tune research if switching to batch
|
||||
// enable two_wire_batch_injection
|
||||
engineConfiguration->twoWireBatchInjection = true;
|
||||
|
||||
// set ignition_mode 2
|
||||
engineConfiguration->ignitionMode = IM_WASTED_SPARK;
|
||||
// set_firing_order 2
|
||||
|
|
|
@ -27,8 +27,6 @@ void setFordInline6() {
|
|||
engineConfiguration->firingOrder = FO_1_5_3_6_2_4;
|
||||
engineConfiguration->crankingInjectionMode = IM_SIMULTANEOUS;
|
||||
engineConfiguration->injectionMode = IM_BATCH;
|
||||
engineConfiguration->twoWireBatchInjection = true;
|
||||
|
||||
|
||||
/**
|
||||
* 0.5ms dwell time just to be sure it would fit within camshaft revolution, dwell is not controlled by us anyway
|
||||
|
|
|
@ -11,10 +11,6 @@
|
|||
void setGmLs4() {
|
||||
engineConfiguration->globalTriggerAngleOffset = 86;
|
||||
|
||||
// would not hurt just in case no cam
|
||||
engineConfiguration->twoWireBatchInjection = true;
|
||||
|
||||
|
||||
engineConfiguration->fuelReferencePressure = 400; // 400 kPa, 58 psi
|
||||
engineConfiguration->injectorCompensationMode = ICM_FixedRailPressure;
|
||||
engineConfiguration->injector.flow = 440;
|
||||
|
|
|
@ -264,9 +264,6 @@ void setMiataNA6_MAP_MRE() {
|
|||
|
||||
engineConfiguration->fuelPumpPin = Gpio::Unassigned;
|
||||
|
||||
|
||||
engineConfiguration->twoWireBatchInjection = true;
|
||||
|
||||
engineConfiguration->useIacTableForCoasting = true;
|
||||
engineConfiguration->idlePidDeactivationTpsThreshold = 90;
|
||||
|
||||
|
|
|
@ -416,8 +416,6 @@ void setMazdaMiata2003EngineConfiguration() {
|
|||
|
||||
// engineConfiguration->is_enabled_spi_1 = true;
|
||||
|
||||
engineConfiguration->twoWireBatchInjection = true; // this is needed for #492 testing
|
||||
|
||||
engineConfiguration->alternatorControlPin = Gpio::E10;
|
||||
engineConfiguration->alternatorControlPinMode = OM_OPENDRAIN;
|
||||
|
||||
|
|
|
@ -86,7 +86,6 @@ void setToyota_2jz_vics() {
|
|||
|
||||
engineConfiguration->ignitionMode = IM_WASTED_SPARK; // just for now
|
||||
engineConfiguration->injectionMode = IM_BATCH; // just for now
|
||||
engineConfiguration->twoWireBatchInjection = true;
|
||||
|
||||
strcpy(engineConfiguration->engineMake, ENGINE_MAKE_TOYOTA);
|
||||
strcpy(engineConfiguration->engineCode, "2JZ");
|
||||
|
|
|
@ -127,22 +127,13 @@ bool FuelSchedule::addFuelEventsForCylinder(int i) {
|
|||
injection_mode_e mode = getCurrentInjectionMode();
|
||||
engine->outputChannels.currentInjectionMode = static_cast<uint8_t>(mode);
|
||||
|
||||
// We need two outputs if:
|
||||
// - we are running batch fuel, and have "use two wire batch" enabled
|
||||
// - running mode is sequential, but cranking mode is batch, so we should run two wire batch while cranking
|
||||
// (if we didn't, only half of injectors would fire while cranking)
|
||||
bool isTwoWireBatch = engineConfiguration->twoWireBatchInjection || (engineConfiguration->injectionMode == IM_SEQUENTIAL);
|
||||
|
||||
int injectorIndex;
|
||||
if (mode == IM_SIMULTANEOUS || mode == IM_SINGLE_POINT) {
|
||||
// These modes only have one injector
|
||||
injectorIndex = 0;
|
||||
} else if (mode == IM_SEQUENTIAL || (mode == IM_BATCH && isTwoWireBatch)) {
|
||||
} else if (mode == IM_SEQUENTIAL || mode == IM_BATCH) {
|
||||
// Map order index -> cylinder index (firing order)
|
||||
injectorIndex = getCylinderId(i) - 1;
|
||||
} else if (mode == IM_BATCH) {
|
||||
// Loop over the first half of the firing order twice
|
||||
injectorIndex = i % (engineConfiguration->cylindersCount / 2);
|
||||
} else {
|
||||
firmwareError(ObdCode::CUSTOM_OBD_UNEXPECTED_INJECTION_MODE, "Unexpected injection mode %d", mode);
|
||||
injectorIndex = 0;
|
||||
|
@ -150,7 +141,7 @@ bool FuelSchedule::addFuelEventsForCylinder(int i) {
|
|||
|
||||
InjectorOutputPin *secondOutput;
|
||||
|
||||
if (mode == IM_BATCH && isTwoWireBatch) {
|
||||
if (mode == IM_BATCH) {
|
||||
/**
|
||||
* also fire the 2nd half of the injectors so that we can implement a batch mode on individual wires
|
||||
*/
|
||||
|
|
|
@ -389,9 +389,6 @@ static void enableOrDisable(const char *param, bool isEnabled) {
|
|||
#endif // EFI_PROD_CODE
|
||||
} else if (strEqualCaseInsensitive(param, "stepperidle")) {
|
||||
engineConfiguration->useStepperIdle = isEnabled;
|
||||
} else if (strEqualCaseInsensitive(param, "two_wire_batch_injection")) {
|
||||
engineConfiguration->twoWireBatchInjection = isEnabled;
|
||||
incrementGlobalConfigurationVersion();
|
||||
} else if (strEqualCaseInsensitive(param, "boardUseTempPullUp")) {
|
||||
engineConfiguration->boardUseTempPullUp = isEnabled;
|
||||
incrementGlobalConfigurationVersion();
|
||||
|
|
|
@ -989,7 +989,7 @@ bit skippedWheelOnCam,"On camshaft","On crankshaft";Where is your primary skippe
|
|||
bit useSeparateVeForIdle;This activates a separate fuel table for Idle, this allows fine tuning of the idle fuelling.
|
||||
bit verboseTriggerSynchDetails;Verbose info in console below engineSnifferRpmThreshold\nenable trigger_details
|
||||
bit isManualSpinningMode;Usually if we have no trigger events that means engine is stopped\nUnless we are troubleshooting and spinning the engine by hand - this case a longer\ndelay is needed
|
||||
bit twoWireBatchInjection;This is needed if your coils are individually wired and you wish to use batch injection.\nenable two_wire_batch_injection
|
||||
bit unused1200b12
|
||||
bit neverInstantRpm
|
||||
bit unused1200b14
|
||||
bit useFixedBaroCorrFromMap
|
||||
|
|
|
@ -2158,7 +2158,6 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_
|
|||
field = "Enabled", isInjectionEnabled
|
||||
field = "Mode", injectionMode, {isInjectionEnabled == 1}
|
||||
field = "#Batch injection with individual wiring"
|
||||
field = "Individually wired Batch Fuel", twoWireBatchInjection, {isInjectionEnabled == 1 && injectionMode == @@injection_mode_e_IM_BATCH@@ }
|
||||
field = "Override VE table load axis", veOverrideMode, { isInjectionEnabled }
|
||||
field = "Override AFR table load axis", afrOverrideMode, { isInjectionEnabled }
|
||||
field = "Injection phase control mode", injectionTimingMode, { isInjectionEnabled }
|
||||
|
|
|
@ -56,8 +56,6 @@ TEST(fuelControl, transitionIssue1592) {
|
|||
|
||||
// Test the transition from batch cranking to sequential running
|
||||
engineConfiguration->crankingInjectionMode = IM_BATCH;
|
||||
engineConfiguration->twoWireBatchInjection = true;
|
||||
|
||||
|
||||
// First sync point will schedule cranking pulse since we're in "faster spin up" mode
|
||||
doRevolution(eth, 240);
|
||||
|
|
|
@ -795,7 +795,6 @@ TEST(big, testTwoWireBatch) {
|
|||
.WillRepeatedly(Return(AirmassResult{0.1008f, 50.0f}));
|
||||
|
||||
engineConfiguration->injectionMode = IM_BATCH;
|
||||
engineConfiguration->twoWireBatchInjection = true;
|
||||
|
||||
eth.fireTriggerEventsWithDuration(20);
|
||||
// still no RPM since need to cycles measure cycle duration
|
||||
|
|
Loading…
Reference in New Issue