Merge remote-tracking branch 'origin/master' into master
This commit is contained in:
commit
3e897c6fd0
|
@ -28,6 +28,8 @@ All notable user-facing or behavior-altering changes will be documented in this
|
||||||
## XXX 2021 Release
|
## XXX 2021 Release
|
||||||
|
|
||||||
### Breaking Changes
|
### Breaking Changes
|
||||||
|
- Closed loop idle timing behavior changed to no longer fall off control as entering/leaving the idle region. It now sharply engages/disengages upon entering/leaving the idle area.
|
||||||
|
- Idle phase logic uses the same idle detection thresholds as the main idle controller instead of its own thresholds.
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
|
@ -42,6 +44,7 @@ All notable user-facing or behavior-altering changes will be documented in this
|
||||||
- Basic fueling-only flex fuel implementation. Automatic adjustment of stoichiometric ratio based on ethanol content, compatible with the common GM/Continental 50-150hz flex fuel sensor 🎉 🎉 🎉
|
- Basic fueling-only flex fuel implementation. Automatic adjustment of stoichiometric ratio based on ethanol content, compatible with the common GM/Continental 50-150hz flex fuel sensor 🎉 🎉 🎉
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
- Simplify idle control dialog in TunerStudio
|
||||||
- microRusEFI outputs are in trouble on configuration change
|
- microRusEFI outputs are in trouble on configuration change
|
||||||
- CLT gauge no longer erroneously shows "deg F" by default.
|
- CLT gauge no longer erroneously shows "deg F" by default.
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Wed Jan 06 18:57:34 UTC 2021
|
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Thu Jan 07 13:25:14 UTC 2021
|
||||||
// by class com.rusefi.output.CHeaderConsumer
|
// by class com.rusefi.output.CHeaderConsumer
|
||||||
// begin
|
// begin
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -3300,20 +3300,18 @@ struct engine_configuration_s {
|
||||||
*/
|
*/
|
||||||
pid_s idleTimingPid;
|
pid_s idleTimingPid;
|
||||||
/**
|
/**
|
||||||
* When the current RPM is closer than this value to the target, closed-loop idle timing control is enabled.
|
|
||||||
* offset 3988
|
* offset 3988
|
||||||
*/
|
*/
|
||||||
int16_t idleTimingPidWorkZone;
|
uint8_t unused3988[2];
|
||||||
/**
|
/**
|
||||||
* If the RPM closer to target than this value, disable timing correction to prevent oscillation
|
* If the RPM closer to target than this value, disable timing correction to prevent oscillation
|
||||||
* offset 3990
|
* offset 3990
|
||||||
*/
|
*/
|
||||||
int16_t idleTimingPidDeadZone;
|
int16_t idleTimingPidDeadZone;
|
||||||
/**
|
/**
|
||||||
* Taper out idle timing control over this range as the engine leaves idle conditions
|
|
||||||
* offset 3992
|
* offset 3992
|
||||||
*/
|
*/
|
||||||
int16_t idlePidFalloffDeltaRpm;
|
uint8_t unused3942[2];
|
||||||
/**
|
/**
|
||||||
* A delay in cycles between fuel-enrich. portions
|
* A delay in cycles between fuel-enrich. portions
|
||||||
* offset 3994
|
* offset 3994
|
||||||
|
@ -3785,4 +3783,4 @@ struct persistent_config_s {
|
||||||
typedef struct persistent_config_s persistent_config_s;
|
typedef struct persistent_config_s persistent_config_s;
|
||||||
|
|
||||||
// end
|
// end
|
||||||
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Wed Jan 06 18:57:34 UTC 2021
|
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Thu Jan 07 13:25:14 UTC 2021
|
||||||
|
|
|
@ -292,7 +292,6 @@
|
||||||
#define CMD_TS_INJECTOR_CATEGORY 19
|
#define CMD_TS_INJECTOR_CATEGORY 19
|
||||||
#define CMD_TS_SOLENOID_CATEGORY 41
|
#define CMD_TS_SOLENOID_CATEGORY 41
|
||||||
#define CMD_TS_X14 20
|
#define CMD_TS_X14 20
|
||||||
#define CMD_TS_X15 21
|
|
||||||
#define CMD_TS_X17 23
|
#define CMD_TS_X17 23
|
||||||
#define CMD_TS_X18 24
|
#define CMD_TS_X18 24
|
||||||
#define CMD_TS_X31 49
|
#define CMD_TS_X31 49
|
||||||
|
@ -855,7 +854,6 @@
|
||||||
#define idleMode_offset 1472
|
#define idleMode_offset 1472
|
||||||
#define idlePidActivationTime_offset 2588
|
#define idlePidActivationTime_offset 2588
|
||||||
#define idlePidDeactivationTpsThreshold_offset 816
|
#define idlePidDeactivationTpsThreshold_offset 816
|
||||||
#define idlePidFalloffDeltaRpm_offset 3992
|
|
||||||
#define idlePidRpmDeadZone_offset 1894
|
#define idlePidRpmDeadZone_offset 1894
|
||||||
#define idlePidRpmUpperLimit_offset 1484
|
#define idlePidRpmUpperLimit_offset 1484
|
||||||
#define idlePositionMax_offset 722
|
#define idlePositionMax_offset 722
|
||||||
|
@ -890,7 +888,6 @@
|
||||||
#define idleTimingPid_periodMs_offset 3982
|
#define idleTimingPid_periodMs_offset 3982
|
||||||
#define idleTimingPid_pFactor_offset 3968
|
#define idleTimingPid_pFactor_offset 3968
|
||||||
#define idleTimingPidDeadZone_offset 3990
|
#define idleTimingPidDeadZone_offset 3990
|
||||||
#define idleTimingPidWorkZone_offset 3988
|
|
||||||
#define idleVe_offset 6640
|
#define idleVe_offset 6640
|
||||||
#define idleVeBins_offset 6608
|
#define idleVeBins_offset 6608
|
||||||
#define IGN_LOAD_COUNT 16
|
#define IGN_LOAD_COUNT 16
|
||||||
|
@ -1248,8 +1245,8 @@
|
||||||
#define showHumanReadableWarning_offset 976
|
#define showHumanReadableWarning_offset 976
|
||||||
#define showSdCardWarning_offset 76
|
#define showSdCardWarning_offset 76
|
||||||
#define SIGNATURE_BOARD hellen_cypress
|
#define SIGNATURE_BOARD hellen_cypress
|
||||||
#define SIGNATURE_DATE 2021.01.06
|
#define SIGNATURE_DATE 2021.01.07
|
||||||
#define SIGNATURE_HASH 222537922
|
#define SIGNATURE_HASH 3472719309
|
||||||
#define silentTriggerError_offset 1464
|
#define silentTriggerError_offset 1464
|
||||||
#define slowAdcAlpha_offset 2088
|
#define slowAdcAlpha_offset 2088
|
||||||
#define sparkDwellRpmBins_offset 332
|
#define sparkDwellRpmBins_offset 332
|
||||||
|
@ -1581,7 +1578,7 @@
|
||||||
#define ts_show_spi true
|
#define ts_show_spi true
|
||||||
#define ts_show_trigger_comparator false
|
#define ts_show_trigger_comparator false
|
||||||
#define ts_show_tunerstudio_port true
|
#define ts_show_tunerstudio_port true
|
||||||
#define TS_SIGNATURE "rusEFI 2021.01.06.hellen_cypress.222537922"
|
#define TS_SIGNATURE "rusEFI 2021.01.07.hellen_cypress.3472719309"
|
||||||
#define TS_SINGLE_WRITE_COMMAND 'W'
|
#define TS_SINGLE_WRITE_COMMAND 'W'
|
||||||
#define TS_SINGLE_WRITE_COMMAND_char W
|
#define TS_SINGLE_WRITE_COMMAND_char W
|
||||||
#define TS_TEST_COMMAND 't' // 0x74
|
#define TS_TEST_COMMAND 't' // 0x74
|
||||||
|
@ -1649,6 +1646,8 @@
|
||||||
#define unused2508_offset 2508
|
#define unused2508_offset 2508
|
||||||
#define unused2536_offset 2536
|
#define unused2536_offset 2536
|
||||||
#define unused3328_offset 3328
|
#define unused3328_offset 3328
|
||||||
|
#define unused3942_offset 3992
|
||||||
|
#define unused3988_offset 3988
|
||||||
#define unused4028_offset 4028
|
#define unused4028_offset 4028
|
||||||
#define unused541_offset 541
|
#define unused541_offset 541
|
||||||
#define unused542_offset 542
|
#define unused542_offset 542
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Wed Jan 06 18:57:26 UTC 2021
|
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Thu Jan 07 13:25:07 UTC 2021
|
||||||
// by class com.rusefi.output.CHeaderConsumer
|
// by class com.rusefi.output.CHeaderConsumer
|
||||||
// begin
|
// begin
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -3300,20 +3300,18 @@ struct engine_configuration_s {
|
||||||
*/
|
*/
|
||||||
pid_s idleTimingPid;
|
pid_s idleTimingPid;
|
||||||
/**
|
/**
|
||||||
* When the current RPM is closer than this value to the target, closed-loop idle timing control is enabled.
|
|
||||||
* offset 3988
|
* offset 3988
|
||||||
*/
|
*/
|
||||||
int16_t idleTimingPidWorkZone;
|
uint8_t unused3988[2];
|
||||||
/**
|
/**
|
||||||
* If the RPM closer to target than this value, disable timing correction to prevent oscillation
|
* If the RPM closer to target than this value, disable timing correction to prevent oscillation
|
||||||
* offset 3990
|
* offset 3990
|
||||||
*/
|
*/
|
||||||
int16_t idleTimingPidDeadZone;
|
int16_t idleTimingPidDeadZone;
|
||||||
/**
|
/**
|
||||||
* Taper out idle timing control over this range as the engine leaves idle conditions
|
|
||||||
* offset 3992
|
* offset 3992
|
||||||
*/
|
*/
|
||||||
int16_t idlePidFalloffDeltaRpm;
|
uint8_t unused3942[2];
|
||||||
/**
|
/**
|
||||||
* A delay in cycles between fuel-enrich. portions
|
* A delay in cycles between fuel-enrich. portions
|
||||||
* offset 3994
|
* offset 3994
|
||||||
|
@ -3785,4 +3783,4 @@ struct persistent_config_s {
|
||||||
typedef struct persistent_config_s persistent_config_s;
|
typedef struct persistent_config_s persistent_config_s;
|
||||||
|
|
||||||
// end
|
// end
|
||||||
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Wed Jan 06 18:57:26 UTC 2021
|
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Thu Jan 07 13:25:07 UTC 2021
|
||||||
|
|
|
@ -292,7 +292,6 @@
|
||||||
#define CMD_TS_INJECTOR_CATEGORY 19
|
#define CMD_TS_INJECTOR_CATEGORY 19
|
||||||
#define CMD_TS_SOLENOID_CATEGORY 41
|
#define CMD_TS_SOLENOID_CATEGORY 41
|
||||||
#define CMD_TS_X14 20
|
#define CMD_TS_X14 20
|
||||||
#define CMD_TS_X15 21
|
|
||||||
#define CMD_TS_X17 23
|
#define CMD_TS_X17 23
|
||||||
#define CMD_TS_X18 24
|
#define CMD_TS_X18 24
|
||||||
#define CMD_TS_X31 49
|
#define CMD_TS_X31 49
|
||||||
|
@ -855,7 +854,6 @@
|
||||||
#define idleMode_offset 1472
|
#define idleMode_offset 1472
|
||||||
#define idlePidActivationTime_offset 2588
|
#define idlePidActivationTime_offset 2588
|
||||||
#define idlePidDeactivationTpsThreshold_offset 816
|
#define idlePidDeactivationTpsThreshold_offset 816
|
||||||
#define idlePidFalloffDeltaRpm_offset 3992
|
|
||||||
#define idlePidRpmDeadZone_offset 1894
|
#define idlePidRpmDeadZone_offset 1894
|
||||||
#define idlePidRpmUpperLimit_offset 1484
|
#define idlePidRpmUpperLimit_offset 1484
|
||||||
#define idlePositionMax_offset 722
|
#define idlePositionMax_offset 722
|
||||||
|
@ -890,7 +888,6 @@
|
||||||
#define idleTimingPid_periodMs_offset 3982
|
#define idleTimingPid_periodMs_offset 3982
|
||||||
#define idleTimingPid_pFactor_offset 3968
|
#define idleTimingPid_pFactor_offset 3968
|
||||||
#define idleTimingPidDeadZone_offset 3990
|
#define idleTimingPidDeadZone_offset 3990
|
||||||
#define idleTimingPidWorkZone_offset 3988
|
|
||||||
#define idleVe_offset 6640
|
#define idleVe_offset 6640
|
||||||
#define idleVeBins_offset 6608
|
#define idleVeBins_offset 6608
|
||||||
#define IGN_LOAD_COUNT 16
|
#define IGN_LOAD_COUNT 16
|
||||||
|
@ -1248,8 +1245,8 @@
|
||||||
#define showHumanReadableWarning_offset 976
|
#define showHumanReadableWarning_offset 976
|
||||||
#define showSdCardWarning_offset 76
|
#define showSdCardWarning_offset 76
|
||||||
#define SIGNATURE_BOARD kin
|
#define SIGNATURE_BOARD kin
|
||||||
#define SIGNATURE_DATE 2021.01.06
|
#define SIGNATURE_DATE 2021.01.07
|
||||||
#define SIGNATURE_HASH 1549767224
|
#define SIGNATURE_HASH 2682341175
|
||||||
#define silentTriggerError_offset 1464
|
#define silentTriggerError_offset 1464
|
||||||
#define slowAdcAlpha_offset 2088
|
#define slowAdcAlpha_offset 2088
|
||||||
#define sparkDwellRpmBins_offset 332
|
#define sparkDwellRpmBins_offset 332
|
||||||
|
@ -1581,7 +1578,7 @@
|
||||||
#define ts_show_spi true
|
#define ts_show_spi true
|
||||||
#define ts_show_trigger_comparator true
|
#define ts_show_trigger_comparator true
|
||||||
#define ts_show_tunerstudio_port true
|
#define ts_show_tunerstudio_port true
|
||||||
#define TS_SIGNATURE "rusEFI 2021.01.06.kin.1549767224"
|
#define TS_SIGNATURE "rusEFI 2021.01.07.kin.2682341175"
|
||||||
#define TS_SINGLE_WRITE_COMMAND 'W'
|
#define TS_SINGLE_WRITE_COMMAND 'W'
|
||||||
#define TS_SINGLE_WRITE_COMMAND_char W
|
#define TS_SINGLE_WRITE_COMMAND_char W
|
||||||
#define TS_TEST_COMMAND 't' // 0x74
|
#define TS_TEST_COMMAND 't' // 0x74
|
||||||
|
@ -1649,6 +1646,8 @@
|
||||||
#define unused2508_offset 2508
|
#define unused2508_offset 2508
|
||||||
#define unused2536_offset 2536
|
#define unused2536_offset 2536
|
||||||
#define unused3328_offset 3328
|
#define unused3328_offset 3328
|
||||||
|
#define unused3942_offset 3992
|
||||||
|
#define unused3988_offset 3988
|
||||||
#define unused4028_offset 4028
|
#define unused4028_offset 4028
|
||||||
#define unused541_offset 541
|
#define unused541_offset 541
|
||||||
#define unused542_offset 542
|
#define unused542_offset 542
|
||||||
|
|
|
@ -423,11 +423,8 @@ void setMiataNA6_MAP_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
|
||||||
engineConfiguration->idleTimingPid.dFactor = 0.0;
|
engineConfiguration->idleTimingPid.dFactor = 0.0;
|
||||||
engineConfiguration->idleTimingPid.minValue = -13;
|
engineConfiguration->idleTimingPid.minValue = -13;
|
||||||
engineConfiguration->idleTimingPid.maxValue = 13;
|
engineConfiguration->idleTimingPid.maxValue = 13;
|
||||||
engineConfiguration->idleTimingPidWorkZone = 150;
|
|
||||||
engineConfiguration->idlePidFalloffDeltaRpm = 50;
|
|
||||||
engineConfiguration->idleTimingPidDeadZone = 10;
|
engineConfiguration->idleTimingPidDeadZone = 10;
|
||||||
|
|
||||||
|
|
||||||
// EFI_ADC_3: "22 - AN temp 4"
|
// EFI_ADC_3: "22 - AN temp 4"
|
||||||
engineConfiguration->acSwitch = GPIOA_6;
|
engineConfiguration->acSwitch = GPIOA_6;
|
||||||
|
|
||||||
|
|
|
@ -193,6 +193,10 @@ void setManualIdleValvePosition(int positionPercent) {
|
||||||
|
|
||||||
#endif /* EFI_UNIT_TEST */
|
#endif /* EFI_UNIT_TEST */
|
||||||
|
|
||||||
|
void IdleController::init(pid_s* idlePidConfig) {
|
||||||
|
m_timingPid.initPidClass(idlePidConfig);
|
||||||
|
}
|
||||||
|
|
||||||
int IdleController::getTargetRpm(float clt) const {
|
int IdleController::getTargetRpm(float clt) const {
|
||||||
// TODO: bump target rpm based on AC and/or fan(s)?
|
// TODO: bump target rpm based on AC and/or fan(s)?
|
||||||
|
|
||||||
|
@ -269,6 +273,32 @@ float IdleController::getOpenLoop(Phase phase, float clt, SensorResult tps) cons
|
||||||
return interpolateClamped(0, cranking, CONFIG(afterCrankingIACtaperDuration), running, revsSinceStart);
|
return interpolateClamped(0, cranking, CONFIG(afterCrankingIACtaperDuration), running, revsSinceStart);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float IdleController::getIdleTimingAdjustment(int rpm) {
|
||||||
|
return getIdleTimingAdjustment(rpm, m_lastTargetRpm, m_lastPhase);
|
||||||
|
}
|
||||||
|
|
||||||
|
float IdleController::getIdleTimingAdjustment(int rpm, int targetRpm, Phase phase) {
|
||||||
|
// if not enabled, do nothing
|
||||||
|
if (!CONFIG(useIdleTimingPidControl)) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If not idling, do nothing
|
||||||
|
if (phase != Phase::Idling) {
|
||||||
|
m_timingPid.reset();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If inside the deadzone, do nothing
|
||||||
|
if (absI(rpm - targetRpm) < CONFIG(idleTimingPidDeadZone)) {
|
||||||
|
m_timingPid.reset();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// We're now in the idle mode, and RPM is inside the Timing-PID regulator work zone!
|
||||||
|
return m_timingPid.getOutput(targetRpm, rpm, FAST_CALLBACK_PERIOD_MS / 1000.0f);
|
||||||
|
}
|
||||||
|
|
||||||
static percent_t manualIdleController(float cltCorrection DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
static percent_t manualIdleController(float cltCorrection DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
||||||
|
|
||||||
percent_t correctedPosition = cltCorrection * CONFIG(manIdlePosition);
|
percent_t correctedPosition = cltCorrection * CONFIG(manIdlePosition);
|
||||||
|
@ -432,9 +462,11 @@ static percent_t automaticIdleController(float tpsPos, float rpm, int targetRpm,
|
||||||
|
|
||||||
// Compute the target we're shooting for
|
// Compute the target we're shooting for
|
||||||
auto targetRpm = getTargetRpm(clt);
|
auto targetRpm = getTargetRpm(clt);
|
||||||
|
m_lastTargetRpm = targetRpm;
|
||||||
|
|
||||||
// Determine what operation phase we're in - idling or not
|
// Determine what operation phase we're in - idling or not
|
||||||
auto phase = determinePhase(rpm, targetRpm, tps);
|
auto phase = determinePhase(rpm, targetRpm, tps);
|
||||||
|
m_lastPhase = phase;
|
||||||
|
|
||||||
engine->engineState.isAutomaticIdle = tps.Valid && engineConfiguration->idleMode == IM_AUTO;
|
engine->engineState.isAutomaticIdle = tps.Valid && engineConfiguration->idleMode == IM_AUTO;
|
||||||
|
|
||||||
|
@ -529,6 +561,10 @@ void updateIdleControl()
|
||||||
idleControllerInstance.update();
|
idleControllerInstance.update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float getIdleTimingAdjustment(int rpm) {
|
||||||
|
return idleControllerInstance.getIdleTimingAdjustment(rpm);
|
||||||
|
}
|
||||||
|
|
||||||
static void applyPidSettings(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
static void applyPidSettings(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
getIdlePid(PASS_ENGINE_PARAMETER_SIGNATURE)->updateFactors(engineConfiguration->idleRpmPid.pFactor, engineConfiguration->idleRpmPid.iFactor, engineConfiguration->idleRpmPid.dFactor);
|
getIdlePid(PASS_ENGINE_PARAMETER_SIGNATURE)->updateFactors(engineConfiguration->idleRpmPid.pFactor, engineConfiguration->idleRpmPid.iFactor, engineConfiguration->idleRpmPid.dFactor);
|
||||||
iacPidMultMap.init(CONFIG(iacPidMultTable), CONFIG(iacPidMultLoadBins), CONFIG(iacPidMultRpmBins));
|
iacPidMultMap.init(CONFIG(iacPidMultTable), CONFIG(iacPidMultLoadBins), CONFIG(iacPidMultRpmBins));
|
||||||
|
@ -605,6 +641,7 @@ void startIdleBench(void) {
|
||||||
void startIdleThread(Logging*sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
void startIdleThread(Logging*sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
||||||
logger = sharedLogger;
|
logger = sharedLogger;
|
||||||
INJECT_ENGINE_REFERENCE(&idleControllerInstance);
|
INJECT_ENGINE_REFERENCE(&idleControllerInstance);
|
||||||
|
idleControllerInstance.init(&CONFIG(idleTimingPid));
|
||||||
INJECT_ENGINE_REFERENCE(&industrialWithOverrideIdlePid);
|
INJECT_ENGINE_REFERENCE(&industrialWithOverrideIdlePid);
|
||||||
|
|
||||||
ENGINE(idleController) = &idleControllerInstance;
|
ENGINE(idleController) = &idleControllerInstance;
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
#include "engine_ptr.h"
|
#include "engine_ptr.h"
|
||||||
#include "rusefi_types.h"
|
#include "rusefi_types.h"
|
||||||
#include "periodic_task.h"
|
#include "periodic_task.h"
|
||||||
|
#include "pid.h"
|
||||||
|
|
||||||
struct IIdleController {
|
struct IIdleController {
|
||||||
enum class Phase : uint8_t {
|
enum class Phase : uint8_t {
|
||||||
|
@ -28,13 +29,13 @@ struct IIdleController {
|
||||||
};
|
};
|
||||||
|
|
||||||
class Logging;
|
class Logging;
|
||||||
class Pid;
|
|
||||||
|
|
||||||
|
|
||||||
class IdleController : public IIdleController {
|
class IdleController : public IIdleController {
|
||||||
public:
|
public:
|
||||||
DECLARE_ENGINE_PTR;
|
DECLARE_ENGINE_PTR;
|
||||||
|
|
||||||
|
void init(pid_s* idlePidConfig);
|
||||||
|
|
||||||
float getIdlePosition();
|
float getIdlePosition();
|
||||||
void update();
|
void update();
|
||||||
|
|
||||||
|
@ -48,11 +49,23 @@ public:
|
||||||
float getCrankingOpenLoop(float clt) const override;
|
float getCrankingOpenLoop(float clt) const override;
|
||||||
float getRunningOpenLoop(float clt, SensorResult tps) const override;
|
float getRunningOpenLoop(float clt, SensorResult tps) const override;
|
||||||
float getOpenLoop(Phase phase, float clt, SensorResult tps) const override;
|
float getOpenLoop(Phase phase, float clt, SensorResult tps) const override;
|
||||||
|
|
||||||
|
float getIdleTimingAdjustment(int rpm);
|
||||||
|
float getIdleTimingAdjustment(int rpm, int targetRpm, Phase phase);
|
||||||
|
|
||||||
|
private:
|
||||||
|
// These are stored by getIdlePosition() and used by getIdleTimingAdjustment()
|
||||||
|
Phase m_lastPhase = Phase::Cranking;
|
||||||
|
int m_lastTargetRpm = 0;
|
||||||
|
|
||||||
|
Pid m_timingPid;
|
||||||
};
|
};
|
||||||
|
|
||||||
void updateIdleControl();
|
void updateIdleControl();
|
||||||
percent_t getIdlePosition();
|
percent_t getIdlePosition();
|
||||||
|
|
||||||
|
float getIdleTimingAdjustment(int rpm);
|
||||||
|
|
||||||
void applyIACposition(percent_t position DECLARE_ENGINE_PARAMETER_SUFFIX);
|
void applyIACposition(percent_t position DECLARE_ENGINE_PARAMETER_SUFFIX);
|
||||||
void setManualIdleValvePosition(int positionPercent);
|
void setManualIdleValvePosition(int positionPercent);
|
||||||
|
|
||||||
|
|
|
@ -37,10 +37,6 @@ static ign_Map3D_t advanceMap("advance");
|
||||||
// This coeff in ctor parameter is sufficient for int16<->float conversion!
|
// This coeff in ctor parameter is sufficient for int16<->float conversion!
|
||||||
static ign_Map3D_t iatAdvanceCorrectionMap("iat corr");
|
static ign_Map3D_t iatAdvanceCorrectionMap("iat corr");
|
||||||
|
|
||||||
// Init PID later (make it compatible with unit-tests)
|
|
||||||
static Pid idleTimingPid;
|
|
||||||
static bool shouldResetTimingPid = false;
|
|
||||||
|
|
||||||
static int minCrankingRpm = 0;
|
static int minCrankingRpm = 0;
|
||||||
|
|
||||||
#if IGN_LOAD_COUNT == DEFAULT_IGN_LOAD_COUNT
|
#if IGN_LOAD_COUNT == DEFAULT_IGN_LOAD_COUNT
|
||||||
|
@ -122,41 +118,10 @@ angle_t getAdvanceCorrections(int rpm DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
||||||
if (!iatValid) {
|
if (!iatValid) {
|
||||||
iatCorrection = 0;
|
iatCorrection = 0;
|
||||||
} else {
|
} else {
|
||||||
iatCorrection = iatAdvanceCorrectionMap.getValue((float) rpm, iat);
|
iatCorrection = iatAdvanceCorrectionMap.getValue(rpm, iat);
|
||||||
}
|
}
|
||||||
|
|
||||||
// PID Ignition Advance angle correction
|
float pidTimingCorrection = getIdleTimingAdjustment(rpm);
|
||||||
float pidTimingCorrection = 0.0f;
|
|
||||||
if (CONFIG(useIdleTimingPidControl)) {
|
|
||||||
int targetRpm = ENGINE(idleController)->getTargetRpm(Sensor::get(SensorType::Clt).value_or(0));
|
|
||||||
int rpmDelta = absI(rpm - targetRpm);
|
|
||||||
|
|
||||||
auto [valid, tps] = Sensor::get(SensorType::Tps1);
|
|
||||||
|
|
||||||
// If TPS is invalid, or we aren't in the region, so reset state and don't apply PID
|
|
||||||
if (!valid || tps >= CONFIG(idlePidDeactivationTpsThreshold)) {
|
|
||||||
// we are not in the idle mode anymore, so the 'reset' flag will help us when we return to the idle.
|
|
||||||
shouldResetTimingPid = true;
|
|
||||||
}
|
|
||||||
else if (rpmDelta > CONFIG(idleTimingPidDeadZone) && rpmDelta < CONFIG(idleTimingPidWorkZone) + CONFIG(idlePidFalloffDeltaRpm)) {
|
|
||||||
// We're now in the idle mode, and RPM is inside the Timing-PID regulator work zone!
|
|
||||||
// So if we need to reset the PID, let's do it now
|
|
||||||
if (shouldResetTimingPid) {
|
|
||||||
idleTimingPid.reset();
|
|
||||||
shouldResetTimingPid = false;
|
|
||||||
}
|
|
||||||
// get PID value (this is not an actual Advance Angle, but just a additive correction!)
|
|
||||||
percent_t timingRawCorr = idleTimingPid.getOutput(targetRpm, rpm, FAST_CALLBACK_PERIOD_MS / 1000.0f);
|
|
||||||
// tps idle-running falloff
|
|
||||||
pidTimingCorrection = interpolateClamped(0.0f, timingRawCorr, CONFIG(idlePidDeactivationTpsThreshold), 0.0f, tps);
|
|
||||||
// rpm falloff
|
|
||||||
pidTimingCorrection = interpolateClamped(0.0f, pidTimingCorrection, CONFIG(idlePidFalloffDeltaRpm), 0.0f, rpmDelta - CONFIG(idleTimingPidWorkZone));
|
|
||||||
} else {
|
|
||||||
shouldResetTimingPid = true;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
shouldResetTimingPid = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (engineConfiguration->debugMode == DBG_IGNITION_TIMING) {
|
if (engineConfiguration->debugMode == DBG_IGNITION_TIMING) {
|
||||||
#if EFI_TUNER_STUDIO
|
#if EFI_TUNER_STUDIO
|
||||||
|
@ -291,8 +256,6 @@ void initTimingMap(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
config->ignitionRpmBins);
|
config->ignitionRpmBins);
|
||||||
iatAdvanceCorrectionMap.init(config->ignitionIatCorrTable, config->ignitionIatCorrLoadBins,
|
iatAdvanceCorrectionMap.init(config->ignitionIatCorrTable, config->ignitionIatCorrLoadBins,
|
||||||
config->ignitionIatCorrRpmBins);
|
config->ignitionIatCorrRpmBins);
|
||||||
// init timing PID
|
|
||||||
idleTimingPid = Pid(&CONFIG(idleTimingPid));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -290,8 +290,12 @@ static void handleBenchCategory(uint16_t index) {
|
||||||
case CMD_TS_BENCH_AC_COMPRESSOR_RELAY:
|
case CMD_TS_BENCH_AC_COMPRESSOR_RELAY:
|
||||||
acRelayBench();
|
acRelayBench();
|
||||||
return;
|
return;
|
||||||
|
case CMD_TS_BENCH_FAN_RELAY:
|
||||||
|
fanBench();
|
||||||
|
return;
|
||||||
|
default:
|
||||||
|
firmwareError(OBD_PCM_Processor_Fault, "Unexpected bench function %d", index);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void handleCommandX14(uint16_t index) {
|
static void handleCommandX14(uint16_t index) {
|
||||||
|
@ -347,6 +351,8 @@ static void handleCommandX14(uint16_t index) {
|
||||||
case 0x12:
|
case 0x12:
|
||||||
widebandUpdatePending = true;
|
widebandUpdatePending = true;
|
||||||
return;
|
return;
|
||||||
|
default:
|
||||||
|
firmwareError(OBD_PCM_Processor_Fault, "Unexpected bench x14 %d", index);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -377,7 +383,7 @@ void executeTSCommand(uint16_t subsystem, uint16_t index) {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_TS_INJECTOR_CATEGORY:
|
case CMD_TS_INJECTOR_CATEGORY:
|
||||||
if (!running) {
|
if (!running) {
|
||||||
doRunFuel(index, "300", "4", "400", "3");
|
doRunFuel(index, "300", "4", "400", "3");
|
||||||
}
|
}
|
||||||
|
@ -398,11 +404,6 @@ void executeTSCommand(uint16_t subsystem, uint16_t index) {
|
||||||
case CMD_TS_X14:
|
case CMD_TS_X14:
|
||||||
handleCommandX14(index);
|
handleCommandX14(index);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_TS_X15:
|
|
||||||
fanBench();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case CMD_TS_BENCH_CATEGORY:
|
case CMD_TS_BENCH_CATEGORY:
|
||||||
handleBenchCategory(index);
|
handleBenchCategory(index);
|
||||||
break;
|
break;
|
||||||
|
@ -452,6 +453,8 @@ void executeTSCommand(uint16_t subsystem, uint16_t index) {
|
||||||
rebootNow();
|
rebootNow();
|
||||||
#endif /* EFI_PROD_CODE */
|
#endif /* EFI_PROD_CODE */
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
firmwareError(OBD_PCM_Processor_Fault, "Unexpected bench subsystem %d %d", subsystem, index);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Jan 06 18:57:11 UTC 2021
|
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jan 07 13:24:50 UTC 2021
|
||||||
// by class com.rusefi.output.CHeaderConsumer
|
// by class com.rusefi.output.CHeaderConsumer
|
||||||
// begin
|
// begin
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -3300,20 +3300,18 @@ struct engine_configuration_s {
|
||||||
*/
|
*/
|
||||||
pid_s idleTimingPid;
|
pid_s idleTimingPid;
|
||||||
/**
|
/**
|
||||||
* When the current RPM is closer than this value to the target, closed-loop idle timing control is enabled.
|
|
||||||
* offset 3988
|
* offset 3988
|
||||||
*/
|
*/
|
||||||
int16_t idleTimingPidWorkZone;
|
uint8_t unused3988[2];
|
||||||
/**
|
/**
|
||||||
* If the RPM closer to target than this value, disable timing correction to prevent oscillation
|
* If the RPM closer to target than this value, disable timing correction to prevent oscillation
|
||||||
* offset 3990
|
* offset 3990
|
||||||
*/
|
*/
|
||||||
int16_t idleTimingPidDeadZone;
|
int16_t idleTimingPidDeadZone;
|
||||||
/**
|
/**
|
||||||
* Taper out idle timing control over this range as the engine leaves idle conditions
|
|
||||||
* offset 3992
|
* offset 3992
|
||||||
*/
|
*/
|
||||||
int16_t idlePidFalloffDeltaRpm;
|
uint8_t unused3942[2];
|
||||||
/**
|
/**
|
||||||
* A delay in cycles between fuel-enrich. portions
|
* A delay in cycles between fuel-enrich. portions
|
||||||
* offset 3994
|
* offset 3994
|
||||||
|
@ -3785,4 +3783,4 @@ struct persistent_config_s {
|
||||||
typedef struct persistent_config_s persistent_config_s;
|
typedef struct persistent_config_s persistent_config_s;
|
||||||
|
|
||||||
// end
|
// end
|
||||||
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Jan 06 18:57:11 UTC 2021
|
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jan 07 13:24:50 UTC 2021
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Jan 06 18:57:11 UTC 2021
|
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jan 07 13:24:50 UTC 2021
|
||||||
|
|
||||||
// by class com.rusefi.output.FileFsioSettingsConsumer
|
// by class com.rusefi.output.FileFsioSettingsConsumer
|
||||||
FSIO_SETTING_FANONTEMPERATURE = 1000,
|
FSIO_SETTING_FANONTEMPERATURE = 1000,
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Jan 06 18:57:11 UTC 2021
|
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jan 07 13:24:50 UTC 2021
|
||||||
|
|
||||||
// by class com.rusefi.output.FileFsioSettingsConsumer
|
// by class com.rusefi.output.FileFsioSettingsConsumer
|
||||||
case FSIO_SETTING_FANONTEMPERATURE:
|
case FSIO_SETTING_FANONTEMPERATURE:
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Jan 06 18:57:11 UTC 2021
|
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jan 07 13:24:50 UTC 2021
|
||||||
|
|
||||||
// by class com.rusefi.output.FileFsioSettingsConsumer
|
// by class com.rusefi.output.FileFsioSettingsConsumer
|
||||||
static LENameOrdinalPair lefanOnTemperature(FSIO_SETTING_FANONTEMPERATURE, "cfg_fanOnTemperature");
|
static LENameOrdinalPair lefanOnTemperature(FSIO_SETTING_FANONTEMPERATURE, "cfg_fanOnTemperature");
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Jan 06 18:57:11 UTC 2021
|
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jan 07 13:24:50 UTC 2021
|
||||||
|
|
||||||
// by class com.rusefi.output.FileFsioSettingsConsumer
|
// by class com.rusefi.output.FileFsioSettingsConsumer
|
||||||
case FSIO_SETTING_FANONTEMPERATURE:
|
case FSIO_SETTING_FANONTEMPERATURE:
|
||||||
|
|
|
@ -292,7 +292,6 @@
|
||||||
#define CMD_TS_INJECTOR_CATEGORY 19
|
#define CMD_TS_INJECTOR_CATEGORY 19
|
||||||
#define CMD_TS_SOLENOID_CATEGORY 41
|
#define CMD_TS_SOLENOID_CATEGORY 41
|
||||||
#define CMD_TS_X14 20
|
#define CMD_TS_X14 20
|
||||||
#define CMD_TS_X15 21
|
|
||||||
#define CMD_TS_X17 23
|
#define CMD_TS_X17 23
|
||||||
#define CMD_TS_X18 24
|
#define CMD_TS_X18 24
|
||||||
#define CMD_TS_X31 49
|
#define CMD_TS_X31 49
|
||||||
|
@ -855,7 +854,6 @@
|
||||||
#define idleMode_offset 1472
|
#define idleMode_offset 1472
|
||||||
#define idlePidActivationTime_offset 2588
|
#define idlePidActivationTime_offset 2588
|
||||||
#define idlePidDeactivationTpsThreshold_offset 816
|
#define idlePidDeactivationTpsThreshold_offset 816
|
||||||
#define idlePidFalloffDeltaRpm_offset 3992
|
|
||||||
#define idlePidRpmDeadZone_offset 1894
|
#define idlePidRpmDeadZone_offset 1894
|
||||||
#define idlePidRpmUpperLimit_offset 1484
|
#define idlePidRpmUpperLimit_offset 1484
|
||||||
#define idlePositionMax_offset 722
|
#define idlePositionMax_offset 722
|
||||||
|
@ -890,7 +888,6 @@
|
||||||
#define idleTimingPid_periodMs_offset 3982
|
#define idleTimingPid_periodMs_offset 3982
|
||||||
#define idleTimingPid_pFactor_offset 3968
|
#define idleTimingPid_pFactor_offset 3968
|
||||||
#define idleTimingPidDeadZone_offset 3990
|
#define idleTimingPidDeadZone_offset 3990
|
||||||
#define idleTimingPidWorkZone_offset 3988
|
|
||||||
#define idleVe_offset 6640
|
#define idleVe_offset 6640
|
||||||
#define idleVeBins_offset 6608
|
#define idleVeBins_offset 6608
|
||||||
#define IGN_LOAD_COUNT 16
|
#define IGN_LOAD_COUNT 16
|
||||||
|
@ -1248,8 +1245,8 @@
|
||||||
#define showHumanReadableWarning_offset 976
|
#define showHumanReadableWarning_offset 976
|
||||||
#define showSdCardWarning_offset 76
|
#define showSdCardWarning_offset 76
|
||||||
#define SIGNATURE_BOARD all
|
#define SIGNATURE_BOARD all
|
||||||
#define SIGNATURE_DATE 2021.01.06
|
#define SIGNATURE_DATE 2021.01.07
|
||||||
#define SIGNATURE_HASH 3300003329
|
#define SIGNATURE_HASH 118283022
|
||||||
#define silentTriggerError_offset 1464
|
#define silentTriggerError_offset 1464
|
||||||
#define slowAdcAlpha_offset 2088
|
#define slowAdcAlpha_offset 2088
|
||||||
#define sparkDwellRpmBins_offset 332
|
#define sparkDwellRpmBins_offset 332
|
||||||
|
@ -1581,7 +1578,7 @@
|
||||||
#define ts_show_spi true
|
#define ts_show_spi true
|
||||||
#define ts_show_trigger_comparator false
|
#define ts_show_trigger_comparator false
|
||||||
#define ts_show_tunerstudio_port true
|
#define ts_show_tunerstudio_port true
|
||||||
#define TS_SIGNATURE "rusEFI 2021.01.06.all.3300003329"
|
#define TS_SIGNATURE "rusEFI 2021.01.07.all.118283022"
|
||||||
#define TS_SINGLE_WRITE_COMMAND 'W'
|
#define TS_SINGLE_WRITE_COMMAND 'W'
|
||||||
#define TS_SINGLE_WRITE_COMMAND_char W
|
#define TS_SINGLE_WRITE_COMMAND_char W
|
||||||
#define TS_TEST_COMMAND 't' // 0x74
|
#define TS_TEST_COMMAND 't' // 0x74
|
||||||
|
@ -1649,6 +1646,8 @@
|
||||||
#define unused2508_offset 2508
|
#define unused2508_offset 2508
|
||||||
#define unused2536_offset 2536
|
#define unused2536_offset 2536
|
||||||
#define unused3328_offset 3328
|
#define unused3328_offset 3328
|
||||||
|
#define unused3942_offset 3992
|
||||||
|
#define unused3988_offset 3988
|
||||||
#define unused4028_offset 4028
|
#define unused4028_offset 4028
|
||||||
#define unused541_offset 541
|
#define unused541_offset 541
|
||||||
#define unused542_offset 542
|
#define unused542_offset 542
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#define SIGNATURE_BOARD all
|
#define SIGNATURE_BOARD all
|
||||||
#define SIGNATURE_DATE 2021.01.06
|
#define SIGNATURE_DATE 2021.01.07
|
||||||
#define SIGNATURE_HASH 3975866578
|
#define SIGNATURE_HASH 118283022
|
||||||
#define TS_SIGNATURE "rusEFI 2021.01.06.all.3975866578"
|
#define TS_SIGNATURE "rusEFI 2021.01.07.all.118283022"
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#define SIGNATURE_BOARD frankenso_na6
|
#define SIGNATURE_BOARD frankenso_na6
|
||||||
#define SIGNATURE_DATE 2021.01.06
|
#define SIGNATURE_DATE 2021.01.07
|
||||||
#define SIGNATURE_HASH 2055887145
|
#define SIGNATURE_HASH 2440850165
|
||||||
#define TS_SIGNATURE "rusEFI 2021.01.06.frankenso_na6.2055887145"
|
#define TS_SIGNATURE "rusEFI 2021.01.07.frankenso_na6.2440850165"
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#define SIGNATURE_BOARD hellen_cypress
|
#define SIGNATURE_BOARD hellen_cypress
|
||||||
#define SIGNATURE_DATE 2021.01.06
|
#define SIGNATURE_DATE 2021.01.07
|
||||||
#define SIGNATURE_HASH 621497873
|
#define SIGNATURE_HASH 3472719309
|
||||||
#define TS_SIGNATURE "rusEFI 2021.01.06.hellen_cypress.621497873"
|
#define TS_SIGNATURE "rusEFI 2021.01.07.hellen_cypress.3472719309"
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#define SIGNATURE_BOARD kin
|
#define SIGNATURE_BOARD kin
|
||||||
#define SIGNATURE_DATE 2021.01.06
|
#define SIGNATURE_DATE 2021.01.07
|
||||||
#define SIGNATURE_HASH 1947694315
|
#define SIGNATURE_HASH 2682341175
|
||||||
#define TS_SIGNATURE "rusEFI 2021.01.06.kin.1947694315"
|
#define TS_SIGNATURE "rusEFI 2021.01.07.kin.2682341175"
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#define SIGNATURE_BOARD mre_f4
|
#define SIGNATURE_BOARD mre_f4
|
||||||
#define SIGNATURE_DATE 2021.01.06
|
#define SIGNATURE_DATE 2021.01.07
|
||||||
#define SIGNATURE_HASH 4213847723
|
#define SIGNATURE_HASH 282854775
|
||||||
#define TS_SIGNATURE "rusEFI 2021.01.06.mre_f4.4213847723"
|
#define TS_SIGNATURE "rusEFI 2021.01.07.mre_f4.282854775"
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#define SIGNATURE_BOARD mre_f7
|
#define SIGNATURE_BOARD mre_f7
|
||||||
#define SIGNATURE_DATE 2021.01.06
|
#define SIGNATURE_DATE 2021.01.07
|
||||||
#define SIGNATURE_HASH 4213847723
|
#define SIGNATURE_HASH 282854775
|
||||||
#define TS_SIGNATURE "rusEFI 2021.01.06.mre_f7.4213847723"
|
#define TS_SIGNATURE "rusEFI 2021.01.07.mre_f7.282854775"
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#define SIGNATURE_BOARD prometheus_405
|
#define SIGNATURE_BOARD prometheus_405
|
||||||
#define SIGNATURE_DATE 2021.01.06
|
#define SIGNATURE_DATE 2021.01.07
|
||||||
#define SIGNATURE_HASH 2921524867
|
#define SIGNATURE_HASH 1171578207
|
||||||
#define TS_SIGNATURE "rusEFI 2021.01.06.prometheus_405.2921524867"
|
#define TS_SIGNATURE "rusEFI 2021.01.07.prometheus_405.1171578207"
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#define SIGNATURE_BOARD prometheus_469
|
#define SIGNATURE_BOARD prometheus_469
|
||||||
#define SIGNATURE_DATE 2021.01.06
|
#define SIGNATURE_DATE 2021.01.07
|
||||||
#define SIGNATURE_HASH 2921524867
|
#define SIGNATURE_HASH 1171578207
|
||||||
#define TS_SIGNATURE "rusEFI 2021.01.06.prometheus_469.2921524867"
|
#define TS_SIGNATURE "rusEFI 2021.01.07.prometheus_469.1171578207"
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#define SIGNATURE_BOARD proteus_f4
|
#define SIGNATURE_BOARD proteus_f4
|
||||||
#define SIGNATURE_DATE 2021.01.06
|
#define SIGNATURE_DATE 2021.01.07
|
||||||
#define SIGNATURE_HASH 626041356
|
#define SIGNATURE_HASH 3467022800
|
||||||
#define TS_SIGNATURE "rusEFI 2021.01.06.proteus_f4.626041356"
|
#define TS_SIGNATURE "rusEFI 2021.01.07.proteus_f4.3467022800"
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#define SIGNATURE_BOARD proteus_f7
|
#define SIGNATURE_BOARD proteus_f7
|
||||||
#define SIGNATURE_DATE 2021.01.06
|
#define SIGNATURE_DATE 2021.01.07
|
||||||
#define SIGNATURE_HASH 626041356
|
#define SIGNATURE_HASH 3467022800
|
||||||
#define TS_SIGNATURE "rusEFI 2021.01.06.proteus_f7.626041356"
|
#define TS_SIGNATURE "rusEFI 2021.01.07.proteus_f7.3467022800"
|
||||||
|
|
|
@ -1409,9 +1409,10 @@ tChargeMode_e tChargeMode;
|
||||||
uint8_t[4] unused1059;;"units", 1, 0, -20, 100, 0
|
uint8_t[4] unused1059;;"units", 1, 0, -20, 100, 0
|
||||||
|
|
||||||
pid_s idleTimingPid;See useIdleTimingPidControl
|
pid_s idleTimingPid;See useIdleTimingPidControl
|
||||||
int16_t idleTimingPidWorkZone;+When the current RPM is closer than this value to the target, closed-loop idle timing control is enabled.;"RPM", 1, 0, 0, 1000, 0
|
uint8_t[2] unused3988;;"units", 1, 0, -20, 100, 0
|
||||||
int16_t idleTimingPidDeadZone;+If the RPM closer to target than this value, disable timing correction to prevent oscillation;"RPM", 1, 0, 0, 1000, 0
|
int16_t idleTimingPidDeadZone;+If the RPM closer to target than this value, disable timing correction to prevent oscillation;"RPM", 1, 0, 0, 1000, 0
|
||||||
int16_t idlePidFalloffDeltaRpm;+Taper out idle timing control over this range as the engine leaves idle conditions;"RPM", 1, 0, 0, 1000, 0
|
uint8_t[2] unused3942;;"units", 1, 0, -20, 100, 0
|
||||||
|
|
||||||
|
|
||||||
int16_t tpsAccelFractionPeriod;+A delay in cycles between fuel-enrich. portions;"cycles", 1, 0, 0, 500, 0
|
int16_t tpsAccelFractionPeriod;+A delay in cycles between fuel-enrich. portions;"cycles", 1, 0, 0, 500, 0
|
||||||
float tpsAccelFractionDivisor;+A fraction divisor: 1 or less = entire portion at once, or split into diminishing fractions;"coef", 1, 0, 0, 100, 2
|
float tpsAccelFractionDivisor;+A fraction divisor: 1 or less = entire portion at once, or split into diminishing fractions;"coef", 1, 0, 0, 100, 2
|
||||||
|
@ -1747,7 +1748,6 @@ end_struct
|
||||||
#define CMD_TS_IGNITION_CATEGORY 18
|
#define CMD_TS_IGNITION_CATEGORY 18
|
||||||
#define CMD_TS_INJECTOR_CATEGORY 19
|
#define CMD_TS_INJECTOR_CATEGORY 19
|
||||||
#define CMD_TS_X14 20
|
#define CMD_TS_X14 20
|
||||||
#define CMD_TS_X15 21
|
|
||||||
// 0x16
|
// 0x16
|
||||||
#define CMD_TS_BENCH_CATEGORY 22
|
#define CMD_TS_BENCH_CATEGORY 22
|
||||||
#define CMD_TS_X17 23
|
#define CMD_TS_X17 23
|
||||||
|
|
Binary file not shown.
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
[MegaTune]
|
[MegaTune]
|
||||||
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
||||||
signature = "rusEFI 2021.01.06.all.3975866578"
|
signature = "rusEFI 2021.01.07.all.118283022"
|
||||||
|
|
||||||
[TunerStudio]
|
[TunerStudio]
|
||||||
queryCommand = "S"
|
queryCommand = "S"
|
||||||
versionInfo = "V" ; firmwave version for title bar.
|
versionInfo = "V" ; firmwave version for title bar.
|
||||||
signature = "rusEFI 2021.01.06.all.3975866578" ; signature is expected to be 7 or more characters.
|
signature = "rusEFI 2021.01.07.all.118283022" ; signature is expected to be 7 or more characters.
|
||||||
|
|
||||||
[Constants]
|
[Constants]
|
||||||
; new packet serial format with CRC
|
; new packet serial format with CRC
|
||||||
|
@ -77,7 +77,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; CONFIG_DEFINITION_START
|
||||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Jan 06 19:42:19 UTC 2021
|
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jan 07 13:24:50 UTC 2021
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -1087,9 +1087,9 @@ page = 1
|
||||||
idleTimingPid_periodMs = scalar, S16, 3982, "ms", 1.0, 0, 0, 3000, 0
|
idleTimingPid_periodMs = scalar, S16, 3982, "ms", 1.0, 0, 0, 3000, 0
|
||||||
idleTimingPid_minValue = scalar, S16, 3984, "", 1.0, 0, -30000, 30000.0, 0
|
idleTimingPid_minValue = scalar, S16, 3984, "", 1.0, 0, -30000, 30000.0, 0
|
||||||
idleTimingPid_maxValue = scalar, S16, 3986, "", 1.0, 0, -30000, 30000.0, 0
|
idleTimingPid_maxValue = scalar, S16, 3986, "", 1.0, 0, -30000, 30000.0, 0
|
||||||
idleTimingPidWorkZone = scalar, S16, 3988, "RPM", 1.0, 0, 0, 1000, 0
|
unused3988 = array, U08, 3988, [2], "units", 1.0, 0, -20, 100, 0
|
||||||
idleTimingPidDeadZone = scalar, S16, 3990, "RPM", 1.0, 0, 0, 1000, 0
|
idleTimingPidDeadZone = scalar, S16, 3990, "RPM", 1.0, 0, 0, 1000, 0
|
||||||
idlePidFalloffDeltaRpm = scalar, S16, 3992, "RPM", 1.0, 0, 0, 1000, 0
|
unused3942 = array, U08, 3992, [2], "units", 1.0, 0, -20, 100, 0
|
||||||
tpsAccelFractionPeriod = scalar, S16, 3994, "cycles", 1.0, 0, 0, 500, 0
|
tpsAccelFractionPeriod = scalar, S16, 3994, "cycles", 1.0, 0, 0, 500, 0
|
||||||
tpsAccelFractionDivisor = scalar, F32, 3996, "coef", 1.0, 0, 0, 100, 2
|
tpsAccelFractionDivisor = scalar, F32, 3996, "coef", 1.0, 0, 0, 100, 2
|
||||||
tle8888spiDevice = bits,U32, 4000, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "INVALID", "INVALID", "INVALID"
|
tle8888spiDevice = bits,U32, 4000, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "INVALID", "INVALID", "INVALID"
|
||||||
|
@ -1441,9 +1441,7 @@ page = 1
|
||||||
coastingFuelCutClt = "Fuel cutoff is deactivated below this coolant threshold."
|
coastingFuelCutClt = "Fuel cutoff is deactivated below this coolant threshold."
|
||||||
pidExtraForLowRpm = "Increases PID reaction for RPM<target by adding extra percent to PID-error"
|
pidExtraForLowRpm = "Increases PID reaction for RPM<target by adding extra percent to PID-error"
|
||||||
coastingFuelCutMap = "MAP value above which fuel injection is re-enabled."
|
coastingFuelCutMap = "MAP value above which fuel injection is re-enabled."
|
||||||
idleTimingPidWorkZone = "When the current RPM is closer than this value to the target, closed-loop idle timing control is enabled."
|
|
||||||
idleTimingPidDeadZone = "If the RPM closer to target than this value, disable timing correction to prevent oscillation"
|
idleTimingPidDeadZone = "If the RPM closer to target than this value, disable timing correction to prevent oscillation"
|
||||||
idlePidFalloffDeltaRpm = "Taper out idle timing control over this range as the engine leaves idle conditions"
|
|
||||||
tpsAccelFractionPeriod = "A delay in cycles between fuel-enrich. portions"
|
tpsAccelFractionPeriod = "A delay in cycles between fuel-enrich. portions"
|
||||||
tpsAccelFractionDivisor = "A fraction divisor: 1 or less = entire portion at once, or split into diminishing fractions"
|
tpsAccelFractionDivisor = "A fraction divisor: 1 or less = entire portion at once, or split into diminishing fractions"
|
||||||
stoichRatioPrimary = "Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0."
|
stoichRatioPrimary = "Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0."
|
||||||
|
@ -3987,6 +3985,7 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
|
||||||
dialog = idleTimingPidCorrDialog, "", yAxis
|
dialog = idleTimingPidCorrDialog, "", yAxis
|
||||||
field = ""
|
field = ""
|
||||||
field = "Enable closed loop idle ignition timing", useIdleTimingPidControl
|
field = "Enable closed loop idle ignition timing", useIdleTimingPidControl
|
||||||
|
field = "RPM deadzone", idleTimingPidDeadZone
|
||||||
field = ""
|
field = ""
|
||||||
field = "#Gain is in degrees advance per rpm away from target"
|
field = "#Gain is in degrees advance per rpm away from target"
|
||||||
field = "#A good starting point is 0.1 = 10 deg per 100 rpm"
|
field = "#A good starting point is 0.1 = 10 deg per 100 rpm"
|
||||||
|
|
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
[MegaTune]
|
[MegaTune]
|
||||||
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
||||||
signature = "rusEFI 2021.01.06.frankenso_na6.2055887145"
|
signature = "rusEFI 2021.01.07.frankenso_na6.2440850165"
|
||||||
|
|
||||||
[TunerStudio]
|
[TunerStudio]
|
||||||
queryCommand = "S"
|
queryCommand = "S"
|
||||||
versionInfo = "V" ; firmwave version for title bar.
|
versionInfo = "V" ; firmwave version for title bar.
|
||||||
signature = "rusEFI 2021.01.06.frankenso_na6.2055887145" ; signature is expected to be 7 or more characters.
|
signature = "rusEFI 2021.01.07.frankenso_na6.2440850165" ; signature is expected to be 7 or more characters.
|
||||||
|
|
||||||
[Constants]
|
[Constants]
|
||||||
; new packet serial format with CRC
|
; new packet serial format with CRC
|
||||||
|
@ -77,7 +77,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; CONFIG_DEFINITION_START
|
||||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Jan 06 19:42:23 UTC 2021
|
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jan 07 13:24:56 UTC 2021
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -1087,9 +1087,9 @@ page = 1
|
||||||
idleTimingPid_periodMs = scalar, S16, 3982, "ms", 1.0, 0, 0, 3000, 0
|
idleTimingPid_periodMs = scalar, S16, 3982, "ms", 1.0, 0, 0, 3000, 0
|
||||||
idleTimingPid_minValue = scalar, S16, 3984, "", 1.0, 0, -30000, 30000.0, 0
|
idleTimingPid_minValue = scalar, S16, 3984, "", 1.0, 0, -30000, 30000.0, 0
|
||||||
idleTimingPid_maxValue = scalar, S16, 3986, "", 1.0, 0, -30000, 30000.0, 0
|
idleTimingPid_maxValue = scalar, S16, 3986, "", 1.0, 0, -30000, 30000.0, 0
|
||||||
idleTimingPidWorkZone = scalar, S16, 3988, "RPM", 1.0, 0, 0, 1000, 0
|
unused3988 = array, U08, 3988, [2], "units", 1.0, 0, -20, 100, 0
|
||||||
idleTimingPidDeadZone = scalar, S16, 3990, "RPM", 1.0, 0, 0, 1000, 0
|
idleTimingPidDeadZone = scalar, S16, 3990, "RPM", 1.0, 0, 0, 1000, 0
|
||||||
idlePidFalloffDeltaRpm = scalar, S16, 3992, "RPM", 1.0, 0, 0, 1000, 0
|
unused3942 = array, U08, 3992, [2], "units", 1.0, 0, -20, 100, 0
|
||||||
tpsAccelFractionPeriod = scalar, S16, 3994, "cycles", 1.0, 0, 0, 500, 0
|
tpsAccelFractionPeriod = scalar, S16, 3994, "cycles", 1.0, 0, 0, 500, 0
|
||||||
tpsAccelFractionDivisor = scalar, F32, 3996, "coef", 1.0, 0, 0, 100, 2
|
tpsAccelFractionDivisor = scalar, F32, 3996, "coef", 1.0, 0, 0, 100, 2
|
||||||
tle8888spiDevice = bits,U32, 4000, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "INVALID", "INVALID", "INVALID"
|
tle8888spiDevice = bits,U32, 4000, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "INVALID", "INVALID", "INVALID"
|
||||||
|
@ -1441,9 +1441,7 @@ page = 1
|
||||||
coastingFuelCutClt = "Fuel cutoff is deactivated below this coolant threshold."
|
coastingFuelCutClt = "Fuel cutoff is deactivated below this coolant threshold."
|
||||||
pidExtraForLowRpm = "Increases PID reaction for RPM<target by adding extra percent to PID-error"
|
pidExtraForLowRpm = "Increases PID reaction for RPM<target by adding extra percent to PID-error"
|
||||||
coastingFuelCutMap = "MAP value above which fuel injection is re-enabled."
|
coastingFuelCutMap = "MAP value above which fuel injection is re-enabled."
|
||||||
idleTimingPidWorkZone = "When the current RPM is closer than this value to the target, closed-loop idle timing control is enabled."
|
|
||||||
idleTimingPidDeadZone = "If the RPM closer to target than this value, disable timing correction to prevent oscillation"
|
idleTimingPidDeadZone = "If the RPM closer to target than this value, disable timing correction to prevent oscillation"
|
||||||
idlePidFalloffDeltaRpm = "Taper out idle timing control over this range as the engine leaves idle conditions"
|
|
||||||
tpsAccelFractionPeriod = "A delay in cycles between fuel-enrich. portions"
|
tpsAccelFractionPeriod = "A delay in cycles between fuel-enrich. portions"
|
||||||
tpsAccelFractionDivisor = "A fraction divisor: 1 or less = entire portion at once, or split into diminishing fractions"
|
tpsAccelFractionDivisor = "A fraction divisor: 1 or less = entire portion at once, or split into diminishing fractions"
|
||||||
stoichRatioPrimary = "Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0."
|
stoichRatioPrimary = "Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0."
|
||||||
|
@ -3987,6 +3985,7 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
|
||||||
dialog = idleTimingPidCorrDialog, "", yAxis
|
dialog = idleTimingPidCorrDialog, "", yAxis
|
||||||
field = ""
|
field = ""
|
||||||
field = "Enable closed loop idle ignition timing", useIdleTimingPidControl
|
field = "Enable closed loop idle ignition timing", useIdleTimingPidControl
|
||||||
|
field = "RPM deadzone", idleTimingPidDeadZone
|
||||||
field = ""
|
field = ""
|
||||||
field = "#Gain is in degrees advance per rpm away from target"
|
field = "#Gain is in degrees advance per rpm away from target"
|
||||||
field = "#A good starting point is 0.1 = 10 deg per 100 rpm"
|
field = "#A good starting point is 0.1 = 10 deg per 100 rpm"
|
||||||
|
|
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
[MegaTune]
|
[MegaTune]
|
||||||
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
||||||
signature = "rusEFI 2021.01.06.hellen_cypress.621497873"
|
signature = "rusEFI 2021.01.07.hellen_cypress.3472719309"
|
||||||
|
|
||||||
[TunerStudio]
|
[TunerStudio]
|
||||||
queryCommand = "S"
|
queryCommand = "S"
|
||||||
versionInfo = "V" ; firmwave version for title bar.
|
versionInfo = "V" ; firmwave version for title bar.
|
||||||
signature = "rusEFI 2021.01.06.hellen_cypress.621497873" ; signature is expected to be 7 or more characters.
|
signature = "rusEFI 2021.01.07.hellen_cypress.3472719309" ; signature is expected to be 7 or more characters.
|
||||||
|
|
||||||
[Constants]
|
[Constants]
|
||||||
; new packet serial format with CRC
|
; new packet serial format with CRC
|
||||||
|
@ -77,7 +77,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; CONFIG_DEFINITION_START
|
||||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Wed Jan 06 19:42:40 UTC 2021
|
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Thu Jan 07 13:25:14 UTC 2021
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -1087,9 +1087,9 @@ page = 1
|
||||||
idleTimingPid_periodMs = scalar, S16, 3982, "ms", 1.0, 0, 0, 3000, 0
|
idleTimingPid_periodMs = scalar, S16, 3982, "ms", 1.0, 0, 0, 3000, 0
|
||||||
idleTimingPid_minValue = scalar, S16, 3984, "", 1.0, 0, -30000, 30000.0, 0
|
idleTimingPid_minValue = scalar, S16, 3984, "", 1.0, 0, -30000, 30000.0, 0
|
||||||
idleTimingPid_maxValue = scalar, S16, 3986, "", 1.0, 0, -30000, 30000.0, 0
|
idleTimingPid_maxValue = scalar, S16, 3986, "", 1.0, 0, -30000, 30000.0, 0
|
||||||
idleTimingPidWorkZone = scalar, S16, 3988, "RPM", 1.0, 0, 0, 1000, 0
|
unused3988 = array, U08, 3988, [2], "units", 1.0, 0, -20, 100, 0
|
||||||
idleTimingPidDeadZone = scalar, S16, 3990, "RPM", 1.0, 0, 0, 1000, 0
|
idleTimingPidDeadZone = scalar, S16, 3990, "RPM", 1.0, 0, 0, 1000, 0
|
||||||
idlePidFalloffDeltaRpm = scalar, S16, 3992, "RPM", 1.0, 0, 0, 1000, 0
|
unused3942 = array, U08, 3992, [2], "units", 1.0, 0, -20, 100, 0
|
||||||
tpsAccelFractionPeriod = scalar, S16, 3994, "cycles", 1.0, 0, 0, 500, 0
|
tpsAccelFractionPeriod = scalar, S16, 3994, "cycles", 1.0, 0, 0, 500, 0
|
||||||
tpsAccelFractionDivisor = scalar, F32, 3996, "coef", 1.0, 0, 0, 100, 2
|
tpsAccelFractionDivisor = scalar, F32, 3996, "coef", 1.0, 0, 0, 100, 2
|
||||||
tle8888spiDevice = bits,U32, 4000, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "INVALID", "INVALID", "INVALID"
|
tle8888spiDevice = bits,U32, 4000, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "INVALID", "INVALID", "INVALID"
|
||||||
|
@ -1441,9 +1441,7 @@ page = 1
|
||||||
coastingFuelCutClt = "Fuel cutoff is deactivated below this coolant threshold."
|
coastingFuelCutClt = "Fuel cutoff is deactivated below this coolant threshold."
|
||||||
pidExtraForLowRpm = "Increases PID reaction for RPM<target by adding extra percent to PID-error"
|
pidExtraForLowRpm = "Increases PID reaction for RPM<target by adding extra percent to PID-error"
|
||||||
coastingFuelCutMap = "MAP value above which fuel injection is re-enabled."
|
coastingFuelCutMap = "MAP value above which fuel injection is re-enabled."
|
||||||
idleTimingPidWorkZone = "When the current RPM is closer than this value to the target, closed-loop idle timing control is enabled."
|
|
||||||
idleTimingPidDeadZone = "If the RPM closer to target than this value, disable timing correction to prevent oscillation"
|
idleTimingPidDeadZone = "If the RPM closer to target than this value, disable timing correction to prevent oscillation"
|
||||||
idlePidFalloffDeltaRpm = "Taper out idle timing control over this range as the engine leaves idle conditions"
|
|
||||||
tpsAccelFractionPeriod = "A delay in cycles between fuel-enrich. portions"
|
tpsAccelFractionPeriod = "A delay in cycles between fuel-enrich. portions"
|
||||||
tpsAccelFractionDivisor = "A fraction divisor: 1 or less = entire portion at once, or split into diminishing fractions"
|
tpsAccelFractionDivisor = "A fraction divisor: 1 or less = entire portion at once, or split into diminishing fractions"
|
||||||
stoichRatioPrimary = "Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0."
|
stoichRatioPrimary = "Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0."
|
||||||
|
@ -3987,6 +3985,7 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
|
||||||
dialog = idleTimingPidCorrDialog, "", yAxis
|
dialog = idleTimingPidCorrDialog, "", yAxis
|
||||||
field = ""
|
field = ""
|
||||||
field = "Enable closed loop idle ignition timing", useIdleTimingPidControl
|
field = "Enable closed loop idle ignition timing", useIdleTimingPidControl
|
||||||
|
field = "RPM deadzone", idleTimingPidDeadZone
|
||||||
field = ""
|
field = ""
|
||||||
field = "#Gain is in degrees advance per rpm away from target"
|
field = "#Gain is in degrees advance per rpm away from target"
|
||||||
field = "#A good starting point is 0.1 = 10 deg per 100 rpm"
|
field = "#A good starting point is 0.1 = 10 deg per 100 rpm"
|
||||||
|
|
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
[MegaTune]
|
[MegaTune]
|
||||||
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
||||||
signature = "rusEFI 2021.01.06.kin.1947694315"
|
signature = "rusEFI 2021.01.07.kin.2682341175"
|
||||||
|
|
||||||
[TunerStudio]
|
[TunerStudio]
|
||||||
queryCommand = "S"
|
queryCommand = "S"
|
||||||
versionInfo = "V" ; firmwave version for title bar.
|
versionInfo = "V" ; firmwave version for title bar.
|
||||||
signature = "rusEFI 2021.01.06.kin.1947694315" ; signature is expected to be 7 or more characters.
|
signature = "rusEFI 2021.01.07.kin.2682341175" ; signature is expected to be 7 or more characters.
|
||||||
|
|
||||||
[Constants]
|
[Constants]
|
||||||
; new packet serial format with CRC
|
; new packet serial format with CRC
|
||||||
|
@ -77,7 +77,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; CONFIG_DEFINITION_START
|
||||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Wed Jan 06 19:42:30 UTC 2021
|
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Thu Jan 07 13:25:07 UTC 2021
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -1087,9 +1087,9 @@ page = 1
|
||||||
idleTimingPid_periodMs = scalar, S16, 3982, "ms", 1.0, 0, 0, 3000, 0
|
idleTimingPid_periodMs = scalar, S16, 3982, "ms", 1.0, 0, 0, 3000, 0
|
||||||
idleTimingPid_minValue = scalar, S16, 3984, "", 1.0, 0, -30000, 30000.0, 0
|
idleTimingPid_minValue = scalar, S16, 3984, "", 1.0, 0, -30000, 30000.0, 0
|
||||||
idleTimingPid_maxValue = scalar, S16, 3986, "", 1.0, 0, -30000, 30000.0, 0
|
idleTimingPid_maxValue = scalar, S16, 3986, "", 1.0, 0, -30000, 30000.0, 0
|
||||||
idleTimingPidWorkZone = scalar, S16, 3988, "RPM", 1.0, 0, 0, 1000, 0
|
unused3988 = array, U08, 3988, [2], "units", 1.0, 0, -20, 100, 0
|
||||||
idleTimingPidDeadZone = scalar, S16, 3990, "RPM", 1.0, 0, 0, 1000, 0
|
idleTimingPidDeadZone = scalar, S16, 3990, "RPM", 1.0, 0, 0, 1000, 0
|
||||||
idlePidFalloffDeltaRpm = scalar, S16, 3992, "RPM", 1.0, 0, 0, 1000, 0
|
unused3942 = array, U08, 3992, [2], "units", 1.0, 0, -20, 100, 0
|
||||||
tpsAccelFractionPeriod = scalar, S16, 3994, "cycles", 1.0, 0, 0, 500, 0
|
tpsAccelFractionPeriod = scalar, S16, 3994, "cycles", 1.0, 0, 0, 500, 0
|
||||||
tpsAccelFractionDivisor = scalar, F32, 3996, "coef", 1.0, 0, 0, 100, 2
|
tpsAccelFractionDivisor = scalar, F32, 3996, "coef", 1.0, 0, 0, 100, 2
|
||||||
tle8888spiDevice = bits,U32, 4000, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "INVALID", "INVALID", "INVALID"
|
tle8888spiDevice = bits,U32, 4000, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "INVALID", "INVALID", "INVALID"
|
||||||
|
@ -1441,9 +1441,7 @@ page = 1
|
||||||
coastingFuelCutClt = "Fuel cutoff is deactivated below this coolant threshold."
|
coastingFuelCutClt = "Fuel cutoff is deactivated below this coolant threshold."
|
||||||
pidExtraForLowRpm = "Increases PID reaction for RPM<target by adding extra percent to PID-error"
|
pidExtraForLowRpm = "Increases PID reaction for RPM<target by adding extra percent to PID-error"
|
||||||
coastingFuelCutMap = "MAP value above which fuel injection is re-enabled."
|
coastingFuelCutMap = "MAP value above which fuel injection is re-enabled."
|
||||||
idleTimingPidWorkZone = "When the current RPM is closer than this value to the target, closed-loop idle timing control is enabled."
|
|
||||||
idleTimingPidDeadZone = "If the RPM closer to target than this value, disable timing correction to prevent oscillation"
|
idleTimingPidDeadZone = "If the RPM closer to target than this value, disable timing correction to prevent oscillation"
|
||||||
idlePidFalloffDeltaRpm = "Taper out idle timing control over this range as the engine leaves idle conditions"
|
|
||||||
tpsAccelFractionPeriod = "A delay in cycles between fuel-enrich. portions"
|
tpsAccelFractionPeriod = "A delay in cycles between fuel-enrich. portions"
|
||||||
tpsAccelFractionDivisor = "A fraction divisor: 1 or less = entire portion at once, or split into diminishing fractions"
|
tpsAccelFractionDivisor = "A fraction divisor: 1 or less = entire portion at once, or split into diminishing fractions"
|
||||||
stoichRatioPrimary = "Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0."
|
stoichRatioPrimary = "Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0."
|
||||||
|
@ -3988,6 +3986,7 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
|
||||||
dialog = idleTimingPidCorrDialog, "", yAxis
|
dialog = idleTimingPidCorrDialog, "", yAxis
|
||||||
field = ""
|
field = ""
|
||||||
field = "Enable closed loop idle ignition timing", useIdleTimingPidControl
|
field = "Enable closed loop idle ignition timing", useIdleTimingPidControl
|
||||||
|
field = "RPM deadzone", idleTimingPidDeadZone
|
||||||
field = ""
|
field = ""
|
||||||
field = "#Gain is in degrees advance per rpm away from target"
|
field = "#Gain is in degrees advance per rpm away from target"
|
||||||
field = "#A good starting point is 0.1 = 10 deg per 100 rpm"
|
field = "#A good starting point is 0.1 = 10 deg per 100 rpm"
|
||||||
|
|
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
[MegaTune]
|
[MegaTune]
|
||||||
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
||||||
signature = "rusEFI 2021.01.06.mre_f4.4213847723"
|
signature = "rusEFI 2021.01.07.mre_f4.282854775"
|
||||||
|
|
||||||
[TunerStudio]
|
[TunerStudio]
|
||||||
queryCommand = "S"
|
queryCommand = "S"
|
||||||
versionInfo = "V" ; firmwave version for title bar.
|
versionInfo = "V" ; firmwave version for title bar.
|
||||||
signature = "rusEFI 2021.01.06.mre_f4.4213847723" ; signature is expected to be 7 or more characters.
|
signature = "rusEFI 2021.01.07.mre_f4.282854775" ; signature is expected to be 7 or more characters.
|
||||||
|
|
||||||
[Constants]
|
[Constants]
|
||||||
; new packet serial format with CRC
|
; new packet serial format with CRC
|
||||||
|
@ -77,7 +77,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; CONFIG_DEFINITION_START
|
||||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Jan 06 19:42:21 UTC 2021
|
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jan 07 13:24:54 UTC 2021
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -1087,9 +1087,9 @@ page = 1
|
||||||
idleTimingPid_periodMs = scalar, S16, 3982, "ms", 1.0, 0, 0, 3000, 0
|
idleTimingPid_periodMs = scalar, S16, 3982, "ms", 1.0, 0, 0, 3000, 0
|
||||||
idleTimingPid_minValue = scalar, S16, 3984, "", 1.0, 0, -30000, 30000.0, 0
|
idleTimingPid_minValue = scalar, S16, 3984, "", 1.0, 0, -30000, 30000.0, 0
|
||||||
idleTimingPid_maxValue = scalar, S16, 3986, "", 1.0, 0, -30000, 30000.0, 0
|
idleTimingPid_maxValue = scalar, S16, 3986, "", 1.0, 0, -30000, 30000.0, 0
|
||||||
idleTimingPidWorkZone = scalar, S16, 3988, "RPM", 1.0, 0, 0, 1000, 0
|
unused3988 = array, U08, 3988, [2], "units", 1.0, 0, -20, 100, 0
|
||||||
idleTimingPidDeadZone = scalar, S16, 3990, "RPM", 1.0, 0, 0, 1000, 0
|
idleTimingPidDeadZone = scalar, S16, 3990, "RPM", 1.0, 0, 0, 1000, 0
|
||||||
idlePidFalloffDeltaRpm = scalar, S16, 3992, "RPM", 1.0, 0, 0, 1000, 0
|
unused3942 = array, U08, 3992, [2], "units", 1.0, 0, -20, 100, 0
|
||||||
tpsAccelFractionPeriod = scalar, S16, 3994, "cycles", 1.0, 0, 0, 500, 0
|
tpsAccelFractionPeriod = scalar, S16, 3994, "cycles", 1.0, 0, 0, 500, 0
|
||||||
tpsAccelFractionDivisor = scalar, F32, 3996, "coef", 1.0, 0, 0, 100, 2
|
tpsAccelFractionDivisor = scalar, F32, 3996, "coef", 1.0, 0, 0, 100, 2
|
||||||
tle8888spiDevice = bits,U32, 4000, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "INVALID", "INVALID", "INVALID"
|
tle8888spiDevice = bits,U32, 4000, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "INVALID", "INVALID", "INVALID"
|
||||||
|
@ -1441,9 +1441,7 @@ page = 1
|
||||||
coastingFuelCutClt = "Fuel cutoff is deactivated below this coolant threshold."
|
coastingFuelCutClt = "Fuel cutoff is deactivated below this coolant threshold."
|
||||||
pidExtraForLowRpm = "Increases PID reaction for RPM<target by adding extra percent to PID-error"
|
pidExtraForLowRpm = "Increases PID reaction for RPM<target by adding extra percent to PID-error"
|
||||||
coastingFuelCutMap = "MAP value above which fuel injection is re-enabled."
|
coastingFuelCutMap = "MAP value above which fuel injection is re-enabled."
|
||||||
idleTimingPidWorkZone = "When the current RPM is closer than this value to the target, closed-loop idle timing control is enabled."
|
|
||||||
idleTimingPidDeadZone = "If the RPM closer to target than this value, disable timing correction to prevent oscillation"
|
idleTimingPidDeadZone = "If the RPM closer to target than this value, disable timing correction to prevent oscillation"
|
||||||
idlePidFalloffDeltaRpm = "Taper out idle timing control over this range as the engine leaves idle conditions"
|
|
||||||
tpsAccelFractionPeriod = "A delay in cycles between fuel-enrich. portions"
|
tpsAccelFractionPeriod = "A delay in cycles between fuel-enrich. portions"
|
||||||
tpsAccelFractionDivisor = "A fraction divisor: 1 or less = entire portion at once, or split into diminishing fractions"
|
tpsAccelFractionDivisor = "A fraction divisor: 1 or less = entire portion at once, or split into diminishing fractions"
|
||||||
stoichRatioPrimary = "Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0."
|
stoichRatioPrimary = "Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0."
|
||||||
|
@ -3971,6 +3969,7 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
|
||||||
dialog = idleTimingPidCorrDialog, "", yAxis
|
dialog = idleTimingPidCorrDialog, "", yAxis
|
||||||
field = ""
|
field = ""
|
||||||
field = "Enable closed loop idle ignition timing", useIdleTimingPidControl
|
field = "Enable closed loop idle ignition timing", useIdleTimingPidControl
|
||||||
|
field = "RPM deadzone", idleTimingPidDeadZone
|
||||||
field = ""
|
field = ""
|
||||||
field = "#Gain is in degrees advance per rpm away from target"
|
field = "#Gain is in degrees advance per rpm away from target"
|
||||||
field = "#A good starting point is 0.1 = 10 deg per 100 rpm"
|
field = "#A good starting point is 0.1 = 10 deg per 100 rpm"
|
||||||
|
|
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
[MegaTune]
|
[MegaTune]
|
||||||
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
||||||
signature = "rusEFI 2021.01.06.mre_f7.4213847723"
|
signature = "rusEFI 2021.01.07.mre_f7.282854775"
|
||||||
|
|
||||||
[TunerStudio]
|
[TunerStudio]
|
||||||
queryCommand = "S"
|
queryCommand = "S"
|
||||||
versionInfo = "V" ; firmwave version for title bar.
|
versionInfo = "V" ; firmwave version for title bar.
|
||||||
signature = "rusEFI 2021.01.06.mre_f7.4213847723" ; signature is expected to be 7 or more characters.
|
signature = "rusEFI 2021.01.07.mre_f7.282854775" ; signature is expected to be 7 or more characters.
|
||||||
|
|
||||||
[Constants]
|
[Constants]
|
||||||
; new packet serial format with CRC
|
; new packet serial format with CRC
|
||||||
|
@ -77,7 +77,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; CONFIG_DEFINITION_START
|
||||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Jan 06 19:42:20 UTC 2021
|
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jan 07 13:24:52 UTC 2021
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -1087,9 +1087,9 @@ page = 1
|
||||||
idleTimingPid_periodMs = scalar, S16, 3982, "ms", 1.0, 0, 0, 3000, 0
|
idleTimingPid_periodMs = scalar, S16, 3982, "ms", 1.0, 0, 0, 3000, 0
|
||||||
idleTimingPid_minValue = scalar, S16, 3984, "", 1.0, 0, -30000, 30000.0, 0
|
idleTimingPid_minValue = scalar, S16, 3984, "", 1.0, 0, -30000, 30000.0, 0
|
||||||
idleTimingPid_maxValue = scalar, S16, 3986, "", 1.0, 0, -30000, 30000.0, 0
|
idleTimingPid_maxValue = scalar, S16, 3986, "", 1.0, 0, -30000, 30000.0, 0
|
||||||
idleTimingPidWorkZone = scalar, S16, 3988, "RPM", 1.0, 0, 0, 1000, 0
|
unused3988 = array, U08, 3988, [2], "units", 1.0, 0, -20, 100, 0
|
||||||
idleTimingPidDeadZone = scalar, S16, 3990, "RPM", 1.0, 0, 0, 1000, 0
|
idleTimingPidDeadZone = scalar, S16, 3990, "RPM", 1.0, 0, 0, 1000, 0
|
||||||
idlePidFalloffDeltaRpm = scalar, S16, 3992, "RPM", 1.0, 0, 0, 1000, 0
|
unused3942 = array, U08, 3992, [2], "units", 1.0, 0, -20, 100, 0
|
||||||
tpsAccelFractionPeriod = scalar, S16, 3994, "cycles", 1.0, 0, 0, 500, 0
|
tpsAccelFractionPeriod = scalar, S16, 3994, "cycles", 1.0, 0, 0, 500, 0
|
||||||
tpsAccelFractionDivisor = scalar, F32, 3996, "coef", 1.0, 0, 0, 100, 2
|
tpsAccelFractionDivisor = scalar, F32, 3996, "coef", 1.0, 0, 0, 100, 2
|
||||||
tle8888spiDevice = bits,U32, 4000, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "INVALID", "INVALID", "INVALID"
|
tle8888spiDevice = bits,U32, 4000, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "INVALID", "INVALID", "INVALID"
|
||||||
|
@ -1441,9 +1441,7 @@ page = 1
|
||||||
coastingFuelCutClt = "Fuel cutoff is deactivated below this coolant threshold."
|
coastingFuelCutClt = "Fuel cutoff is deactivated below this coolant threshold."
|
||||||
pidExtraForLowRpm = "Increases PID reaction for RPM<target by adding extra percent to PID-error"
|
pidExtraForLowRpm = "Increases PID reaction for RPM<target by adding extra percent to PID-error"
|
||||||
coastingFuelCutMap = "MAP value above which fuel injection is re-enabled."
|
coastingFuelCutMap = "MAP value above which fuel injection is re-enabled."
|
||||||
idleTimingPidWorkZone = "When the current RPM is closer than this value to the target, closed-loop idle timing control is enabled."
|
|
||||||
idleTimingPidDeadZone = "If the RPM closer to target than this value, disable timing correction to prevent oscillation"
|
idleTimingPidDeadZone = "If the RPM closer to target than this value, disable timing correction to prevent oscillation"
|
||||||
idlePidFalloffDeltaRpm = "Taper out idle timing control over this range as the engine leaves idle conditions"
|
|
||||||
tpsAccelFractionPeriod = "A delay in cycles between fuel-enrich. portions"
|
tpsAccelFractionPeriod = "A delay in cycles between fuel-enrich. portions"
|
||||||
tpsAccelFractionDivisor = "A fraction divisor: 1 or less = entire portion at once, or split into diminishing fractions"
|
tpsAccelFractionDivisor = "A fraction divisor: 1 or less = entire portion at once, or split into diminishing fractions"
|
||||||
stoichRatioPrimary = "Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0."
|
stoichRatioPrimary = "Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0."
|
||||||
|
@ -3971,6 +3969,7 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
|
||||||
dialog = idleTimingPidCorrDialog, "", yAxis
|
dialog = idleTimingPidCorrDialog, "", yAxis
|
||||||
field = ""
|
field = ""
|
||||||
field = "Enable closed loop idle ignition timing", useIdleTimingPidControl
|
field = "Enable closed loop idle ignition timing", useIdleTimingPidControl
|
||||||
|
field = "RPM deadzone", idleTimingPidDeadZone
|
||||||
field = ""
|
field = ""
|
||||||
field = "#Gain is in degrees advance per rpm away from target"
|
field = "#Gain is in degrees advance per rpm away from target"
|
||||||
field = "#A good starting point is 0.1 = 10 deg per 100 rpm"
|
field = "#A good starting point is 0.1 = 10 deg per 100 rpm"
|
||||||
|
|
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
[MegaTune]
|
[MegaTune]
|
||||||
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
||||||
signature = "rusEFI 2021.01.06.prometheus_405.2921524867"
|
signature = "rusEFI 2021.01.07.prometheus_405.1171578207"
|
||||||
|
|
||||||
[TunerStudio]
|
[TunerStudio]
|
||||||
queryCommand = "S"
|
queryCommand = "S"
|
||||||
versionInfo = "V" ; firmwave version for title bar.
|
versionInfo = "V" ; firmwave version for title bar.
|
||||||
signature = "rusEFI 2021.01.06.prometheus_405.2921524867" ; signature is expected to be 7 or more characters.
|
signature = "rusEFI 2021.01.07.prometheus_405.1171578207" ; signature is expected to be 7 or more characters.
|
||||||
|
|
||||||
[Constants]
|
[Constants]
|
||||||
; new packet serial format with CRC
|
; new packet serial format with CRC
|
||||||
|
@ -77,7 +77,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; CONFIG_DEFINITION_START
|
||||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Jan 06 19:42:26 UTC 2021
|
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jan 07 13:25:00 UTC 2021
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -1087,9 +1087,9 @@ page = 1
|
||||||
idleTimingPid_periodMs = scalar, S16, 3982, "ms", 1.0, 0, 0, 3000, 0
|
idleTimingPid_periodMs = scalar, S16, 3982, "ms", 1.0, 0, 0, 3000, 0
|
||||||
idleTimingPid_minValue = scalar, S16, 3984, "", 1.0, 0, -30000, 30000.0, 0
|
idleTimingPid_minValue = scalar, S16, 3984, "", 1.0, 0, -30000, 30000.0, 0
|
||||||
idleTimingPid_maxValue = scalar, S16, 3986, "", 1.0, 0, -30000, 30000.0, 0
|
idleTimingPid_maxValue = scalar, S16, 3986, "", 1.0, 0, -30000, 30000.0, 0
|
||||||
idleTimingPidWorkZone = scalar, S16, 3988, "RPM", 1.0, 0, 0, 1000, 0
|
unused3988 = array, U08, 3988, [2], "units", 1.0, 0, -20, 100, 0
|
||||||
idleTimingPidDeadZone = scalar, S16, 3990, "RPM", 1.0, 0, 0, 1000, 0
|
idleTimingPidDeadZone = scalar, S16, 3990, "RPM", 1.0, 0, 0, 1000, 0
|
||||||
idlePidFalloffDeltaRpm = scalar, S16, 3992, "RPM", 1.0, 0, 0, 1000, 0
|
unused3942 = array, U08, 3992, [2], "units", 1.0, 0, -20, 100, 0
|
||||||
tpsAccelFractionPeriod = scalar, S16, 3994, "cycles", 1.0, 0, 0, 500, 0
|
tpsAccelFractionPeriod = scalar, S16, 3994, "cycles", 1.0, 0, 0, 500, 0
|
||||||
tpsAccelFractionDivisor = scalar, F32, 3996, "coef", 1.0, 0, 0, 100, 2
|
tpsAccelFractionDivisor = scalar, F32, 3996, "coef", 1.0, 0, 0, 100, 2
|
||||||
tle8888spiDevice = bits,U32, 4000, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "INVALID", "INVALID", "INVALID"
|
tle8888spiDevice = bits,U32, 4000, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "INVALID", "INVALID", "INVALID"
|
||||||
|
@ -1441,9 +1441,7 @@ page = 1
|
||||||
coastingFuelCutClt = "Fuel cutoff is deactivated below this coolant threshold."
|
coastingFuelCutClt = "Fuel cutoff is deactivated below this coolant threshold."
|
||||||
pidExtraForLowRpm = "Increases PID reaction for RPM<target by adding extra percent to PID-error"
|
pidExtraForLowRpm = "Increases PID reaction for RPM<target by adding extra percent to PID-error"
|
||||||
coastingFuelCutMap = "MAP value above which fuel injection is re-enabled."
|
coastingFuelCutMap = "MAP value above which fuel injection is re-enabled."
|
||||||
idleTimingPidWorkZone = "When the current RPM is closer than this value to the target, closed-loop idle timing control is enabled."
|
|
||||||
idleTimingPidDeadZone = "If the RPM closer to target than this value, disable timing correction to prevent oscillation"
|
idleTimingPidDeadZone = "If the RPM closer to target than this value, disable timing correction to prevent oscillation"
|
||||||
idlePidFalloffDeltaRpm = "Taper out idle timing control over this range as the engine leaves idle conditions"
|
|
||||||
tpsAccelFractionPeriod = "A delay in cycles between fuel-enrich. portions"
|
tpsAccelFractionPeriod = "A delay in cycles between fuel-enrich. portions"
|
||||||
tpsAccelFractionDivisor = "A fraction divisor: 1 or less = entire portion at once, or split into diminishing fractions"
|
tpsAccelFractionDivisor = "A fraction divisor: 1 or less = entire portion at once, or split into diminishing fractions"
|
||||||
stoichRatioPrimary = "Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0."
|
stoichRatioPrimary = "Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0."
|
||||||
|
@ -3983,6 +3981,7 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
|
||||||
dialog = idleTimingPidCorrDialog, "", yAxis
|
dialog = idleTimingPidCorrDialog, "", yAxis
|
||||||
field = ""
|
field = ""
|
||||||
field = "Enable closed loop idle ignition timing", useIdleTimingPidControl
|
field = "Enable closed loop idle ignition timing", useIdleTimingPidControl
|
||||||
|
field = "RPM deadzone", idleTimingPidDeadZone
|
||||||
field = ""
|
field = ""
|
||||||
field = "#Gain is in degrees advance per rpm away from target"
|
field = "#Gain is in degrees advance per rpm away from target"
|
||||||
field = "#A good starting point is 0.1 = 10 deg per 100 rpm"
|
field = "#A good starting point is 0.1 = 10 deg per 100 rpm"
|
||||||
|
|
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
[MegaTune]
|
[MegaTune]
|
||||||
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
||||||
signature = "rusEFI 2021.01.06.prometheus_469.2921524867"
|
signature = "rusEFI 2021.01.07.prometheus_469.1171578207"
|
||||||
|
|
||||||
[TunerStudio]
|
[TunerStudio]
|
||||||
queryCommand = "S"
|
queryCommand = "S"
|
||||||
versionInfo = "V" ; firmwave version for title bar.
|
versionInfo = "V" ; firmwave version for title bar.
|
||||||
signature = "rusEFI 2021.01.06.prometheus_469.2921524867" ; signature is expected to be 7 or more characters.
|
signature = "rusEFI 2021.01.07.prometheus_469.1171578207" ; signature is expected to be 7 or more characters.
|
||||||
|
|
||||||
[Constants]
|
[Constants]
|
||||||
; new packet serial format with CRC
|
; new packet serial format with CRC
|
||||||
|
@ -77,7 +77,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; CONFIG_DEFINITION_START
|
||||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Jan 06 19:42:24 UTC 2021
|
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jan 07 13:24:58 UTC 2021
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -1087,9 +1087,9 @@ page = 1
|
||||||
idleTimingPid_periodMs = scalar, S16, 3982, "ms", 1.0, 0, 0, 3000, 0
|
idleTimingPid_periodMs = scalar, S16, 3982, "ms", 1.0, 0, 0, 3000, 0
|
||||||
idleTimingPid_minValue = scalar, S16, 3984, "", 1.0, 0, -30000, 30000.0, 0
|
idleTimingPid_minValue = scalar, S16, 3984, "", 1.0, 0, -30000, 30000.0, 0
|
||||||
idleTimingPid_maxValue = scalar, S16, 3986, "", 1.0, 0, -30000, 30000.0, 0
|
idleTimingPid_maxValue = scalar, S16, 3986, "", 1.0, 0, -30000, 30000.0, 0
|
||||||
idleTimingPidWorkZone = scalar, S16, 3988, "RPM", 1.0, 0, 0, 1000, 0
|
unused3988 = array, U08, 3988, [2], "units", 1.0, 0, -20, 100, 0
|
||||||
idleTimingPidDeadZone = scalar, S16, 3990, "RPM", 1.0, 0, 0, 1000, 0
|
idleTimingPidDeadZone = scalar, S16, 3990, "RPM", 1.0, 0, 0, 1000, 0
|
||||||
idlePidFalloffDeltaRpm = scalar, S16, 3992, "RPM", 1.0, 0, 0, 1000, 0
|
unused3942 = array, U08, 3992, [2], "units", 1.0, 0, -20, 100, 0
|
||||||
tpsAccelFractionPeriod = scalar, S16, 3994, "cycles", 1.0, 0, 0, 500, 0
|
tpsAccelFractionPeriod = scalar, S16, 3994, "cycles", 1.0, 0, 0, 500, 0
|
||||||
tpsAccelFractionDivisor = scalar, F32, 3996, "coef", 1.0, 0, 0, 100, 2
|
tpsAccelFractionDivisor = scalar, F32, 3996, "coef", 1.0, 0, 0, 100, 2
|
||||||
tle8888spiDevice = bits,U32, 4000, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "INVALID", "INVALID", "INVALID"
|
tle8888spiDevice = bits,U32, 4000, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "INVALID", "INVALID", "INVALID"
|
||||||
|
@ -1441,9 +1441,7 @@ page = 1
|
||||||
coastingFuelCutClt = "Fuel cutoff is deactivated below this coolant threshold."
|
coastingFuelCutClt = "Fuel cutoff is deactivated below this coolant threshold."
|
||||||
pidExtraForLowRpm = "Increases PID reaction for RPM<target by adding extra percent to PID-error"
|
pidExtraForLowRpm = "Increases PID reaction for RPM<target by adding extra percent to PID-error"
|
||||||
coastingFuelCutMap = "MAP value above which fuel injection is re-enabled."
|
coastingFuelCutMap = "MAP value above which fuel injection is re-enabled."
|
||||||
idleTimingPidWorkZone = "When the current RPM is closer than this value to the target, closed-loop idle timing control is enabled."
|
|
||||||
idleTimingPidDeadZone = "If the RPM closer to target than this value, disable timing correction to prevent oscillation"
|
idleTimingPidDeadZone = "If the RPM closer to target than this value, disable timing correction to prevent oscillation"
|
||||||
idlePidFalloffDeltaRpm = "Taper out idle timing control over this range as the engine leaves idle conditions"
|
|
||||||
tpsAccelFractionPeriod = "A delay in cycles between fuel-enrich. portions"
|
tpsAccelFractionPeriod = "A delay in cycles between fuel-enrich. portions"
|
||||||
tpsAccelFractionDivisor = "A fraction divisor: 1 or less = entire portion at once, or split into diminishing fractions"
|
tpsAccelFractionDivisor = "A fraction divisor: 1 or less = entire portion at once, or split into diminishing fractions"
|
||||||
stoichRatioPrimary = "Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0."
|
stoichRatioPrimary = "Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0."
|
||||||
|
@ -3983,6 +3981,7 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
|
||||||
dialog = idleTimingPidCorrDialog, "", yAxis
|
dialog = idleTimingPidCorrDialog, "", yAxis
|
||||||
field = ""
|
field = ""
|
||||||
field = "Enable closed loop idle ignition timing", useIdleTimingPidControl
|
field = "Enable closed loop idle ignition timing", useIdleTimingPidControl
|
||||||
|
field = "RPM deadzone", idleTimingPidDeadZone
|
||||||
field = ""
|
field = ""
|
||||||
field = "#Gain is in degrees advance per rpm away from target"
|
field = "#Gain is in degrees advance per rpm away from target"
|
||||||
field = "#A good starting point is 0.1 = 10 deg per 100 rpm"
|
field = "#A good starting point is 0.1 = 10 deg per 100 rpm"
|
||||||
|
|
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
[MegaTune]
|
[MegaTune]
|
||||||
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
||||||
signature = "rusEFI 2021.01.06.proteus_f4.626041356"
|
signature = "rusEFI 2021.01.07.proteus_f4.3467022800"
|
||||||
|
|
||||||
[TunerStudio]
|
[TunerStudio]
|
||||||
queryCommand = "S"
|
queryCommand = "S"
|
||||||
versionInfo = "V" ; firmwave version for title bar.
|
versionInfo = "V" ; firmwave version for title bar.
|
||||||
signature = "rusEFI 2021.01.06.proteus_f4.626041356" ; signature is expected to be 7 or more characters.
|
signature = "rusEFI 2021.01.07.proteus_f4.3467022800" ; signature is expected to be 7 or more characters.
|
||||||
|
|
||||||
[Constants]
|
[Constants]
|
||||||
; new packet serial format with CRC
|
; new packet serial format with CRC
|
||||||
|
@ -77,7 +77,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; CONFIG_DEFINITION_START
|
||||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Jan 06 19:42:29 UTC 2021
|
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jan 07 13:25:04 UTC 2021
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -1087,9 +1087,9 @@ page = 1
|
||||||
idleTimingPid_periodMs = scalar, S16, 3982, "ms", 1.0, 0, 0, 3000, 0
|
idleTimingPid_periodMs = scalar, S16, 3982, "ms", 1.0, 0, 0, 3000, 0
|
||||||
idleTimingPid_minValue = scalar, S16, 3984, "", 1.0, 0, -30000, 30000.0, 0
|
idleTimingPid_minValue = scalar, S16, 3984, "", 1.0, 0, -30000, 30000.0, 0
|
||||||
idleTimingPid_maxValue = scalar, S16, 3986, "", 1.0, 0, -30000, 30000.0, 0
|
idleTimingPid_maxValue = scalar, S16, 3986, "", 1.0, 0, -30000, 30000.0, 0
|
||||||
idleTimingPidWorkZone = scalar, S16, 3988, "RPM", 1.0, 0, 0, 1000, 0
|
unused3988 = array, U08, 3988, [2], "units", 1.0, 0, -20, 100, 0
|
||||||
idleTimingPidDeadZone = scalar, S16, 3990, "RPM", 1.0, 0, 0, 1000, 0
|
idleTimingPidDeadZone = scalar, S16, 3990, "RPM", 1.0, 0, 0, 1000, 0
|
||||||
idlePidFalloffDeltaRpm = scalar, S16, 3992, "RPM", 1.0, 0, 0, 1000, 0
|
unused3942 = array, U08, 3992, [2], "units", 1.0, 0, -20, 100, 0
|
||||||
tpsAccelFractionPeriod = scalar, S16, 3994, "cycles", 1.0, 0, 0, 500, 0
|
tpsAccelFractionPeriod = scalar, S16, 3994, "cycles", 1.0, 0, 0, 500, 0
|
||||||
tpsAccelFractionDivisor = scalar, F32, 3996, "coef", 1.0, 0, 0, 100, 2
|
tpsAccelFractionDivisor = scalar, F32, 3996, "coef", 1.0, 0, 0, 100, 2
|
||||||
tle8888spiDevice = bits,U32, 4000, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "INVALID", "INVALID", "INVALID"
|
tle8888spiDevice = bits,U32, 4000, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "INVALID", "INVALID", "INVALID"
|
||||||
|
@ -1441,9 +1441,7 @@ page = 1
|
||||||
coastingFuelCutClt = "Fuel cutoff is deactivated below this coolant threshold."
|
coastingFuelCutClt = "Fuel cutoff is deactivated below this coolant threshold."
|
||||||
pidExtraForLowRpm = "Increases PID reaction for RPM<target by adding extra percent to PID-error"
|
pidExtraForLowRpm = "Increases PID reaction for RPM<target by adding extra percent to PID-error"
|
||||||
coastingFuelCutMap = "MAP value above which fuel injection is re-enabled."
|
coastingFuelCutMap = "MAP value above which fuel injection is re-enabled."
|
||||||
idleTimingPidWorkZone = "When the current RPM is closer than this value to the target, closed-loop idle timing control is enabled."
|
|
||||||
idleTimingPidDeadZone = "If the RPM closer to target than this value, disable timing correction to prevent oscillation"
|
idleTimingPidDeadZone = "If the RPM closer to target than this value, disable timing correction to prevent oscillation"
|
||||||
idlePidFalloffDeltaRpm = "Taper out idle timing control over this range as the engine leaves idle conditions"
|
|
||||||
tpsAccelFractionPeriod = "A delay in cycles between fuel-enrich. portions"
|
tpsAccelFractionPeriod = "A delay in cycles between fuel-enrich. portions"
|
||||||
tpsAccelFractionDivisor = "A fraction divisor: 1 or less = entire portion at once, or split into diminishing fractions"
|
tpsAccelFractionDivisor = "A fraction divisor: 1 or less = entire portion at once, or split into diminishing fractions"
|
||||||
stoichRatioPrimary = "Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0."
|
stoichRatioPrimary = "Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0."
|
||||||
|
@ -3964,6 +3962,7 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
|
||||||
dialog = idleTimingPidCorrDialog, "", yAxis
|
dialog = idleTimingPidCorrDialog, "", yAxis
|
||||||
field = ""
|
field = ""
|
||||||
field = "Enable closed loop idle ignition timing", useIdleTimingPidControl
|
field = "Enable closed loop idle ignition timing", useIdleTimingPidControl
|
||||||
|
field = "RPM deadzone", idleTimingPidDeadZone
|
||||||
field = ""
|
field = ""
|
||||||
field = "#Gain is in degrees advance per rpm away from target"
|
field = "#Gain is in degrees advance per rpm away from target"
|
||||||
field = "#A good starting point is 0.1 = 10 deg per 100 rpm"
|
field = "#A good starting point is 0.1 = 10 deg per 100 rpm"
|
||||||
|
|
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
[MegaTune]
|
[MegaTune]
|
||||||
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
||||||
signature = "rusEFI 2021.01.06.proteus_f7.626041356"
|
signature = "rusEFI 2021.01.07.proteus_f7.3467022800"
|
||||||
|
|
||||||
[TunerStudio]
|
[TunerStudio]
|
||||||
queryCommand = "S"
|
queryCommand = "S"
|
||||||
versionInfo = "V" ; firmwave version for title bar.
|
versionInfo = "V" ; firmwave version for title bar.
|
||||||
signature = "rusEFI 2021.01.06.proteus_f7.626041356" ; signature is expected to be 7 or more characters.
|
signature = "rusEFI 2021.01.07.proteus_f7.3467022800" ; signature is expected to be 7 or more characters.
|
||||||
|
|
||||||
[Constants]
|
[Constants]
|
||||||
; new packet serial format with CRC
|
; new packet serial format with CRC
|
||||||
|
@ -77,7 +77,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; CONFIG_DEFINITION_START
|
||||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Jan 06 19:42:27 UTC 2021
|
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jan 07 13:25:02 UTC 2021
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -1087,9 +1087,9 @@ page = 1
|
||||||
idleTimingPid_periodMs = scalar, S16, 3982, "ms", 1.0, 0, 0, 3000, 0
|
idleTimingPid_periodMs = scalar, S16, 3982, "ms", 1.0, 0, 0, 3000, 0
|
||||||
idleTimingPid_minValue = scalar, S16, 3984, "", 1.0, 0, -30000, 30000.0, 0
|
idleTimingPid_minValue = scalar, S16, 3984, "", 1.0, 0, -30000, 30000.0, 0
|
||||||
idleTimingPid_maxValue = scalar, S16, 3986, "", 1.0, 0, -30000, 30000.0, 0
|
idleTimingPid_maxValue = scalar, S16, 3986, "", 1.0, 0, -30000, 30000.0, 0
|
||||||
idleTimingPidWorkZone = scalar, S16, 3988, "RPM", 1.0, 0, 0, 1000, 0
|
unused3988 = array, U08, 3988, [2], "units", 1.0, 0, -20, 100, 0
|
||||||
idleTimingPidDeadZone = scalar, S16, 3990, "RPM", 1.0, 0, 0, 1000, 0
|
idleTimingPidDeadZone = scalar, S16, 3990, "RPM", 1.0, 0, 0, 1000, 0
|
||||||
idlePidFalloffDeltaRpm = scalar, S16, 3992, "RPM", 1.0, 0, 0, 1000, 0
|
unused3942 = array, U08, 3992, [2], "units", 1.0, 0, -20, 100, 0
|
||||||
tpsAccelFractionPeriod = scalar, S16, 3994, "cycles", 1.0, 0, 0, 500, 0
|
tpsAccelFractionPeriod = scalar, S16, 3994, "cycles", 1.0, 0, 0, 500, 0
|
||||||
tpsAccelFractionDivisor = scalar, F32, 3996, "coef", 1.0, 0, 0, 100, 2
|
tpsAccelFractionDivisor = scalar, F32, 3996, "coef", 1.0, 0, 0, 100, 2
|
||||||
tle8888spiDevice = bits,U32, 4000, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "INVALID", "INVALID", "INVALID"
|
tle8888spiDevice = bits,U32, 4000, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "INVALID", "INVALID", "INVALID"
|
||||||
|
@ -1441,9 +1441,7 @@ page = 1
|
||||||
coastingFuelCutClt = "Fuel cutoff is deactivated below this coolant threshold."
|
coastingFuelCutClt = "Fuel cutoff is deactivated below this coolant threshold."
|
||||||
pidExtraForLowRpm = "Increases PID reaction for RPM<target by adding extra percent to PID-error"
|
pidExtraForLowRpm = "Increases PID reaction for RPM<target by adding extra percent to PID-error"
|
||||||
coastingFuelCutMap = "MAP value above which fuel injection is re-enabled."
|
coastingFuelCutMap = "MAP value above which fuel injection is re-enabled."
|
||||||
idleTimingPidWorkZone = "When the current RPM is closer than this value to the target, closed-loop idle timing control is enabled."
|
|
||||||
idleTimingPidDeadZone = "If the RPM closer to target than this value, disable timing correction to prevent oscillation"
|
idleTimingPidDeadZone = "If the RPM closer to target than this value, disable timing correction to prevent oscillation"
|
||||||
idlePidFalloffDeltaRpm = "Taper out idle timing control over this range as the engine leaves idle conditions"
|
|
||||||
tpsAccelFractionPeriod = "A delay in cycles between fuel-enrich. portions"
|
tpsAccelFractionPeriod = "A delay in cycles between fuel-enrich. portions"
|
||||||
tpsAccelFractionDivisor = "A fraction divisor: 1 or less = entire portion at once, or split into diminishing fractions"
|
tpsAccelFractionDivisor = "A fraction divisor: 1 or less = entire portion at once, or split into diminishing fractions"
|
||||||
stoichRatioPrimary = "Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0."
|
stoichRatioPrimary = "Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0."
|
||||||
|
@ -3964,6 +3962,7 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
|
||||||
dialog = idleTimingPidCorrDialog, "", yAxis
|
dialog = idleTimingPidCorrDialog, "", yAxis
|
||||||
field = ""
|
field = ""
|
||||||
field = "Enable closed loop idle ignition timing", useIdleTimingPidControl
|
field = "Enable closed loop idle ignition timing", useIdleTimingPidControl
|
||||||
|
field = "RPM deadzone", idleTimingPidDeadZone
|
||||||
field = ""
|
field = ""
|
||||||
field = "#Gain is in degrees advance per rpm away from target"
|
field = "#Gain is in degrees advance per rpm away from target"
|
||||||
field = "#A good starting point is 0.1 = 10 deg per 100 rpm"
|
field = "#A good starting point is 0.1 = 10 deg per 100 rpm"
|
||||||
|
|
|
@ -2567,6 +2567,7 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@\x00\x31\x00\x00"
|
||||||
dialog = idleTimingPidCorrDialog, "", yAxis
|
dialog = idleTimingPidCorrDialog, "", yAxis
|
||||||
field = ""
|
field = ""
|
||||||
field = "Enable closed loop idle ignition timing", useIdleTimingPidControl
|
field = "Enable closed loop idle ignition timing", useIdleTimingPidControl
|
||||||
|
field = "RPM deadzone", idleTimingPidDeadZone
|
||||||
field = ""
|
field = ""
|
||||||
field = "#Gain is in degrees advance per rpm away from target"
|
field = "#Gain is in degrees advance per rpm away from target"
|
||||||
field = "#A good starting point is 0.1 = 10 deg per 100 rpm"
|
field = "#A good starting point is 0.1 = 10 deg per 100 rpm"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package com.rusefi.config.generated;
|
package com.rusefi.config.generated;
|
||||||
|
|
||||||
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Jan 06 18:57:11 UTC 2021
|
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jan 07 13:24:50 UTC 2021
|
||||||
|
|
||||||
// by class com.rusefi.output.FileJavaFieldsConsumer
|
// by class com.rusefi.output.FileJavaFieldsConsumer
|
||||||
import com.rusefi.config.*;
|
import com.rusefi.config.*;
|
||||||
|
@ -282,7 +282,6 @@ public class Fields {
|
||||||
public static final int CMD_TS_INJECTOR_CATEGORY = 19;
|
public static final int CMD_TS_INJECTOR_CATEGORY = 19;
|
||||||
public static final int CMD_TS_SOLENOID_CATEGORY = 41;
|
public static final int CMD_TS_SOLENOID_CATEGORY = 41;
|
||||||
public static final int CMD_TS_X14 = 20;
|
public static final int CMD_TS_X14 = 20;
|
||||||
public static final int CMD_TS_X15 = 21;
|
|
||||||
public static final int CMD_TS_X17 = 23;
|
public static final int CMD_TS_X17 = 23;
|
||||||
public static final int CMD_TS_X18 = 24;
|
public static final int CMD_TS_X18 = 24;
|
||||||
public static final int CMD_TS_X31 = 49;
|
public static final int CMD_TS_X31 = 49;
|
||||||
|
@ -833,7 +832,6 @@ public class Fields {
|
||||||
public static final int idleMode_offset = 1472;
|
public static final int idleMode_offset = 1472;
|
||||||
public static final int idlePidActivationTime_offset = 2588;
|
public static final int idlePidActivationTime_offset = 2588;
|
||||||
public static final int idlePidDeactivationTpsThreshold_offset = 816;
|
public static final int idlePidDeactivationTpsThreshold_offset = 816;
|
||||||
public static final int idlePidFalloffDeltaRpm_offset = 3992;
|
|
||||||
public static final int idlePidRpmDeadZone_offset = 1894;
|
public static final int idlePidRpmDeadZone_offset = 1894;
|
||||||
public static final int idlePidRpmUpperLimit_offset = 1484;
|
public static final int idlePidRpmUpperLimit_offset = 1484;
|
||||||
public static final int idlePositionMax_offset = 722;
|
public static final int idlePositionMax_offset = 722;
|
||||||
|
@ -868,7 +866,6 @@ public class Fields {
|
||||||
public static final int idleTimingPid_periodMs_offset = 3982;
|
public static final int idleTimingPid_periodMs_offset = 3982;
|
||||||
public static final int idleTimingPid_pFactor_offset = 3968;
|
public static final int idleTimingPid_pFactor_offset = 3968;
|
||||||
public static final int idleTimingPidDeadZone_offset = 3990;
|
public static final int idleTimingPidDeadZone_offset = 3990;
|
||||||
public static final int idleTimingPidWorkZone_offset = 3988;
|
|
||||||
public static final int idleVe_offset = 6640;
|
public static final int idleVe_offset = 6640;
|
||||||
public static final int idleVeBins_offset = 6608;
|
public static final int idleVeBins_offset = 6608;
|
||||||
public static final int IGN_LOAD_COUNT = 16;
|
public static final int IGN_LOAD_COUNT = 16;
|
||||||
|
@ -1203,6 +1200,7 @@ public class Fields {
|
||||||
public static final int servoOutputPins8_offset = 3147;
|
public static final int servoOutputPins8_offset = 3147;
|
||||||
public static final int showHumanReadableWarning_offset = 976;
|
public static final int showHumanReadableWarning_offset = 976;
|
||||||
public static final int showSdCardWarning_offset = 76;
|
public static final int showSdCardWarning_offset = 76;
|
||||||
|
public static final int SIGNATURE_HASH = 118283022;
|
||||||
public static final int silentTriggerError_offset = 1464;
|
public static final int silentTriggerError_offset = 1464;
|
||||||
public static final int slowAdcAlpha_offset = 2088;
|
public static final int slowAdcAlpha_offset = 2088;
|
||||||
public static final int sparkDwellRpmBins_offset = 332;
|
public static final int sparkDwellRpmBins_offset = 332;
|
||||||
|
@ -1484,7 +1482,7 @@ public class Fields {
|
||||||
public static final char TS_SD_R_COMMAND = 'r';
|
public static final char TS_SD_R_COMMAND = 'r';
|
||||||
public static final char TS_SD_W_COMMAND = 'w';
|
public static final char TS_SD_W_COMMAND = 'w';
|
||||||
public static final char TS_SET_LOGGER_SWITCH = 'l';
|
public static final char TS_SET_LOGGER_SWITCH = 'l';
|
||||||
public static final String TS_SIGNATURE = "rusEFI 2021.01.06.all.3300003329";
|
public static final String TS_SIGNATURE = "rusEFI 2021.01.07.all.118283022";
|
||||||
public static final char TS_SINGLE_WRITE_COMMAND = 'W';
|
public static final char TS_SINGLE_WRITE_COMMAND = 'W';
|
||||||
public static final int TT_TT_1_16 = 50;
|
public static final int TT_TT_1_16 = 50;
|
||||||
public static final int TT_TT_2JZ_1_12 = 29;
|
public static final int TT_TT_2JZ_1_12 = 29;
|
||||||
|
@ -1549,6 +1547,8 @@ public class Fields {
|
||||||
public static final int unused2508_offset = 2508;
|
public static final int unused2508_offset = 2508;
|
||||||
public static final int unused2536_offset = 2536;
|
public static final int unused2536_offset = 2536;
|
||||||
public static final int unused3328_offset = 3328;
|
public static final int unused3328_offset = 3328;
|
||||||
|
public static final int unused3942_offset = 3992;
|
||||||
|
public static final int unused3988_offset = 3988;
|
||||||
public static final int unused4028_offset = 4028;
|
public static final int unused4028_offset = 4028;
|
||||||
public static final int unused541_offset = 541;
|
public static final int unused541_offset = 541;
|
||||||
public static final int unused542_offset = 542;
|
public static final int unused542_offset = 542;
|
||||||
|
@ -2641,9 +2641,7 @@ public class Fields {
|
||||||
public static final Field IDLETIMINGPID_PERIODMS = Field.create("IDLETIMINGPID_PERIODMS", 3982, FieldType.INT16);
|
public static final Field IDLETIMINGPID_PERIODMS = Field.create("IDLETIMINGPID_PERIODMS", 3982, FieldType.INT16);
|
||||||
public static final Field IDLETIMINGPID_MINVALUE = Field.create("IDLETIMINGPID_MINVALUE", 3984, FieldType.INT16);
|
public static final Field IDLETIMINGPID_MINVALUE = Field.create("IDLETIMINGPID_MINVALUE", 3984, FieldType.INT16);
|
||||||
public static final Field IDLETIMINGPID_MAXVALUE = Field.create("IDLETIMINGPID_MAXVALUE", 3986, FieldType.INT16);
|
public static final Field IDLETIMINGPID_MAXVALUE = Field.create("IDLETIMINGPID_MAXVALUE", 3986, FieldType.INT16);
|
||||||
public static final Field IDLETIMINGPIDWORKZONE = Field.create("IDLETIMINGPIDWORKZONE", 3988, FieldType.INT16);
|
|
||||||
public static final Field IDLETIMINGPIDDEADZONE = Field.create("IDLETIMINGPIDDEADZONE", 3990, FieldType.INT16);
|
public static final Field IDLETIMINGPIDDEADZONE = Field.create("IDLETIMINGPIDDEADZONE", 3990, FieldType.INT16);
|
||||||
public static final Field IDLEPIDFALLOFFDELTARPM = Field.create("IDLEPIDFALLOFFDELTARPM", 3992, FieldType.INT16);
|
|
||||||
public static final Field TPSACCELFRACTIONPERIOD = Field.create("TPSACCELFRACTIONPERIOD", 3994, FieldType.INT16);
|
public static final Field TPSACCELFRACTIONPERIOD = Field.create("TPSACCELFRACTIONPERIOD", 3994, FieldType.INT16);
|
||||||
public static final Field TPSACCELFRACTIONDIVISOR = Field.create("TPSACCELFRACTIONDIVISOR", 3996, FieldType.FLOAT);
|
public static final Field TPSACCELFRACTIONDIVISOR = Field.create("TPSACCELFRACTIONDIVISOR", 3996, FieldType.FLOAT);
|
||||||
public static final Field TLE8888SPIDEVICE = Field.create("TLE8888SPIDEVICE", 4000, FieldType.INT8);
|
public static final Field TLE8888SPIDEVICE = Field.create("TLE8888SPIDEVICE", 4000, FieldType.INT8);
|
||||||
|
@ -3718,9 +3716,7 @@ public class Fields {
|
||||||
IDLETIMINGPID_PERIODMS,
|
IDLETIMINGPID_PERIODMS,
|
||||||
IDLETIMINGPID_MINVALUE,
|
IDLETIMINGPID_MINVALUE,
|
||||||
IDLETIMINGPID_MAXVALUE,
|
IDLETIMINGPID_MAXVALUE,
|
||||||
IDLETIMINGPIDWORKZONE,
|
|
||||||
IDLETIMINGPIDDEADZONE,
|
IDLETIMINGPIDDEADZONE,
|
||||||
IDLEPIDFALLOFFDELTARPM,
|
|
||||||
TPSACCELFRACTIONPERIOD,
|
TPSACCELFRACTIONPERIOD,
|
||||||
TPSACCELFRACTIONDIVISOR,
|
TPSACCELFRACTIONDIVISOR,
|
||||||
TLE8888SPIDEVICE,
|
TLE8888SPIDEVICE,
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<roms>
|
<roms>
|
||||||
|
|
||||||
<!-- was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh Wed Jan 06 18:57:12 UTC 2021 -->
|
<!-- was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh Thu Jan 07 13:24:51 UTC 2021 -->
|
||||||
|
|
||||||
<rom>
|
<rom>
|
||||||
<romid>
|
<romid>
|
||||||
|
|
|
@ -62,76 +62,42 @@ TEST(idle, fsioPidParameters) {
|
||||||
// ASSERT_EQ(1, engine->acSwitchState);
|
// ASSERT_EQ(1, engine->acSwitchState);
|
||||||
}
|
}
|
||||||
|
|
||||||
// see also util.pid test
|
using ICP = IIdleController::Phase;
|
||||||
TEST(idle, timingPid) {
|
|
||||||
|
TEST(idle_v2, timingPid) {
|
||||||
WITH_ENGINE_TEST_HELPER(TEST_ENGINE);
|
WITH_ENGINE_TEST_HELPER(TEST_ENGINE);
|
||||||
|
IdleController dut;
|
||||||
|
INJECT_ENGINE_REFERENCE(&dut);
|
||||||
|
|
||||||
// set PID settings
|
|
||||||
pid_s pidS;
|
|
||||||
pidS.pFactor = 0.1;
|
|
||||||
pidS.iFactor = 0;
|
|
||||||
pidS.dFactor = 0;
|
|
||||||
pidS.offset = 0;
|
|
||||||
pidS.minValue = -20;
|
|
||||||
pidS.maxValue = +20;
|
|
||||||
pidS.periodMs = 1;
|
|
||||||
|
|
||||||
// setup TimingPid settings
|
|
||||||
engineConfiguration->idleTimingPidDeadZone = 10;
|
|
||||||
engineConfiguration->idleTimingPidWorkZone = 100;
|
|
||||||
engineConfiguration->idlePidFalloffDeltaRpm = 30;
|
|
||||||
|
|
||||||
// setup target rpm curve
|
|
||||||
const int idleRpmTarget = 700;
|
|
||||||
setArrayValues<float>(engineConfiguration->cltIdleRpm, idleRpmTarget);
|
|
||||||
|
|
||||||
// setup other settings
|
|
||||||
engineConfiguration->idleTimingPid = pidS;
|
|
||||||
eth.engine.fsioState.fsioTimingAdjustment = 0;
|
|
||||||
eth.engine.fsioState.fsioIdleTargetRPMAdjustment = 0;
|
|
||||||
eth.engine.engineState.cltTimingCorrection = 0;
|
|
||||||
|
|
||||||
// configure TPS
|
|
||||||
engineConfiguration->idlePidDeactivationTpsThreshold = 10;
|
|
||||||
Sensor::setMockValue(SensorType::Tps1, 0);
|
|
||||||
|
|
||||||
// all corrections disabled, should be 0
|
|
||||||
engineConfiguration->useIdleTimingPidControl = false;
|
|
||||||
angle_t corr = getAdvanceCorrections(idleRpmTarget PASS_ENGINE_PARAMETER_SUFFIX);
|
|
||||||
ASSERT_EQ(0, corr) << "getAdvanceCorrections#1";
|
|
||||||
|
|
||||||
// basic IDLE PID correction test
|
|
||||||
engineConfiguration->useIdleTimingPidControl = true;
|
engineConfiguration->useIdleTimingPidControl = true;
|
||||||
int baseTestRpm = idleRpmTarget + engineConfiguration->idleTimingPidWorkZone;
|
|
||||||
corr = getAdvanceCorrections(baseTestRpm PASS_ENGINE_PARAMETER_SUFFIX);
|
|
||||||
// (delta_rpm=-100) * (p-factor=0.1) = -10 degrees
|
|
||||||
ASSERT_EQ(-10, corr) << "getAdvanceCorrections#2";
|
|
||||||
|
|
||||||
// check if rpm is too close to the target
|
pid_s pidCfg{};
|
||||||
corr = getAdvanceCorrections((idleRpmTarget + engineConfiguration->idleTimingPidDeadZone) PASS_ENGINE_PARAMETER_SUFFIX);
|
pidCfg.pFactor = 0.1;
|
||||||
ASSERT_EQ(0, corr) << "getAdvanceCorrections#3";
|
pidCfg.minValue = -10;
|
||||||
|
pidCfg.maxValue = 10;
|
||||||
|
dut.init(&pidCfg);
|
||||||
|
|
||||||
// check if rpm is too high (just outside the workzone and even falloff) so we disable the PID correction
|
// Check that out of idle mode it doesn't do anything
|
||||||
int tooHighRpm = idleRpmTarget + engineConfiguration->idleTimingPidWorkZone + engineConfiguration->idlePidFalloffDeltaRpm;
|
EXPECT_EQ(0, dut.getIdleTimingAdjustment(1050, 1000, ICP::Cranking));
|
||||||
corr = getAdvanceCorrections(tooHighRpm PASS_ENGINE_PARAMETER_SUFFIX);
|
EXPECT_EQ(0, dut.getIdleTimingAdjustment(1050, 1000, ICP::Coasting));
|
||||||
ASSERT_EQ(0, corr) << "getAdvanceCorrections#4";
|
EXPECT_EQ(0, dut.getIdleTimingAdjustment(1050, 1000, ICP::Running));
|
||||||
|
|
||||||
// check if rpm is within the falloff zone
|
// Check that it works in idle mode
|
||||||
int falloffRpm = idleRpmTarget + engineConfiguration->idleTimingPidWorkZone + (engineConfiguration->idlePidFalloffDeltaRpm / 2);
|
EXPECT_FLOAT_EQ(-5, dut.getIdleTimingAdjustment(1050, 1000, ICP::Idling));
|
||||||
corr = getAdvanceCorrections(falloffRpm PASS_ENGINE_PARAMETER_SUFFIX);
|
|
||||||
// -(100+30/2) * 0.1 / 2 = -5.75
|
|
||||||
ASSERT_FLOAT_EQ(-5.75f, corr) << "getAdvanceCorrections#5";
|
|
||||||
|
|
||||||
// check if PID correction is disabled in running mode (tps > threshold):
|
// ...but not when disabled
|
||||||
Sensor::setMockValue(SensorType::Tps1, engineConfiguration->idlePidDeactivationTpsThreshold + 1);
|
engineConfiguration->useIdleTimingPidControl = false;
|
||||||
corr = getAdvanceCorrections(idleRpmTarget PASS_ENGINE_PARAMETER_SUFFIX);
|
EXPECT_EQ(0, dut.getIdleTimingAdjustment(1050, 1000, ICP::Idling));
|
||||||
ASSERT_EQ(0, corr) << "getAdvanceCorrections#6";
|
|
||||||
|
|
||||||
// check if PID correction is interpolated for transient idle-running TPS positions
|
engineConfiguration->useIdleTimingPidControl = true;
|
||||||
Sensor::setMockValue(SensorType::Tps1, engineConfiguration->idlePidDeactivationTpsThreshold / 2);
|
|
||||||
corr = getAdvanceCorrections(baseTestRpm PASS_ENGINE_PARAMETER_SUFFIX);
|
|
||||||
ASSERT_FLOAT_EQ(-5.0f, corr) << "getAdvanceCorrections#7";
|
|
||||||
|
|
||||||
|
// Now check that the deadzone works
|
||||||
|
engineConfiguration->idleTimingPidDeadZone = 50;
|
||||||
|
EXPECT_FLOAT_EQ(5.1, dut.getIdleTimingAdjustment(949, 1000, ICP::Idling));
|
||||||
|
EXPECT_EQ(0, dut.getIdleTimingAdjustment(951, 1000, ICP::Idling));
|
||||||
|
EXPECT_EQ(0, dut.getIdleTimingAdjustment(1000, 1000, ICP::Idling));
|
||||||
|
EXPECT_EQ(0, dut.getIdleTimingAdjustment(1049, 1000, ICP::Idling));
|
||||||
|
EXPECT_FLOAT_EQ(-5.1, dut.getIdleTimingAdjustment(1051, 1000, ICP::Idling));
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(idle_v2, testTargetRpm) {
|
TEST(idle_v2, testTargetRpm) {
|
||||||
|
@ -148,8 +114,6 @@ TEST(idle_v2, testTargetRpm) {
|
||||||
EXPECT_FLOAT_EQ(500, dut.getTargetRpm(50));
|
EXPECT_FLOAT_EQ(500, dut.getTargetRpm(50));
|
||||||
}
|
}
|
||||||
|
|
||||||
using ICP = IIdleController::Phase;
|
|
||||||
|
|
||||||
TEST(idle_v2, testDeterminePhase) {
|
TEST(idle_v2, testDeterminePhase) {
|
||||||
WITH_ENGINE_TEST_HELPER(TEST_ENGINE);
|
WITH_ENGINE_TEST_HELPER(TEST_ENGINE);
|
||||||
IdleController dut;
|
IdleController dut;
|
||||||
|
|
Loading…
Reference in New Issue