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

Functions

void setLeftRightBanksNeedBetterName ()
 
void setDefaultBaseEngine ()
 
void setDefaultFuel ()
 
void setDefaultIgnition ()
 
void setDefaultCranking ()
 
void setGDIFueling ()
 
void setHpfpLobeProfileAngle (int lobes)
 
void setGdiWallWetting ()
 
void setInline4 ()
 
void setDynoDefaults ()
 
void setupTLE9201 (Gpio controlPin, Gpio direction, Gpio disable, int dcIndex=0)
 
void setupTLE9201IncludingStepper (Gpio controlPin, Gpio direction, Gpio disable, int dcIndex=0)
 
void setPPSInputs (adc_channel_e pps1, adc_channel_e pps2)
 
void setPPSCalibration (float primaryUp, float primaryDown, float secondaryUp, float secondaryDown)
 
void setTPS1Inputs (adc_channel_e tps1, adc_channel_e tps2)
 
void setTPS1Calibration (uint16_t tpsMin, uint16_t tpsMax)
 
void setTPS1Calibration (uint16_t tpsMin, uint16_t tpsMax, uint16_t tps1SecondaryMin, uint16_t tps1SecondaryMax)
 
void setCustomMap (float lowValue, float mapLowValueVoltage, float highValue, float mapHighValueVoltage)
 
void setEtbPID (float p, float i, float d)
 
void defaultsOrFixOnBurn ()
 

Function Documentation

◆ defaultsOrFixOnBurn()

void defaultsOrFixOnBurn ( )

Definition at line 129 of file default_base_engine.cpp.

129 {
130 if (config->dynoCarCarMassKg == 0) {
132 }
133
134 if (engineConfiguration->mapExpAverageAlpha <= 0 || engineConfiguration->mapExpAverageAlpha > 1) {
135 engineConfiguration->mapExpAverageAlpha = 1;
136 }
137
138 if (engineConfiguration->ppsExpAverageAlpha <= 0 || engineConfiguration->ppsExpAverageAlpha > 1) {
139 engineConfiguration->ppsExpAverageAlpha = 1;
140 }
141 if (engineConfiguration->afrExpAverageAlpha <= 0 || engineConfiguration->afrExpAverageAlpha > 1) {
142 engineConfiguration->afrExpAverageAlpha = 1;
143 }
144
145 if (engineConfiguration->alternator_iTermMin == 0) {
146 engineConfiguration->alternator_iTermMin = -1000;
147 }
148 if (engineConfiguration->alternator_iTermMax == 0) {
149 engineConfiguration->alternator_iTermMax = 1000;
150 }
151 if (engineConfiguration->idleReturnTargetRampDuration <= 0.1){
152 engineConfiguration->idleReturnTargetRampDuration = 3;
153 }
154
155 if (engineConfiguration->vvtControlMinRpm < engineConfiguration->cranking.rpm) {
156 engineConfiguration->vvtControlMinRpm = engineConfiguration->cranking.rpm;
157 }
158}
void setDynoDefaults()
static constexpr persistent_config_s * config
static constexpr engine_configuration_s * engineConfiguration

Referenced by setDefaultBaseEngine(), and validateConfigOnStartUpOrBurn().

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

◆ setCustomMap()

void setCustomMap ( float  lowValue,
float  mapLowValueVoltage,
float  highValue,
float  mapHighValueVoltage 
)

Definition at line 453 of file default_base_engine.cpp.

453 {
454 engineConfiguration->map.sensor.type = MT_CUSTOM;
455 engineConfiguration->map.sensor.lowValue = lowValue;
456 engineConfiguration->mapLowValueVoltage = mapLowValueVoltage;
457 engineConfiguration->map.sensor.highValue = highValue;
458 engineConfiguration->mapHighValueVoltage = mapHighValueVoltage;
459}

Referenced by hellen112_17_boardDefaultConfiguration(), setHarley(), setHyundaiPb(), setMercedesM111EngineConfiguration(), and setSlingshot().

Here is the caller graph for this function:

◆ setDefaultBaseEngine()

void setDefaultBaseEngine ( )

Definition at line 160 of file default_base_engine.cpp.

