From a3a60fcbc479507b0aa1e19cdeb8e55ce6fdf6de Mon Sep 17 00:00:00 2001 From: Matthew Kennedy Date: Tue, 20 Aug 2024 15:49:23 -0400 Subject: [PATCH] remove mapAveragingSchedulingAtIndex --- firmware/CHANGELOG.md | 3 +++ firmware/config/engines/custom_engine.cpp | 2 +- firmware/controllers/algo/engine_state.h | 2 +- firmware/controllers/engine_cycle/map_averaging.cpp | 7 ++++--- firmware/integration/rusefi_config.txt | 3 +-- firmware/tunerstudio/tunerstudio.template.ini | 1 - 6 files changed, 10 insertions(+), 8 deletions(-) diff --git a/firmware/CHANGELOG.md b/firmware/CHANGELOG.md index f182d7f343..cd06e148c4 100644 --- a/firmware/CHANGELOG.md +++ b/firmware/CHANGELOG.md @@ -28,6 +28,9 @@ Release template (copy/paste this for new release): ## Unreleased +### Fixed + - Removed questionable MAP sampling trigger index option + ## August 2024 "Day 898" ### Added diff --git a/firmware/config/engines/custom_engine.cpp b/firmware/config/engines/custom_engine.cpp index 4e6ffce62e..daa65f9350 100644 --- a/firmware/config/engines/custom_engine.cpp +++ b/firmware/config/engines/custom_engine.cpp @@ -458,7 +458,7 @@ void proteusBoardTest() { static void setBasicNotECUmode() { engineConfiguration->trigger.type = trigger_type_e::TT_HALF_MOON; - engineConfiguration->mapAveragingSchedulingAtIndex = 999; // this should disable map averaging right? + // todo: shall we disable map averaging? engineConfiguration->wwaeTau = 0.0; engineConfiguration->wwaeBeta = 0.0; diff --git a/firmware/controllers/algo/engine_state.h b/firmware/controllers/algo/engine_state.h index 881add7b65..7af7a9f72b 100644 --- a/firmware/controllers/algo/engine_state.h +++ b/firmware/controllers/algo/engine_state.h @@ -49,7 +49,7 @@ public: float auxValveEnd = 0; /** - * MAP averaging angle start, in relation to 'mapAveragingSchedulingAtIndex' trigger index index + * MAP averaging angle start, in relation to '0' trigger index index */ angle_t mapAveragingStart[MAX_CYLINDER_COUNT]; angle_t mapAveragingDuration = 0; diff --git a/firmware/controllers/engine_cycle/map_averaging.cpp b/firmware/controllers/engine_cycle/map_averaging.cpp index 39e4c51bfb..a90fe012be 100644 --- a/firmware/controllers/engine_cycle/map_averaging.cpp +++ b/firmware/controllers/engine_cycle/map_averaging.cpp @@ -191,7 +191,7 @@ void refreshMapAveragingPreCalc() { angle_t start = interpolate2d(rpm, c->samplingAngleBins, c->samplingAngle); efiAssertVoid(ObdCode::CUSTOM_ERR_MAP_START_ASSERT, !std::isnan(start), "start"); - angle_t offsetAngle = engine->triggerCentral.triggerFormDetails.eventAngles[engineConfiguration->mapAveragingSchedulingAtIndex]; + angle_t offsetAngle = engine->triggerCentral.triggerFormDetails.eventAngles[0]; efiAssertVoid(ObdCode::CUSTOM_ERR_MAP_AVG_OFFSET, !std::isnan(offsetAngle), "offsetAngle"); for (size_t i = 0; i < engineConfiguration->cylindersCount; i++) { @@ -221,9 +221,10 @@ void refreshMapAveragingPreCalc() { void mapAveragingTriggerCallback( uint32_t index, efitick_t edgeTimestamp) { #if EFI_ENGINE_CONTROL && EFI_PROD_CODE - // this callback is invoked on interrupt thread - if (index != (uint32_t)engineConfiguration->mapAveragingSchedulingAtIndex) + // update only once per engine cycle + if (index != 0) { return; + } int rpm = Sensor::getOrZero(SensorType::Rpm); if (!isValidRpm(rpm)) { diff --git a/firmware/integration/rusefi_config.txt b/firmware/integration/rusefi_config.txt index 9846d10045..c81f60827f 100644 --- a/firmware/integration/rusefi_config.txt +++ b/firmware/integration/rusefi_config.txt @@ -1138,8 +1138,7 @@ float idleStepperReactionTime;;"ms", 1, 0, 1, 300, 0 int idleStepperTotalSteps;;"count", 1, 0, 5, 3000, 0 -int mapAveragingSchedulingAtIndex;At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback.;"index", 1, 0, 0, 7000, 0 - +int unusedInt3423423 #define pin_mode_e_enum "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN" custom pin_mode_e 1 bits, U08, @OFFSET@, [0:6], @@pin_mode_e_enum@@ diff --git a/firmware/tunerstudio/tunerstudio.template.ini b/firmware/tunerstudio/tunerstudio.template.ini index f0dcbaf56f..a064246467 100644 --- a/firmware/tunerstudio/tunerstudio.template.ini +++ b/firmware/tunerstudio/tunerstudio.template.ini @@ -5056,7 +5056,6 @@ dialog = tcuControls, "Transmission Settings" field = "vvtBooleanForVerySpecialCases", vvtBooleanForVerySpecialCases field = watchOutForLinearTime, watchOutForLinearTime field = "TS over CAN debug", verboseIsoTp - field = "MAP Averaging Logic @", mapAveragingSchedulingAtIndex field = "showHumanReadableWarning (affects Burn)", showHumanReadableWarning field = "Warning Message", warning_message