diff --git a/firmware/controllers/math/engine_math.cpp b/firmware/controllers/math/engine_math.cpp index 9ec402f2ba..d7741c7ee2 100644 --- a/firmware/controllers/math/engine_math.cpp +++ b/firmware/controllers/math/engine_math.cpp @@ -456,7 +456,7 @@ BlendResult calculateBlend(blend_table_s& cfg, float rpm, float load) { auto value = readGppwmChannel(cfg.blendParameter); if (!value) { - return { 0, 0 }; + return { 0, 0, 0 }; } float tableValue = interpolate3d( @@ -467,7 +467,7 @@ BlendResult calculateBlend(blend_table_s& cfg, float rpm, float load) { float blendFactor = interpolate2d(value.Value, cfg.blendBins, cfg.blendValues); - return { blendFactor, 0.01f * blendFactor * tableValue }; + return { value.Value, blendFactor, 0.01f * blendFactor * tableValue }; } #endif /* EFI_ENGINE_CONTROL */ diff --git a/firmware/controllers/math/engine_math.h b/firmware/controllers/math/engine_math.h index e223f8cca3..fddbbba52a 100644 --- a/firmware/controllers/math/engine_math.h +++ b/firmware/controllers/math/engine_math.h @@ -70,6 +70,9 @@ angle_t getPerCylinderFiringOrderOffset(uint8_t cylinderIndex, uint8_t cylinderN // Table blending helpers struct BlendResult { + // Input blend parameter (lookup to bias table) + float BlendParameter; + // Bias in percent (0-100%) float Bias;