160 {
161 // Base Engine Settings
162 engineConfiguration->displacement = 2;
163 engineConfiguration->knockDetectionUseDoubleFrequency = true;
164#if MAX_CYLINDER_COUNT >= 4
165 setInline4();
166#else
167 // todo: invoke more complete one cylinder default?
168 engineConfiguration->cylindersCount = 1;
169#endif
170
171 engineConfiguration->isTuningDetectorEnabled = true;
172
173 for (size_t i = 0; i < engineConfiguration->cylindersCount; i++) {
174 // one knock sensor by default. See also 'setLeftRightBanksNeedBetterName()'
175 // zero-based index
176 engineConfiguration->cylinderBankSelect[i] = 0;
177 }
178
179 engineConfiguration->ltft.enabled = true;
180 engineConfiguration->ltft.correctionEnabled = true;
181
182 engineConfiguration->compressionRatio = 9;
183 engineConfiguration->vssFilterReciprocal = VSS_FILTER_MIN;
184 engineConfiguration->boardUseCanTerminator = true;
185 engineConfiguration->acLowRpmLimit = 500;
186
187 engineConfiguration->mafFilterParameter = 1;
188
189#ifdef EFI_KLINE
190 engineConfiguration->kLinePeriodUs = 300 /* us*/;
191 engineConfiguration->kLineDoHondaSend = true;
192#endif
193
195
196 // it's useful to know what starting point is given tune based on
197 engineConfiguration->calibrationBirthday = compilationYear() * 10000 + compilationMonth() * 100 + compilationDay();
198
199 engineConfiguration->enableExtendedCanBroadcast = true;
200
201 engineConfiguration->fan1ExtraIdle = 2;
202 engineConfiguration->fan2ExtraIdle = 2;
203
204 engineConfiguration->auxSpeed1Multiplier = 1;
205 engineConfiguration->magicNumberAvailableForDevTricks = 1;
206
207 engineConfiguration->acrRevolutions = 5;
208 engineConfiguration->acPressure.v2 = 5;
209 engineConfiguration->acPressure.value2 = 100;
210
211 engineConfiguration->lowPressureFuel.v2 = 5;
212 engineConfiguration->lowPressureFuel.value2 = 100;
213
214 engineConfiguration->wastegatePositionOpenedVoltage = 4.0;
215
220
221 engineConfiguration->watchOutForLinearTime = true;
222
223 setLinearCurve(engineConfiguration->tractionControlSlipBins, /*from*/0.9, /*to*/1.2, 0.05);
224 setLinearCurve(engineConfiguration->tractionControlSpeedBins, /*from*/10, /*to*/120, 5);
225
226 engineConfiguration->turbochargerFilter = 0.01f;
227
229
230 setRpmTableBin(config->torqueRpmBins);
231 setLinearCurve(config->torqueLoadBins, 0, 100, 1);
232
233 engineConfiguration->fuelAlgorithm = engine_load_mode_e::LM_SPEED_DENSITY;
234 // let's have valid default while we still have the field
235 engineConfiguration->debugMode = DBG_EXECUTOR;
236
237 engineConfiguration->speedometerPulsePerKm = 2485; // GM GMT800 platform
238
239 engineConfiguration->primingDelay = 0.5;
240 // this should not be below default rpm! maybe even make them equal?
241 engineConfiguration->vvtControlMinRpm = 600;
242
243 // todo: this "2JZ" trigger is very powerful for many low tooth quantity applications
244 // todo: we might be getting closer to a re-name
245 // by the way 2GRFE intake likes position 160 / precision 20
246 // see also https://github.com/rusefi/rusefi/issues/7345
247 //
248 // 2JZ values
249 engineConfiguration->camDecoder2jzPosition = 95;
250 engineConfiguration->camDecoder2jzPrecision = 40;
251
252 // Limits and Fallbacks
253 engineConfiguration->rpmHardLimit = 7000;
254 engineConfiguration->rpmHardLimitHyst = 50;
255 engineConfiguration->cutFuelOnHardLimit = true;
256 engineConfiguration->cutSparkOnHardLimit = true;
257 engineConfiguration->etbRevLimitRange = 250;
258
259 engineConfiguration->tpsAccelFractionDivisor = 1;
260
261 engineConfiguration->rpmSoftLimitWindowSize = 200;
262 engineConfiguration->rpmSoftLimitTimingRetard = 4;
263
264 // CLT RPM limit table - just the X axis
265 copyArray(config->cltRevLimitRpmBins, { -20, 0, 40, 80 });
266
267 engineConfiguration->ALSMinRPM = 400;
268 engineConfiguration->ALSMaxRPM = 3200;
269 engineConfiguration->ALSMaxDuration = 3;
270 engineConfiguration->ALSMaxCLT = 105;
271// engineConfiguration->alsMinPps = 10;
272 engineConfiguration->alsMinTimeBetween = 5;
273 engineConfiguration->alsEtbPosition = 30;
274 engineConfiguration->ALSMaxTPS = 5;
275
276 engineConfiguration->torqueReductionActivationTemperature = 60;
277
278 engineConfiguration->knockRetardAggression = 20;
279 engineConfiguration->knockRetardReapplyRate = 3;
280 engineConfiguration->knockFuelTrim = 0;
281 engineConfiguration->knockSuppressMinTps = 10;
282
283 // Trigger
285
286#if EFI_SIMULATOR
287 engineConfiguration->vvtMode[0] = VVT_SINGLE_TOOTH;
288 engineConfiguration->vvtOffsets[0] = 450;
289 engineConfiguration->vvtPins[0] = Gpio::A0; // a random unused pin needed to unblock startSimplePwmExt()
290#endif // EFI_SIMULATOR
291
292#if EFI_SIMULATOR
293 // R
294 config->tcuSolenoidTable[0][0] = 99;
295 config->tcuSolenoidTable[0][1] = 1;
296 config->tcuSolenoidTable[0][2] = 2;
297 config->tcuSolenoidTable[0][3] = 3;
298 config->tcuSolenoidTable[0][4] = 4;
299 config->tcuSolenoidTable[0][5] = 5;
300 // P/N
301 config->tcuSolenoidTable[1][0] = 10;
302 config->tcuSolenoidTable[1][1] = 11;
303 config->tcuSolenoidTable[1][2] = 12;
304 config->tcuSolenoidTable[1][3] = 13;
305 config->tcuSolenoidTable[1][4] = 14;
306 config->tcuSolenoidTable[1][5] = 15;
307 config->tcuSolenoidTable[1][6] = 16;
308 config->tcuSolenoidTable[1][7] = 17;
309 config->tcuSolenoidTable[1][8] = 18;
310 config->tcuSolenoidTable[1][9] = 19;
311 // 1
312 config->tcuSolenoidTable[2][0] = 20;
313 config->tcuSolenoidTable[2][1] = 21;
314 config->tcuSolenoidTable[2][2] = 22;
315 // 2
316 config->tcuSolenoidTable[3][0] = 30;
317 config->tcuSolenoidTable[3][1] = 31;
318 config->tcuSolenoidTable[3][3] = 33;
319 // 3
320 config->tcuSolenoidTable[4][0] = 40;
321 config->tcuSolenoidTable[4][1] = 41;
322 config->tcuSolenoidTable[4][4] = 44;
323 // 4
324 config->tcuSolenoidTable[5][0] = 50;
325 config->tcuSolenoidTable[5][1] = 51;
326 config->tcuSolenoidTable[5][5] = 55;
327
328 // [tag:runNotSquareTest] huh why is this not a unit test?!
329 config->scriptTable4[0][0] = 140;
330 config->scriptTable4[0][1] = 141;
331 config->scriptTable4[0][2] = 142;
332 config->scriptTable4[0][3] = 143;
333 config->scriptTable4[0][4] = 144;
334 config->scriptTable4[0][5] = 145;
335
336 config->scriptTable4[1][0] = 240;
337 config->scriptTable4[1][1] = 241;
338 config->scriptTable4[1][2] = 242;
339 config->scriptTable4[1][3] = 243;
340 config->scriptTable4[1][4] = 244;
341 config->scriptTable4[1][5] = 245;
342
343 config->scriptTable4[4][0] = 40;
344 config->scriptTable4[4][2] = 41;
345 config->scriptTable4[4][3] = 42;
346 config->scriptTable4[4][4] = 43;
347 config->scriptTable4[4][5] = 44;
348 config->scriptTable4[4][5] = 45;
349
350 config->scriptTable4[5][0] = 50;
351 config->scriptTable4[5][1] = 51;
352 config->scriptTable4[5][2] = 52;
353 config->scriptTable4[5][3] = 53;
354 config->scriptTable4[5][4] = 54;
355 config->scriptTable4[5][5] = 55;
356
357#endif // EFI_SIMULATOR
358
359 engineConfiguration->globalTriggerAngleOffset = 0;
360
361 // Default this to on - if you want to diagnose, turn it off.
362 engineConfiguration->silentTriggerError = true;
363
364 engineConfiguration->idleStepperReactionTime = 3;
365 engineConfiguration->idleStepperTotalSteps = 200;
366 engineConfiguration->stepperForceParkingEveryRestart = true;
367 engineConfiguration->iacByTpsTaper = 2;
368
369 engineConfiguration->etbSplit = MAX_TPS_PPS_DISCREPANCY;
370
371 // Advanced Trigger
372
373 // Battery and alternator
374 engineConfiguration->vbattDividerCoeff = ((float) (15 + 65)) / 15;
375
376#if EFI_ALTERNATOR_CONTROL
378#endif /* EFI_ALTERNATOR_CONTROL */
379
380 // Fuel pump
381 // todo: maybe change to 2s as default?
382 engineConfiguration->startUpFuelPumpDuration = 4;
383
384 engineConfiguration->kLineBaudRate = KLINE_BAUD_RATE;
385
386 engineConfiguration->benchTestOnTime = 4;
387 engineConfiguration->benchTestOffTime = 500;
388 engineConfiguration->benchTestCount = 3;
389
390
391 // Tachometer
392 // 50% duty cycle is the default for tach signal
393 engineConfiguration->tachPulseDurationAsDutyCycle = true;
394 engineConfiguration->tachPulseDuractionMs = 0.5;
395 engineConfiguration->tachPulsePerRev = 1;
396
397 engineConfiguration->etbMinimumPosition = 1;
398 engineConfiguration->etbMaximumPosition = 100;
399
400 engineConfiguration->tcuInputSpeedSensorTeeth = 1;
401 engineConfiguration->issFilterReciprocal = 2;
402
403 //knock
404#ifdef KNOCK_SPECTROGRAM
405 engineConfiguration->enableKnockSpectrogram = false;
406 engineConfiguration->enableKnockSpectrogramFilter = false;
407 engineConfiguration->knockSpectrumSensitivity = 1.0;
408 engineConfiguration->knockFrequency = 0.0;
409#endif
410
411 // Check engine light
412#if EFI_PROD_CODE
413 engineConfiguration->warningPeriod = 10;
414#else
415 engineConfiguration->warningPeriod = 0;
416#endif /* EFI_PROD_CODE */
417
419
420 // Oil pressure protection
421 engineConfiguration->minimumOilPressureTimeout = 0.5f;
422 setRpmTableBin(config->minimumOilPressureBins);
423 setRpmTableBin(config->maximumOilPressureBins);
424
425 engine->engineModules.apply_all([](auto & m) { m.setDefaultConfiguration(); });
426 // we invoke this last so that we can validate even defaults
428}
type_list< Mockable< InjectorModelPrimary >, Mockable< InjectorModelSecondary >,#if EFI_IDLE_CONTROL Mockable< IdleController >,#endif TriggerScheduler,#if EFI_HPFP &&EFI_ENGINE_CONTROL Mockable< HpfpController >,#endif #if EFI_ENGINE_CONTROL Mockable< ThrottleModel >,#endif #if EFI_ALTERNATOR_CONTROL AlternatorController,#endif MainRelayController, Mockable< IgnitionController >, Mockable< AcController >, PrimeController, DfcoController,#if EFI_HD_ACR HarleyAcr,#endif Mockable< WallFuelController >, KnockController, SensorChecker,#if EFI_ENGINE_CONTROL Mockable< LimpManager >,#endif #if EFI_VVT_PID VvtController1, VvtController2, VvtController3, VvtController4,#endif #if EFI_BOOST_CONTROL BoostController,#endif TpsAccelEnrichment,#if EFI_LAUNCH_CONTROL NitrousController,#endif #if EFI_LTFT_CONTROL LongTermFuelTrim,#endif ShortTermFuelTrim,#include "modules_list_generated.h" EngineModule > engineModules
Definition engine.h:194
void defaultsOrFixOnBurn()
static void mc33810defaults()
void setInline4()
static void setDefaultAlternatorParameters()
static void setGdiDefaults()
static EngineAccessor engine
Definition engine.h:413
void setRpmTableBin(TValue(&array)[TSize])
void setLinearCurve(TValue(&array)[TSize], float from, float to, float precision=0.01f)
void setDefaultVrThresholds()
Definition vr_pwm.cpp:57

