diff --git a/firmware/config/engines/ford_festiva.cpp b/firmware/config/engines/ford_festiva.cpp index 5dee55d905..d4fe023cee 100644 --- a/firmware/config/engines/ford_festiva.cpp +++ b/firmware/config/engines/ford_festiva.cpp @@ -156,19 +156,21 @@ void setFordEscortGt(DECLARE_ENGINE_PARAMETER_F) { boardConfiguration->triggerSimulatorPinModes[0] = OM_OPENDRAIN; boardConfiguration->triggerSimulatorPinModes[1] = OM_OPENDRAIN; - boardConfiguration->ignitionPins[0] = GPIOE_14; // Frankenso high side - pin 1G - boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED; - boardConfiguration->ignitionPins[2] = GPIO_UNASSIGNED; - boardConfiguration->ignitionPins[3] = GPIO_UNASSIGNED; - boardConfiguration->ignitionPinMode = OM_DEFAULT; - // individual coils // W6 PC9 // W8 PC7 // W12 PE8 // W13 PE12 + boardConfiguration->ignitionPins[0] = GPIOC_9; + boardConfiguration->ignitionPins[1] = GPIOC_7; + boardConfiguration->ignitionPins[2] = GPIOE_8; + boardConfiguration->ignitionPins[3] = GPIOE_12; + boardConfiguration->ignitionPinMode = OM_DEFAULT; + engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS; + + engineConfiguration->dizzySparkOutputPin = GPIOE_14; // Frankenso high side - pin 1G; /** * Outputs @@ -273,6 +275,13 @@ void setFordEscortGt(DECLARE_ENGINE_PARAMETER_F) { // engineConfiguration->warmupAfrPid.dFactor = -0.02; engineConfiguration->debugMode = WARMUP_ENRICH; + + engineConfiguration->tpsAccelEnrichmentThreshold = 40; + engineConfiguration->tpsAccelEnrichmentMultiplier = 0.0; + + engineConfiguration->engineLoadAccelEnrichmentThreshold = 5.0; + engineConfiguration->engineLoadAccelEnrichmentMultiplier = 1; + // end of Ford Escort GT config } diff --git a/firmware/controllers/trigger/main_trigger_callback.cpp b/firmware/controllers/trigger/main_trigger_callback.cpp index abc733a0ca..1dd210dc34 100644 --- a/firmware/controllers/trigger/main_trigger_callback.cpp +++ b/firmware/controllers/trigger/main_trigger_callback.cpp @@ -181,18 +181,29 @@ static ALWAYS_INLINE void handleFuel(bool limitedFuel, uint32_t eventIndex, int for (int i = 0; i < source->size; i++) { InjectionEvent *event = &source->elements[i]; - if (event->injectionStart.eventIndex != eventIndex) + if (event->injectionStart.eventIndex != eventIndex) { continue; + } handleFuelInjectionEvent(i, limitedFuel, event, rpm PASS_ENGINE_PARAMETER); } } void turnSparkPinLow(NamedOutputPin *output) { turnPinLow(output); +#if EFI_PROD_CODE || defined(__DOXYGEN__) + if (CONFIG(dizzySparkOutputPin) != GPIO_UNASSIGNED) { + doSetOutputPinValue2(&enginePins.dizzyOutput, false); + } +#endif } void turnSparkPinHigh(NamedOutputPin *output) { turnPinHigh(output); +#if EFI_PROD_CODE || defined(__DOXYGEN__) + if (CONFIG(dizzySparkOutputPin) != GPIO_UNASSIGNED) { + doSetOutputPinValue2(&enginePins.dizzyOutput, true); + } +#endif } static ALWAYS_INLINE void handleSparkEvent(bool limitedSpark, uint32_t eventIndex, IgnitionEvent *iEvent, diff --git a/firmware/tunerstudio/rusefi.ini b/firmware/tunerstudio/rusefi.ini index 11cc3fd858..49b164f153 100644 --- a/firmware/tunerstudio/rusefi.ini +++ b/firmware/tunerstudio/rusefi.ini @@ -1366,6 +1366,9 @@ cmd_test_idle_valve = "w\x00\x17\x00\x01" field = "Ignition Pin 4", ignitionPins4, {ignitionMode != 0 && cylindersCount > 3} field = "Ignition Pin 5", ignitionPins4, {ignitionMode != 0 && cylindersCount > 4} field = "Ignition Pin 6", ignitionPins4, {ignitionMode != 0 && cylindersCount > 5} + field = "This is useful to have tachometer working while converting from distributor" + field = "Dizzy out Pin", dizzySparkOutputPin + field = "Dizzy out Pin Mode", dizzySparkOutputPinMode dialog = ignitionSettings, "", xAxis panel = ignitionOutputs, West