From ade040036f965d1f4408167e8a887792a295170c Mon Sep 17 00:00:00 2001 From: Andrey B Date: Wed, 30 Apr 2014 09:30:05 -0500 Subject: [PATCH] manual update --- firmware/config/boards/arro_board.h | 4 - firmware/config/engines/GY6_139QMB.cpp | 31 +++++ firmware/config/engines/audi_aan.cpp | 52 ++++++++ firmware/config/engines/dodge_neon.cpp | 112 ++++++++++++++++++ firmware/config/engines/engines.mk | 21 ++-- .../config/engines/ford_1995_inline_6.cpp | 100 ++++++++++++++++ firmware/config/engines/ford_fiesta.cpp | 31 +++++ firmware/config/engines/honda_accord.cpp | 16 +++ firmware/config/engines/mazda_323.cpp | 22 ++++ firmware/config/engines/mazda_miata_nb.cpp | 83 +++++++++++++ firmware/config/engines/nissan_primera.cpp | 18 +++ firmware/config/engines/snow_blower.cpp | 14 +++ 12 files changed, 490 insertions(+), 14 deletions(-) create mode 100644 firmware/config/engines/GY6_139QMB.cpp create mode 100644 firmware/config/engines/audi_aan.cpp create mode 100644 firmware/config/engines/dodge_neon.cpp create mode 100644 firmware/config/engines/ford_1995_inline_6.cpp create mode 100644 firmware/config/engines/ford_fiesta.cpp create mode 100644 firmware/config/engines/honda_accord.cpp create mode 100644 firmware/config/engines/mazda_323.cpp create mode 100644 firmware/config/engines/mazda_miata_nb.cpp create mode 100644 firmware/config/engines/nissan_primera.cpp create mode 100644 firmware/config/engines/snow_blower.cpp diff --git a/firmware/config/boards/arro_board.h b/firmware/config/boards/arro_board.h index 0e572ef8d1..2656e1e6df 100644 --- a/firmware/config/boards/arro_board.h +++ b/firmware/config/boards/arro_board.h @@ -264,13 +264,9 @@ #define LED_COMMUNICATION_PIN GPIOD_LED6 #define EFI_SIGNAL_EXECUTOR_SLEEP FALSE -#define EFI_SIGNAL_EXECUTOR_SINGLE_TIMER FALSE #define EFI_SIGNAL_EXECUTOR_ONE_TIMER TRUE #define EFI_SIGNAL_EXECUTOR_HW_TIMER FALSE -//#define EFI_SIGNAL_EXECUTOR_SLEEP FALSE -//#define EFI_SIGNAL_EXECUTOR_SINGLE_TIMER TRUE - // USART1 -> check defined STM32_SERIAL_USE_USART1 // For GPS we have USART1. We can start with PB7 USART1_RX and PB6 USART1_TX diff --git a/firmware/config/engines/GY6_139QMB.cpp b/firmware/config/engines/GY6_139QMB.cpp new file mode 100644 index 0000000000..7b3bf29221 --- /dev/null +++ b/firmware/config/engines/GY6_139QMB.cpp @@ -0,0 +1,31 @@ +/** + * @file GY6_139QMB.c + * @brief 139qmb default engine configuration + * + * @date Feb 13, 2014 + * @author rus084 + * @author Andrey Belomutskiy, (c) 2012-2014 + */ + +#include "GY6_139QMB.h" + +void setGy6139qmbDefaultEngineConfiguration(engine_configuration_s *engineConfiguration) { + engineConfiguration->rpmHardLimit = 9000; + engineConfiguration->crankingSettings.crankingRpm = 800; + engineConfiguration->analogInputDividerCoefficient = 1.52; + engineConfiguration->engineLoadMode = LM_MAP; + engineConfiguration->globalTriggerAngleOffset = 15; + engineConfiguration->analogChartMode = AC_MAP; + engineConfiguration->cylindersCount = 1; + engineConfiguration->rpmMultiplier = 1; + + engineConfiguration->firingOrder = FO_ONE_CYLINDER; + + /** + * We treat the trigger as 1/0 toothed wheel + */ + engineConfiguration->triggerConfig.totalToothCount = 1; + engineConfiguration->triggerConfig.skippedToothCount = 0; + engineConfiguration->triggerConfig.isSynchronizationNeeded = FALSE; + engineConfiguration->needSecondTriggerInput = FALSE; +} diff --git a/firmware/config/engines/audi_aan.cpp b/firmware/config/engines/audi_aan.cpp new file mode 100644 index 0000000000..dec37448bd --- /dev/null +++ b/firmware/config/engines/audi_aan.cpp @@ -0,0 +1,52 @@ +/** + * @file audi_aan.c + * @brief Audo AAN default engine configuration + * + * @date Nov 24, 2013 + * @author Andrey Belomutskiy, (c) 2012-2014 + * + * This file is part of rusEfi - see http://rusefi.com + * + * rusEfi is free software; you can redistribute it and/or modify it under the terms of + * the GNU General Public License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * rusEfi is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without + * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with this program. + * If not, see . + * + */ + +#include "main.h" + +#if EFI_ENGINE_AUDI_AAN || defined(__DOXYGEN__) + +#include "engine_controller.h" + +extern engine_configuration2_s engineConfiguration2; + +void configureShaftPositionEmulatorShape(PwmConfig *state) { + /** + * One signal per cam shaft revolution + */ + int pinStates0[] = { 1, 0 }; + float switchTimes[] = { 0.8, 1 }; + + int *pinStates[2] = { pinStates0 }; + + weComplexInit("distributor", state, 0, 2, switchTimes, 1, pinStates); +} + +void configureEngineEventHandler(EventHandlerConfiguration *config) { + registerActuatorEvent(&config->ignitionEvents, 0, 1, 0); + registerActuatorEvent(&config->ignitionEvents, 0, 2, 90); +} + +void setDefaultEngineConfiguration(EngineConfiguration *engineConfiguration) { + engineConfiguration2.shaftPositionEventCount = 2; +} + +#endif /* EFI_ENGINE_AUDI_AAN */ diff --git a/firmware/config/engines/dodge_neon.cpp b/firmware/config/engines/dodge_neon.cpp new file mode 100644 index 0000000000..e44202ca7d --- /dev/null +++ b/firmware/config/engines/dodge_neon.cpp @@ -0,0 +1,112 @@ +/** + * @file dodge_neon.c + * + * DODGE_NEON_1995 = 2 + * + * @date Dec 16, 2013 + * @author Andrey Belomutskiy, (c) 2012-2014 + */ + +#include "main.h" + +#if EFI_SUPPORT_DODGE_NEON || defined(__DOXYGEN__) + +#include "dodge_neon.h" +#include "engine_configuration.h" +#include "thermistors.h" +#include "engine_math.h" + +void setDodgeNeonEngineConfiguration(engine_configuration_s *engineConfiguration, + board_configuration_s *boardConfiguration) { + engineConfiguration->triggerConfig.triggerType = TT_DODGE_NEON; + + engineConfiguration->engineLoadMode = LM_TPS; + + // set_rpm_hard_limit 4000 + engineConfiguration->rpmHardLimit = 4000; // yes, 4k. let's play it safe for now + // set_cranking_rpm 550 + engineConfiguration->crankingSettings.crankingRpm = 550; + + // since CLT is not wired up yet let's just use same value for min and max + // set_cranking_fuel_max 6 40 + engineConfiguration->crankingSettings.coolantTempMaxC = 37.7; // 6ms at 37.7C + engineConfiguration->crankingSettings.fuelAtMaxTempMs = 6; + + // set_cranking_fuel_min 6 -40 + engineConfiguration->crankingSettings.coolantTempMinC = -40; // 6ms at -40C + engineConfiguration->crankingSettings.fuelAtMinTempMs = 6; + + // set_whole_fuel_map 3 + setWholeFuelMap(engineConfiguration, 3); + + engineConfiguration->triggerConfig.syncRatioFrom = 0.72 * 0.8; + engineConfiguration->triggerConfig.syncRatioTo = 0.72 * 1.3; + + engineConfiguration->triggerConfig.isSynchronizationNeeded = TRUE; + engineConfiguration->triggerConfig.useRiseEdge = FALSE; + engineConfiguration->needSecondTriggerInput = TRUE; + + // set_cranking_injection_mode 0 + engineConfiguration->crankingInjectionMode = IM_SIMULTANEOUS; + // set_injection_mode 1 + engineConfiguration->injectionMode = IM_SEQUENTIAL; + + // set_ignition_mode 2 + engineConfiguration->ignitionMode = IM_WASTED_SPARK; + // set_firing_order 2 + engineConfiguration->firingOrder = FO_1_THEN_3_THEN_4_THEN2; + + // set_global_trigger_offset_angle 497 + engineConfiguration->globalTriggerAngleOffset = 497; + // set_ignition_offset 350 + engineConfiguration->ignitionOffset = 350; + // set_injection_offset 510 + engineConfiguration->injectionOffset = 510; + + // set_cranking_charge_angle 70 + engineConfiguration->crankingChargeAngle = 7; + // set_cranking_timing_angle 0 + engineConfiguration->crankingTimingAngle = 0; + + // Frankenstein: low side - inj #1: PC14 + // Frankenstein: low side - inj #2: PC15 + // Frankenstein: low side - inj #3: PE6 + // Frankenstein: low side - inj #4: PC13 + // Frankenstein: low side - inj #5: PE4 + // Frankenstein: low side - inj #6: PE5 + // Frankenstein: low side - inj #7: PE2 + // Frankenstein: low side - inj #8: PE3 + // Frankenstein: low side - inj #9: PE0 + // Frankenstein: low side - inj #10: PE1 + // Frankenstein: low side - inj #11: PB8 + // Frankenstein: low side - inj #12: PB9 + + boardConfiguration->injectionPins[0] = GPIOB_9; // Frankenstein: low side - inj #12 + boardConfiguration->injectionPins[1] = GPIOB_8; // Frankenstein: low side - inj #11 + boardConfiguration->injectionPins[2] = GPIOE_3; // Frankenstein: low side - inj #8 + boardConfiguration->injectionPins[3] = GPIOE_5; // Frankenstein: low side - inj #6 + + boardConfiguration->fuelPumpPin = GPIOC_13; // Frankenstein: low side - inj #4 + boardConfiguration->fuelPumpPinMode = OM_DEFAULT; + + // set_injection_pin_mode 0 + boardConfiguration->injectionPinMode = OM_DEFAULT; + + // Frankenstein: high side #1: PE8 + // Frankenstein: high side #2: PE10 + + boardConfiguration->ignitionPins[0] = GPIOE_8; // Frankenstein: high side #1 + boardConfiguration->ignitionPins[1] = GPIO_NONE; + boardConfiguration->ignitionPins[2] = GPIOE_10; // // Frankenstein: high side #2 + + // set_ignition_pin_mode 0 + boardConfiguration->ignitionPinMode = OM_DEFAULT; + + setThermistorConfiguration(&engineConfiguration->cltThermistorConf, 0, 32500, 30, 7550, 100, 700); + engineConfiguration->cltThermistorConf.bias_resistor = 2700; + + engineConfiguration->analogChartFrequency = 7; +} + +#endif /* EFI_SUPPORT_DODGE_NEON */ + diff --git a/firmware/config/engines/engines.mk b/firmware/config/engines/engines.mk index 8342f21064..06abcf8e06 100644 --- a/firmware/config/engines/engines.mk +++ b/firmware/config/engines/engines.mk @@ -1,17 +1,18 @@ -ENGINES_SRC = $(PROJECT_DIR)/config/engines/audi_aan.c \ - $(PROJECT_DIR)/config/engines/dodge_neon.c \ - $(PROJECT_DIR)/config/engines/ford_fiesta.c \ - $(PROJECT_DIR)/config/engines/ford_1995_inline_6.c \ - $(PROJECT_DIR)/config/engines/nissan_primera.c \ - $(PROJECT_DIR)/config/engines/mazda_miata_nb.c \ - $(PROJECT_DIR)/config/engines/honda_accord.c \ - $(PROJECT_DIR)/config/engines/snow_blower.c \ - $(PROJECT_DIR)/config/engines/GY6_139QMB.c \ - $(PROJECT_DIR)/config/engines/mazda_323.c +ENGINES_SRC = ENGINES_SRC_CPP = $(PROJECT_DIR)/config/engines/ford_aspire.cpp \ $(PROJECT_DIR)/config/engines/MiniCooperR50.cpp \ + $(PROJECT_DIR)/config/engines/audi_aan.cpp \ $(PROJECT_DIR)/config/engines/ford_escort_gt.cpp \ $(PROJECT_DIR)/config/engines/citroenBerlingoTU3JP.cpp \ + $(PROJECT_DIR)/config/engines/dodge_neon.cpp \ + $(PROJECT_DIR)/config/engines/ford_fiesta.cpp \ + $(PROJECT_DIR)/config/engines/ford_1995_inline_6.cpp \ + $(PROJECT_DIR)/config/engines/nissan_primera.cpp \ + $(PROJECT_DIR)/config/engines/mazda_miata_nb.cpp \ + $(PROJECT_DIR)/config/engines/honda_accord.cpp \ + $(PROJECT_DIR)/config/engines/snow_blower.cpp \ + $(PROJECT_DIR)/config/engines/GY6_139QMB.cpp \ + $(PROJECT_DIR)/config/engines/mazda_323.cpp \ $(PROJECT_DIR)/config/engines/saturn_ion.cpp \ No newline at end of file diff --git a/firmware/config/engines/ford_1995_inline_6.cpp b/firmware/config/engines/ford_1995_inline_6.cpp new file mode 100644 index 0000000000..b3e74c29a4 --- /dev/null +++ b/firmware/config/engines/ford_1995_inline_6.cpp @@ -0,0 +1,100 @@ +/** + * @file ford_1995_inline_6.c + * @brief Default engine configuration for a 1995 Ford inline 6 engine + * + * http://rusefi.com/forum/viewtopic.php?f=3&t=469 + * + * FORD_INLINE_6_1995 = 7 + * + * @date Feb 12, 2014 + * @author Andrey Belomutskiy, (c) 2012-2014 + */ + +#include "main.h" +#include "ford_1995_inline_6.h" +#include "engine_math.h" +#include "allsensors.h" + +#if EFI_SUPPORT_1995_FORD_INLINE_6 || defined(__DOXYGEN__) + +/** + * @brief Default values for persistent properties + */ +void setFordInline6(engine_configuration_s *engineConfiguration, board_configuration_s *boardConfiguration) { + engineConfiguration->cylindersCount = 6; + + /** + * 0.5 means primary position sensor is on a camshaft + */ + engineConfiguration->rpmMultiplier = 0.5; + + engineConfiguration->ignitionMode = IM_ONE_COIL; + engineConfiguration->firingOrder = FO_1_THEN_5_THEN_3_THEN_6_THEN_2_THEN_4; + engineConfiguration->crankingInjectionMode = IM_SIMULTANEOUS; + engineConfiguration->injectionMode = IM_BATCH; + + /** + * 0.5ms dweel time just to be sure it would fit within camshaft revolution, dwell is not controlled by us anyway + */ + setConstantDwell(engineConfiguration, 0.5); + + /** + * We treat the trigger as 6/0 toothed wheel + */ + engineConfiguration->triggerConfig.totalToothCount = 6; + engineConfiguration->triggerConfig.skippedToothCount = 0; + engineConfiguration->triggerConfig.isSynchronizationNeeded = FALSE; + engineConfiguration->triggerConfig.useRiseEdge = TRUE; + engineConfiguration->needSecondTriggerInput = FALSE; + + engineConfiguration->globalTriggerAngleOffset = 0; + engineConfiguration->ignitionOffset = 13; + + + setThermistorConfiguration(&engineConfiguration->cltThermistorConf, -10, 160310, 60, 7700, 120.00, 1180); + engineConfiguration->cltThermistorConf.bias_resistor = 2700; + + setThermistorConfiguration(&engineConfiguration->iatThermistorConf, -10, 160310, 60, 7700, 120.00, 1180); + engineConfiguration->iatThermistorConf.bias_resistor = 2700; + + // 12ch analog board pinout: + // input channel 3 is PA7, that's ADC7 + // input channel 5 is PA4, that's ADC4 + // input channel 6 is PA3, that's ADC3 + // input channel 7 is PA2, that's ADC2 + // input channel 8 is PA1, that's ADC1 + // input channel 9 is PA0, that's ADC0 + // input channel 10 is PC3, that's ADC13 + // input channel 12 is PC1, that's ADC11 + + engineConfiguration->tpsAdcChannel = 4; + engineConfiguration->iatAdcChannel = 2; + engineConfiguration->cltAdcChannel = 1; + engineConfiguration->afrSensor.afrAdcChannel = 11; + + // 6 channel output board + // output 1 is PB9 + // output 3 is PE3 + // output 5 is PC13 + // output 6 is PC15 + + boardConfiguration->fuelPumpPin = GPIOC_13; + boardConfiguration->injectionPins[0] = GPIOB_9; + boardConfiguration->injectionPins[1] = GPIOE_3; + boardConfiguration->ignitionPins[0] = GPIOC_15; + + boardConfiguration->injectionPins[2] = GPIO_NONE; + boardConfiguration->fanPin = GPIO_NONE; + + engineConfiguration->tpsMin = convertVoltageTo10bitADC(1.250); + engineConfiguration->tpsMax = convertVoltageTo10bitADC(4.538); + + engineConfiguration->map.config.mapType = MT_MPX4250; + engineConfiguration->map.channel = 2; // input channel 8 is ADC2 + + // engineConfiguration->vBattAdcChannel = 0; // +// engineConfiguration->mafAdcChannel = 1; + +} + +#endif /* EFI_SUPPORT_1995_FORD_INLINE_6 */ diff --git a/firmware/config/engines/ford_fiesta.cpp b/firmware/config/engines/ford_fiesta.cpp new file mode 100644 index 0000000000..3e089a98ce --- /dev/null +++ b/firmware/config/engines/ford_fiesta.cpp @@ -0,0 +1,31 @@ +/** + * @file ford_fiesta.c + * @brief European 1990 Ford Fiesta + * + * FORD_FIESTA = 4 + * + * @date Nov 22, 2013 + * @author Andrey Belomutskiy, (c) 2012-2014 + */ + +#include "main.h" + +#if EFI_SUPPORT_FORD_FIESTA || defined(__DOXYGEN__) + +#include "ford_fiesta.h" +#include "engine_configuration.h" +#include "engine_math.h" + +void setFordFiestaDefaultEngineConfiguration(engine_configuration_s *engineConfiguration) { + engineConfiguration->rpmHardLimit = 7000; + // only crankshaft sensor so far + engineConfiguration->rpmMultiplier = 1; + + engineConfiguration->triggerConfig.totalToothCount = 36; + engineConfiguration->triggerConfig.skippedToothCount = 1; + + engineConfiguration->ignitionMode = IM_WASTED_SPARK; + engineConfiguration->firingOrder = FO_1_THEN_3_THEN_4_THEN2; +} + +#endif /* EFI_SUPPORT_FORD_FIESTA */ diff --git a/firmware/config/engines/honda_accord.cpp b/firmware/config/engines/honda_accord.cpp new file mode 100644 index 0000000000..bc5198458f --- /dev/null +++ b/firmware/config/engines/honda_accord.cpp @@ -0,0 +1,16 @@ +/** + * @file honda_accord.c + * + * @date Jan 12, 2014 + * @author Andrey Belomutskiy, (c) 2012-2014 + */ + +#include "main.h" +#include "engine_configuration.h" +#include "trigger_decoder.h" + +void setHondaAccordConfiguration(engine_configuration_s *engineConfiguration) { + engineConfiguration->triggerConfig.totalToothCount = 24; + engineConfiguration->triggerConfig.skippedToothCount = 2; +} + diff --git a/firmware/config/engines/mazda_323.cpp b/firmware/config/engines/mazda_323.cpp new file mode 100644 index 0000000000..075d44a09a --- /dev/null +++ b/firmware/config/engines/mazda_323.cpp @@ -0,0 +1,22 @@ +/** + * @file mazda_323.c + * + * @date Mar 8, 2014 + * @author Andrey Belomutskiy, (c) 2012-2013 + */ + +#include "mazda_323.h" + +void setMazda323EngineConfiguration(engine_configuration_s *engineConfiguration) { + engineConfiguration->cylindersCount = 6; + + engineConfiguration->ignitionMode = IM_ONE_COIL; + + /** + * We treat the trigger as 4/0 toothed wheel + */ + engineConfiguration->triggerConfig.totalToothCount = 4; + engineConfiguration->triggerConfig.skippedToothCount = 0; + engineConfiguration->triggerConfig.isSynchronizationNeeded = FALSE; + +} diff --git a/firmware/config/engines/mazda_miata_nb.cpp b/firmware/config/engines/mazda_miata_nb.cpp new file mode 100644 index 0000000000..a6d509342f --- /dev/null +++ b/firmware/config/engines/mazda_miata_nb.cpp @@ -0,0 +1,83 @@ +/** + * @file mazda_miata_nb.c + * + * MAZDA_MIATA_NB = 9 + * + * @date Feb 18, 2014 + * @author Andrey Belomutskiy, (c) 2012-2014 + */ + +#include "mazda_miata_nb.h" +#include "thermistors.h" + +void setMazdaMiataNbEngineConfiguration(engine_configuration_s *engineConfiguration, + board_configuration_s *boardConfiguration) { + // set_rpm_hard_limit 3000 + engineConfiguration->rpmHardLimit = 3000; // yes, 3k. let's play it safe for now + + engineConfiguration->triggerConfig.triggerType = TT_MAZDA_MIATA_NB; + engineConfiguration->triggerConfig.isSynchronizationNeeded = TRUE; + + engineConfiguration->triggerConfig.syncRatioFrom = 0.11 * 0.7; + engineConfiguration->triggerConfig.syncRatioTo = 0.11 * 1.3; + engineConfiguration->triggerConfig.useRiseEdge = FALSE; + engineConfiguration->globalTriggerAngleOffset = 276; + + // set_cranking_injection_mode 0 + engineConfiguration->crankingInjectionMode = IM_SIMULTANEOUS; + // set_injection_mode 1 + engineConfiguration->injectionMode = IM_SEQUENTIAL; + // set_ignition_mode 2 + engineConfiguration->ignitionMode = IM_WASTED_SPARK; + // set_firing_order 2 + engineConfiguration->firingOrder = FO_1_THEN_3_THEN_4_THEN2; + + setThermistorConfiguration(&engineConfiguration->cltThermistorConf, 0, 32500, 30, 7550, 100, 700); + engineConfiguration->cltThermistorConf.bias_resistor = 2700; + + setThermistorConfiguration(&engineConfiguration->iatThermistorConf, -10, 160310, 60, 7700, 120.00, 1180); + engineConfiguration->iatThermistorConf.bias_resistor = 2700; + + engineConfiguration->tpsAdcChannel = 3; // 15 is the old value + engineConfiguration->vBattAdcChannel = 0; // 1 is the old value +// engineConfiguration->map.channel = 1; + engineConfiguration->mafAdcChannel = 1; + engineConfiguration->cltAdcChannel = 11; + engineConfiguration->iatAdcChannel = 13; + engineConfiguration->afrSensor.afrAdcChannel = 2; + + boardConfiguration->idleValvePin = GPIOE_0; + boardConfiguration->idleValvePinMode = OM_DEFAULT; + + boardConfiguration->fuelPumpPin = GPIOC_14; // Frankenstein: low side - inj #4 + boardConfiguration->fuelPumpPinMode = OM_DEFAULT; + + boardConfiguration->injectionPins[0] = GPIOB_9; // Frankenstein: low side - inj #12 + boardConfiguration->injectionPins[1] = GPIOB_8; // Frankenstein: low side - inj #11 + boardConfiguration->injectionPins[2] = GPIOE_3; // Frankenstein: low side - inj #8 + boardConfiguration->injectionPins[3] = GPIOE_5; // Frankenstein: low side - inj #6 + boardConfiguration->injectionPins[4] = GPIO_NONE; + boardConfiguration->injectionPins[5] = GPIO_NONE; + boardConfiguration->injectionPinMode = OM_DEFAULT; + + boardConfiguration->ignitionPins[0] = GPIOE_10; // Frankenstein: high side #1 + boardConfiguration->ignitionPins[1] = GPIO_NONE; + boardConfiguration->ignitionPins[2] = GPIOC_9; // // Frankenstein: high side #2 + boardConfiguration->ignitionPins[3] = GPIO_NONE; + boardConfiguration->ignitionPinMode = OM_INVERTED; + + boardConfiguration->malfunctionIndicatorPin = GPIOE_1; + boardConfiguration->malfunctionIndicatorPinMode = OM_DEFAULT; + + boardConfiguration->fanPin = GPIOE_6; + boardConfiguration->fanPinMode = OM_DEFAULT; + + boardConfiguration->electronicThrottlePin1 = GPIO_NONE; + boardConfiguration->idleSwitchPin = GPIO_NONE; + + // set_whole_fuel_map 3 + setWholeFuelMap(engineConfiguration, 3); + + +// 10 deg before TDC is default timing +} diff --git a/firmware/config/engines/nissan_primera.cpp b/firmware/config/engines/nissan_primera.cpp new file mode 100644 index 0000000000..36937c432e --- /dev/null +++ b/firmware/config/engines/nissan_primera.cpp @@ -0,0 +1,18 @@ +/** + * @file nissan_primera.c + * + * @date Oct 14, 2013 + * @author Andrey Belomutskiy, (c) 2012-2014 + */ + +#include "main.h" + +#if EFI_SUPPORT_NISSAN_PRIMERA || defined(__DOXYGEN__) +#include "nissan_primera.h" + +void setNissanPrimeraEngineConfiguration(engine_configuration_s *engineConfiguration) { + engineConfiguration->triggerConfig.totalToothCount = 60; + engineConfiguration->triggerConfig.skippedToothCount = 2; +} + +#endif /* EFI_SUPPORT_NISSAN_PRIMERA */ diff --git a/firmware/config/engines/snow_blower.cpp b/firmware/config/engines/snow_blower.cpp new file mode 100644 index 0000000000..c09ccfc50c --- /dev/null +++ b/firmware/config/engines/snow_blower.cpp @@ -0,0 +1,14 @@ +/** + * @file snow_blower.c + * @brief Default configuration of a single-cylinder engine + * + * @date Sep 9, 2013 + * @author Andrey Belomutskiy, (c) 2012-2014 + */ + +#include "main.h" + +#if EFI_ENGINE_SNOW_BLOWER + + +#endif