Referenced by setDefaultEngineConfiguration().

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

◆ setDefaultCranking()

void setDefaultCranking ( )

Definition at line 6 of file default_cranking.cpp.

6 {
7 engineConfiguration->cranking.rpm = 550;
8
9 // Fuel
10 engineConfiguration->crankingInjectionMode = IM_SIMULTANEOUS;
11
12 // Ignition
13 engineConfiguration->ignitionDwellForCrankingMs = DEFAULT_CRANKING_DWELL_MS;
14 engineConfiguration->crankingTimingAngle = DEFAULT_CRANKING_ANGLE;
15
16 // IAC
17 setArrayValues(config->cltCrankingCorr, 50);
18 // should be 100 once tune is better
19 setArrayValues(config->afterCrankingIACtaperDuration, 200);
20 setLinearCurve(config->afterCrankingIACtaperDurationBins, CLT_CURVE_RANGE_FROM, 100, 1);
21
22 engineConfiguration->isFasterEngineSpinUpEnabled = true;
23
24 // After start enrichment
25#if !EFI_UNIT_TEST
26 // don't set this for unit tests, as it makes things more complicated to test
27 setLinearCurve(config->postCrankingCLTBins, /*from*/-20, /*to*/80, 20);
28 setLinearCurve(config->postCrankingDurationBins, /*from*/0, /*to*/150, 40);
29 setTable(config->postCrankingFactor, 1.2f);
30#endif
31
32 setLinearCurve(config->crankingTpsCoef, /*from*/1, /*to*/1, 1);
33 setLinearCurve(config->crankingTpsBins, 0, 100, 1);
34
35 setLinearCurve(config->cltCrankingCorrBins, CLT_CURVE_RANGE_FROM, 100, 1);
36 setLinearCurve(config->cltCrankingCorr, 50, 50, 1); // now as % of idle valve/etb
37
38#if CRANKING_CURVE_SIZE == 8
39 // Cranking temperature compensation
40 static const float crankingCoef[] = {
41 2.8,
42 2.2,
43 1.8,
44 1.55,
45 1.3,
46 1.1,
47 1.0,
48 1.0
49 };
50 copyArray(config->crankingFuelCoef, crankingCoef);
51 copyArray(config->crankingFuelCoefE100, crankingCoef);
52
53 // Deg C
54 static const float crankingBins[] = {
55 -20,
56 -10,
57 5,
58 20,
59 35,
60 50,
61 65,
62 90
63 };
64 copyArray(config->crankingFuelBins, crankingBins);
65#endif
66 // Cranking cycle compensation
67
68 setTable(config->crankingCycleBaseFuel, 27.0f);
69 setLinearCurve(config->crankingCycleFuelCltBins, 0, 60, 1);
70
71 // X values are simply counting up cycle number starting at 1
72 for (size_t i = 0; i < efi::size(config->crankingCycleBins); i++) {
73 config->crankingCycleBins[i] = i + 1;
74 }
75
76 // Cranking ignition timing
77 setArrayValues(config->crankingAdvance, 0);
78
79 static const float advanceBins[] = { 0, 200, 400, 1000 };
80 copyArray(config->crankingAdvanceBins, advanceBins);
81
82 engineConfiguration->useTLE8888_cranking_hack = true;
83}
constexpr void setTable(TElement(&dest)[N][M], const VElement value)
void setArrayValues(TValue(&array)[TSize], float value)

