rusEFI
The most advanced open source ECU
Loading...
Searching...
No Matches
subaru.cpp
Go to the documentation of this file.
1/**
2 * @file subaru.cpp
3 *
4 * SUBARU_2003_WRX
5 * set engine_type 22
6 *
7 * @date Sep 14, 2014
8 * @author Andrey Belomutskiy, (c) 2012-2020
9 */
10
11#include "pch.h"
12
13#include "subaru.h"
14#include "custom_engine.h"
15#include "proteus_meta.h"
16#include "defaults.h"
17#include "mre_meta.h"
18
19/**
20 * MRE_SUBARU_EJ18
21 * set engine_type 37
22 */
25
26
27// engineConfiguration->isDoubleSolenoidIdle = true;
28
30 strcpy(engineConfiguration->engineMake, ENGINE_MAKE_SUBARU);
31 strcpy(engineConfiguration->engineCode, "EJ18");
32
33 engineConfiguration->firingOrder = FO_1_3_2_4;
34 engineConfiguration->injectionMode = IM_SEQUENTIAL;
35 engineConfiguration->ignitionMode = IM_WASTED_SPARK;
36
37#if (BOARD_TLE8888_COUNT > 0)
38 // Gpio::TLE8888_PIN_23: "33 - GP Out 3"
40#endif /* BOARD_TLE8888_COUNT */
41
42 // this car has high-side main relay WOW so we have to hard wire it to ignition switch
43
44
45}
46
47/*
48 * Subaru SVX (Alcyone SVX)
49 */
50
53
55
58 engineConfiguration->firingOrder = FO_1_6_3_2_5_4;
59
60 engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS;
62 engineConfiguration->injectionMode = IM_SEQUENTIAL;
63
64 /* TODO: */
65 engineConfiguration->globalTriggerAngleOffset = 114; // the end of 19th tooth?
66
67 engineConfiguration->fuelAlgorithm = engine_load_mode_e::LM_REAL_MAF;
68
71
74
76
80
83
84 /* Fully closed - 0.9V, fully opened - 4.7 (?) */
89
91
92 /* idle configuration */
94
96
97 /* Check this */
99}
100
103 setPPSCalibration(0.69, 3.38, 0.69, 3.38);
104
106 strcpy(engineConfiguration->engineMake, ENGINE_MAKE_SUBARU);
108 engineConfiguration->vvtMode[0] = VVT_BOSCH_QUICK_START;
109 engineConfiguration->vvtMode[1] = VVT_BOSCH_QUICK_START;
110 engineConfiguration->firingOrder = FO_1_3_2_4;
111 engineConfiguration->injectionMode = IM_SEQUENTIAL;
112
113#if HW_PROTEUS && EFI_PROD_CODE
115 engineConfiguration->triggerInputPins[0] = PROTEUS_VR_1;
116 engineConfiguration->camInputs[0] = PROTEUS_DIGITAL_1;
117 engineConfiguration->camInputs[1] = PROTEUS_DIGITAL_2;
118 engineConfiguration->camInputs[2] = PROTEUS_DIGITAL_3;
119 engineConfiguration->camInputs[3] = PROTEUS_DIGITAL_4;
120
121
122 engineConfiguration->starterControlPin = Gpio::PROTEUS_LS_14;
123 engineConfiguration->startStopButtonPin = PROTEUS_IN_AV_6_DIGITAL;
124#endif // HW_PROTEUS
125
130
131}
void setPPSCalibration(float primaryUp, float primaryDown, float secondaryUp, float secondaryDown)
void setLeftRightBanksNeedBetterName()
void setCamOperationMode()
static constexpr persistent_config_s * config
static constexpr engine_configuration_s * engineConfiguration
void setProteusEtbIO()
brain_input_pin_e triggerInputPins[TRIGGER_INPUT_PIN_COUNT]
float cltIdleCorrTable[CLT_IDLE_TABLE_RPM_SIZE][CLT_IDLE_TABLE_CLT_SIZE]
float crankingCycleBaseFuel[CRANKING_CYCLE_CLT_SIZE][CRANKING_CURVE_SIZE]
void setSubaruEG33Defaults()
Definition subaru.cpp:51
void setSubaru2011()
Definition subaru.cpp:101
void setSubaruEJ18_MRE()
Definition subaru.cpp:23
constexpr void setTable(TElement(&dest)[N][M], const VElement value)
constexpr int convertVoltageTo10bitADC(float voltage)
Definition tps.h:21