From 0c578dde4aeefa4b1c8e7649e763fe5f384f2b19 Mon Sep 17 00:00:00 2001 From: GitHub build-firmware Action Date: Sun, 28 Nov 2021 19:46:47 +0000 Subject: [PATCH] Auto-generated configs and docs --- .../controllers/generated/signature_all.h | 4 +- .../controllers/generated/signature_atlas.h | 4 +- .../generated/signature_f429-discovery.h | 4 +- .../generated/signature_frankenso_na6.h | 4 +- .../generated/signature_hellen-nb1.h | 4 +- .../generated/signature_hellen121nissan.h | 4 +- .../generated/signature_hellen121vag.h | 4 +- .../generated/signature_hellen128.h | 4 +- .../generated/signature_hellen154hyundai.h | 4 +- .../generated/signature_hellen72.h | 4 +- .../generated/signature_hellen88bmw.h | 4 +- .../generated/signature_hellenNA6.h | 4 +- .../generated/signature_hellen_cypress.h | 4 +- .../controllers/generated/signature_kin.h | 4 +- .../controllers/generated/signature_mre_f4.h | 4 +- .../controllers/generated/signature_mre_f7.h | 4 +- .../generated/signature_prometheus_405.h | 4 +- .../generated/signature_prometheus_469.h | 4 +- .../generated/signature_proteus_f4.h | 4 +- .../generated/signature_proteus_f7.h | 4 +- .../generated/signature_subaru_eg33_f7.h | 4 +- firmware/tunerstudio/generated/cache.zip | Bin 2114797 -> 2115028 bytes firmware/tunerstudio/generated/rusefi.ini | 37 +++++++++--------- .../tunerstudio/generated/rusefi_atlas.ini | 37 +++++++++--------- .../generated/rusefi_f429-discovery.ini | 37 +++++++++--------- .../generated/rusefi_frankenso_na6.ini | 37 +++++++++--------- .../generated/rusefi_hellen-nb1.ini | 37 +++++++++--------- .../generated/rusefi_hellen121nissan.ini | 37 +++++++++--------- .../generated/rusefi_hellen121vag.ini | 37 +++++++++--------- .../generated/rusefi_hellen128mercedes.ini | 37 +++++++++--------- .../generated/rusefi_hellen154hyundai.ini | 37 +++++++++--------- .../tunerstudio/generated/rusefi_hellen72.ini | 37 +++++++++--------- .../generated/rusefi_hellen88bmw.ini | 37 +++++++++--------- .../generated/rusefi_hellenNA6.ini | 37 +++++++++--------- .../generated/rusefi_hellen_cypress.ini | 37 +++++++++--------- .../tunerstudio/generated/rusefi_kinetis.ini | 37 +++++++++--------- .../tunerstudio/generated/rusefi_mre_f4.ini | 37 +++++++++--------- .../tunerstudio/generated/rusefi_mre_f7.ini | 37 +++++++++--------- .../generated/rusefi_prometheus_405.ini | 37 +++++++++--------- .../generated/rusefi_prometheus_469.ini | 37 +++++++++--------- .../generated/rusefi_proteus_f4.ini | 37 +++++++++--------- .../generated/rusefi_proteus_f7.ini | 37 +++++++++--------- .../generated/rusefi_subaru_eg33_f7.ini | 37 +++++++++--------- 43 files changed, 420 insertions(+), 441 deletions(-) diff --git a/firmware/controllers/generated/signature_all.h b/firmware/controllers/generated/signature_all.h index bbbcb13038..d45b6baaf4 100644 --- a/firmware/controllers/generated/signature_all.h +++ b/firmware/controllers/generated/signature_all.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 1754082072 -#define TS_SIGNATURE "rusEFI 2021.11.28.all.1754082072" +#define SIGNATURE_HASH 3321587688 +#define TS_SIGNATURE "rusEFI 2021.11.28.all.3321587688" diff --git a/firmware/controllers/generated/signature_atlas.h b/firmware/controllers/generated/signature_atlas.h index a3d897334b..eb604c47e2 100644 --- a/firmware/controllers/generated/signature_atlas.h +++ b/firmware/controllers/generated/signature_atlas.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 1950867007 -#define TS_SIGNATURE "rusEFI 2021.11.28.atlas.1950867007" +#define SIGNATURE_HASH 3643904719 +#define TS_SIGNATURE "rusEFI 2021.11.28.atlas.3643904719" diff --git a/firmware/controllers/generated/signature_f429-discovery.h b/firmware/controllers/generated/signature_f429-discovery.h index abc264bce1..74446576c7 100644 --- a/firmware/controllers/generated/signature_f429-discovery.h +++ b/firmware/controllers/generated/signature_f429-discovery.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 1754082072 -#define TS_SIGNATURE "rusEFI 2021.11.28.f429-discovery.1754082072" +#define SIGNATURE_HASH 3321587688 +#define TS_SIGNATURE "rusEFI 2021.11.28.f429-discovery.3321587688" diff --git a/firmware/controllers/generated/signature_frankenso_na6.h b/firmware/controllers/generated/signature_frankenso_na6.h index 64d4579dc3..34dcba8167 100644 --- a/firmware/controllers/generated/signature_frankenso_na6.h +++ b/firmware/controllers/generated/signature_frankenso_na6.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 314539761 -#define TS_SIGNATURE "rusEFI 2021.11.28.frankenso_na6.314539761" +#define SIGNATURE_HASH 3217633793 +#define TS_SIGNATURE "rusEFI 2021.11.28.frankenso_na6.3217633793" diff --git a/firmware/controllers/generated/signature_hellen-nb1.h b/firmware/controllers/generated/signature_hellen-nb1.h index 45a598bf5b..ac27031050 100644 --- a/firmware/controllers/generated/signature_hellen-nb1.h +++ b/firmware/controllers/generated/signature_hellen-nb1.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 3445562257 -#define TS_SIGNATURE "rusEFI 2021.11.28.hellen-nb1.3445562257" +#define SIGNATURE_HASH 1613322081 +#define TS_SIGNATURE "rusEFI 2021.11.28.hellen-nb1.1613322081" diff --git a/firmware/controllers/generated/signature_hellen121nissan.h b/firmware/controllers/generated/signature_hellen121nissan.h index 638031a2fb..c394f98a7e 100644 --- a/firmware/controllers/generated/signature_hellen121nissan.h +++ b/firmware/controllers/generated/signature_hellen121nissan.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 3540601273 -#define TS_SIGNATURE "rusEFI 2021.11.28.hellen121nissan.3540601273" +#define SIGNATURE_HASH 2122253641 +#define TS_SIGNATURE "rusEFI 2021.11.28.hellen121nissan.2122253641" diff --git a/firmware/controllers/generated/signature_hellen121vag.h b/firmware/controllers/generated/signature_hellen121vag.h index 14d86321db..cf0a6e3c8d 100644 --- a/firmware/controllers/generated/signature_hellen121vag.h +++ b/firmware/controllers/generated/signature_hellen121vag.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 925765394 -#define TS_SIGNATURE "rusEFI 2021.11.28.hellen121vag.925765394" +#define SIGNATURE_HASH 2589475810 +#define TS_SIGNATURE "rusEFI 2021.11.28.hellen121vag.2589475810" diff --git a/firmware/controllers/generated/signature_hellen128.h b/firmware/controllers/generated/signature_hellen128.h index 5bfc945cc6..e1eff22104 100644 --- a/firmware/controllers/generated/signature_hellen128.h +++ b/firmware/controllers/generated/signature_hellen128.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 4065018047 -#define TS_SIGNATURE "rusEFI 2021.11.28.hellen128.4065018047" +#define SIGNATURE_HASH 1597836367 +#define TS_SIGNATURE "rusEFI 2021.11.28.hellen128.1597836367" diff --git a/firmware/controllers/generated/signature_hellen154hyundai.h b/firmware/controllers/generated/signature_hellen154hyundai.h index 22902e4a85..74a334f64a 100644 --- a/firmware/controllers/generated/signature_hellen154hyundai.h +++ b/firmware/controllers/generated/signature_hellen154hyundai.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 1247357374 -#define TS_SIGNATURE "rusEFI 2021.11.28.hellen154hyundai.1247357374" +#define SIGNATURE_HASH 3878643022 +#define TS_SIGNATURE "rusEFI 2021.11.28.hellen154hyundai.3878643022" diff --git a/firmware/controllers/generated/signature_hellen72.h b/firmware/controllers/generated/signature_hellen72.h index 62484d5d78..ff097901d1 100644 --- a/firmware/controllers/generated/signature_hellen72.h +++ b/firmware/controllers/generated/signature_hellen72.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 2620435624 -#define TS_SIGNATURE "rusEFI 2021.11.28.hellen72.2620435624" +#define SIGNATURE_HASH 826728536 +#define TS_SIGNATURE "rusEFI 2021.11.28.hellen72.826728536" diff --git a/firmware/controllers/generated/signature_hellen88bmw.h b/firmware/controllers/generated/signature_hellen88bmw.h index 15d62e83cf..d7fd153f9c 100644 --- a/firmware/controllers/generated/signature_hellen88bmw.h +++ b/firmware/controllers/generated/signature_hellen88bmw.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 3377314375 -#define TS_SIGNATURE "rusEFI 2021.11.28.hellen88bmw.3377314375" +#define SIGNATURE_HASH 1681651383 +#define TS_SIGNATURE "rusEFI 2021.11.28.hellen88bmw.1681651383" diff --git a/firmware/controllers/generated/signature_hellenNA6.h b/firmware/controllers/generated/signature_hellenNA6.h index c0d794f1d5..759db96079 100644 --- a/firmware/controllers/generated/signature_hellenNA6.h +++ b/firmware/controllers/generated/signature_hellenNA6.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 514878896 -#define TS_SIGNATURE "rusEFI 2021.11.28.hellenNA6.514878896" +#define SIGNATURE_HASH 3016106304 +#define TS_SIGNATURE "rusEFI 2021.11.28.hellenNA6.3016106304" diff --git a/firmware/controllers/generated/signature_hellen_cypress.h b/firmware/controllers/generated/signature_hellen_cypress.h index 263dc8564d..27662a8eec 100644 --- a/firmware/controllers/generated/signature_hellen_cypress.h +++ b/firmware/controllers/generated/signature_hellen_cypress.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt // -#define SIGNATURE_HASH 1383648420 -#define TS_SIGNATURE "rusEFI 2021.11.28.hellen_cypress.1383648420" +#define SIGNATURE_HASH 4279140436 +#define TS_SIGNATURE "rusEFI 2021.11.28.hellen_cypress.4279140436" diff --git a/firmware/controllers/generated/signature_kin.h b/firmware/controllers/generated/signature_kin.h index 97663e13ad..1441bbf804 100644 --- a/firmware/controllers/generated/signature_kin.h +++ b/firmware/controllers/generated/signature_kin.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt // -#define SIGNATURE_HASH 2916941912 -#define TS_SIGNATURE "rusEFI 2021.11.28.kin.2916941912" +#define SIGNATURE_HASH 11226280 +#define TS_SIGNATURE "rusEFI 2021.11.28.kin.11226280" diff --git a/firmware/controllers/generated/signature_mre_f4.h b/firmware/controllers/generated/signature_mre_f4.h index 4c046e7b2f..e891a00818 100644 --- a/firmware/controllers/generated/signature_mre_f4.h +++ b/firmware/controllers/generated/signature_mre_f4.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 3685372332 -#define TS_SIGNATURE "rusEFI 2021.11.28.mre_f4.3685372332" +#define SIGNATURE_HASH 1994136924 +#define TS_SIGNATURE "rusEFI 2021.11.28.mre_f4.1994136924" diff --git a/firmware/controllers/generated/signature_mre_f7.h b/firmware/controllers/generated/signature_mre_f7.h index 04655f6816..0d55ff2c58 100644 --- a/firmware/controllers/generated/signature_mre_f7.h +++ b/firmware/controllers/generated/signature_mre_f7.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 3685372332 -#define TS_SIGNATURE "rusEFI 2021.11.28.mre_f7.3685372332" +#define SIGNATURE_HASH 1994136924 +#define TS_SIGNATURE "rusEFI 2021.11.28.mre_f7.1994136924" diff --git a/firmware/controllers/generated/signature_prometheus_405.h b/firmware/controllers/generated/signature_prometheus_405.h index 2bba26b26f..9ad6837c06 100644 --- a/firmware/controllers/generated/signature_prometheus_405.h +++ b/firmware/controllers/generated/signature_prometheus_405.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 946336510 -#define TS_SIGNATURE "rusEFI 2021.11.28.prometheus_405.946336510" +#define SIGNATURE_HASH 2500967950 +#define TS_SIGNATURE "rusEFI 2021.11.28.prometheus_405.2500967950" diff --git a/firmware/controllers/generated/signature_prometheus_469.h b/firmware/controllers/generated/signature_prometheus_469.h index 2093958714..5f634debfd 100644 --- a/firmware/controllers/generated/signature_prometheus_469.h +++ b/firmware/controllers/generated/signature_prometheus_469.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 946336510 -#define TS_SIGNATURE "rusEFI 2021.11.28.prometheus_469.946336510" +#define SIGNATURE_HASH 2500967950 +#define TS_SIGNATURE "rusEFI 2021.11.28.prometheus_469.2500967950" diff --git a/firmware/controllers/generated/signature_proteus_f4.h b/firmware/controllers/generated/signature_proteus_f4.h index 413c87e9ff..9ced2bf34d 100644 --- a/firmware/controllers/generated/signature_proteus_f4.h +++ b/firmware/controllers/generated/signature_proteus_f4.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 3287433369 -#define TS_SIGNATURE "rusEFI 2021.11.28.proteus_f4.3287433369" +#define SIGNATURE_HASH 1854147689 +#define TS_SIGNATURE "rusEFI 2021.11.28.proteus_f4.1854147689" diff --git a/firmware/controllers/generated/signature_proteus_f7.h b/firmware/controllers/generated/signature_proteus_f7.h index ba9e3ec0eb..9278921add 100644 --- a/firmware/controllers/generated/signature_proteus_f7.h +++ b/firmware/controllers/generated/signature_proteus_f7.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 3287433369 -#define TS_SIGNATURE "rusEFI 2021.11.28.proteus_f7.3287433369" +#define SIGNATURE_HASH 1854147689 +#define TS_SIGNATURE "rusEFI 2021.11.28.proteus_f7.1854147689" diff --git a/firmware/controllers/generated/signature_subaru_eg33_f7.h b/firmware/controllers/generated/signature_subaru_eg33_f7.h index d23e799011..7b634a084b 100644 --- a/firmware/controllers/generated/signature_subaru_eg33_f7.h +++ b/firmware/controllers/generated/signature_subaru_eg33_f7.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on config/boards/subaru_eg33/config/gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 2872524104 -#define TS_SIGNATURE "rusEFI 2021.11.28.subaru_eg33_f7.2872524104" +#define SIGNATURE_HASH 104952248 +#define TS_SIGNATURE "rusEFI 2021.11.28.subaru_eg33_f7.104952248" diff --git a/firmware/tunerstudio/generated/cache.zip b/firmware/tunerstudio/generated/cache.zip index 8fd516b345a28451cc78bd079153e8ac5d73aef5..b3e6880b30a712ee58ddbb394179ed7992e7521c 100644 GIT binary patch delta 554258 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 DqtU|! delta 554420 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 diff --git a/firmware/tunerstudio/generated/rusefi.ini b/firmware/tunerstudio/generated/rusefi.ini index 975a779160..c67219cbac 100644 --- a/firmware/tunerstudio/generated/rusefi.ini +++ b/firmware/tunerstudio/generated/rusefi.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.28.all.1754082072" + signature = "rusEFI 2021.11.28.all.3321587688" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.28.all.1754082072" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.28.all.3321587688" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:17:00 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:45:14 UTC 2021 pageSize = 20000 page = 1 @@ -3030,6 +3030,20 @@ entry = knockRetard, "knockRetard", float, "%.3f" entry = VBatt, "VBatt", float, "%.3f" entry = oilPressure, "Oil Pressure", float, "%.3f" entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = currentTargetAfr, "fuel: target AFR", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", float, "%.3f" +entry = tCharge, "tCharge", float, "%.3f" +entry = iatCorrection, "fuel: IAT correction", float, "%.3f" +entry = cltCorrection, "fuel: CLT correction", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure correction", float, "%.3f" +entry = currentEnginePhase, "Engine Phase", int, "%d" entry = TPS2Value, "TPS2", float, "%.2f" entry = AFRValue, "Air/Fuel Ratio", float, "%.2f" entry = AFRValue2, "Air/Fuel Ratio 2", float, "%.2f" @@ -3042,7 +3056,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = turboSpeed, "Turbocharger Speed" int, "%d" entry = speedToRpmRatio, "s2rpm", float, "%.3f" entry = massAirFlowValue,"MAF air flow", float, "%.3f" - entry = chargeAirMass, "air mass", float, "%.3f" entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" entry = totalTriggerErrorCounter, "trg err",int, "%d" entry = idleAirValvePosition, "Idle Air Valve", float, "%.3f" @@ -3051,16 +3064,10 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" ; entry = rawHighFuelPressure, "Fuel pressure raw (high)", float, "%.3f" - entry = injectorLagMs, "fuel: injector lag", float, "%.3f" - entry = fuelRunning, "fuel: running", float, "%.3f" - entry = actualLastInjection, "fuel: Last injection", float, "%.3f" - entry = baseFuel, "fuel: base mass", float, "%.2f" + entry = injectorLagMs, , float, "%.3f" entry = fuelPidCorrection1,"fuel: fuel trim", float, "%.2f" entry = fuelPidCorrection2,"fuel: fuel trim 2", float, "%.2f" - entry = veValue, "fuel: VE", float, "%.3f" - entry = injectorDutyCycle,"fuel: injector duty cycle",float,"%.3f" entry = coilDutyCycle, "dwell: coil duty cycle", float,"%.3f" - entry = currentTargetAfr,"fuel: target AFR", float,"%.3f" entry = targetLambda, "fuel: target lambda", float,"%.4f" entry = totalFuelConsumption, "fuel: Total consumed", int, "%d" entry = fuelFlowRate, "fuel: Flow rate", float, "%.2f" @@ -3085,10 +3092,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = wallFuelCorrection,"fuel: wall corr ms", float, "%.3f" entry = wallFuelAmount, "fuel: wall amount", float, "%.3f" - entry = baroCorrection, "fuel: Barometric pressure correction",float,"%.3f" - entry = iatCorrection, "fuel: IAT correction", float, "%.3f" - entry = cltCorrection, "fuel: CLT correction", float,"%.3f" - entry = sparkDwellValue, "dwell: coil charge time", float,"%.3f" entry = vvtPositionB1E, "VVT: bank 1 exhaust", float, "%.1f" @@ -3098,7 +3101,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = vvtTargets2, "VVT: bank 1 exhaust target", int, "%d" entry = vvtTargets3, "VVT: bank 2 intake target", int, "%d" entry = vvtTargets4, "VVT: bank 2 exhaust target", int, "%d" - entry = injectionOffset, "injOffset" , float, "%.2F" ; is there a way to log parameter? entry = debugMode, "debugMode",int,"%d" entry = debugFloatField1, {bitStringValue( debugFieldF1List, debugMode )},float,"%.4f", { !enableLogDebugChannels } @@ -3130,8 +3132,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = recentErrorCode7, "error 7",int,"%d", { !enableLogErrorList } entry = recentErrorCode8, "error 8",int,"%d", { !enableLogErrorList } - entry = tCharge, "tCharge",float,"%.3f" - entry = clutchUpState, "clutch: up",int,"%d" entry = clutchDownState, "clutch: down",int,"%d" entry = brakePedalState, "brake: down",int,"%d" @@ -3159,7 +3159,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = VssAcceleration, "Vss Accel", float, "%.3f" entry = flexPercent, "Flex Ethanol %", int, "%d" - entry = currentEnginePhase, "Engine Phase", int, "%d" [Menu] diff --git a/firmware/tunerstudio/generated/rusefi_atlas.ini b/firmware/tunerstudio/generated/rusefi_atlas.ini index f9f601a06e..70a4bc2380 100644 --- a/firmware/tunerstudio/generated/rusefi_atlas.ini +++ b/firmware/tunerstudio/generated/rusefi_atlas.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.28.atlas.1950867007" + signature = "rusEFI 2021.11.28.atlas.3643904719" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.28.atlas.1950867007" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.28.atlas.3643904719" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:16:57 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:45:11 UTC 2021 pageSize = 20000 page = 1 @@ -3030,6 +3030,20 @@ entry = knockRetard, "knockRetard", float, "%.3f" entry = VBatt, "VBatt", float, "%.3f" entry = oilPressure, "Oil Pressure", float, "%.3f" entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = currentTargetAfr, "fuel: target AFR", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", float, "%.3f" +entry = tCharge, "tCharge", float, "%.3f" +entry = iatCorrection, "fuel: IAT correction", float, "%.3f" +entry = cltCorrection, "fuel: CLT correction", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure correction", float, "%.3f" +entry = currentEnginePhase, "Engine Phase", int, "%d" entry = TPS2Value, "TPS2", float, "%.2f" entry = AFRValue, "Air/Fuel Ratio", float, "%.2f" entry = AFRValue2, "Air/Fuel Ratio 2", float, "%.2f" @@ -3042,7 +3056,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = turboSpeed, "Turbocharger Speed" int, "%d" entry = speedToRpmRatio, "s2rpm", float, "%.3f" entry = massAirFlowValue,"MAF air flow", float, "%.3f" - entry = chargeAirMass, "air mass", float, "%.3f" entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" entry = totalTriggerErrorCounter, "trg err",int, "%d" entry = idleAirValvePosition, "Idle Air Valve", float, "%.3f" @@ -3051,16 +3064,10 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" ; entry = rawHighFuelPressure, "Fuel pressure raw (high)", float, "%.3f" - entry = injectorLagMs, "fuel: injector lag", float, "%.3f" - entry = fuelRunning, "fuel: running", float, "%.3f" - entry = actualLastInjection, "fuel: Last injection", float, "%.3f" - entry = baseFuel, "fuel: base mass", float, "%.2f" + entry = injectorLagMs, , float, "%.3f" entry = fuelPidCorrection1,"fuel: fuel trim", float, "%.2f" entry = fuelPidCorrection2,"fuel: fuel trim 2", float, "%.2f" - entry = veValue, "fuel: VE", float, "%.3f" - entry = injectorDutyCycle,"fuel: injector duty cycle",float,"%.3f" entry = coilDutyCycle, "dwell: coil duty cycle", float,"%.3f" - entry = currentTargetAfr,"fuel: target AFR", float,"%.3f" entry = targetLambda, "fuel: target lambda", float,"%.4f" entry = totalFuelConsumption, "fuel: Total consumed", int, "%d" entry = fuelFlowRate, "fuel: Flow rate", float, "%.2f" @@ -3085,10 +3092,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = wallFuelCorrection,"fuel: wall corr ms", float, "%.3f" entry = wallFuelAmount, "fuel: wall amount", float, "%.3f" - entry = baroCorrection, "fuel: Barometric pressure correction",float,"%.3f" - entry = iatCorrection, "fuel: IAT correction", float, "%.3f" - entry = cltCorrection, "fuel: CLT correction", float,"%.3f" - entry = sparkDwellValue, "dwell: coil charge time", float,"%.3f" entry = vvtPositionB1E, "VVT: bank 1 exhaust", float, "%.1f" @@ -3098,7 +3101,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = vvtTargets2, "VVT: bank 1 exhaust target", int, "%d" entry = vvtTargets3, "VVT: bank 2 intake target", int, "%d" entry = vvtTargets4, "VVT: bank 2 exhaust target", int, "%d" - entry = injectionOffset, "injOffset" , float, "%.2F" ; is there a way to log parameter? entry = debugMode, "debugMode",int,"%d" entry = debugFloatField1, {bitStringValue( debugFieldF1List, debugMode )},float,"%.4f", { !enableLogDebugChannels } @@ -3130,8 +3132,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = recentErrorCode7, "error 7",int,"%d", { !enableLogErrorList } entry = recentErrorCode8, "error 8",int,"%d", { !enableLogErrorList } - entry = tCharge, "tCharge",float,"%.3f" - entry = clutchUpState, "clutch: up",int,"%d" entry = clutchDownState, "clutch: down",int,"%d" entry = brakePedalState, "brake: down",int,"%d" @@ -3159,7 +3159,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = VssAcceleration, "Vss Accel", float, "%.3f" entry = flexPercent, "Flex Ethanol %", int, "%d" - entry = currentEnginePhase, "Engine Phase", int, "%d" [Menu] diff --git a/firmware/tunerstudio/generated/rusefi_f429-discovery.ini b/firmware/tunerstudio/generated/rusefi_f429-discovery.ini index 8138ec87b4..d6bb46e95c 100644 --- a/firmware/tunerstudio/generated/rusefi_f429-discovery.ini +++ b/firmware/tunerstudio/generated/rusefi_f429-discovery.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.28.f429-discovery.1754082072" + signature = "rusEFI 2021.11.28.f429-discovery.3321587688" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.28.f429-discovery.1754082072" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.28.f429-discovery.3321587688" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:16:08 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:44:25 UTC 2021 pageSize = 20000 page = 1 @@ -3030,6 +3030,20 @@ entry = knockRetard, "knockRetard", float, "%.3f" entry = VBatt, "VBatt", float, "%.3f" entry = oilPressure, "Oil Pressure", float, "%.3f" entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = currentTargetAfr, "fuel: target AFR", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", float, "%.3f" +entry = tCharge, "tCharge", float, "%.3f" +entry = iatCorrection, "fuel: IAT correction", float, "%.3f" +entry = cltCorrection, "fuel: CLT correction", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure correction", float, "%.3f" +entry = currentEnginePhase, "Engine Phase", int, "%d" entry = TPS2Value, "TPS2", float, "%.2f" entry = AFRValue, "Air/Fuel Ratio", float, "%.2f" entry = AFRValue2, "Air/Fuel Ratio 2", float, "%.2f" @@ -3042,7 +3056,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = turboSpeed, "Turbocharger Speed" int, "%d" entry = speedToRpmRatio, "s2rpm", float, "%.3f" entry = massAirFlowValue,"MAF air flow", float, "%.3f" - entry = chargeAirMass, "air mass", float, "%.3f" entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" entry = totalTriggerErrorCounter, "trg err",int, "%d" entry = idleAirValvePosition, "Idle Air Valve", float, "%.3f" @@ -3051,16 +3064,10 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" ; entry = rawHighFuelPressure, "Fuel pressure raw (high)", float, "%.3f" - entry = injectorLagMs, "fuel: injector lag", float, "%.3f" - entry = fuelRunning, "fuel: running", float, "%.3f" - entry = actualLastInjection, "fuel: Last injection", float, "%.3f" - entry = baseFuel, "fuel: base mass", float, "%.2f" + entry = injectorLagMs, , float, "%.3f" entry = fuelPidCorrection1,"fuel: fuel trim", float, "%.2f" entry = fuelPidCorrection2,"fuel: fuel trim 2", float, "%.2f" - entry = veValue, "fuel: VE", float, "%.3f" - entry = injectorDutyCycle,"fuel: injector duty cycle",float,"%.3f" entry = coilDutyCycle, "dwell: coil duty cycle", float,"%.3f" - entry = currentTargetAfr,"fuel: target AFR", float,"%.3f" entry = targetLambda, "fuel: target lambda", float,"%.4f" entry = totalFuelConsumption, "fuel: Total consumed", int, "%d" entry = fuelFlowRate, "fuel: Flow rate", float, "%.2f" @@ -3085,10 +3092,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = wallFuelCorrection,"fuel: wall corr ms", float, "%.3f" entry = wallFuelAmount, "fuel: wall amount", float, "%.3f" - entry = baroCorrection, "fuel: Barometric pressure correction",float,"%.3f" - entry = iatCorrection, "fuel: IAT correction", float, "%.3f" - entry = cltCorrection, "fuel: CLT correction", float,"%.3f" - entry = sparkDwellValue, "dwell: coil charge time", float,"%.3f" entry = vvtPositionB1E, "VVT: bank 1 exhaust", float, "%.1f" @@ -3098,7 +3101,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = vvtTargets2, "VVT: bank 1 exhaust target", int, "%d" entry = vvtTargets3, "VVT: bank 2 intake target", int, "%d" entry = vvtTargets4, "VVT: bank 2 exhaust target", int, "%d" - entry = injectionOffset, "injOffset" , float, "%.2F" ; is there a way to log parameter? entry = debugMode, "debugMode",int,"%d" entry = debugFloatField1, {bitStringValue( debugFieldF1List, debugMode )},float,"%.4f", { !enableLogDebugChannels } @@ -3130,8 +3132,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = recentErrorCode7, "error 7",int,"%d", { !enableLogErrorList } entry = recentErrorCode8, "error 8",int,"%d", { !enableLogErrorList } - entry = tCharge, "tCharge",float,"%.3f" - entry = clutchUpState, "clutch: up",int,"%d" entry = clutchDownState, "clutch: down",int,"%d" entry = brakePedalState, "brake: down",int,"%d" @@ -3159,7 +3159,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = VssAcceleration, "Vss Accel", float, "%.3f" entry = flexPercent, "Flex Ethanol %", int, "%d" - entry = currentEnginePhase, "Engine Phase", int, "%d" [Menu] diff --git a/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini b/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini index 9382d68ec5..fddff811f8 100644 --- a/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini +++ b/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.28.frankenso_na6.314539761" + signature = "rusEFI 2021.11.28.frankenso_na6.3217633793" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.28.frankenso_na6.314539761" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.28.frankenso_na6.3217633793" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:16:42 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:44:57 UTC 2021 pageSize = 20000 page = 1 @@ -3030,6 +3030,20 @@ entry = knockRetard, "knockRetard", float, "%.3f" entry = VBatt, "VBatt", float, "%.3f" entry = oilPressure, "Oil Pressure", float, "%.3f" entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = currentTargetAfr, "fuel: target AFR", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", float, "%.3f" +entry = tCharge, "tCharge", float, "%.3f" +entry = iatCorrection, "fuel: IAT correction", float, "%.3f" +entry = cltCorrection, "fuel: CLT correction", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure correction", float, "%.3f" +entry = currentEnginePhase, "Engine Phase", int, "%d" entry = TPS2Value, "TPS2", float, "%.2f" entry = AFRValue, "Air/Fuel Ratio", float, "%.2f" entry = AFRValue2, "Air/Fuel Ratio 2", float, "%.2f" @@ -3042,7 +3056,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = turboSpeed, "Turbocharger Speed" int, "%d" entry = speedToRpmRatio, "s2rpm", float, "%.3f" entry = massAirFlowValue,"MAF air flow", float, "%.3f" - entry = chargeAirMass, "air mass", float, "%.3f" entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" entry = totalTriggerErrorCounter, "trg err",int, "%d" entry = idleAirValvePosition, "Idle Air Valve", float, "%.3f" @@ -3051,16 +3064,10 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" ; entry = rawHighFuelPressure, "Fuel pressure raw (high)", float, "%.3f" - entry = injectorLagMs, "fuel: injector lag", float, "%.3f" - entry = fuelRunning, "fuel: running", float, "%.3f" - entry = actualLastInjection, "fuel: Last injection", float, "%.3f" - entry = baseFuel, "fuel: base mass", float, "%.2f" + entry = injectorLagMs, , float, "%.3f" entry = fuelPidCorrection1,"fuel: fuel trim", float, "%.2f" entry = fuelPidCorrection2,"fuel: fuel trim 2", float, "%.2f" - entry = veValue, "fuel: VE", float, "%.3f" - entry = injectorDutyCycle,"fuel: injector duty cycle",float,"%.3f" entry = coilDutyCycle, "dwell: coil duty cycle", float,"%.3f" - entry = currentTargetAfr,"fuel: target AFR", float,"%.3f" entry = targetLambda, "fuel: target lambda", float,"%.4f" entry = totalFuelConsumption, "fuel: Total consumed", int, "%d" entry = fuelFlowRate, "fuel: Flow rate", float, "%.2f" @@ -3085,10 +3092,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = wallFuelCorrection,"fuel: wall corr ms", float, "%.3f" entry = wallFuelAmount, "fuel: wall amount", float, "%.3f" - entry = baroCorrection, "fuel: Barometric pressure correction",float,"%.3f" - entry = iatCorrection, "fuel: IAT correction", float, "%.3f" - entry = cltCorrection, "fuel: CLT correction", float,"%.3f" - entry = sparkDwellValue, "dwell: coil charge time", float,"%.3f" entry = vvtPositionB1E, "VVT: bank 1 exhaust", float, "%.1f" @@ -3098,7 +3101,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = vvtTargets2, "VVT: bank 1 exhaust target", int, "%d" entry = vvtTargets3, "VVT: bank 2 intake target", int, "%d" entry = vvtTargets4, "VVT: bank 2 exhaust target", int, "%d" - entry = injectionOffset, "injOffset" , float, "%.2F" ; is there a way to log parameter? entry = debugMode, "debugMode",int,"%d" entry = debugFloatField1, {bitStringValue( debugFieldF1List, debugMode )},float,"%.4f", { !enableLogDebugChannels } @@ -3130,8 +3132,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = recentErrorCode7, "error 7",int,"%d", { !enableLogErrorList } entry = recentErrorCode8, "error 8",int,"%d", { !enableLogErrorList } - entry = tCharge, "tCharge",float,"%.3f" - entry = clutchUpState, "clutch: up",int,"%d" entry = clutchDownState, "clutch: down",int,"%d" entry = brakePedalState, "brake: down",int,"%d" @@ -3159,7 +3159,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = VssAcceleration, "Vss Accel", float, "%.3f" entry = flexPercent, "Flex Ethanol %", int, "%d" - entry = currentEnginePhase, "Engine Phase", int, "%d" [Menu] diff --git a/firmware/tunerstudio/generated/rusefi_hellen-nb1.ini b/firmware/tunerstudio/generated/rusefi_hellen-nb1.ini index ba2d9a96b2..c262486ab8 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen-nb1.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen-nb1.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.28.hellen-nb1.3445562257" + signature = "rusEFI 2021.11.28.hellen-nb1.1613322081" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.28.hellen-nb1.3445562257" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.28.hellen-nb1.1613322081" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:16:29 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:44:44 UTC 2021 pageSize = 20000 page = 1 @@ -3030,6 +3030,20 @@ entry = knockRetard, "knockRetard", float, "%.3f" entry = VBatt, "VBatt", float, "%.3f" entry = oilPressure, "Oil Pressure", float, "%.3f" entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = currentTargetAfr, "fuel: target AFR", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", float, "%.3f" +entry = tCharge, "tCharge", float, "%.3f" +entry = iatCorrection, "fuel: IAT correction", float, "%.3f" +entry = cltCorrection, "fuel: CLT correction", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure correction", float, "%.3f" +entry = currentEnginePhase, "Engine Phase", int, "%d" entry = TPS2Value, "TPS2", float, "%.2f" entry = AFRValue, "Air/Fuel Ratio", float, "%.2f" entry = AFRValue2, "Air/Fuel Ratio 2", float, "%.2f" @@ -3042,7 +3056,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = turboSpeed, "Turbocharger Speed" int, "%d" entry = speedToRpmRatio, "s2rpm", float, "%.3f" entry = massAirFlowValue,"MAF air flow", float, "%.3f" - entry = chargeAirMass, "air mass", float, "%.3f" entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" entry = totalTriggerErrorCounter, "trg err",int, "%d" entry = idleAirValvePosition, "Idle Air Valve", float, "%.3f" @@ -3051,16 +3064,10 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" ; entry = rawHighFuelPressure, "Fuel pressure raw (high)", float, "%.3f" - entry = injectorLagMs, "fuel: injector lag", float, "%.3f" - entry = fuelRunning, "fuel: running", float, "%.3f" - entry = actualLastInjection, "fuel: Last injection", float, "%.3f" - entry = baseFuel, "fuel: base mass", float, "%.2f" + entry = injectorLagMs, , float, "%.3f" entry = fuelPidCorrection1,"fuel: fuel trim", float, "%.2f" entry = fuelPidCorrection2,"fuel: fuel trim 2", float, "%.2f" - entry = veValue, "fuel: VE", float, "%.3f" - entry = injectorDutyCycle,"fuel: injector duty cycle",float,"%.3f" entry = coilDutyCycle, "dwell: coil duty cycle", float,"%.3f" - entry = currentTargetAfr,"fuel: target AFR", float,"%.3f" entry = targetLambda, "fuel: target lambda", float,"%.4f" entry = totalFuelConsumption, "fuel: Total consumed", int, "%d" entry = fuelFlowRate, "fuel: Flow rate", float, "%.2f" @@ -3085,10 +3092,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = wallFuelCorrection,"fuel: wall corr ms", float, "%.3f" entry = wallFuelAmount, "fuel: wall amount", float, "%.3f" - entry = baroCorrection, "fuel: Barometric pressure correction",float,"%.3f" - entry = iatCorrection, "fuel: IAT correction", float, "%.3f" - entry = cltCorrection, "fuel: CLT correction", float,"%.3f" - entry = sparkDwellValue, "dwell: coil charge time", float,"%.3f" entry = vvtPositionB1E, "VVT: bank 1 exhaust", float, "%.1f" @@ -3098,7 +3101,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = vvtTargets2, "VVT: bank 1 exhaust target", int, "%d" entry = vvtTargets3, "VVT: bank 2 intake target", int, "%d" entry = vvtTargets4, "VVT: bank 2 exhaust target", int, "%d" - entry = injectionOffset, "injOffset" , float, "%.2F" ; is there a way to log parameter? entry = debugMode, "debugMode",int,"%d" entry = debugFloatField1, {bitStringValue( debugFieldF1List, debugMode )},float,"%.4f", { !enableLogDebugChannels } @@ -3130,8 +3132,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = recentErrorCode7, "error 7",int,"%d", { !enableLogErrorList } entry = recentErrorCode8, "error 8",int,"%d", { !enableLogErrorList } - entry = tCharge, "tCharge",float,"%.3f" - entry = clutchUpState, "clutch: up",int,"%d" entry = clutchDownState, "clutch: down",int,"%d" entry = brakePedalState, "brake: down",int,"%d" @@ -3159,7 +3159,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = VssAcceleration, "Vss Accel", float, "%.3f" entry = flexPercent, "Flex Ethanol %", int, "%d" - entry = currentEnginePhase, "Engine Phase", int, "%d" [Menu] diff --git a/firmware/tunerstudio/generated/rusefi_hellen121nissan.ini b/firmware/tunerstudio/generated/rusefi_hellen121nissan.ini index 8be3355099..1748b81129 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen121nissan.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen121nissan.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.28.hellen121nissan.3540601273" + signature = "rusEFI 2021.11.28.hellen121nissan.2122253641" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.28.hellen121nissan.3540601273" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.28.hellen121nissan.2122253641" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:16:17 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:44:33 UTC 2021 pageSize = 20000 page = 1 @@ -3030,6 +3030,20 @@ entry = knockRetard, "knockRetard", float, "%.3f" entry = VBatt, "VBatt", float, "%.3f" entry = oilPressure, "Oil Pressure", float, "%.3f" entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = currentTargetAfr, "fuel: target AFR", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", float, "%.3f" +entry = tCharge, "tCharge", float, "%.3f" +entry = iatCorrection, "fuel: IAT correction", float, "%.3f" +entry = cltCorrection, "fuel: CLT correction", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure correction", float, "%.3f" +entry = currentEnginePhase, "Engine Phase", int, "%d" entry = TPS2Value, "TPS2", float, "%.2f" entry = AFRValue, "Air/Fuel Ratio", float, "%.2f" entry = AFRValue2, "Air/Fuel Ratio 2", float, "%.2f" @@ -3042,7 +3056,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = turboSpeed, "Turbocharger Speed" int, "%d" entry = speedToRpmRatio, "s2rpm", float, "%.3f" entry = massAirFlowValue,"MAF air flow", float, "%.3f" - entry = chargeAirMass, "air mass", float, "%.3f" entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" entry = totalTriggerErrorCounter, "trg err",int, "%d" entry = idleAirValvePosition, "Idle Air Valve", float, "%.3f" @@ -3051,16 +3064,10 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" ; entry = rawHighFuelPressure, "Fuel pressure raw (high)", float, "%.3f" - entry = injectorLagMs, "fuel: injector lag", float, "%.3f" - entry = fuelRunning, "fuel: running", float, "%.3f" - entry = actualLastInjection, "fuel: Last injection", float, "%.3f" - entry = baseFuel, "fuel: base mass", float, "%.2f" + entry = injectorLagMs, , float, "%.3f" entry = fuelPidCorrection1,"fuel: fuel trim", float, "%.2f" entry = fuelPidCorrection2,"fuel: fuel trim 2", float, "%.2f" - entry = veValue, "fuel: VE", float, "%.3f" - entry = injectorDutyCycle,"fuel: injector duty cycle",float,"%.3f" entry = coilDutyCycle, "dwell: coil duty cycle", float,"%.3f" - entry = currentTargetAfr,"fuel: target AFR", float,"%.3f" entry = targetLambda, "fuel: target lambda", float,"%.4f" entry = totalFuelConsumption, "fuel: Total consumed", int, "%d" entry = fuelFlowRate, "fuel: Flow rate", float, "%.2f" @@ -3085,10 +3092,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = wallFuelCorrection,"fuel: wall corr ms", float, "%.3f" entry = wallFuelAmount, "fuel: wall amount", float, "%.3f" - entry = baroCorrection, "fuel: Barometric pressure correction",float,"%.3f" - entry = iatCorrection, "fuel: IAT correction", float, "%.3f" - entry = cltCorrection, "fuel: CLT correction", float,"%.3f" - entry = sparkDwellValue, "dwell: coil charge time", float,"%.3f" entry = vvtPositionB1E, "VVT: bank 1 exhaust", float, "%.1f" @@ -3098,7 +3101,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = vvtTargets2, "VVT: bank 1 exhaust target", int, "%d" entry = vvtTargets3, "VVT: bank 2 intake target", int, "%d" entry = vvtTargets4, "VVT: bank 2 exhaust target", int, "%d" - entry = injectionOffset, "injOffset" , float, "%.2F" ; is there a way to log parameter? entry = debugMode, "debugMode",int,"%d" entry = debugFloatField1, {bitStringValue( debugFieldF1List, debugMode )},float,"%.4f", { !enableLogDebugChannels } @@ -3130,8 +3132,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = recentErrorCode7, "error 7",int,"%d", { !enableLogErrorList } entry = recentErrorCode8, "error 8",int,"%d", { !enableLogErrorList } - entry = tCharge, "tCharge",float,"%.3f" - entry = clutchUpState, "clutch: up",int,"%d" entry = clutchDownState, "clutch: down",int,"%d" entry = brakePedalState, "brake: down",int,"%d" @@ -3159,7 +3159,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = VssAcceleration, "Vss Accel", float, "%.3f" entry = flexPercent, "Flex Ethanol %", int, "%d" - entry = currentEnginePhase, "Engine Phase", int, "%d" [Menu] diff --git a/firmware/tunerstudio/generated/rusefi_hellen121vag.ini b/firmware/tunerstudio/generated/rusefi_hellen121vag.ini index 6e62356a4c..5f63e71ab3 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen121vag.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen121vag.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.28.hellen121vag.925765394" + signature = "rusEFI 2021.11.28.hellen121vag.2589475810" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.28.hellen121vag.925765394" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.28.hellen121vag.2589475810" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:16:14 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:44:31 UTC 2021 pageSize = 20000 page = 1 @@ -3030,6 +3030,20 @@ entry = knockRetard, "knockRetard", float, "%.3f" entry = VBatt, "VBatt", float, "%.3f" entry = oilPressure, "Oil Pressure", float, "%.3f" entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = currentTargetAfr, "fuel: target AFR", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", float, "%.3f" +entry = tCharge, "tCharge", float, "%.3f" +entry = iatCorrection, "fuel: IAT correction", float, "%.3f" +entry = cltCorrection, "fuel: CLT correction", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure correction", float, "%.3f" +entry = currentEnginePhase, "Engine Phase", int, "%d" entry = TPS2Value, "TPS2", float, "%.2f" entry = AFRValue, "Air/Fuel Ratio", float, "%.2f" entry = AFRValue2, "Air/Fuel Ratio 2", float, "%.2f" @@ -3042,7 +3056,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = turboSpeed, "Turbocharger Speed" int, "%d" entry = speedToRpmRatio, "s2rpm", float, "%.3f" entry = massAirFlowValue,"MAF air flow", float, "%.3f" - entry = chargeAirMass, "air mass", float, "%.3f" entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" entry = totalTriggerErrorCounter, "trg err",int, "%d" entry = idleAirValvePosition, "Idle Air Valve", float, "%.3f" @@ -3051,16 +3064,10 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" ; entry = rawHighFuelPressure, "Fuel pressure raw (high)", float, "%.3f" - entry = injectorLagMs, "fuel: injector lag", float, "%.3f" - entry = fuelRunning, "fuel: running", float, "%.3f" - entry = actualLastInjection, "fuel: Last injection", float, "%.3f" - entry = baseFuel, "fuel: base mass", float, "%.2f" + entry = injectorLagMs, , float, "%.3f" entry = fuelPidCorrection1,"fuel: fuel trim", float, "%.2f" entry = fuelPidCorrection2,"fuel: fuel trim 2", float, "%.2f" - entry = veValue, "fuel: VE", float, "%.3f" - entry = injectorDutyCycle,"fuel: injector duty cycle",float,"%.3f" entry = coilDutyCycle, "dwell: coil duty cycle", float,"%.3f" - entry = currentTargetAfr,"fuel: target AFR", float,"%.3f" entry = targetLambda, "fuel: target lambda", float,"%.4f" entry = totalFuelConsumption, "fuel: Total consumed", int, "%d" entry = fuelFlowRate, "fuel: Flow rate", float, "%.2f" @@ -3085,10 +3092,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = wallFuelCorrection,"fuel: wall corr ms", float, "%.3f" entry = wallFuelAmount, "fuel: wall amount", float, "%.3f" - entry = baroCorrection, "fuel: Barometric pressure correction",float,"%.3f" - entry = iatCorrection, "fuel: IAT correction", float, "%.3f" - entry = cltCorrection, "fuel: CLT correction", float,"%.3f" - entry = sparkDwellValue, "dwell: coil charge time", float,"%.3f" entry = vvtPositionB1E, "VVT: bank 1 exhaust", float, "%.1f" @@ -3098,7 +3101,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = vvtTargets2, "VVT: bank 1 exhaust target", int, "%d" entry = vvtTargets3, "VVT: bank 2 intake target", int, "%d" entry = vvtTargets4, "VVT: bank 2 exhaust target", int, "%d" - entry = injectionOffset, "injOffset" , float, "%.2F" ; is there a way to log parameter? entry = debugMode, "debugMode",int,"%d" entry = debugFloatField1, {bitStringValue( debugFieldF1List, debugMode )},float,"%.4f", { !enableLogDebugChannels } @@ -3130,8 +3132,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = recentErrorCode7, "error 7",int,"%d", { !enableLogErrorList } entry = recentErrorCode8, "error 8",int,"%d", { !enableLogErrorList } - entry = tCharge, "tCharge",float,"%.3f" - entry = clutchUpState, "clutch: up",int,"%d" entry = clutchDownState, "clutch: down",int,"%d" entry = brakePedalState, "brake: down",int,"%d" @@ -3159,7 +3159,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = VssAcceleration, "Vss Accel", float, "%.3f" entry = flexPercent, "Flex Ethanol %", int, "%d" - entry = currentEnginePhase, "Engine Phase", int, "%d" [Menu] diff --git a/firmware/tunerstudio/generated/rusefi_hellen128mercedes.ini b/firmware/tunerstudio/generated/rusefi_hellen128mercedes.ini index 6069f2e157..939bf42582 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen128mercedes.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen128mercedes.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.28.hellen128.4065018047" + signature = "rusEFI 2021.11.28.hellen128.1597836367" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.28.hellen128.4065018047" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.28.hellen128.1597836367" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:16:11 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:44:28 UTC 2021 pageSize = 20000 page = 1 @@ -3030,6 +3030,20 @@ entry = knockRetard, "knockRetard", float, "%.3f" entry = VBatt, "VBatt", float, "%.3f" entry = oilPressure, "Oil Pressure", float, "%.3f" entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = currentTargetAfr, "fuel: target AFR", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", float, "%.3f" +entry = tCharge, "tCharge", float, "%.3f" +entry = iatCorrection, "fuel: IAT correction", float, "%.3f" +entry = cltCorrection, "fuel: CLT correction", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure correction", float, "%.3f" +entry = currentEnginePhase, "Engine Phase", int, "%d" entry = TPS2Value, "TPS2", float, "%.2f" entry = AFRValue, "Air/Fuel Ratio", float, "%.2f" entry = AFRValue2, "Air/Fuel Ratio 2", float, "%.2f" @@ -3042,7 +3056,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = turboSpeed, "Turbocharger Speed" int, "%d" entry = speedToRpmRatio, "s2rpm", float, "%.3f" entry = massAirFlowValue,"MAF air flow", float, "%.3f" - entry = chargeAirMass, "air mass", float, "%.3f" entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" entry = totalTriggerErrorCounter, "trg err",int, "%d" entry = idleAirValvePosition, "Idle Air Valve", float, "%.3f" @@ -3051,16 +3064,10 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" ; entry = rawHighFuelPressure, "Fuel pressure raw (high)", float, "%.3f" - entry = injectorLagMs, "fuel: injector lag", float, "%.3f" - entry = fuelRunning, "fuel: running", float, "%.3f" - entry = actualLastInjection, "fuel: Last injection", float, "%.3f" - entry = baseFuel, "fuel: base mass", float, "%.2f" + entry = injectorLagMs, , float, "%.3f" entry = fuelPidCorrection1,"fuel: fuel trim", float, "%.2f" entry = fuelPidCorrection2,"fuel: fuel trim 2", float, "%.2f" - entry = veValue, "fuel: VE", float, "%.3f" - entry = injectorDutyCycle,"fuel: injector duty cycle",float,"%.3f" entry = coilDutyCycle, "dwell: coil duty cycle", float,"%.3f" - entry = currentTargetAfr,"fuel: target AFR", float,"%.3f" entry = targetLambda, "fuel: target lambda", float,"%.4f" entry = totalFuelConsumption, "fuel: Total consumed", int, "%d" entry = fuelFlowRate, "fuel: Flow rate", float, "%.2f" @@ -3085,10 +3092,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = wallFuelCorrection,"fuel: wall corr ms", float, "%.3f" entry = wallFuelAmount, "fuel: wall amount", float, "%.3f" - entry = baroCorrection, "fuel: Barometric pressure correction",float,"%.3f" - entry = iatCorrection, "fuel: IAT correction", float, "%.3f" - entry = cltCorrection, "fuel: CLT correction", float,"%.3f" - entry = sparkDwellValue, "dwell: coil charge time", float,"%.3f" entry = vvtPositionB1E, "VVT: bank 1 exhaust", float, "%.1f" @@ -3098,7 +3101,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = vvtTargets2, "VVT: bank 1 exhaust target", int, "%d" entry = vvtTargets3, "VVT: bank 2 intake target", int, "%d" entry = vvtTargets4, "VVT: bank 2 exhaust target", int, "%d" - entry = injectionOffset, "injOffset" , float, "%.2F" ; is there a way to log parameter? entry = debugMode, "debugMode",int,"%d" entry = debugFloatField1, {bitStringValue( debugFieldF1List, debugMode )},float,"%.4f", { !enableLogDebugChannels } @@ -3130,8 +3132,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = recentErrorCode7, "error 7",int,"%d", { !enableLogErrorList } entry = recentErrorCode8, "error 8",int,"%d", { !enableLogErrorList } - entry = tCharge, "tCharge",float,"%.3f" - entry = clutchUpState, "clutch: up",int,"%d" entry = clutchDownState, "clutch: down",int,"%d" entry = brakePedalState, "brake: down",int,"%d" @@ -3159,7 +3159,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = VssAcceleration, "Vss Accel", float, "%.3f" entry = flexPercent, "Flex Ethanol %", int, "%d" - entry = currentEnginePhase, "Engine Phase", int, "%d" [Menu] diff --git a/firmware/tunerstudio/generated/rusefi_hellen154hyundai.ini b/firmware/tunerstudio/generated/rusefi_hellen154hyundai.ini index 5a32a7c87e..904ccc7ade 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen154hyundai.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen154hyundai.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.28.hellen154hyundai.1247357374" + signature = "rusEFI 2021.11.28.hellen154hyundai.3878643022" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.28.hellen154hyundai.1247357374" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.28.hellen154hyundai.3878643022" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:16:20 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:44:36 UTC 2021 pageSize = 20000 page = 1 @@ -3030,6 +3030,20 @@ entry = knockRetard, "knockRetard", float, "%.3f" entry = VBatt, "VBatt", float, "%.3f" entry = oilPressure, "Oil Pressure", float, "%.3f" entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = currentTargetAfr, "fuel: target AFR", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", float, "%.3f" +entry = tCharge, "tCharge", float, "%.3f" +entry = iatCorrection, "fuel: IAT correction", float, "%.3f" +entry = cltCorrection, "fuel: CLT correction", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure correction", float, "%.3f" +entry = currentEnginePhase, "Engine Phase", int, "%d" entry = TPS2Value, "TPS2", float, "%.2f" entry = AFRValue, "Air/Fuel Ratio", float, "%.2f" entry = AFRValue2, "Air/Fuel Ratio 2", float, "%.2f" @@ -3042,7 +3056,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = turboSpeed, "Turbocharger Speed" int, "%d" entry = speedToRpmRatio, "s2rpm", float, "%.3f" entry = massAirFlowValue,"MAF air flow", float, "%.3f" - entry = chargeAirMass, "air mass", float, "%.3f" entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" entry = totalTriggerErrorCounter, "trg err",int, "%d" entry = idleAirValvePosition, "Idle Air Valve", float, "%.3f" @@ -3051,16 +3064,10 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" ; entry = rawHighFuelPressure, "Fuel pressure raw (high)", float, "%.3f" - entry = injectorLagMs, "fuel: injector lag", float, "%.3f" - entry = fuelRunning, "fuel: running", float, "%.3f" - entry = actualLastInjection, "fuel: Last injection", float, "%.3f" - entry = baseFuel, "fuel: base mass", float, "%.2f" + entry = injectorLagMs, , float, "%.3f" entry = fuelPidCorrection1,"fuel: fuel trim", float, "%.2f" entry = fuelPidCorrection2,"fuel: fuel trim 2", float, "%.2f" - entry = veValue, "fuel: VE", float, "%.3f" - entry = injectorDutyCycle,"fuel: injector duty cycle",float,"%.3f" entry = coilDutyCycle, "dwell: coil duty cycle", float,"%.3f" - entry = currentTargetAfr,"fuel: target AFR", float,"%.3f" entry = targetLambda, "fuel: target lambda", float,"%.4f" entry = totalFuelConsumption, "fuel: Total consumed", int, "%d" entry = fuelFlowRate, "fuel: Flow rate", float, "%.2f" @@ -3085,10 +3092,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = wallFuelCorrection,"fuel: wall corr ms", float, "%.3f" entry = wallFuelAmount, "fuel: wall amount", float, "%.3f" - entry = baroCorrection, "fuel: Barometric pressure correction",float,"%.3f" - entry = iatCorrection, "fuel: IAT correction", float, "%.3f" - entry = cltCorrection, "fuel: CLT correction", float,"%.3f" - entry = sparkDwellValue, "dwell: coil charge time", float,"%.3f" entry = vvtPositionB1E, "VVT: bank 1 exhaust", float, "%.1f" @@ -3098,7 +3101,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = vvtTargets2, "VVT: bank 1 exhaust target", int, "%d" entry = vvtTargets3, "VVT: bank 2 intake target", int, "%d" entry = vvtTargets4, "VVT: bank 2 exhaust target", int, "%d" - entry = injectionOffset, "injOffset" , float, "%.2F" ; is there a way to log parameter? entry = debugMode, "debugMode",int,"%d" entry = debugFloatField1, {bitStringValue( debugFieldF1List, debugMode )},float,"%.4f", { !enableLogDebugChannels } @@ -3130,8 +3132,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = recentErrorCode7, "error 7",int,"%d", { !enableLogErrorList } entry = recentErrorCode8, "error 8",int,"%d", { !enableLogErrorList } - entry = tCharge, "tCharge",float,"%.3f" - entry = clutchUpState, "clutch: up",int,"%d" entry = clutchDownState, "clutch: down",int,"%d" entry = brakePedalState, "brake: down",int,"%d" @@ -3159,7 +3159,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = VssAcceleration, "Vss Accel", float, "%.3f" entry = flexPercent, "Flex Ethanol %", int, "%d" - entry = currentEnginePhase, "Engine Phase", int, "%d" [Menu] diff --git a/firmware/tunerstudio/generated/rusefi_hellen72.ini b/firmware/tunerstudio/generated/rusefi_hellen72.ini index 073391800d..5ab6cfa3ba 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen72.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen72.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.28.hellen72.2620435624" + signature = "rusEFI 2021.11.28.hellen72.826728536" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.28.hellen72.2620435624" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.28.hellen72.826728536" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:16:26 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:44:42 UTC 2021 pageSize = 20000 page = 1 @@ -3030,6 +3030,20 @@ entry = knockRetard, "knockRetard", float, "%.3f" entry = VBatt, "VBatt", float, "%.3f" entry = oilPressure, "Oil Pressure", float, "%.3f" entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = currentTargetAfr, "fuel: target AFR", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", float, "%.3f" +entry = tCharge, "tCharge", float, "%.3f" +entry = iatCorrection, "fuel: IAT correction", float, "%.3f" +entry = cltCorrection, "fuel: CLT correction", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure correction", float, "%.3f" +entry = currentEnginePhase, "Engine Phase", int, "%d" entry = TPS2Value, "TPS2", float, "%.2f" entry = AFRValue, "Air/Fuel Ratio", float, "%.2f" entry = AFRValue2, "Air/Fuel Ratio 2", float, "%.2f" @@ -3042,7 +3056,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = turboSpeed, "Turbocharger Speed" int, "%d" entry = speedToRpmRatio, "s2rpm", float, "%.3f" entry = massAirFlowValue,"MAF air flow", float, "%.3f" - entry = chargeAirMass, "air mass", float, "%.3f" entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" entry = totalTriggerErrorCounter, "trg err",int, "%d" entry = idleAirValvePosition, "Idle Air Valve", float, "%.3f" @@ -3051,16 +3064,10 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" ; entry = rawHighFuelPressure, "Fuel pressure raw (high)", float, "%.3f" - entry = injectorLagMs, "fuel: injector lag", float, "%.3f" - entry = fuelRunning, "fuel: running", float, "%.3f" - entry = actualLastInjection, "fuel: Last injection", float, "%.3f" - entry = baseFuel, "fuel: base mass", float, "%.2f" + entry = injectorLagMs, , float, "%.3f" entry = fuelPidCorrection1,"fuel: fuel trim", float, "%.2f" entry = fuelPidCorrection2,"fuel: fuel trim 2", float, "%.2f" - entry = veValue, "fuel: VE", float, "%.3f" - entry = injectorDutyCycle,"fuel: injector duty cycle",float,"%.3f" entry = coilDutyCycle, "dwell: coil duty cycle", float,"%.3f" - entry = currentTargetAfr,"fuel: target AFR", float,"%.3f" entry = targetLambda, "fuel: target lambda", float,"%.4f" entry = totalFuelConsumption, "fuel: Total consumed", int, "%d" entry = fuelFlowRate, "fuel: Flow rate", float, "%.2f" @@ -3085,10 +3092,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = wallFuelCorrection,"fuel: wall corr ms", float, "%.3f" entry = wallFuelAmount, "fuel: wall amount", float, "%.3f" - entry = baroCorrection, "fuel: Barometric pressure correction",float,"%.3f" - entry = iatCorrection, "fuel: IAT correction", float, "%.3f" - entry = cltCorrection, "fuel: CLT correction", float,"%.3f" - entry = sparkDwellValue, "dwell: coil charge time", float,"%.3f" entry = vvtPositionB1E, "VVT: bank 1 exhaust", float, "%.1f" @@ -3098,7 +3101,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = vvtTargets2, "VVT: bank 1 exhaust target", int, "%d" entry = vvtTargets3, "VVT: bank 2 intake target", int, "%d" entry = vvtTargets4, "VVT: bank 2 exhaust target", int, "%d" - entry = injectionOffset, "injOffset" , float, "%.2F" ; is there a way to log parameter? entry = debugMode, "debugMode",int,"%d" entry = debugFloatField1, {bitStringValue( debugFieldF1List, debugMode )},float,"%.4f", { !enableLogDebugChannels } @@ -3130,8 +3132,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = recentErrorCode7, "error 7",int,"%d", { !enableLogErrorList } entry = recentErrorCode8, "error 8",int,"%d", { !enableLogErrorList } - entry = tCharge, "tCharge",float,"%.3f" - entry = clutchUpState, "clutch: up",int,"%d" entry = clutchDownState, "clutch: down",int,"%d" entry = brakePedalState, "brake: down",int,"%d" @@ -3159,7 +3159,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = VssAcceleration, "Vss Accel", float, "%.3f" entry = flexPercent, "Flex Ethanol %", int, "%d" - entry = currentEnginePhase, "Engine Phase", int, "%d" [Menu] diff --git a/firmware/tunerstudio/generated/rusefi_hellen88bmw.ini b/firmware/tunerstudio/generated/rusefi_hellen88bmw.ini index cc9a7bc93f..50adfc5e2f 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen88bmw.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen88bmw.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.28.hellen88bmw.3377314375" + signature = "rusEFI 2021.11.28.hellen88bmw.1681651383" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.28.hellen88bmw.3377314375" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.28.hellen88bmw.1681651383" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:16:23 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:44:39 UTC 2021 pageSize = 20000 page = 1 @@ -3030,6 +3030,20 @@ entry = knockRetard, "knockRetard", float, "%.3f" entry = VBatt, "VBatt", float, "%.3f" entry = oilPressure, "Oil Pressure", float, "%.3f" entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = currentTargetAfr, "fuel: target AFR", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", float, "%.3f" +entry = tCharge, "tCharge", float, "%.3f" +entry = iatCorrection, "fuel: IAT correction", float, "%.3f" +entry = cltCorrection, "fuel: CLT correction", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure correction", float, "%.3f" +entry = currentEnginePhase, "Engine Phase", int, "%d" entry = TPS2Value, "TPS2", float, "%.2f" entry = AFRValue, "Air/Fuel Ratio", float, "%.2f" entry = AFRValue2, "Air/Fuel Ratio 2", float, "%.2f" @@ -3042,7 +3056,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = turboSpeed, "Turbocharger Speed" int, "%d" entry = speedToRpmRatio, "s2rpm", float, "%.3f" entry = massAirFlowValue,"MAF air flow", float, "%.3f" - entry = chargeAirMass, "air mass", float, "%.3f" entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" entry = totalTriggerErrorCounter, "trg err",int, "%d" entry = idleAirValvePosition, "Idle Air Valve", float, "%.3f" @@ -3051,16 +3064,10 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" ; entry = rawHighFuelPressure, "Fuel pressure raw (high)", float, "%.3f" - entry = injectorLagMs, "fuel: injector lag", float, "%.3f" - entry = fuelRunning, "fuel: running", float, "%.3f" - entry = actualLastInjection, "fuel: Last injection", float, "%.3f" - entry = baseFuel, "fuel: base mass", float, "%.2f" + entry = injectorLagMs, , float, "%.3f" entry = fuelPidCorrection1,"fuel: fuel trim", float, "%.2f" entry = fuelPidCorrection2,"fuel: fuel trim 2", float, "%.2f" - entry = veValue, "fuel: VE", float, "%.3f" - entry = injectorDutyCycle,"fuel: injector duty cycle",float,"%.3f" entry = coilDutyCycle, "dwell: coil duty cycle", float,"%.3f" - entry = currentTargetAfr,"fuel: target AFR", float,"%.3f" entry = targetLambda, "fuel: target lambda", float,"%.4f" entry = totalFuelConsumption, "fuel: Total consumed", int, "%d" entry = fuelFlowRate, "fuel: Flow rate", float, "%.2f" @@ -3085,10 +3092,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = wallFuelCorrection,"fuel: wall corr ms", float, "%.3f" entry = wallFuelAmount, "fuel: wall amount", float, "%.3f" - entry = baroCorrection, "fuel: Barometric pressure correction",float,"%.3f" - entry = iatCorrection, "fuel: IAT correction", float, "%.3f" - entry = cltCorrection, "fuel: CLT correction", float,"%.3f" - entry = sparkDwellValue, "dwell: coil charge time", float,"%.3f" entry = vvtPositionB1E, "VVT: bank 1 exhaust", float, "%.1f" @@ -3098,7 +3101,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = vvtTargets2, "VVT: bank 1 exhaust target", int, "%d" entry = vvtTargets3, "VVT: bank 2 intake target", int, "%d" entry = vvtTargets4, "VVT: bank 2 exhaust target", int, "%d" - entry = injectionOffset, "injOffset" , float, "%.2F" ; is there a way to log parameter? entry = debugMode, "debugMode",int,"%d" entry = debugFloatField1, {bitStringValue( debugFieldF1List, debugMode )},float,"%.4f", { !enableLogDebugChannels } @@ -3130,8 +3132,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = recentErrorCode7, "error 7",int,"%d", { !enableLogErrorList } entry = recentErrorCode8, "error 8",int,"%d", { !enableLogErrorList } - entry = tCharge, "tCharge",float,"%.3f" - entry = clutchUpState, "clutch: up",int,"%d" entry = clutchDownState, "clutch: down",int,"%d" entry = brakePedalState, "brake: down",int,"%d" @@ -3159,7 +3159,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = VssAcceleration, "Vss Accel", float, "%.3f" entry = flexPercent, "Flex Ethanol %", int, "%d" - entry = currentEnginePhase, "Engine Phase", int, "%d" [Menu] diff --git a/firmware/tunerstudio/generated/rusefi_hellenNA6.ini b/firmware/tunerstudio/generated/rusefi_hellenNA6.ini index 6ee11bb37f..73dc5cf850 100644 --- a/firmware/tunerstudio/generated/rusefi_hellenNA6.ini +++ b/firmware/tunerstudio/generated/rusefi_hellenNA6.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.28.hellenNA6.514878896" + signature = "rusEFI 2021.11.28.hellenNA6.3016106304" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.28.hellenNA6.514878896" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.28.hellenNA6.3016106304" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:16:33 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:44:47 UTC 2021 pageSize = 20000 page = 1 @@ -3030,6 +3030,20 @@ entry = knockRetard, "knockRetard", float, "%.3f" entry = VBatt, "VBatt", float, "%.3f" entry = oilPressure, "Oil Pressure", float, "%.3f" entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = currentTargetAfr, "fuel: target AFR", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", float, "%.3f" +entry = tCharge, "tCharge", float, "%.3f" +entry = iatCorrection, "fuel: IAT correction", float, "%.3f" +entry = cltCorrection, "fuel: CLT correction", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure correction", float, "%.3f" +entry = currentEnginePhase, "Engine Phase", int, "%d" entry = TPS2Value, "TPS2", float, "%.2f" entry = AFRValue, "Air/Fuel Ratio", float, "%.2f" entry = AFRValue2, "Air/Fuel Ratio 2", float, "%.2f" @@ -3042,7 +3056,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = turboSpeed, "Turbocharger Speed" int, "%d" entry = speedToRpmRatio, "s2rpm", float, "%.3f" entry = massAirFlowValue,"MAF air flow", float, "%.3f" - entry = chargeAirMass, "air mass", float, "%.3f" entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" entry = totalTriggerErrorCounter, "trg err",int, "%d" entry = idleAirValvePosition, "Idle Air Valve", float, "%.3f" @@ -3051,16 +3064,10 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" ; entry = rawHighFuelPressure, "Fuel pressure raw (high)", float, "%.3f" - entry = injectorLagMs, "fuel: injector lag", float, "%.3f" - entry = fuelRunning, "fuel: running", float, "%.3f" - entry = actualLastInjection, "fuel: Last injection", float, "%.3f" - entry = baseFuel, "fuel: base mass", float, "%.2f" + entry = injectorLagMs, , float, "%.3f" entry = fuelPidCorrection1,"fuel: fuel trim", float, "%.2f" entry = fuelPidCorrection2,"fuel: fuel trim 2", float, "%.2f" - entry = veValue, "fuel: VE", float, "%.3f" - entry = injectorDutyCycle,"fuel: injector duty cycle",float,"%.3f" entry = coilDutyCycle, "dwell: coil duty cycle", float,"%.3f" - entry = currentTargetAfr,"fuel: target AFR", float,"%.3f" entry = targetLambda, "fuel: target lambda", float,"%.4f" entry = totalFuelConsumption, "fuel: Total consumed", int, "%d" entry = fuelFlowRate, "fuel: Flow rate", float, "%.2f" @@ -3085,10 +3092,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = wallFuelCorrection,"fuel: wall corr ms", float, "%.3f" entry = wallFuelAmount, "fuel: wall amount", float, "%.3f" - entry = baroCorrection, "fuel: Barometric pressure correction",float,"%.3f" - entry = iatCorrection, "fuel: IAT correction", float, "%.3f" - entry = cltCorrection, "fuel: CLT correction", float,"%.3f" - entry = sparkDwellValue, "dwell: coil charge time", float,"%.3f" entry = vvtPositionB1E, "VVT: bank 1 exhaust", float, "%.1f" @@ -3098,7 +3101,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = vvtTargets2, "VVT: bank 1 exhaust target", int, "%d" entry = vvtTargets3, "VVT: bank 2 intake target", int, "%d" entry = vvtTargets4, "VVT: bank 2 exhaust target", int, "%d" - entry = injectionOffset, "injOffset" , float, "%.2F" ; is there a way to log parameter? entry = debugMode, "debugMode",int,"%d" entry = debugFloatField1, {bitStringValue( debugFieldF1List, debugMode )},float,"%.4f", { !enableLogDebugChannels } @@ -3130,8 +3132,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = recentErrorCode7, "error 7",int,"%d", { !enableLogErrorList } entry = recentErrorCode8, "error 8",int,"%d", { !enableLogErrorList } - entry = tCharge, "tCharge",float,"%.3f" - entry = clutchUpState, "clutch: up",int,"%d" entry = clutchDownState, "clutch: down",int,"%d" entry = brakePedalState, "brake: down",int,"%d" @@ -3159,7 +3159,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = VssAcceleration, "Vss Accel", float, "%.3f" entry = flexPercent, "Flex Ethanol %", int, "%d" - entry = currentEnginePhase, "Engine Phase", int, "%d" [Menu] diff --git a/firmware/tunerstudio/generated/rusefi_hellen_cypress.ini b/firmware/tunerstudio/generated/rusefi_hellen_cypress.ini index 80c7d928d4..b8071dc37e 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen_cypress.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen_cypress.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.28.hellen_cypress.1383648420" + signature = "rusEFI 2021.11.28.hellen_cypress.4279140436" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.28.hellen_cypress.1383648420" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.28.hellen_cypress.4279140436" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Sun Nov 28 19:17:06 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Sun Nov 28 19:45:19 UTC 2021 pageSize = 20000 page = 1 @@ -3030,6 +3030,20 @@ entry = knockRetard, "knockRetard", float, "%.3f" entry = VBatt, "VBatt", float, "%.3f" entry = oilPressure, "Oil Pressure", float, "%.3f" entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = currentTargetAfr, "fuel: target AFR", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", float, "%.3f" +entry = tCharge, "tCharge", float, "%.3f" +entry = iatCorrection, "fuel: IAT correction", float, "%.3f" +entry = cltCorrection, "fuel: CLT correction", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure correction", float, "%.3f" +entry = currentEnginePhase, "Engine Phase", int, "%d" entry = TPS2Value, "TPS2", float, "%.2f" entry = AFRValue, "Air/Fuel Ratio", float, "%.2f" entry = AFRValue2, "Air/Fuel Ratio 2", float, "%.2f" @@ -3042,7 +3056,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = turboSpeed, "Turbocharger Speed" int, "%d" entry = speedToRpmRatio, "s2rpm", float, "%.3f" entry = massAirFlowValue,"MAF air flow", float, "%.3f" - entry = chargeAirMass, "air mass", float, "%.3f" entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" entry = totalTriggerErrorCounter, "trg err",int, "%d" entry = idleAirValvePosition, "Idle Air Valve", float, "%.3f" @@ -3051,16 +3064,10 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" ; entry = rawHighFuelPressure, "Fuel pressure raw (high)", float, "%.3f" - entry = injectorLagMs, "fuel: injector lag", float, "%.3f" - entry = fuelRunning, "fuel: running", float, "%.3f" - entry = actualLastInjection, "fuel: Last injection", float, "%.3f" - entry = baseFuel, "fuel: base mass", float, "%.2f" + entry = injectorLagMs, , float, "%.3f" entry = fuelPidCorrection1,"fuel: fuel trim", float, "%.2f" entry = fuelPidCorrection2,"fuel: fuel trim 2", float, "%.2f" - entry = veValue, "fuel: VE", float, "%.3f" - entry = injectorDutyCycle,"fuel: injector duty cycle",float,"%.3f" entry = coilDutyCycle, "dwell: coil duty cycle", float,"%.3f" - entry = currentTargetAfr,"fuel: target AFR", float,"%.3f" entry = targetLambda, "fuel: target lambda", float,"%.4f" entry = totalFuelConsumption, "fuel: Total consumed", int, "%d" entry = fuelFlowRate, "fuel: Flow rate", float, "%.2f" @@ -3085,10 +3092,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = wallFuelCorrection,"fuel: wall corr ms", float, "%.3f" entry = wallFuelAmount, "fuel: wall amount", float, "%.3f" - entry = baroCorrection, "fuel: Barometric pressure correction",float,"%.3f" - entry = iatCorrection, "fuel: IAT correction", float, "%.3f" - entry = cltCorrection, "fuel: CLT correction", float,"%.3f" - entry = sparkDwellValue, "dwell: coil charge time", float,"%.3f" entry = vvtPositionB1E, "VVT: bank 1 exhaust", float, "%.1f" @@ -3098,7 +3101,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = vvtTargets2, "VVT: bank 1 exhaust target", int, "%d" entry = vvtTargets3, "VVT: bank 2 intake target", int, "%d" entry = vvtTargets4, "VVT: bank 2 exhaust target", int, "%d" - entry = injectionOffset, "injOffset" , float, "%.2F" ; is there a way to log parameter? entry = debugMode, "debugMode",int,"%d" entry = debugFloatField1, {bitStringValue( debugFieldF1List, debugMode )},float,"%.4f", { !enableLogDebugChannels } @@ -3130,8 +3132,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = recentErrorCode7, "error 7",int,"%d", { !enableLogErrorList } entry = recentErrorCode8, "error 8",int,"%d", { !enableLogErrorList } - entry = tCharge, "tCharge",float,"%.3f" - entry = clutchUpState, "clutch: up",int,"%d" entry = clutchDownState, "clutch: down",int,"%d" entry = brakePedalState, "brake: down",int,"%d" @@ -3159,7 +3159,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = VssAcceleration, "Vss Accel", float, "%.3f" entry = flexPercent, "Flex Ethanol %", int, "%d" - entry = currentEnginePhase, "Engine Phase", int, "%d" [Menu] diff --git a/firmware/tunerstudio/generated/rusefi_kinetis.ini b/firmware/tunerstudio/generated/rusefi_kinetis.ini index d84010b231..d1695a1cd9 100644 --- a/firmware/tunerstudio/generated/rusefi_kinetis.ini +++ b/firmware/tunerstudio/generated/rusefi_kinetis.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.28.kin.2916941912" + signature = "rusEFI 2021.11.28.kin.11226280" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.28.kin.2916941912" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.28.kin.11226280" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sun Nov 28 19:17:03 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sun Nov 28 19:45:17 UTC 2021 pageSize = 19972 page = 1 @@ -2996,6 +2996,20 @@ entry = knockRetard, "knockRetard", float, "%.3f" entry = VBatt, "VBatt", float, "%.3f" entry = oilPressure, "Oil Pressure", float, "%.3f" entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = currentTargetAfr, "fuel: target AFR", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", float, "%.3f" +entry = tCharge, "tCharge", float, "%.3f" +entry = iatCorrection, "fuel: IAT correction", float, "%.3f" +entry = cltCorrection, "fuel: CLT correction", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure correction", float, "%.3f" +entry = currentEnginePhase, "Engine Phase", int, "%d" entry = TPS2Value, "TPS2", float, "%.2f" entry = AFRValue, "Air/Fuel Ratio", float, "%.2f" entry = AFRValue2, "Air/Fuel Ratio 2", float, "%.2f" @@ -3008,7 +3022,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = turboSpeed, "Turbocharger Speed" int, "%d" entry = speedToRpmRatio, "s2rpm", float, "%.3f" entry = massAirFlowValue,"MAF air flow", float, "%.3f" - entry = chargeAirMass, "air mass", float, "%.3f" entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" entry = totalTriggerErrorCounter, "trg err",int, "%d" entry = idleAirValvePosition, "Idle Air Valve", float, "%.3f" @@ -3017,16 +3030,10 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" ; entry = rawHighFuelPressure, "Fuel pressure raw (high)", float, "%.3f" - entry = injectorLagMs, "fuel: injector lag", float, "%.3f" - entry = fuelRunning, "fuel: running", float, "%.3f" - entry = actualLastInjection, "fuel: Last injection", float, "%.3f" - entry = baseFuel, "fuel: base mass", float, "%.2f" + entry = injectorLagMs, , float, "%.3f" entry = fuelPidCorrection1,"fuel: fuel trim", float, "%.2f" entry = fuelPidCorrection2,"fuel: fuel trim 2", float, "%.2f" - entry = veValue, "fuel: VE", float, "%.3f" - entry = injectorDutyCycle,"fuel: injector duty cycle",float,"%.3f" entry = coilDutyCycle, "dwell: coil duty cycle", float,"%.3f" - entry = currentTargetAfr,"fuel: target AFR", float,"%.3f" entry = targetLambda, "fuel: target lambda", float,"%.4f" entry = totalFuelConsumption, "fuel: Total consumed", int, "%d" entry = fuelFlowRate, "fuel: Flow rate", float, "%.2f" @@ -3051,10 +3058,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = wallFuelCorrection,"fuel: wall corr ms", float, "%.3f" entry = wallFuelAmount, "fuel: wall amount", float, "%.3f" - entry = baroCorrection, "fuel: Barometric pressure correction",float,"%.3f" - entry = iatCorrection, "fuel: IAT correction", float, "%.3f" - entry = cltCorrection, "fuel: CLT correction", float,"%.3f" - entry = sparkDwellValue, "dwell: coil charge time", float,"%.3f" entry = vvtPositionB1E, "VVT: bank 1 exhaust", float, "%.1f" @@ -3064,7 +3067,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = vvtTargets2, "VVT: bank 1 exhaust target", int, "%d" entry = vvtTargets3, "VVT: bank 2 intake target", int, "%d" entry = vvtTargets4, "VVT: bank 2 exhaust target", int, "%d" - entry = injectionOffset, "injOffset" , float, "%.2F" ; is there a way to log parameter? entry = debugMode, "debugMode",int,"%d" entry = debugFloatField1, {bitStringValue( debugFieldF1List, debugMode )},float,"%.4f", { !enableLogDebugChannels } @@ -3096,8 +3098,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = recentErrorCode7, "error 7",int,"%d", { !enableLogErrorList } entry = recentErrorCode8, "error 8",int,"%d", { !enableLogErrorList } - entry = tCharge, "tCharge",float,"%.3f" - entry = clutchUpState, "clutch: up",int,"%d" entry = clutchDownState, "clutch: down",int,"%d" entry = brakePedalState, "brake: down",int,"%d" @@ -3125,7 +3125,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = VssAcceleration, "Vss Accel", float, "%.3f" entry = flexPercent, "Flex Ethanol %", int, "%d" - entry = currentEnginePhase, "Engine Phase", int, "%d" [Menu] diff --git a/firmware/tunerstudio/generated/rusefi_mre_f4.ini b/firmware/tunerstudio/generated/rusefi_mre_f4.ini index c20c8badee..cc508ba675 100644 --- a/firmware/tunerstudio/generated/rusefi_mre_f4.ini +++ b/firmware/tunerstudio/generated/rusefi_mre_f4.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.28.mre_f4.3685372332" + signature = "rusEFI 2021.11.28.mre_f4.1994136924" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.28.mre_f4.3685372332" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.28.mre_f4.1994136924" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:16:39 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:44:54 UTC 2021 pageSize = 20000 page = 1 @@ -3030,6 +3030,20 @@ entry = knockRetard, "knockRetard", float, "%.3f" entry = VBatt, "VBatt", float, "%.3f" entry = oilPressure, "Oil Pressure", float, "%.3f" entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = currentTargetAfr, "fuel: target AFR", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", float, "%.3f" +entry = tCharge, "tCharge", float, "%.3f" +entry = iatCorrection, "fuel: IAT correction", float, "%.3f" +entry = cltCorrection, "fuel: CLT correction", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure correction", float, "%.3f" +entry = currentEnginePhase, "Engine Phase", int, "%d" entry = TPS2Value, "TPS2", float, "%.2f" entry = AFRValue, "Air/Fuel Ratio", float, "%.2f" entry = AFRValue2, "Air/Fuel Ratio 2", float, "%.2f" @@ -3042,7 +3056,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = turboSpeed, "Turbocharger Speed" int, "%d" entry = speedToRpmRatio, "s2rpm", float, "%.3f" entry = massAirFlowValue,"MAF air flow", float, "%.3f" - entry = chargeAirMass, "air mass", float, "%.3f" entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" entry = totalTriggerErrorCounter, "trg err",int, "%d" entry = idleAirValvePosition, "Idle Air Valve", float, "%.3f" @@ -3051,16 +3064,10 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" ; entry = rawHighFuelPressure, "Fuel pressure raw (high)", float, "%.3f" - entry = injectorLagMs, "fuel: injector lag", float, "%.3f" - entry = fuelRunning, "fuel: running", float, "%.3f" - entry = actualLastInjection, "fuel: Last injection", float, "%.3f" - entry = baseFuel, "fuel: base mass", float, "%.2f" + entry = injectorLagMs, , float, "%.3f" entry = fuelPidCorrection1,"fuel: fuel trim", float, "%.2f" entry = fuelPidCorrection2,"fuel: fuel trim 2", float, "%.2f" - entry = veValue, "fuel: VE", float, "%.3f" - entry = injectorDutyCycle,"fuel: injector duty cycle",float,"%.3f" entry = coilDutyCycle, "dwell: coil duty cycle", float,"%.3f" - entry = currentTargetAfr,"fuel: target AFR", float,"%.3f" entry = targetLambda, "fuel: target lambda", float,"%.4f" entry = totalFuelConsumption, "fuel: Total consumed", int, "%d" entry = fuelFlowRate, "fuel: Flow rate", float, "%.2f" @@ -3085,10 +3092,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = wallFuelCorrection,"fuel: wall corr ms", float, "%.3f" entry = wallFuelAmount, "fuel: wall amount", float, "%.3f" - entry = baroCorrection, "fuel: Barometric pressure correction",float,"%.3f" - entry = iatCorrection, "fuel: IAT correction", float, "%.3f" - entry = cltCorrection, "fuel: CLT correction", float,"%.3f" - entry = sparkDwellValue, "dwell: coil charge time", float,"%.3f" entry = vvtPositionB1E, "VVT: bank 1 exhaust", float, "%.1f" @@ -3098,7 +3101,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = vvtTargets2, "VVT: bank 1 exhaust target", int, "%d" entry = vvtTargets3, "VVT: bank 2 intake target", int, "%d" entry = vvtTargets4, "VVT: bank 2 exhaust target", int, "%d" - entry = injectionOffset, "injOffset" , float, "%.2F" ; is there a way to log parameter? entry = debugMode, "debugMode",int,"%d" entry = debugFloatField1, {bitStringValue( debugFieldF1List, debugMode )},float,"%.4f", { !enableLogDebugChannels } @@ -3130,8 +3132,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = recentErrorCode7, "error 7",int,"%d", { !enableLogErrorList } entry = recentErrorCode8, "error 8",int,"%d", { !enableLogErrorList } - entry = tCharge, "tCharge",float,"%.3f" - entry = clutchUpState, "clutch: up",int,"%d" entry = clutchDownState, "clutch: down",int,"%d" entry = brakePedalState, "brake: down",int,"%d" @@ -3159,7 +3159,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = VssAcceleration, "Vss Accel", float, "%.3f" entry = flexPercent, "Flex Ethanol %", int, "%d" - entry = currentEnginePhase, "Engine Phase", int, "%d" [Menu] diff --git a/firmware/tunerstudio/generated/rusefi_mre_f7.ini b/firmware/tunerstudio/generated/rusefi_mre_f7.ini index b8e62877bc..aa2c81ccf9 100644 --- a/firmware/tunerstudio/generated/rusefi_mre_f7.ini +++ b/firmware/tunerstudio/generated/rusefi_mre_f7.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.28.mre_f7.3685372332" + signature = "rusEFI 2021.11.28.mre_f7.1994136924" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.28.mre_f7.3685372332" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.28.mre_f7.1994136924" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:16:36 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:44:51 UTC 2021 pageSize = 20000 page = 1 @@ -3030,6 +3030,20 @@ entry = knockRetard, "knockRetard", float, "%.3f" entry = VBatt, "VBatt", float, "%.3f" entry = oilPressure, "Oil Pressure", float, "%.3f" entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = currentTargetAfr, "fuel: target AFR", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", float, "%.3f" +entry = tCharge, "tCharge", float, "%.3f" +entry = iatCorrection, "fuel: IAT correction", float, "%.3f" +entry = cltCorrection, "fuel: CLT correction", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure correction", float, "%.3f" +entry = currentEnginePhase, "Engine Phase", int, "%d" entry = TPS2Value, "TPS2", float, "%.2f" entry = AFRValue, "Air/Fuel Ratio", float, "%.2f" entry = AFRValue2, "Air/Fuel Ratio 2", float, "%.2f" @@ -3042,7 +3056,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = turboSpeed, "Turbocharger Speed" int, "%d" entry = speedToRpmRatio, "s2rpm", float, "%.3f" entry = massAirFlowValue,"MAF air flow", float, "%.3f" - entry = chargeAirMass, "air mass", float, "%.3f" entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" entry = totalTriggerErrorCounter, "trg err",int, "%d" entry = idleAirValvePosition, "Idle Air Valve", float, "%.3f" @@ -3051,16 +3064,10 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" ; entry = rawHighFuelPressure, "Fuel pressure raw (high)", float, "%.3f" - entry = injectorLagMs, "fuel: injector lag", float, "%.3f" - entry = fuelRunning, "fuel: running", float, "%.3f" - entry = actualLastInjection, "fuel: Last injection", float, "%.3f" - entry = baseFuel, "fuel: base mass", float, "%.2f" + entry = injectorLagMs, , float, "%.3f" entry = fuelPidCorrection1,"fuel: fuel trim", float, "%.2f" entry = fuelPidCorrection2,"fuel: fuel trim 2", float, "%.2f" - entry = veValue, "fuel: VE", float, "%.3f" - entry = injectorDutyCycle,"fuel: injector duty cycle",float,"%.3f" entry = coilDutyCycle, "dwell: coil duty cycle", float,"%.3f" - entry = currentTargetAfr,"fuel: target AFR", float,"%.3f" entry = targetLambda, "fuel: target lambda", float,"%.4f" entry = totalFuelConsumption, "fuel: Total consumed", int, "%d" entry = fuelFlowRate, "fuel: Flow rate", float, "%.2f" @@ -3085,10 +3092,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = wallFuelCorrection,"fuel: wall corr ms", float, "%.3f" entry = wallFuelAmount, "fuel: wall amount", float, "%.3f" - entry = baroCorrection, "fuel: Barometric pressure correction",float,"%.3f" - entry = iatCorrection, "fuel: IAT correction", float, "%.3f" - entry = cltCorrection, "fuel: CLT correction", float,"%.3f" - entry = sparkDwellValue, "dwell: coil charge time", float,"%.3f" entry = vvtPositionB1E, "VVT: bank 1 exhaust", float, "%.1f" @@ -3098,7 +3101,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = vvtTargets2, "VVT: bank 1 exhaust target", int, "%d" entry = vvtTargets3, "VVT: bank 2 intake target", int, "%d" entry = vvtTargets4, "VVT: bank 2 exhaust target", int, "%d" - entry = injectionOffset, "injOffset" , float, "%.2F" ; is there a way to log parameter? entry = debugMode, "debugMode",int,"%d" entry = debugFloatField1, {bitStringValue( debugFieldF1List, debugMode )},float,"%.4f", { !enableLogDebugChannels } @@ -3130,8 +3132,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = recentErrorCode7, "error 7",int,"%d", { !enableLogErrorList } entry = recentErrorCode8, "error 8",int,"%d", { !enableLogErrorList } - entry = tCharge, "tCharge",float,"%.3f" - entry = clutchUpState, "clutch: up",int,"%d" entry = clutchDownState, "clutch: down",int,"%d" entry = brakePedalState, "brake: down",int,"%d" @@ -3159,7 +3159,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = VssAcceleration, "Vss Accel", float, "%.3f" entry = flexPercent, "Flex Ethanol %", int, "%d" - entry = currentEnginePhase, "Engine Phase", int, "%d" [Menu] diff --git a/firmware/tunerstudio/generated/rusefi_prometheus_405.ini b/firmware/tunerstudio/generated/rusefi_prometheus_405.ini index f358a3c2e2..441111e5e1 100644 --- a/firmware/tunerstudio/generated/rusefi_prometheus_405.ini +++ b/firmware/tunerstudio/generated/rusefi_prometheus_405.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.28.prometheus_405.946336510" + signature = "rusEFI 2021.11.28.prometheus_405.2500967950" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.28.prometheus_405.946336510" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.28.prometheus_405.2500967950" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:16:48 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:45:02 UTC 2021 pageSize = 20000 page = 1 @@ -3030,6 +3030,20 @@ entry = knockRetard, "knockRetard", float, "%.3f" entry = VBatt, "VBatt", float, "%.3f" entry = oilPressure, "Oil Pressure", float, "%.3f" entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = currentTargetAfr, "fuel: target AFR", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", float, "%.3f" +entry = tCharge, "tCharge", float, "%.3f" +entry = iatCorrection, "fuel: IAT correction", float, "%.3f" +entry = cltCorrection, "fuel: CLT correction", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure correction", float, "%.3f" +entry = currentEnginePhase, "Engine Phase", int, "%d" entry = TPS2Value, "TPS2", float, "%.2f" entry = AFRValue, "Air/Fuel Ratio", float, "%.2f" entry = AFRValue2, "Air/Fuel Ratio 2", float, "%.2f" @@ -3042,7 +3056,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = turboSpeed, "Turbocharger Speed" int, "%d" entry = speedToRpmRatio, "s2rpm", float, "%.3f" entry = massAirFlowValue,"MAF air flow", float, "%.3f" - entry = chargeAirMass, "air mass", float, "%.3f" entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" entry = totalTriggerErrorCounter, "trg err",int, "%d" entry = idleAirValvePosition, "Idle Air Valve", float, "%.3f" @@ -3051,16 +3064,10 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" ; entry = rawHighFuelPressure, "Fuel pressure raw (high)", float, "%.3f" - entry = injectorLagMs, "fuel: injector lag", float, "%.3f" - entry = fuelRunning, "fuel: running", float, "%.3f" - entry = actualLastInjection, "fuel: Last injection", float, "%.3f" - entry = baseFuel, "fuel: base mass", float, "%.2f" + entry = injectorLagMs, , float, "%.3f" entry = fuelPidCorrection1,"fuel: fuel trim", float, "%.2f" entry = fuelPidCorrection2,"fuel: fuel trim 2", float, "%.2f" - entry = veValue, "fuel: VE", float, "%.3f" - entry = injectorDutyCycle,"fuel: injector duty cycle",float,"%.3f" entry = coilDutyCycle, "dwell: coil duty cycle", float,"%.3f" - entry = currentTargetAfr,"fuel: target AFR", float,"%.3f" entry = targetLambda, "fuel: target lambda", float,"%.4f" entry = totalFuelConsumption, "fuel: Total consumed", int, "%d" entry = fuelFlowRate, "fuel: Flow rate", float, "%.2f" @@ -3085,10 +3092,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = wallFuelCorrection,"fuel: wall corr ms", float, "%.3f" entry = wallFuelAmount, "fuel: wall amount", float, "%.3f" - entry = baroCorrection, "fuel: Barometric pressure correction",float,"%.3f" - entry = iatCorrection, "fuel: IAT correction", float, "%.3f" - entry = cltCorrection, "fuel: CLT correction", float,"%.3f" - entry = sparkDwellValue, "dwell: coil charge time", float,"%.3f" entry = vvtPositionB1E, "VVT: bank 1 exhaust", float, "%.1f" @@ -3098,7 +3101,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = vvtTargets2, "VVT: bank 1 exhaust target", int, "%d" entry = vvtTargets3, "VVT: bank 2 intake target", int, "%d" entry = vvtTargets4, "VVT: bank 2 exhaust target", int, "%d" - entry = injectionOffset, "injOffset" , float, "%.2F" ; is there a way to log parameter? entry = debugMode, "debugMode",int,"%d" entry = debugFloatField1, {bitStringValue( debugFieldF1List, debugMode )},float,"%.4f", { !enableLogDebugChannels } @@ -3130,8 +3132,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = recentErrorCode7, "error 7",int,"%d", { !enableLogErrorList } entry = recentErrorCode8, "error 8",int,"%d", { !enableLogErrorList } - entry = tCharge, "tCharge",float,"%.3f" - entry = clutchUpState, "clutch: up",int,"%d" entry = clutchDownState, "clutch: down",int,"%d" entry = brakePedalState, "brake: down",int,"%d" @@ -3159,7 +3159,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = VssAcceleration, "Vss Accel", float, "%.3f" entry = flexPercent, "Flex Ethanol %", int, "%d" - entry = currentEnginePhase, "Engine Phase", int, "%d" [Menu] diff --git a/firmware/tunerstudio/generated/rusefi_prometheus_469.ini b/firmware/tunerstudio/generated/rusefi_prometheus_469.ini index 97be9ba254..ba4553acb2 100644 --- a/firmware/tunerstudio/generated/rusefi_prometheus_469.ini +++ b/firmware/tunerstudio/generated/rusefi_prometheus_469.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.28.prometheus_469.946336510" + signature = "rusEFI 2021.11.28.prometheus_469.2500967950" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.28.prometheus_469.946336510" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.28.prometheus_469.2500967950" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:16:45 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:44:59 UTC 2021 pageSize = 20000 page = 1 @@ -3030,6 +3030,20 @@ entry = knockRetard, "knockRetard", float, "%.3f" entry = VBatt, "VBatt", float, "%.3f" entry = oilPressure, "Oil Pressure", float, "%.3f" entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = currentTargetAfr, "fuel: target AFR", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", float, "%.3f" +entry = tCharge, "tCharge", float, "%.3f" +entry = iatCorrection, "fuel: IAT correction", float, "%.3f" +entry = cltCorrection, "fuel: CLT correction", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure correction", float, "%.3f" +entry = currentEnginePhase, "Engine Phase", int, "%d" entry = TPS2Value, "TPS2", float, "%.2f" entry = AFRValue, "Air/Fuel Ratio", float, "%.2f" entry = AFRValue2, "Air/Fuel Ratio 2", float, "%.2f" @@ -3042,7 +3056,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = turboSpeed, "Turbocharger Speed" int, "%d" entry = speedToRpmRatio, "s2rpm", float, "%.3f" entry = massAirFlowValue,"MAF air flow", float, "%.3f" - entry = chargeAirMass, "air mass", float, "%.3f" entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" entry = totalTriggerErrorCounter, "trg err",int, "%d" entry = idleAirValvePosition, "Idle Air Valve", float, "%.3f" @@ -3051,16 +3064,10 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" ; entry = rawHighFuelPressure, "Fuel pressure raw (high)", float, "%.3f" - entry = injectorLagMs, "fuel: injector lag", float, "%.3f" - entry = fuelRunning, "fuel: running", float, "%.3f" - entry = actualLastInjection, "fuel: Last injection", float, "%.3f" - entry = baseFuel, "fuel: base mass", float, "%.2f" + entry = injectorLagMs, , float, "%.3f" entry = fuelPidCorrection1,"fuel: fuel trim", float, "%.2f" entry = fuelPidCorrection2,"fuel: fuel trim 2", float, "%.2f" - entry = veValue, "fuel: VE", float, "%.3f" - entry = injectorDutyCycle,"fuel: injector duty cycle",float,"%.3f" entry = coilDutyCycle, "dwell: coil duty cycle", float,"%.3f" - entry = currentTargetAfr,"fuel: target AFR", float,"%.3f" entry = targetLambda, "fuel: target lambda", float,"%.4f" entry = totalFuelConsumption, "fuel: Total consumed", int, "%d" entry = fuelFlowRate, "fuel: Flow rate", float, "%.2f" @@ -3085,10 +3092,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = wallFuelCorrection,"fuel: wall corr ms", float, "%.3f" entry = wallFuelAmount, "fuel: wall amount", float, "%.3f" - entry = baroCorrection, "fuel: Barometric pressure correction",float,"%.3f" - entry = iatCorrection, "fuel: IAT correction", float, "%.3f" - entry = cltCorrection, "fuel: CLT correction", float,"%.3f" - entry = sparkDwellValue, "dwell: coil charge time", float,"%.3f" entry = vvtPositionB1E, "VVT: bank 1 exhaust", float, "%.1f" @@ -3098,7 +3101,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = vvtTargets2, "VVT: bank 1 exhaust target", int, "%d" entry = vvtTargets3, "VVT: bank 2 intake target", int, "%d" entry = vvtTargets4, "VVT: bank 2 exhaust target", int, "%d" - entry = injectionOffset, "injOffset" , float, "%.2F" ; is there a way to log parameter? entry = debugMode, "debugMode",int,"%d" entry = debugFloatField1, {bitStringValue( debugFieldF1List, debugMode )},float,"%.4f", { !enableLogDebugChannels } @@ -3130,8 +3132,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = recentErrorCode7, "error 7",int,"%d", { !enableLogErrorList } entry = recentErrorCode8, "error 8",int,"%d", { !enableLogErrorList } - entry = tCharge, "tCharge",float,"%.3f" - entry = clutchUpState, "clutch: up",int,"%d" entry = clutchDownState, "clutch: down",int,"%d" entry = brakePedalState, "brake: down",int,"%d" @@ -3159,7 +3159,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = VssAcceleration, "Vss Accel", float, "%.3f" entry = flexPercent, "Flex Ethanol %", int, "%d" - entry = currentEnginePhase, "Engine Phase", int, "%d" [Menu] diff --git a/firmware/tunerstudio/generated/rusefi_proteus_f4.ini b/firmware/tunerstudio/generated/rusefi_proteus_f4.ini index f7e5f0c213..1e77401e80 100644 --- a/firmware/tunerstudio/generated/rusefi_proteus_f4.ini +++ b/firmware/tunerstudio/generated/rusefi_proteus_f4.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.28.proteus_f4.3287433369" + signature = "rusEFI 2021.11.28.proteus_f4.1854147689" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.28.proteus_f4.3287433369" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.28.proteus_f4.1854147689" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:16:54 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:45:08 UTC 2021 pageSize = 20000 page = 1 @@ -3030,6 +3030,20 @@ entry = knockRetard, "knockRetard", float, "%.3f" entry = VBatt, "VBatt", float, "%.3f" entry = oilPressure, "Oil Pressure", float, "%.3f" entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = currentTargetAfr, "fuel: target AFR", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", float, "%.3f" +entry = tCharge, "tCharge", float, "%.3f" +entry = iatCorrection, "fuel: IAT correction", float, "%.3f" +entry = cltCorrection, "fuel: CLT correction", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure correction", float, "%.3f" +entry = currentEnginePhase, "Engine Phase", int, "%d" entry = TPS2Value, "TPS2", float, "%.2f" entry = AFRValue, "Air/Fuel Ratio", float, "%.2f" entry = AFRValue2, "Air/Fuel Ratio 2", float, "%.2f" @@ -3042,7 +3056,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = turboSpeed, "Turbocharger Speed" int, "%d" entry = speedToRpmRatio, "s2rpm", float, "%.3f" entry = massAirFlowValue,"MAF air flow", float, "%.3f" - entry = chargeAirMass, "air mass", float, "%.3f" entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" entry = totalTriggerErrorCounter, "trg err",int, "%d" entry = idleAirValvePosition, "Idle Air Valve", float, "%.3f" @@ -3051,16 +3064,10 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" ; entry = rawHighFuelPressure, "Fuel pressure raw (high)", float, "%.3f" - entry = injectorLagMs, "fuel: injector lag", float, "%.3f" - entry = fuelRunning, "fuel: running", float, "%.3f" - entry = actualLastInjection, "fuel: Last injection", float, "%.3f" - entry = baseFuel, "fuel: base mass", float, "%.2f" + entry = injectorLagMs, , float, "%.3f" entry = fuelPidCorrection1,"fuel: fuel trim", float, "%.2f" entry = fuelPidCorrection2,"fuel: fuel trim 2", float, "%.2f" - entry = veValue, "fuel: VE", float, "%.3f" - entry = injectorDutyCycle,"fuel: injector duty cycle",float,"%.3f" entry = coilDutyCycle, "dwell: coil duty cycle", float,"%.3f" - entry = currentTargetAfr,"fuel: target AFR", float,"%.3f" entry = targetLambda, "fuel: target lambda", float,"%.4f" entry = totalFuelConsumption, "fuel: Total consumed", int, "%d" entry = fuelFlowRate, "fuel: Flow rate", float, "%.2f" @@ -3085,10 +3092,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = wallFuelCorrection,"fuel: wall corr ms", float, "%.3f" entry = wallFuelAmount, "fuel: wall amount", float, "%.3f" - entry = baroCorrection, "fuel: Barometric pressure correction",float,"%.3f" - entry = iatCorrection, "fuel: IAT correction", float, "%.3f" - entry = cltCorrection, "fuel: CLT correction", float,"%.3f" - entry = sparkDwellValue, "dwell: coil charge time", float,"%.3f" entry = vvtPositionB1E, "VVT: bank 1 exhaust", float, "%.1f" @@ -3098,7 +3101,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = vvtTargets2, "VVT: bank 1 exhaust target", int, "%d" entry = vvtTargets3, "VVT: bank 2 intake target", int, "%d" entry = vvtTargets4, "VVT: bank 2 exhaust target", int, "%d" - entry = injectionOffset, "injOffset" , float, "%.2F" ; is there a way to log parameter? entry = debugMode, "debugMode",int,"%d" entry = debugFloatField1, {bitStringValue( debugFieldF1List, debugMode )},float,"%.4f", { !enableLogDebugChannels } @@ -3130,8 +3132,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = recentErrorCode7, "error 7",int,"%d", { !enableLogErrorList } entry = recentErrorCode8, "error 8",int,"%d", { !enableLogErrorList } - entry = tCharge, "tCharge",float,"%.3f" - entry = clutchUpState, "clutch: up",int,"%d" entry = clutchDownState, "clutch: down",int,"%d" entry = brakePedalState, "brake: down",int,"%d" @@ -3159,7 +3159,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = VssAcceleration, "Vss Accel", float, "%.3f" entry = flexPercent, "Flex Ethanol %", int, "%d" - entry = currentEnginePhase, "Engine Phase", int, "%d" [Menu] diff --git a/firmware/tunerstudio/generated/rusefi_proteus_f7.ini b/firmware/tunerstudio/generated/rusefi_proteus_f7.ini index 06d39386c9..b0cc741b0f 100644 --- a/firmware/tunerstudio/generated/rusefi_proteus_f7.ini +++ b/firmware/tunerstudio/generated/rusefi_proteus_f7.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.28.proteus_f7.3287433369" + signature = "rusEFI 2021.11.28.proteus_f7.1854147689" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.28.proteus_f7.3287433369" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.28.proteus_f7.1854147689" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:16:51 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:45:05 UTC 2021 pageSize = 20000 page = 1 @@ -3030,6 +3030,20 @@ entry = knockRetard, "knockRetard", float, "%.3f" entry = VBatt, "VBatt", float, "%.3f" entry = oilPressure, "Oil Pressure", float, "%.3f" entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = currentTargetAfr, "fuel: target AFR", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", float, "%.3f" +entry = tCharge, "tCharge", float, "%.3f" +entry = iatCorrection, "fuel: IAT correction", float, "%.3f" +entry = cltCorrection, "fuel: CLT correction", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure correction", float, "%.3f" +entry = currentEnginePhase, "Engine Phase", int, "%d" entry = TPS2Value, "TPS2", float, "%.2f" entry = AFRValue, "Air/Fuel Ratio", float, "%.2f" entry = AFRValue2, "Air/Fuel Ratio 2", float, "%.2f" @@ -3042,7 +3056,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = turboSpeed, "Turbocharger Speed" int, "%d" entry = speedToRpmRatio, "s2rpm", float, "%.3f" entry = massAirFlowValue,"MAF air flow", float, "%.3f" - entry = chargeAirMass, "air mass", float, "%.3f" entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" entry = totalTriggerErrorCounter, "trg err",int, "%d" entry = idleAirValvePosition, "Idle Air Valve", float, "%.3f" @@ -3051,16 +3064,10 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" ; entry = rawHighFuelPressure, "Fuel pressure raw (high)", float, "%.3f" - entry = injectorLagMs, "fuel: injector lag", float, "%.3f" - entry = fuelRunning, "fuel: running", float, "%.3f" - entry = actualLastInjection, "fuel: Last injection", float, "%.3f" - entry = baseFuel, "fuel: base mass", float, "%.2f" + entry = injectorLagMs, , float, "%.3f" entry = fuelPidCorrection1,"fuel: fuel trim", float, "%.2f" entry = fuelPidCorrection2,"fuel: fuel trim 2", float, "%.2f" - entry = veValue, "fuel: VE", float, "%.3f" - entry = injectorDutyCycle,"fuel: injector duty cycle",float,"%.3f" entry = coilDutyCycle, "dwell: coil duty cycle", float,"%.3f" - entry = currentTargetAfr,"fuel: target AFR", float,"%.3f" entry = targetLambda, "fuel: target lambda", float,"%.4f" entry = totalFuelConsumption, "fuel: Total consumed", int, "%d" entry = fuelFlowRate, "fuel: Flow rate", float, "%.2f" @@ -3085,10 +3092,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = wallFuelCorrection,"fuel: wall corr ms", float, "%.3f" entry = wallFuelAmount, "fuel: wall amount", float, "%.3f" - entry = baroCorrection, "fuel: Barometric pressure correction",float,"%.3f" - entry = iatCorrection, "fuel: IAT correction", float, "%.3f" - entry = cltCorrection, "fuel: CLT correction", float,"%.3f" - entry = sparkDwellValue, "dwell: coil charge time", float,"%.3f" entry = vvtPositionB1E, "VVT: bank 1 exhaust", float, "%.1f" @@ -3098,7 +3101,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = vvtTargets2, "VVT: bank 1 exhaust target", int, "%d" entry = vvtTargets3, "VVT: bank 2 intake target", int, "%d" entry = vvtTargets4, "VVT: bank 2 exhaust target", int, "%d" - entry = injectionOffset, "injOffset" , float, "%.2F" ; is there a way to log parameter? entry = debugMode, "debugMode",int,"%d" entry = debugFloatField1, {bitStringValue( debugFieldF1List, debugMode )},float,"%.4f", { !enableLogDebugChannels } @@ -3130,8 +3132,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = recentErrorCode7, "error 7",int,"%d", { !enableLogErrorList } entry = recentErrorCode8, "error 8",int,"%d", { !enableLogErrorList } - entry = tCharge, "tCharge",float,"%.3f" - entry = clutchUpState, "clutch: up",int,"%d" entry = clutchDownState, "clutch: down",int,"%d" entry = brakePedalState, "brake: down",int,"%d" @@ -3159,7 +3159,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = VssAcceleration, "Vss Accel", float, "%.3f" entry = flexPercent, "Flex Ethanol %", int, "%d" - entry = currentEnginePhase, "Engine Phase", int, "%d" [Menu] diff --git a/firmware/tunerstudio/generated/rusefi_subaru_eg33_f7.ini b/firmware/tunerstudio/generated/rusefi_subaru_eg33_f7.ini index 5e549002e9..8a949b0a07 100644 --- a/firmware/tunerstudio/generated/rusefi_subaru_eg33_f7.ini +++ b/firmware/tunerstudio/generated/rusefi_subaru_eg33_f7.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.28.subaru_eg33_f7.2872524104" + signature = "rusEFI 2021.11.28.subaru_eg33_f7.104952248" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.28.subaru_eg33_f7.2872524104" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.28.subaru_eg33_f7.104952248" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on config/boards/subaru_eg33/config/gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:17:08 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on config/boards/subaru_eg33/config/gen_config.sh integration/rusefi_config.txt Sun Nov 28 19:45:22 UTC 2021 pageSize = 20000 page = 1 @@ -3030,6 +3030,20 @@ entry = knockRetard, "knockRetard", float, "%.3f" entry = VBatt, "VBatt", float, "%.3f" entry = oilPressure, "Oil Pressure", float, "%.3f" entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = chargeAirMass, "air mass", float, "%.3f" +entry = crankingFuelMs, "crankingFuelMs", float, "%.3f" +entry = currentTargetAfr, "fuel: target AFR", float, "%.3f" +entry = baseFuel, "fuel: base mass", float, "%.3f" +entry = fuelRunning, "fuel: running", float, "%.3f" +entry = actualLastInjection, "fuel: Last injection", float, "%.3f" +entry = injectorDutyCycle, "fuel: injector duty cycle", float, "%.3f" +entry = veValue, "fuel: VE", float, "%.3f" +entry = injectionOffset, "injectionOffset", float, "%.3f" +entry = tCharge, "tCharge", float, "%.3f" +entry = iatCorrection, "fuel: IAT correction", float, "%.3f" +entry = cltCorrection, "fuel: CLT correction", float, "%.3f" +entry = baroCorrection, "fuel: Barometric pressure correction", float, "%.3f" +entry = currentEnginePhase, "Engine Phase", int, "%d" entry = TPS2Value, "TPS2", float, "%.2f" entry = AFRValue, "Air/Fuel Ratio", float, "%.2f" entry = AFRValue2, "Air/Fuel Ratio 2", float, "%.2f" @@ -3042,7 +3056,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = turboSpeed, "Turbocharger Speed" int, "%d" entry = speedToRpmRatio, "s2rpm", float, "%.3f" entry = massAirFlowValue,"MAF air flow", float, "%.3f" - entry = chargeAirMass, "air mass", float, "%.3f" entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" entry = totalTriggerErrorCounter, "trg err",int, "%d" entry = idleAirValvePosition, "Idle Air Valve", float, "%.3f" @@ -3051,16 +3064,10 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" ; entry = rawHighFuelPressure, "Fuel pressure raw (high)", float, "%.3f" - entry = injectorLagMs, "fuel: injector lag", float, "%.3f" - entry = fuelRunning, "fuel: running", float, "%.3f" - entry = actualLastInjection, "fuel: Last injection", float, "%.3f" - entry = baseFuel, "fuel: base mass", float, "%.2f" + entry = injectorLagMs, , float, "%.3f" entry = fuelPidCorrection1,"fuel: fuel trim", float, "%.2f" entry = fuelPidCorrection2,"fuel: fuel trim 2", float, "%.2f" - entry = veValue, "fuel: VE", float, "%.3f" - entry = injectorDutyCycle,"fuel: injector duty cycle",float,"%.3f" entry = coilDutyCycle, "dwell: coil duty cycle", float,"%.3f" - entry = currentTargetAfr,"fuel: target AFR", float,"%.3f" entry = targetLambda, "fuel: target lambda", float,"%.4f" entry = totalFuelConsumption, "fuel: Total consumed", int, "%d" entry = fuelFlowRate, "fuel: Flow rate", float, "%.2f" @@ -3085,10 +3092,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = wallFuelCorrection,"fuel: wall corr ms", float, "%.3f" entry = wallFuelAmount, "fuel: wall amount", float, "%.3f" - entry = baroCorrection, "fuel: Barometric pressure correction",float,"%.3f" - entry = iatCorrection, "fuel: IAT correction", float, "%.3f" - entry = cltCorrection, "fuel: CLT correction", float,"%.3f" - entry = sparkDwellValue, "dwell: coil charge time", float,"%.3f" entry = vvtPositionB1E, "VVT: bank 1 exhaust", float, "%.1f" @@ -3098,7 +3101,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = vvtTargets2, "VVT: bank 1 exhaust target", int, "%d" entry = vvtTargets3, "VVT: bank 2 intake target", int, "%d" entry = vvtTargets4, "VVT: bank 2 exhaust target", int, "%d" - entry = injectionOffset, "injOffset" , float, "%.2F" ; is there a way to log parameter? entry = debugMode, "debugMode",int,"%d" entry = debugFloatField1, {bitStringValue( debugFieldF1List, debugMode )},float,"%.4f", { !enableLogDebugChannels } @@ -3130,8 +3132,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = recentErrorCode7, "error 7",int,"%d", { !enableLogErrorList } entry = recentErrorCode8, "error 8",int,"%d", { !enableLogErrorList } - entry = tCharge, "tCharge",float,"%.3f" - entry = clutchUpState, "clutch: up",int,"%d" entry = clutchDownState, "clutch: down",int,"%d" entry = brakePedalState, "brake: down",int,"%d" @@ -3159,7 +3159,6 @@ entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" entry = VssAcceleration, "Vss Accel", float, "%.3f" entry = flexPercent, "Flex Ethanol %", int, "%d" - entry = currentEnginePhase, "Engine Phase", int, "%d" [Menu]