Referenced by setDefaultEngineConfiguration().

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

◆ setDefaultFuel()

void setDefaultFuel ( )

By the way http://users.erols.com/srweiss/tableifc.htm has a LOT of data

Definition at line 314 of file default_fuel.cpp.

314 {
315 // Base injection configuration
316 engineConfiguration->isInjectionEnabled = true;
317 engineConfiguration->injectionMode = IM_SEQUENTIAL;
318
319 /**
320 * By the way http://users.erols.com/srweiss/tableifc.htm has a LOT of data
321 */
322 engineConfiguration->injector.flow = 200;
323 engineConfiguration->injectorSecondary.flow = 200;
324 engineConfiguration->stoichRatioPrimary = STOICH_RATIO;
325
326 // 9.0 = E100 pure ethanol
327 engineConfiguration->stoichRatioSecondary = 9.0f;
328
329 // Injector deadtime
331 setBosch02880155868(engineConfiguration->injectorSecondary);
332
333 // Tables
334 setFuelTablesLoadBin(10, 160);
335 setRpmTableBin(config->injPhaseRpmBins);
336
337 setRpmTableBin(config->tpsTspCorrValuesBins);
338 setLinearCurve(config->tpsTspCorrValues, 1, 1);
339
340 setRpmTableBin(config->predictiveMapBlendDurationBins);
341 setLinearCurve(config->predictiveMapBlendDurationValues, 1, 1);
342
345
346 setLinearCurve(config->injectorStagingLoadBins, 0, 100, 10);
347 setRpmTableBin(config->injectorStagingRpmBins);
348
349 setRpmTableBin(config->mapEstimateRpmBins);
350 setLinearCurve(config->mapEstimateTpsBins, 0, 100);
351 setTable(config->mapEstimateTable, 60);
352
353 setTable(config->injectionPhase, PORT_INJECTION_OFFSET);
354
355 // Charge temperature estimation
356 engineConfiguration->tChargeMinRpmMinTps = 0.25;
357 engineConfiguration->tChargeMinRpmMaxTps = 0.25;
358 engineConfiguration->tChargeMaxRpmMinTps = 0.25;
359 engineConfiguration->tChargeMaxRpmMaxTps = 0.9;
360 engineConfiguration->tChargeMode = TCHARGE_MODE_RPM_TPS;
361 engineConfiguration->tChargeAirCoefMin = 0.098f;
362 engineConfiguration->tChargeAirCoefMax = 0.902f;
363 engineConfiguration->tChargeAirFlowMax = 153.6f;
364 engineConfiguration->tChargeAirIncrLimit = 1.0f;
365 engineConfiguration->tChargeAirDecrLimit = 12.5f;
366
367 // CLT correction table
369
370 // IAT correction table
371 // TODO
372
373 // Closed loop fuel correction
376
377 // Decel fuel cut
379
380 engineConfiguration->tpsAccelEnrichmentThreshold = 40; // TPS % change, per engine cycle
381
383
384 // TPS/TPS AE curve
386
387 // Some reasonable reference pressure that many vehicles use
388 engineConfiguration->fuelReferencePressure = 300;
389
391
392 // Lambda protection defaults
394
396
397 // Cut at 110% instantly
398 engineConfiguration->maxInjectorDutyInstant = 110;
399 // Cut at 96% after 0.5 second
400 engineConfiguration->maxInjectorDutySustained = 96;
401 engineConfiguration->maxInjectorDutySustainedTimeout = 0.5f;
402}
static void setDefaultLtftSettings()
static void setDefaultWarmupFuelEnrichment()
static void setDefaultLambdaProtection()
void setDefaultWallWetting()
static void setBosch02880155868(injector_s &cfg)
static void setDefaultPriming()
static void setDefaultStftSettings()
static void setDefaultVETable()
static void setMazdaMiataNbTpsTps()
static void setDefaultFuelCutParameters()
static void setDefaultLambdaTable()
static void setDefaultWboSettings()
void setFuelTablesLoadBin(float minValue, float maxValue)

