rusEFI
The most advanced open source ECU
Loading...
Searching...
No Matches
Functions
bmw_m73.h File Reference

Functions

void m73engine ()
 
void setBMW_M73_TwoCoilUnitTest ()
 
void setEngineBMW_M73_Proteus ()
 
void setEngineBMW_M73_microRusEfi ()
 

Function Documentation

◆ m73engine()

void m73engine ( )

Definition at line 88 of file bmw_m73.cpp.

88 {
89 // 13641435991 injector
90 engineConfiguration->injector.flow = 180; // cc/min, who knows if this number is real - no good source of info
91
94 strcpy(engineConfiguration->engineMake, ENGINE_MAKE_BMW);
95 strcpy(engineConfiguration->engineCode, "M73");
96 engineConfiguration->firingOrder = FO_1_7_5_11_3_9_6_12_2_8_4_10;
97 engineConfiguration->fuelAlgorithm = engine_load_mode_e::LM_ALPHA_N;
98 engineConfiguration->canNbcType = CAN_BUS_NBC_NONE;
99
100 engineConfiguration->vvtMode[0] = VVT_SINGLE_TOOTH;
101
105
106 // this large engine seems to crank at around only 150 RPM? And happily idle at 400RPM?
108
109 engineConfiguration->ignitionMode = IM_TWO_COILS;
110
111 // set cranking_fuel x
113
115 setTable(config->veTable, 45);
116
118}
void setCrankOperationMode()
static constexpr persistent_config_s * config
static constexpr engine_configuration_s * engineConfiguration
float crankingCycleBaseFuel[CRANKING_CYCLE_CLT_SIZE][CRANKING_CURVE_SIZE]
scaled_channel< uint16_t, 10, 1 > veTable[VE_LOAD_COUNT][VE_RPM_COUNT]
constexpr void setTable(TElement(&dest)[N][M], const VElement value)

Referenced by setBMW_M73_TwoCoilUnitTest(), setEngineBMW_M73_microRusEfi(), and setEngineBMW_M73_Proteus().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setBMW_M73_TwoCoilUnitTest()

void setBMW_M73_TwoCoilUnitTest ( )

Definition at line 122 of file bmw_m73.cpp.

122 {
123 engineConfiguration->camInputs[0] = Gpio::A0; // a random unused pin needed for happy HW CI
124 // twoCoil configuration without unit tests ETB setup drama
125 m73engine();
126}
void m73engine()
Definition bmw_m73.cpp:88

Referenced by applyEngineType().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setEngineBMW_M73_microRusEfi()

void setEngineBMW_M73_microRusEfi ( )

Definition at line 67 of file bmw_m73_mre.cpp.

67 {
68 m73engine();
69 // 13641435991 injector
70 engineConfiguration->injector.flow = 180; // cc/min, who knows if this number is real - no good source of info
71
72 strcpy(engineConfiguration->vehicleName, "microRusEFIx2");
73
77 engineConfiguration->firingOrder = FO_1_5_3_6_2_4;
78
79 engineConfiguration->ignitionMode = IM_ONE_COIL;
80
82
85
86 // 22 - AN Temp 4, orange wire
88
89#if (BOARD_TLE8888_COUNT > 0)
90 // "43 - GP Out 4"
92#endif /* BOARD_TLE8888_COUNT */
93
94
95 // set_analog_input_pin pps PA7
96 // EFI_ADC_7: "31 - AN volt 3" - PA7
98
100
102
105}
@ TLE8888_PIN_24

Referenced by applyEngineType().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setEngineBMW_M73_Proteus()

void setEngineBMW_M73_Proteus ( )

set engine_type 63

https://github.com/mck1117/proteus/blob/master/readme_pinout.md

black#3 : orange : injector #1 black#4 : blue : injector #3 black#5 : white : injector #5 black#6 : green : injector #6 black#7 : orange : injector #7 black#8 : blue : injector #9 black#9 : white : injector #11 black#15: blue : injector #2 black#16: white : injector #4 black#19: green : injector #8 black#20: : injector #10 black#21: : injector #12

small#5 : : VR1 pos small#8 : blue : ETB1- small#13: blue : VR1 neg small#15: orange : ETB1+ small#18: red : ignition power / ECU power source small#19: black : GND small#21: blue : ETB2- small#22: orange : ETB2+ small#23: red : ETB/high-side power from main relay

white#9 : orange : +5v white#17: green : PPS white#18: red : TPS#2 white#23: black : Sensor Ground white#24: red : TPS#1

Definition at line 167 of file bmw_m73.cpp.

167 {
168 m73engine();
169
170 // 12 injectors defined in boards/proteus/board_configuration.cpp
171
172
173 strcpy(engineConfiguration->vehicleName, "Using Proteus");
174
175 engineConfiguration->triggerInputPins[0] = PROTEUS_VR_1;
176
177 engineConfiguration->camInputs[0] = PROTEUS_DIGITAL_2;
178
179 // no idea why https://github.com/rusefi/rusefi/wiki/HOWTO-M73-v12-on-Proteus uses non default CLT pin
180// engineConfiguration->clt.adcChannel = PROTEUS_IN_ANALOG_TEMP_4;
181 // newer https://github.com/rusefi/rusefi/wiki/HOWTO-custom-harness-lazyharnezz-M73 uses default pin
182
183
184 engineConfiguration->starterControlPin = Gpio::PROTEUS_LS_14;
185 engineConfiguration->startStopButtonPin = PROTEUS_DIGITAL_3;
187 engineConfiguration->fuelPumpPin = Gpio::PROTEUS_LS_16;
188 engineConfiguration->fanPin = Gpio::PROTEUS_LS_15;
189 engineConfiguration->mainRelayPin = Gpio::PROTEUS_LS_13;
190
191 engineConfiguration->map.sensor.hwChannel = PROTEUS_IN_ANALOG_VOLT_8; // M73 adapter board
192 engineConfiguration->map.sensor.type = MT_MPX4250A;
193
194 // tps and pps
195#if EFI_ELECTRONIC_THROTTLE_BODY
197#endif // EFI_ELECTRONIC_THROTTLE_BODY
198 setPPSCalibration(0.73, 4.0, 0.34, 1.86);
199}
void setPPSCalibration(float primaryUp, float primaryDown, float secondaryUp, float secondaryDown)
void setProteusHitachiEtbDefaults()
brain_input_pin_e triggerInputPins[TRIGGER_INPUT_PIN_COUNT]

Referenced by applyEngineType().

Here is the call graph for this function:
Here is the caller graph for this function:

Go to the source code of this file.