From 27fee869239fd450d4e74274517827825602433a Mon Sep 17 00:00:00 2001 From: Matthew Kennedy Date: Fri, 4 Dec 2020 23:01:24 -0600 Subject: [PATCH 1/3] add indicator for tps2 fail (#2016) Co-authored-by: Matthew Kennedy --- firmware/console/binary/tunerstudio_outputs.h | 1 + firmware/console/status_loop.cpp | 2 ++ firmware/tunerstudio/rusefi.input | 2 ++ 3 files changed, 5 insertions(+) diff --git a/firmware/console/binary/tunerstudio_outputs.h b/firmware/console/binary/tunerstudio_outputs.h index 9a1194ee4d..b01548a12c 100644 --- a/firmware/console/binary/tunerstudio_outputs.h +++ b/firmware/console/binary/tunerstudio_outputs.h @@ -78,6 +78,7 @@ typedef struct { unsigned int isPedalError : 1; // bit 26 unsigned int isKnockChipOk : 1; // bit 27 unsigned int launchTriggered : 1; // bit 28 + unsigned int isTps2Error : 1; // bit 29 // RPM, vss scaled_channel rpm; // 4 diff --git a/firmware/console/status_loop.cpp b/firmware/console/status_loop.cpp index 2fa2a3fd1f..74e7c0db1d 100644 --- a/firmware/console/status_loop.cpp +++ b/firmware/console/status_loop.cpp @@ -491,6 +491,8 @@ void updateTunerStudioState(TunerStudioOutputChannels *tsOutputChannels DECLARE_ SensorResult tps2 = Sensor::get(SensorType::Tps2); tsOutputChannels->throttle2Position = tps2.Value; + // If we don't have a TPS2 at all, don't turn on the failure light + tsOutputChannels->isTps2Error = !tps2.Valid && Sensor::hasSensor(SensorType::Tps2); SensorResult pedal = Sensor::get(SensorType::AcceleratorPedal); tsOutputChannels->pedalPosition = pedal.Value; diff --git a/firmware/tunerstudio/rusefi.input b/firmware/tunerstudio/rusefi.input index 7b694e8636..a21df51f53 100644 --- a/firmware/tunerstudio/rusefi.input +++ b/firmware/tunerstudio/rusefi.input @@ -204,6 +204,7 @@ enable2ndByteCanID = false ind_hasFatalError=bits, U32, 0, [24:24], "true", "false"; ind_isWarnNow =bits, U32, 0, [25:25], "true", "false"; ind_pedal_error =bits, U32, 0, [26:26], "true", "false"; + isTps2Error = bits, U32, 0, [29:29], "true", "false"; ; RPM, vss RPMValue = scalar, U16, 4, "RPM", 1, 0.00000 @@ -1143,6 +1144,7 @@ gaugeCategory = DynoView ; error codes indicator = { isTpsError}, "tps", "tps error", white, black, red, black + indicator = { isTps2Error}, "tps 2", "tps 2 error", white, black, red, black indicator = { ind_clt_error}, "clt", "clt error", white, black, red, black indicator = { ind_iat_error}, "iat", "iat error", white, black, red, black From 1f93fbb580794f82a83721c4714f98fceb0026ed Mon Sep 17 00:00:00 2001 From: kon Date: Fri, 4 Dec 2020 21:02:14 -0800 Subject: [PATCH 2/3] Website fixes (#2015) * Auto-generated configs and docs * Auto-generated configs and docs * Auto-generated configs and docs * Auto-generated configs and docs * daily builds added * website improvements * more website updates * fixed layout fuckups on mobile and desktop; added proteus link * fixed table, updated icons Co-authored-by: GitHub build-firmware Action --- misc/www/index.html | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/misc/www/index.html b/misc/www/index.html index 7c4970ef54..da1fa39195 100644 --- a/misc/www/index.html +++ b/misc/www/index.html @@ -186,32 +186,32 @@ - 20+ OEM triggers supported - + 20+ OEM triggers supported + - Automatic Transmission Control - + Automatic Transmission Control + - Direct Injection - + Direct Injection + - Flat Shifting - - - - Rotary Engines + Flat Shifting + + Rotary Engines + +

Supported - In Development + In Development Currently not supported

From 9892f0fa48f0a67e58f824132dc24ca78d96115a Mon Sep 17 00:00:00 2001 From: GitHub build-firmware Action Date: Sat, 5 Dec 2020 05:05:04 +0000 Subject: [PATCH 3/3] Auto-generated configs and docs --- .../controllers/generated/signature_all.h | 6 +++--- .../generated/signature_frankenso_na6.h | 6 +++--- .../generated/signature_hellen_cypress.h | 6 +++--- .../controllers/generated/signature_kin.h | 6 +++--- .../controllers/generated/signature_mre_f4.h | 6 +++--- .../controllers/generated/signature_mre_f7.h | 6 +++--- .../generated/signature_prometheus_405.h | 6 +++--- .../generated/signature_prometheus_469.h | 6 +++--- .../generated/signature_proteus_f4.h | 6 +++--- .../generated/signature_proteus_f7.h | 6 +++--- firmware/tunerstudio/generated/cache.zip | Bin 971805 -> 972175 bytes firmware/tunerstudio/generated/rusefi.ini | 8 +++++--- .../generated/rusefi_frankenso_na6.ini | 8 +++++--- .../generated/rusefi_hellen_cypress.ini | 8 +++++--- .../tunerstudio/generated/rusefi_kinetis.ini | 8 +++++--- .../tunerstudio/generated/rusefi_mre_f4.ini | 8 +++++--- .../tunerstudio/generated/rusefi_mre_f7.ini | 8 +++++--- .../generated/rusefi_prometheus_405.ini | 8 +++++--- .../generated/rusefi_prometheus_469.ini | 8 +++++--- .../generated/rusefi_proteus_f4.ini | 8 +++++--- .../generated/rusefi_proteus_f7.ini | 8 +++++--- 21 files changed, 80 insertions(+), 60 deletions(-) diff --git a/firmware/controllers/generated/signature_all.h b/firmware/controllers/generated/signature_all.h index c60dba7859..a6ec481b36 100644 --- a/firmware/controllers/generated/signature_all.h +++ b/firmware/controllers/generated/signature_all.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD all -#define SIGNATURE_DATE 2020.12.04 -#define SIGNATURE_HASH 768848914 -#define TS_SIGNATURE "rusEFI 2020.12.04.all.768848914" +#define SIGNATURE_DATE 2020.12.05 +#define SIGNATURE_HASH 8640608 +#define TS_SIGNATURE "rusEFI 2020.12.05.all.8640608" diff --git a/firmware/controllers/generated/signature_frankenso_na6.h b/firmware/controllers/generated/signature_frankenso_na6.h index 4b9c6775a1..f8b2686dbb 100644 --- a/firmware/controllers/generated/signature_frankenso_na6.h +++ b/firmware/controllers/generated/signature_frankenso_na6.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD frankenso_na6 -#define SIGNATURE_DATE 2020.12.04 -#define SIGNATURE_HASH 3148023273 -#define TS_SIGNATURE "rusEFI 2020.12.04.frankenso_na6.3148023273" +#define SIGNATURE_DATE 2020.12.05 +#define SIGNATURE_HASH 2532534683 +#define TS_SIGNATURE "rusEFI 2020.12.05.frankenso_na6.2532534683" diff --git a/firmware/controllers/generated/signature_hellen_cypress.h b/firmware/controllers/generated/signature_hellen_cypress.h index d688e48510..7ab3e967b1 100644 --- a/firmware/controllers/generated/signature_hellen_cypress.h +++ b/firmware/controllers/generated/signature_hellen_cypress.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD hellen_cypress -#define SIGNATURE_DATE 2020.12.04 -#define SIGNATURE_HASH 3827438289 -#define TS_SIGNATURE "rusEFI 2020.12.04.hellen_cypress.3827438289" +#define SIGNATURE_DATE 2020.12.05 +#define SIGNATURE_HASH 3379723939 +#define TS_SIGNATURE "rusEFI 2020.12.05.hellen_cypress.3379723939" diff --git a/firmware/controllers/generated/signature_kin.h b/firmware/controllers/generated/signature_kin.h index 7d902a4233..f131349e1f 100644 --- a/firmware/controllers/generated/signature_kin.h +++ b/firmware/controllers/generated/signature_kin.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD kin -#define SIGNATURE_DATE 2020.12.04 -#define SIGNATURE_HASH 3040749611 -#define TS_SIGNATURE "rusEFI 2020.12.04.kin.3040749611" +#define SIGNATURE_DATE 2020.12.05 +#define SIGNATURE_HASH 2557363289 +#define TS_SIGNATURE "rusEFI 2020.12.05.kin.2557363289" diff --git a/firmware/controllers/generated/signature_mre_f4.h b/firmware/controllers/generated/signature_mre_f4.h index 886e0e9d48..54f5645269 100644 --- a/firmware/controllers/generated/signature_mre_f4.h +++ b/firmware/controllers/generated/signature_mre_f4.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD mre_f4 -#define SIGNATURE_DATE 2020.12.04 -#define SIGNATURE_HASH 973302379 -#define TS_SIGNATURE "rusEFI 2020.12.04.mre_f4.973302379" +#define SIGNATURE_DATE 2020.12.05 +#define SIGNATURE_HASH 391317017 +#define TS_SIGNATURE "rusEFI 2020.12.05.mre_f4.391317017" diff --git a/firmware/controllers/generated/signature_mre_f7.h b/firmware/controllers/generated/signature_mre_f7.h index 1c12889918..519b1dce4c 100644 --- a/firmware/controllers/generated/signature_mre_f7.h +++ b/firmware/controllers/generated/signature_mre_f7.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD mre_f7 -#define SIGNATURE_DATE 2020.12.04 -#define SIGNATURE_HASH 973302379 -#define TS_SIGNATURE "rusEFI 2020.12.04.mre_f7.973302379" +#define SIGNATURE_DATE 2020.12.05 +#define SIGNATURE_HASH 391317017 +#define TS_SIGNATURE "rusEFI 2020.12.05.mre_f7.391317017" diff --git a/firmware/controllers/generated/signature_prometheus_405.h b/firmware/controllers/generated/signature_prometheus_405.h index 0b0739f80d..6cf89b4b65 100644 --- a/firmware/controllers/generated/signature_prometheus_405.h +++ b/firmware/controllers/generated/signature_prometheus_405.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD prometheus_405 -#define SIGNATURE_DATE 2020.12.04 -#define SIGNATURE_HASH 1863037507 -#define TS_SIGNATURE "rusEFI 2020.12.04.prometheus_405.1863037507" +#define SIGNATURE_DATE 2020.12.05 +#define SIGNATURE_HASH 1113316913 +#define TS_SIGNATURE "rusEFI 2020.12.05.prometheus_405.1113316913" diff --git a/firmware/controllers/generated/signature_prometheus_469.h b/firmware/controllers/generated/signature_prometheus_469.h index ce02f29082..70cb8cac28 100644 --- a/firmware/controllers/generated/signature_prometheus_469.h +++ b/firmware/controllers/generated/signature_prometheus_469.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD prometheus_469 -#define SIGNATURE_DATE 2020.12.04 -#define SIGNATURE_HASH 1863037507 -#define TS_SIGNATURE "rusEFI 2020.12.04.prometheus_469.1863037507" +#define SIGNATURE_DATE 2020.12.05 +#define SIGNATURE_HASH 1113316913 +#define TS_SIGNATURE "rusEFI 2020.12.05.prometheus_469.1113316913" diff --git a/firmware/controllers/generated/signature_proteus_f4.h b/firmware/controllers/generated/signature_proteus_f4.h index 72ede37482..5f71b44601 100644 --- a/firmware/controllers/generated/signature_proteus_f4.h +++ b/firmware/controllers/generated/signature_proteus_f4.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD proteus_f4 -#define SIGNATURE_DATE 2020.12.04 -#define SIGNATURE_HASH 3833200332 -#define TS_SIGNATURE "rusEFI 2020.12.04.proteus_f4.3833200332" +#define SIGNATURE_DATE 2020.12.05 +#define SIGNATURE_HASH 3374944958 +#define TS_SIGNATURE "rusEFI 2020.12.05.proteus_f4.3374944958" diff --git a/firmware/controllers/generated/signature_proteus_f7.h b/firmware/controllers/generated/signature_proteus_f7.h index 848d2b6ebc..47d1820b60 100644 --- a/firmware/controllers/generated/signature_proteus_f7.h +++ b/firmware/controllers/generated/signature_proteus_f7.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD proteus_f7 -#define SIGNATURE_DATE 2020.12.04 -#define SIGNATURE_HASH 3833200332 -#define TS_SIGNATURE "rusEFI 2020.12.04.proteus_f7.3833200332" +#define SIGNATURE_DATE 2020.12.05 +#define SIGNATURE_HASH 3374944958 +#define TS_SIGNATURE "rusEFI 2020.12.05.proteus_f7.3374944958" diff --git a/firmware/tunerstudio/generated/cache.zip b/firmware/tunerstudio/generated/cache.zip index f4f8e960339aac0d5bf286bb086431921f7948fd..394971eca3cfc32b5e48222e2705a77c8641a62b 100644 GIT binary patch delta 287230 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%0DA!J0k8+a9sqj)>;bR` zz#ag50PF#<2f!WxdjRYKum`{%0DA!J0k8+a9sqj)>;bR`z#ag50PF#<2f!WxdjRYK zum`{%0DA!J0k8+a9sqj)>;bR`z#ag50PF#<2f!WxdjRYKum`{%0DA!J0k8+a9sqj) z>;bR`z#ag50PF#<2f*I{|A0Mhy`OH<2i)q{_R`D-)-t}eMzA#Yda(ISM7b7heVkF+ z&bD0sLG?2FlGM6t@ln{lW~-kods#I{`~fZ7c;%K?rM?_kpJVl>q&#_RM>NCE@uxg0 zHXOlU>K=~p5W|i_i+EpZ5sFk3XkzcmMNBMe3~CGv0s@TVK&=j;{MR5I9kBjo#cy^V z>SrB7_EbAPEk$$$61f_^m+snHcl8WY9<*$jq0gK(EqjU`*B%e zBrZxg7MB`T9f^B_78e8mZw(bbpij7h@@qhd3jZblZPQp7Y#4+X|L>n<>_6@Q+BxRe zDA*@?@KE`w=&fF9M9@;r{KrJcWycfYTchwW?47MpW?cxrzgGP-5Y1z}cuZ<)R3--| z5vnB;m;QLDzx6yG3j1;z9*R8;@3hF@i~g6%Qc*P@5WN3mAF=4&?jLuKIEx?8Ovi*0 zYD3R7_a8GIR~a>-t9rBWQOGR(Gsm0!TTu_YZIYnbd#Ew_$d3A_@Zb3 z-sF!Vc>Z{JF11Ql!D+No+?j{DDpOhDAnSBjCGvwGb*!^ zkmmRS`di^YLk-msq9$qynNbc$*hK$K_P5f1Cd;iQM3L1JiXRX4m!kh=D37{-PQw4U zojgKsdAt*S$KBND<2wW+R#7wRZU_3}@|Ox!Y8SeVRXY*t zZYL4_KLeo@T(PN-&-%A=w&Sy&>LiLM=Q)A8*@++*{!7&#Q*r+BP>FQ?b0(g@^-uV} zQ}I|3$1C#D|8sqyUipu)&{hAAg>5rH9N)>ug3511P*MG*?BCfKM~G3FABpMzy+Zuo z+5T4k&ulZJ#PP8Lzh?VO)&DZv;>Ul^#B=<*{Lht%=v~{C=ySii2=m;cyB;UWoY1{X&Lb*UFYC;7Lv&!%X5pFYCCxLApW!T!hEGfN~GcWyga zx!!h(pGjdlet7@0!LcQKe0{;@@FqoVdy<|$E;@E)fBz|ZT=dV2(RzavRe+B}g*tI#SSG`b!rSTR(bR zV&8sWkV%NcjndjBWjcQ4{$HGiy delta 287153 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%0Ay!-l;)NRiZq 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%0Dfy&obF#nqSyPV|#(Jcgg9 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 CY1U!@ diff --git a/firmware/tunerstudio/generated/rusefi.ini b/firmware/tunerstudio/generated/rusefi.ini index 4566e8a1f8..bc88cde18d 100644 --- a/firmware/tunerstudio/generated/rusefi.ini +++ b/firmware/tunerstudio/generated/rusefi.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.12.04.all.768848914" + signature = "rusEFI 2020.12.05.all.8640608" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.12.04.all.768848914" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.12.05.all.8640608" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -74,7 +74,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 Fri Dec 04 16:38:29 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sat Dec 05 05:04:28 UTC 2020 pageSize = 20000 page = 1 @@ -1588,6 +1588,7 @@ page = 1 ind_hasFatalError=bits, U32, 0, [24:24], "true", "false"; ind_isWarnNow =bits, U32, 0, [25:25], "true", "false"; ind_pedal_error =bits, U32, 0, [26:26], "true", "false"; + isTps2Error = bits, U32, 0, [29:29], "true", "false"; ; RPM, vss RPMValue = scalar, U16, 4, "RPM", 1, 0.00000 @@ -2527,6 +2528,7 @@ gaugeCategory = DynoView ; error codes indicator = { isTpsError}, "tps", "tps error", white, black, red, black + indicator = { isTps2Error}, "tps 2", "tps 2 error", white, black, red, black indicator = { ind_clt_error}, "clt", "clt error", white, black, red, black indicator = { ind_iat_error}, "iat", "iat error", white, black, red, black diff --git a/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini b/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini index 7684cd2a14..c31cd1216c 100644 --- a/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini +++ b/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.12.04.frankenso_na6.3148023273" + signature = "rusEFI 2020.12.05.frankenso_na6.2532534683" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.12.04.frankenso_na6.3148023273" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.12.05.frankenso_na6.2532534683" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -74,7 +74,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 Fri Dec 04 16:38:34 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sat Dec 05 05:04:34 UTC 2020 pageSize = 20000 page = 1 @@ -1588,6 +1588,7 @@ page = 1 ind_hasFatalError=bits, U32, 0, [24:24], "true", "false"; ind_isWarnNow =bits, U32, 0, [25:25], "true", "false"; ind_pedal_error =bits, U32, 0, [26:26], "true", "false"; + isTps2Error = bits, U32, 0, [29:29], "true", "false"; ; RPM, vss RPMValue = scalar, U16, 4, "RPM", 1, 0.00000 @@ -2527,6 +2528,7 @@ gaugeCategory = DynoView ; error codes indicator = { isTpsError}, "tps", "tps error", white, black, red, black + indicator = { isTps2Error}, "tps 2", "tps 2 error", white, black, red, black indicator = { ind_clt_error}, "clt", "clt error", white, black, red, black indicator = { ind_iat_error}, "iat", "iat error", white, black, red, black diff --git a/firmware/tunerstudio/generated/rusefi_hellen_cypress.ini b/firmware/tunerstudio/generated/rusefi_hellen_cypress.ini index 93a1639108..78aaedf9ce 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen_cypress.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen_cypress.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.12.04.hellen_cypress.3827438289" + signature = "rusEFI 2020.12.05.hellen_cypress.3379723939" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.12.04.hellen_cypress.3827438289" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.12.05.hellen_cypress.3379723939" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -74,7 +74,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 Fri Dec 04 16:38:43 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Sat Dec 05 05:04:45 UTC 2020 pageSize = 20000 page = 1 @@ -1588,6 +1588,7 @@ page = 1 ind_hasFatalError=bits, U32, 0, [24:24], "true", "false"; ind_isWarnNow =bits, U32, 0, [25:25], "true", "false"; ind_pedal_error =bits, U32, 0, [26:26], "true", "false"; + isTps2Error = bits, U32, 0, [29:29], "true", "false"; ; RPM, vss RPMValue = scalar, U16, 4, "RPM", 1, 0.00000 @@ -2527,6 +2528,7 @@ gaugeCategory = DynoView ; error codes indicator = { isTpsError}, "tps", "tps error", white, black, red, black + indicator = { isTps2Error}, "tps 2", "tps 2 error", white, black, red, black indicator = { ind_clt_error}, "clt", "clt error", white, black, red, black indicator = { ind_iat_error}, "iat", "iat error", white, black, red, black diff --git a/firmware/tunerstudio/generated/rusefi_kinetis.ini b/firmware/tunerstudio/generated/rusefi_kinetis.ini index 1d29127f62..50e46b9b2a 100644 --- a/firmware/tunerstudio/generated/rusefi_kinetis.ini +++ b/firmware/tunerstudio/generated/rusefi_kinetis.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.12.04.kin.3040749611" + signature = "rusEFI 2020.12.05.kin.2557363289" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.12.04.kin.3040749611" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.12.05.kin.2557363289" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -74,7 +74,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 Fri Dec 04 16:38:41 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sat Dec 05 05:04:43 UTC 2020 pageSize = 20000 page = 1 @@ -1588,6 +1588,7 @@ page = 1 ind_hasFatalError=bits, U32, 0, [24:24], "true", "false"; ind_isWarnNow =bits, U32, 0, [25:25], "true", "false"; ind_pedal_error =bits, U32, 0, [26:26], "true", "false"; + isTps2Error = bits, U32, 0, [29:29], "true", "false"; ; RPM, vss RPMValue = scalar, U16, 4, "RPM", 1, 0.00000 @@ -2527,6 +2528,7 @@ gaugeCategory = DynoView ; error codes indicator = { isTpsError}, "tps", "tps error", white, black, red, black + indicator = { isTps2Error}, "tps 2", "tps 2 error", white, black, red, black indicator = { ind_clt_error}, "clt", "clt error", white, black, red, black indicator = { ind_iat_error}, "iat", "iat error", white, black, red, black diff --git a/firmware/tunerstudio/generated/rusefi_mre_f4.ini b/firmware/tunerstudio/generated/rusefi_mre_f4.ini index b70cb9710e..2a2b322de3 100644 --- a/firmware/tunerstudio/generated/rusefi_mre_f4.ini +++ b/firmware/tunerstudio/generated/rusefi_mre_f4.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.12.04.mre_f4.973302379" + signature = "rusEFI 2020.12.05.mre_f4.391317017" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.12.04.mre_f4.973302379" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.12.05.mre_f4.391317017" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -74,7 +74,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 Fri Dec 04 16:38:32 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sat Dec 05 05:04:32 UTC 2020 pageSize = 20000 page = 1 @@ -1588,6 +1588,7 @@ page = 1 ind_hasFatalError=bits, U32, 0, [24:24], "true", "false"; ind_isWarnNow =bits, U32, 0, [25:25], "true", "false"; ind_pedal_error =bits, U32, 0, [26:26], "true", "false"; + isTps2Error = bits, U32, 0, [29:29], "true", "false"; ; RPM, vss RPMValue = scalar, U16, 4, "RPM", 1, 0.00000 @@ -2527,6 +2528,7 @@ gaugeCategory = DynoView ; error codes indicator = { isTpsError}, "tps", "tps error", white, black, red, black + indicator = { isTps2Error}, "tps 2", "tps 2 error", white, black, red, black indicator = { ind_clt_error}, "clt", "clt error", white, black, red, black indicator = { ind_iat_error}, "iat", "iat error", white, black, red, black diff --git a/firmware/tunerstudio/generated/rusefi_mre_f7.ini b/firmware/tunerstudio/generated/rusefi_mre_f7.ini index 41e8564d2e..49f45335c4 100644 --- a/firmware/tunerstudio/generated/rusefi_mre_f7.ini +++ b/firmware/tunerstudio/generated/rusefi_mre_f7.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.12.04.mre_f7.973302379" + signature = "rusEFI 2020.12.05.mre_f7.391317017" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.12.04.mre_f7.973302379" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.12.05.mre_f7.391317017" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -74,7 +74,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 Fri Dec 04 16:38:31 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sat Dec 05 05:04:30 UTC 2020 pageSize = 20000 page = 1 @@ -1588,6 +1588,7 @@ page = 1 ind_hasFatalError=bits, U32, 0, [24:24], "true", "false"; ind_isWarnNow =bits, U32, 0, [25:25], "true", "false"; ind_pedal_error =bits, U32, 0, [26:26], "true", "false"; + isTps2Error = bits, U32, 0, [29:29], "true", "false"; ; RPM, vss RPMValue = scalar, U16, 4, "RPM", 1, 0.00000 @@ -2527,6 +2528,7 @@ gaugeCategory = DynoView ; error codes indicator = { isTpsError}, "tps", "tps error", white, black, red, black + indicator = { isTps2Error}, "tps 2", "tps 2 error", white, black, red, black indicator = { ind_clt_error}, "clt", "clt error", white, black, red, black indicator = { ind_iat_error}, "iat", "iat error", white, black, red, black diff --git a/firmware/tunerstudio/generated/rusefi_prometheus_405.ini b/firmware/tunerstudio/generated/rusefi_prometheus_405.ini index 987d4d8c4a..93cfc213a0 100644 --- a/firmware/tunerstudio/generated/rusefi_prometheus_405.ini +++ b/firmware/tunerstudio/generated/rusefi_prometheus_405.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.12.04.prometheus_405.1863037507" + signature = "rusEFI 2020.12.05.prometheus_405.1113316913" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.12.04.prometheus_405.1863037507" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.12.05.prometheus_405.1113316913" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -74,7 +74,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 Fri Dec 04 16:38:37 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sat Dec 05 05:04:38 UTC 2020 pageSize = 20000 page = 1 @@ -1588,6 +1588,7 @@ page = 1 ind_hasFatalError=bits, U32, 0, [24:24], "true", "false"; ind_isWarnNow =bits, U32, 0, [25:25], "true", "false"; ind_pedal_error =bits, U32, 0, [26:26], "true", "false"; + isTps2Error = bits, U32, 0, [29:29], "true", "false"; ; RPM, vss RPMValue = scalar, U16, 4, "RPM", 1, 0.00000 @@ -2527,6 +2528,7 @@ gaugeCategory = DynoView ; error codes indicator = { isTpsError}, "tps", "tps error", white, black, red, black + indicator = { isTps2Error}, "tps 2", "tps 2 error", white, black, red, black indicator = { ind_clt_error}, "clt", "clt error", white, black, red, black indicator = { ind_iat_error}, "iat", "iat error", white, black, red, black diff --git a/firmware/tunerstudio/generated/rusefi_prometheus_469.ini b/firmware/tunerstudio/generated/rusefi_prometheus_469.ini index b51777072b..6530b84be4 100644 --- a/firmware/tunerstudio/generated/rusefi_prometheus_469.ini +++ b/firmware/tunerstudio/generated/rusefi_prometheus_469.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.12.04.prometheus_469.1863037507" + signature = "rusEFI 2020.12.05.prometheus_469.1113316913" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.12.04.prometheus_469.1863037507" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.12.05.prometheus_469.1113316913" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -74,7 +74,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 Fri Dec 04 16:38:35 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sat Dec 05 05:04:36 UTC 2020 pageSize = 20000 page = 1 @@ -1588,6 +1588,7 @@ page = 1 ind_hasFatalError=bits, U32, 0, [24:24], "true", "false"; ind_isWarnNow =bits, U32, 0, [25:25], "true", "false"; ind_pedal_error =bits, U32, 0, [26:26], "true", "false"; + isTps2Error = bits, U32, 0, [29:29], "true", "false"; ; RPM, vss RPMValue = scalar, U16, 4, "RPM", 1, 0.00000 @@ -2527,6 +2528,7 @@ gaugeCategory = DynoView ; error codes indicator = { isTpsError}, "tps", "tps error", white, black, red, black + indicator = { isTps2Error}, "tps 2", "tps 2 error", white, black, red, black indicator = { ind_clt_error}, "clt", "clt error", white, black, red, black indicator = { ind_iat_error}, "iat", "iat error", white, black, red, black diff --git a/firmware/tunerstudio/generated/rusefi_proteus_f4.ini b/firmware/tunerstudio/generated/rusefi_proteus_f4.ini index 06a21fbe61..9cb20bac98 100644 --- a/firmware/tunerstudio/generated/rusefi_proteus_f4.ini +++ b/firmware/tunerstudio/generated/rusefi_proteus_f4.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.12.04.proteus_f4.3833200332" + signature = "rusEFI 2020.12.05.proteus_f4.3374944958" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.12.04.proteus_f4.3833200332" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.12.05.proteus_f4.3374944958" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -74,7 +74,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 Fri Dec 04 16:38:40 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sat Dec 05 05:04:41 UTC 2020 pageSize = 20000 page = 1 @@ -1588,6 +1588,7 @@ page = 1 ind_hasFatalError=bits, U32, 0, [24:24], "true", "false"; ind_isWarnNow =bits, U32, 0, [25:25], "true", "false"; ind_pedal_error =bits, U32, 0, [26:26], "true", "false"; + isTps2Error = bits, U32, 0, [29:29], "true", "false"; ; RPM, vss RPMValue = scalar, U16, 4, "RPM", 1, 0.00000 @@ -2527,6 +2528,7 @@ gaugeCategory = DynoView ; error codes indicator = { isTpsError}, "tps", "tps error", white, black, red, black + indicator = { isTps2Error}, "tps 2", "tps 2 error", white, black, red, black indicator = { ind_clt_error}, "clt", "clt error", white, black, red, black indicator = { ind_iat_error}, "iat", "iat error", white, black, red, black diff --git a/firmware/tunerstudio/generated/rusefi_proteus_f7.ini b/firmware/tunerstudio/generated/rusefi_proteus_f7.ini index 1af4f51c7f..6bfbc58591 100644 --- a/firmware/tunerstudio/generated/rusefi_proteus_f7.ini +++ b/firmware/tunerstudio/generated/rusefi_proteus_f7.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.12.04.proteus_f7.3833200332" + signature = "rusEFI 2020.12.05.proteus_f7.3374944958" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.12.04.proteus_f7.3833200332" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.12.05.proteus_f7.3374944958" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -74,7 +74,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 Fri Dec 04 16:38:38 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sat Dec 05 05:04:39 UTC 2020 pageSize = 20000 page = 1 @@ -1588,6 +1588,7 @@ page = 1 ind_hasFatalError=bits, U32, 0, [24:24], "true", "false"; ind_isWarnNow =bits, U32, 0, [25:25], "true", "false"; ind_pedal_error =bits, U32, 0, [26:26], "true", "false"; + isTps2Error = bits, U32, 0, [29:29], "true", "false"; ; RPM, vss RPMValue = scalar, U16, 4, "RPM", 1, 0.00000 @@ -2527,6 +2528,7 @@ gaugeCategory = DynoView ; error codes indicator = { isTpsError}, "tps", "tps error", white, black, red, black + indicator = { isTps2Error}, "tps 2", "tps 2 error", white, black, red, black indicator = { ind_clt_error}, "clt", "clt error", white, black, red, black indicator = { ind_iat_error}, "iat", "iat error", white, black, red, black