Referenced by setDefaultEngineConfiguration().

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

◆ setDefaultIgnition()

void setDefaultIgnition ( )

Definition at line 104 of file default_ignition.cpp.

104 {
105 // Ignition base settings
106 engineConfiguration->isIgnitionEnabled = true;
107
108 engineConfiguration->timingMode = TM_DYNAMIC;
109 engineConfiguration->fixedModeTiming = 50;
110
111 engineConfiguration->minimumIgnitionTiming = -10;
112 engineConfiguration->maximumIgnitionTiming = 60;
113
114 // Dwell table - a bit conservative but reasonable
116
117 setLinearCurve(config->dwellVoltageCorrVoltBins, 8, 15, 0.1);
118 setLinearCurve(config->dwellVoltageCorrValues, 1, 1, 1);
119
120 // Multispark
122
123 // Ignition advance table
124 setLinearCurve(config->ignitionLoadBins, 20, 120, 3);
125 setTimingRpmBin(800, 7000);
126 buildTimingMap(35);
127
129
130 // CLT correction
132
133 // IAT correction
135
136 // Give default axes for cylinder trim tables
137#if IGN_TRIM_SIZE == 4
138 copyArray(config->ignTrimRpmBins, { 1000, 3000, 5000, 7000 });
139 copyArray(config->ignTrimLoadBins, { 20, 50, 80, 100 });
140#else
141 setRpmTableBin(config->ignTrimRpmBins);
142 setLinearCurve(config->ignTrimLoadBins, 20, 100);
143#endif
144
145 // Default axes for VE blends
146 for (size_t i = 0; i < efi::size(config->ignBlends); i++) {
147 auto& blend = config->ignBlends[i];
148 setLinearCurve(blend.loadBins, 0, 100, 10);
149 setLinearCurve(blend.rpmBins, 0, 7000);
150
151 setLinearCurve(blend.blendBins, 0, 100);
152 setLinearCurve(blend.blendValues, 0, 100);
153 }
154}
static void setDefaultCltTimingCorrection()
static void setDefaultTrailingSparkTable()
static void buildTimingMap(float advanceMax)
static void setDefaultMultisparkParameters()
static void setDefaultIatTimingCorrection()
void setConstantDwell(floatms_t dwellMs)
Sets the same dwell time across the whole getRpm() range set dwell X.
void setTimingRpmBin(float from, float to)

Referenced by setDefaultEngineConfiguration().

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

◆ setDynoDefaults()

void setDynoDefaults ( )

Definition at line 108 of file default_base_engine.cpp.

108 {
109 config->dynoRpmStep = 100;
110
111 config->dynoSaeTemperatureC = 20;
112 config->dynoSaeBaro = STD_ATMOSPHERE;
113 config->dynoSaeRelativeHumidity = 80;
114
115 config->dynoCarWheelDiaInch = 18;
116 config->dynoCarWheelTireWidthMm = 235;
117 config->dynoCarWheelAspectRatio = 40;
118
119 config->dynoCarGearPrimaryReduction = 1;
120 config->dynoCarGearRatio = 1.0;
121 config->dynoCarGearFinalDrive = 4.2;
122
123 config->dynoCarCarMassKg = 1000;
124 config->dynoCarCargoMassKg = 95;
125 config->dynoCarCoeffOfDrag = 0.29;
126 config->dynoCarFrontalAreaM2 = 1.85;
127 }

Referenced by defaultsOrFixOnBurn().

Here is the caller graph for this function:

◆ setEtbPID()

void setEtbPID ( float  p,
float  i,
float  d 
)

Definition at line 468 of file default_base_engine.cpp.

468 {
469 engineConfiguration->etb.pFactor = p;
470 engineConfiguration->etb.iFactor = i;
471 engineConfiguration->etb.dFactor = d;
472}

Referenced by hellen121_nissan_boardDefaultConfiguration(), hellen_gm_e67_boardDefaultConfiguration(), and set201xHyundai().

Here is the caller graph for this function:

◆ setGDIFueling()

void setGDIFueling ( )

Definition at line 70 of file default_base_engine.cpp.

70 {
71#ifdef HW_HELLEN_8CHAN
72 engineConfiguration->externalRusEfiGdiModule = true;
73#endif
74
75 engineConfiguration->injectionMode = IM_SEQUENTIAL;
76 engineConfiguration->crankingInjectionMode = IM_SEQUENTIAL;
77 engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS;
78
80 // Use high pressure sensor
81 engineConfiguration->injectorPressureType = IPT_High;
82 // Automatic compensation of injector flow based on rail pressure
83 engineConfiguration->injectorCompensationMode = ICM_SensedRailPressure;
84 // Reference rail pressure is 10 000 kPa = 100 bar
85 engineConfiguration->fuelReferencePressure = 10000;
86 //setting "flat" 0.2 ms injector's lag time
87 setTable(engineConfiguration->injector.battLagCorrTable, 0.2);
88
89 setTable(config->injectionPhase, -200.0f);
91 engineConfiguration->isPhaseSyncRequiredForIgnition = true;
92}
void setGdiWallWetting()

Referenced by alphax_4kgdi_defaultConfiguration(), commonPassatB6(), setGmGdi(), and setHyundaiPb().

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

◆ setGdiWallWetting()

void setGdiWallWetting ( )

Definition at line 245 of file default_fuel.cpp.

245 {
246 engineConfiguration->wwaeTau = 0;
247 engineConfiguration->wwaeBeta = 0;
248}

Referenced by setGDIFueling().

Here is the caller graph for this function:

◆ setHpfpLobeProfileAngle()

void setHpfpLobeProfileAngle ( int  lobes)

Definition at line 22 of file default_base_engine.cpp.

22 {
23#if HPFP_LOBE_PROFILE_SIZE == 16
24static const float hardCodedHpfpLobeProfileAnglesForThreeLobes[16] = {0.0, 7.5, 16.5, 24.0,
2532.0 , 40.0, 48.0, 56.0,
2664.0 , 72.0, 80.0, 88.0,
2796.0 , 103.5, 112.5, 120.0
28};
29
30 float multiplier = 3.0 / lobes;
31 for (size_t i = 0; i < HPFP_LOBE_PROFILE_SIZE; i++) {
32 config->hpfpLobeProfileAngle[i] = multiplier * hardCodedHpfpLobeProfileAnglesForThreeLobes[i];
33 }
34#endif // HPFP_LOBE_PROFILE_SIZE
35}

Referenced by set4CylGmEcotec3(), setBoschHDEV_5_injectors(), setFordEcoboost(), and setHyundaiPb().

Here is the caller graph for this function:

◆ setInline4()

void setInline4 ( )

◆ setLeftRightBanksNeedBetterName()

void setLeftRightBanksNeedBetterName ( )

file defaults.h

Definition at line 95 of file default_base_engine.cpp.

95 {
96 for (size_t i = 0; i < engineConfiguration->cylindersCount; i++) {
97 // zero-based index
98 engineConfiguration->cylinderBankSelect[i] = i % 2;
99 }
100}

Referenced by setGmLs4(), and setSubaruEG33Defaults().

Here is the caller graph for this function:

◆ setPPSCalibration()

void setPPSCalibration ( float  primaryUp,
float  primaryDown,
float  secondaryUp,
float  secondaryDown 
)

Definition at line 461 of file default_base_engine.cpp.

461 {
462 engineConfiguration->throttlePedalUpVoltage = primaryUp;
463 engineConfiguration->throttlePedalWOTVoltage = primaryDown;
464 engineConfiguration->throttlePedalSecondaryUpVoltage = secondaryUp;
465 engineConfiguration->throttlePedalSecondaryWOTVoltage = secondaryDown;
466}

Referenced by commonPassatB6(), hellen121_nissan_boardDefaultConfiguration(), hellen128_boardDefaultConfiguration(), hellen88_boardDefaultConfiguration(), set201xHyundai(), setDefaultEtbParameters(), setEngineBMW_M73_Proteus(), setGmGdi(), setGmLs4(), setMaverickX3(), setMercedesM111EngineConfiguration(), setSubaru2011(), setToyota89281_33010_pedal_position_sensor(), and setupDefaultSensorInputs().

Here is the caller graph for this function:

◆ setPPSInputs()

void setPPSInputs ( adc_channel_e  pps1,
adc_channel_e  pps2 
)

◆ setTPS1Calibration() [1/2]

void setTPS1Calibration ( uint16_t  tpsMin,
uint16_t  tpsMax 
)

◆ setTPS1Calibration() [2/2]

void setTPS1Calibration ( uint16_t  tpsMin,
uint16_t  tpsMax,
uint16_t  tps1SecondaryMin,
uint16_t  tps1SecondaryMax 
)

Definition at line 445 of file default_base_engine.cpp.

445 {
446 setTPS1Calibration(tpsMin, tpsMax);
447
448
449 engineConfiguration->tps1SecondaryMin = tps1SecondaryMin;
450 engineConfiguration->tps1SecondaryMax = tps1SecondaryMax;
451}
void setTPS1Calibration(uint16_t tpsMin, uint16_t tpsMax)
Here is the call graph for this function:

◆ setTPS1Inputs()

void setTPS1Inputs ( adc_channel_e  tps1,
adc_channel_e  tps2 
)

Definition at line 435 of file default_base_engine.cpp.

435 {
436 engineConfiguration->tps1_1AdcChannel = tps1;
437 engineConfiguration->tps1_2AdcChannel = tps2;
438}
static RedundantPair tps2(tps2p, tps2s, SensorType::Tps2)

Referenced by alphax_4kgdi_defaultConfiguration(), m74_9_boardDefaultConfiguration(), setDefaultSensorInputs(), setGmEcotec3(), setGmLs4(), setHarley(), setMercedesM111EngineConfiguration(), and setupDefaultSensorInputs().

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

◆ setupTLE9201()

void setupTLE9201 ( Gpio  controlPin,
Gpio  direction,
Gpio  disable,
int  dcIndex = 0 
)

Definition at line 486 of file default_base_engine.cpp.

486 {
487 // TLE9201 driver
488 // This chip has three control pins:
489 // DIR - sets direction of the motor
490 // PWM - pwm control (enable high, coast low)
491 // DIS - disables motor (enable low)
492
493 // PWM pin
494 engineConfiguration->etbIo[dcIndex].controlPin = controlPin;
495 // DIR pin
496 engineConfiguration->etbIo[dcIndex].directionPin1 = direction;
497 // Disable pin
498 engineConfiguration->etbIo[dcIndex].disablePin = disable;
499
500 // we only have pwm/dir, no dira/dirb
501 engineConfiguration->etb_use_two_wires = false;
502}
static void disable(const char *param)
Definition settings.cpp:449

Referenced by alphax_4chan_defaultConfiguration(), alphax_4kgdi_boardConfigOverrides(), hellen154hyundai_f7_boardConfigOverrides(), hellen_gm_e67_boardConfigOverrides(), setupEtb(), and setupTLE9201IncludingStepper().

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

◆ setupTLE9201IncludingStepper()

void setupTLE9201IncludingStepper ( Gpio  controlPin,
Gpio  direction,
Gpio  disable,
int  dcIndex = 0 
)

Definition at line 504 of file default_base_engine.cpp.

504 {
505 setupTLE9201(controlPin, direction, disable, dcIndex);
506
507 // on SBC style stepper IAC fully-extended valve shaft would give least idle air
508 // fully-retracted valve shaft would give most idle air
509 int stepperIndexWeirdness = 1 - dcIndex;
510 engineConfiguration->stepperDcIo[stepperIndexWeirdness].controlPin = controlPin;
511 engineConfiguration->stepperDcIo[stepperIndexWeirdness].directionPin1 = direction;
512 engineConfiguration->stepperDcIo[stepperIndexWeirdness].directionPin2 = Gpio::Unassigned;
513 engineConfiguration->stepperDcIo[stepperIndexWeirdness].disablePin = disable;
514}
@ Unassigned
void setupTLE9201(Gpio controlPin, Gpio direction, Gpio disable, int dcIndex)

Referenced by set8chanDefaultETBPins(), setDefaultETBPins(), setMegaUaefiBoardDefaultConfiguration(), and setUaefiDefaultETBPins().

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

Go to the source code of this file.