diff --git a/firmware/config/boards/cypress/config/controllers/algo/rusefi_generated.h b/firmware/config/boards/cypress/config/controllers/algo/rusefi_generated.h index 715120241d..12d76028b7 100644 --- a/firmware/config/boards/cypress/config/controllers/algo/rusefi_generated.h +++ b/firmware/config/boards/cypress/config/controllers/algo/rusefi_generated.h @@ -1053,7 +1053,7 @@ #define SentEtbType_GM_TYPE_1 0 #define show_Frankenso_presets true #define show_test_presets true -#define SIGNATURE_HASH 2899461837 +#define SIGNATURE_HASH 847805432 #define specs_s_size 12 #define spi_device_e_auto_enum 0="SPI_NONE",1="SPI_DEVICE_1",2="SPI_DEVICE_2",3="SPI_DEVICE_3",4="SPI_DEVICE_4" #define spi_device_e_SPI_DEVICE_1 1 @@ -1329,7 +1329,7 @@ #define ts_show_vbatt true #define ts_show_vr_threshold_2 true #define ts_show_vr_threshold_all true -#define TS_SIGNATURE "rusEFI master.2023.02.15.cypress.2899461837" +#define TS_SIGNATURE "rusEFI master.2023.02.15.cypress.847805432" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' diff --git a/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h b/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h index 1f983311a7..8e71a7b56a 100644 --- a/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h +++ b/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h @@ -1053,7 +1053,7 @@ #define SentEtbType_GM_TYPE_1 0 #define show_Frankenso_presets true #define show_test_presets true -#define SIGNATURE_HASH 3288720385 +#define SIGNATURE_HASH 1516230964 #define specs_s_size 12 #define spi_device_e_auto_enum 0="SPI_NONE",1="SPI_DEVICE_1",2="SPI_DEVICE_2",3="SPI_DEVICE_3",4="SPI_DEVICE_4" #define spi_device_e_SPI_DEVICE_1 1 @@ -1329,7 +1329,7 @@ #define ts_show_vbatt true #define ts_show_vr_threshold_2 true #define ts_show_vr_threshold_all true -#define TS_SIGNATURE "rusEFI master.2023.02.15.kin.3288720385" +#define TS_SIGNATURE "rusEFI master.2023.02.15.kin.1516230964" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' diff --git a/firmware/config/boards/subaru_eg33/config/controllers/algo/rusefi_generated.h b/firmware/config/boards/subaru_eg33/config/controllers/algo/rusefi_generated.h index d42f366658..06986576db 100644 --- a/firmware/config/boards/subaru_eg33/config/controllers/algo/rusefi_generated.h +++ b/firmware/config/boards/subaru_eg33/config/controllers/algo/rusefi_generated.h @@ -1003,7 +1003,7 @@ #define show_Frankenso_presets false #define show_Proteus_presets false #define show_test_presets false -#define SIGNATURE_HASH 3742307424 +#define SIGNATURE_HASH 1096100181 #define specs_s_size 12 #define spi_device_e_auto_enum 0="SPI_NONE",1="SPI_DEVICE_1",2="SPI_DEVICE_2",3="SPI_DEVICE_3",4="SPI_DEVICE_4" #define spi_device_e_SPI_DEVICE_1 1 @@ -1280,7 +1280,7 @@ #define ts_show_vbatt true #define ts_show_vr_threshold_2 true #define ts_show_vr_threshold_all true -#define TS_SIGNATURE "rusEFI master.2023.02.15.subaru_eg33_f7.3742307424" +#define TS_SIGNATURE "rusEFI master.2023.02.15.subaru_eg33_f7.1096100181" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' diff --git a/firmware/controllers/generated/rusefi_generated.h b/firmware/controllers/generated/rusefi_generated.h index 9759b26dd2..6415f496a4 100644 --- a/firmware/controllers/generated/rusefi_generated.h +++ b/firmware/controllers/generated/rusefi_generated.h @@ -1053,7 +1053,7 @@ #define SentEtbType_GM_TYPE_1 0 #define show_Frankenso_presets true #define show_test_presets true -#define SIGNATURE_HASH 3298646123 +#define SIGNATURE_HASH 1523017054 #define specs_s_size 12 #define spi_device_e_auto_enum 0="SPI_NONE",1="SPI_DEVICE_1",2="SPI_DEVICE_2",3="SPI_DEVICE_3",4="SPI_DEVICE_4" #define spi_device_e_SPI_DEVICE_1 1 @@ -1329,7 +1329,7 @@ #define ts_show_vbatt true #define ts_show_vr_threshold_2 true #define ts_show_vr_threshold_all true -#define TS_SIGNATURE "rusEFI master.2023.02.15.f407-discovery.3298646123" +#define TS_SIGNATURE "rusEFI master.2023.02.15.f407-discovery.1523017054" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' diff --git a/firmware/controllers/generated/signature_48way.h b/firmware/controllers/generated/signature_48way.h index 0f113cfa5c..c72f2e3dc9 100644 --- a/firmware/controllers/generated/signature_48way.h +++ b/firmware/controllers/generated/signature_48way.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 60278189 -#define TS_SIGNATURE "rusEFI master.2023.02.15.48way.60278189" +#define SIGNATURE_HASH 2647521432 +#define TS_SIGNATURE "rusEFI master.2023.02.15.48way.2647521432" diff --git a/firmware/controllers/generated/signature_alphax-2chan.h b/firmware/controllers/generated/signature_alphax-2chan.h index 131b9b9e29..e9e71da170 100644 --- a/firmware/controllers/generated/signature_alphax-2chan.h +++ b/firmware/controllers/generated/signature_alphax-2chan.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 4041367422 -#define TS_SIGNATURE "rusEFI master.2023.02.15.alphax-2chan.4041367422" +#define SIGNATURE_HASH 1857577547 +#define TS_SIGNATURE "rusEFI master.2023.02.15.alphax-2chan.1857577547" diff --git a/firmware/controllers/generated/signature_alphax-4chan.h b/firmware/controllers/generated/signature_alphax-4chan.h index 83e1744a12..72d37e7106 100644 --- a/firmware/controllers/generated/signature_alphax-4chan.h +++ b/firmware/controllers/generated/signature_alphax-4chan.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 1404826440 -#define TS_SIGNATURE "rusEFI master.2023.02.15.alphax-4chan.1404826440" +#define SIGNATURE_HASH 3454127741 +#define TS_SIGNATURE "rusEFI master.2023.02.15.alphax-4chan.3454127741" diff --git a/firmware/controllers/generated/signature_alphax-8chan.h b/firmware/controllers/generated/signature_alphax-8chan.h index 4561c97606..ddaae427de 100644 --- a/firmware/controllers/generated/signature_alphax-8chan.h +++ b/firmware/controllers/generated/signature_alphax-8chan.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 112073193 -#define TS_SIGNATURE "rusEFI master.2023.02.15.alphax-8chan.112073193" +#define SIGNATURE_HASH 2566137052 +#define TS_SIGNATURE "rusEFI master.2023.02.15.alphax-8chan.2566137052" diff --git a/firmware/controllers/generated/signature_atlas.h b/firmware/controllers/generated/signature_atlas.h index 6cc0364583..e32bd6386e 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 by SignatureConsumer // -#define SIGNATURE_HASH 2954408938 -#define TS_SIGNATURE "rusEFI master.2023.02.15.atlas.2954408938" +#define SIGNATURE_HASH 776113887 +#define TS_SIGNATURE "rusEFI master.2023.02.15.atlas.776113887" diff --git a/firmware/controllers/generated/signature_core8.h b/firmware/controllers/generated/signature_core8.h index b63f8a7aa6..8aa2385bb6 100644 --- a/firmware/controllers/generated/signature_core8.h +++ b/firmware/controllers/generated/signature_core8.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 2137669793 -#define TS_SIGNATURE "rusEFI master.2023.02.15.core8.2137669793" +#define SIGNATURE_HASH 3778051476 +#define TS_SIGNATURE "rusEFI master.2023.02.15.core8.3778051476" diff --git a/firmware/controllers/generated/signature_cypress.h b/firmware/controllers/generated/signature_cypress.h index 8c952cc447..e5881e33ce 100644 --- a/firmware/controllers/generated/signature_cypress.h +++ b/firmware/controllers/generated/signature_cypress.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat by SignatureConsumer // -#define SIGNATURE_HASH 2899461837 -#define TS_SIGNATURE "rusEFI master.2023.02.15.cypress.2899461837" +#define SIGNATURE_HASH 847805432 +#define TS_SIGNATURE "rusEFI master.2023.02.15.cypress.847805432" diff --git a/firmware/controllers/generated/signature_f407-discovery.h b/firmware/controllers/generated/signature_f407-discovery.h index 4263d66c89..79d97e7108 100644 --- a/firmware/controllers/generated/signature_f407-discovery.h +++ b/firmware/controllers/generated/signature_f407-discovery.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 3298646123 -#define TS_SIGNATURE "rusEFI master.2023.02.15.f407-discovery.3298646123" +#define SIGNATURE_HASH 1523017054 +#define TS_SIGNATURE "rusEFI master.2023.02.15.f407-discovery.1523017054" diff --git a/firmware/controllers/generated/signature_f429-discovery.h b/firmware/controllers/generated/signature_f429-discovery.h index c6c575e391..4040c8c186 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 by SignatureConsumer // -#define SIGNATURE_HASH 2899461837 -#define TS_SIGNATURE "rusEFI master.2023.02.15.f429-discovery.2899461837" +#define SIGNATURE_HASH 847805432 +#define TS_SIGNATURE "rusEFI master.2023.02.15.f429-discovery.847805432" diff --git a/firmware/controllers/generated/signature_frankenso_na6.h b/firmware/controllers/generated/signature_frankenso_na6.h index f1305ecfd4..6c8f654c59 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 by SignatureConsumer // -#define SIGNATURE_HASH 2390795783 -#define TS_SIGNATURE "rusEFI master.2023.02.15.frankenso_na6.2390795783" +#define SIGNATURE_HASH 282762034 +#define TS_SIGNATURE "rusEFI master.2023.02.15.frankenso_na6.282762034" diff --git a/firmware/controllers/generated/signature_harley81.h b/firmware/controllers/generated/signature_harley81.h index d71dc26de1..da0980fbc2 100644 --- a/firmware/controllers/generated/signature_harley81.h +++ b/firmware/controllers/generated/signature_harley81.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 2346447749 -#define TS_SIGNATURE "rusEFI master.2023.02.15.harley81.2346447749" +#define SIGNATURE_HASH 360828592 +#define TS_SIGNATURE "rusEFI master.2023.02.15.harley81.360828592" diff --git a/firmware/controllers/generated/signature_hellen-gm-e67.h b/firmware/controllers/generated/signature_hellen-gm-e67.h index ba47b88710..9e51d33538 100644 --- a/firmware/controllers/generated/signature_hellen-gm-e67.h +++ b/firmware/controllers/generated/signature_hellen-gm-e67.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 3551149130 -#define TS_SIGNATURE "rusEFI master.2023.02.15.hellen-gm-e67.3551149130" +#define SIGNATURE_HASH 1307574655 +#define TS_SIGNATURE "rusEFI master.2023.02.15.hellen-gm-e67.1307574655" diff --git a/firmware/controllers/generated/signature_hellen-honda-k.h b/firmware/controllers/generated/signature_hellen-honda-k.h index baeee73ab3..287831272e 100644 --- a/firmware/controllers/generated/signature_hellen-honda-k.h +++ b/firmware/controllers/generated/signature_hellen-honda-k.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 3719322364 -#define TS_SIGNATURE "rusEFI master.2023.02.15.hellen-honda-k.3719322364" +#define SIGNATURE_HASH 1139435465 +#define TS_SIGNATURE "rusEFI master.2023.02.15.hellen-honda-k.1139435465" diff --git a/firmware/controllers/generated/signature_hellen-nb1.h b/firmware/controllers/generated/signature_hellen-nb1.h index ca6e8e7560..099fd0f4ab 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 by SignatureConsumer // -#define SIGNATURE_HASH 1177933388 -#define TS_SIGNATURE "rusEFI master.2023.02.15.hellen-nb1.1177933388" +#define SIGNATURE_HASH 3631213433 +#define TS_SIGNATURE "rusEFI master.2023.02.15.hellen-nb1.3631213433" diff --git a/firmware/controllers/generated/signature_hellen121nissan.h b/firmware/controllers/generated/signature_hellen121nissan.h index b0e7500ec6..826bca2c24 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 by SignatureConsumer // -#define SIGNATURE_HASH 305513552 -#define TS_SIGNATURE "rusEFI master.2023.02.15.hellen121nissan.305513552" +#define SIGNATURE_HASH 2356148581 +#define TS_SIGNATURE "rusEFI master.2023.02.15.hellen121nissan.2356148581" diff --git a/firmware/controllers/generated/signature_hellen121vag.h b/firmware/controllers/generated/signature_hellen121vag.h index 751973b5fa..d46ea3beb3 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 by SignatureConsumer // -#define SIGNATURE_HASH 594952077 -#define TS_SIGNATURE "rusEFI master.2023.02.15.hellen121vag.594952077" +#define SIGNATURE_HASH 3173778104 +#define TS_SIGNATURE "rusEFI master.2023.02.15.hellen121vag.3173778104" diff --git a/firmware/controllers/generated/signature_hellen128.h b/firmware/controllers/generated/signature_hellen128.h index 0c2d45ccc8..c0dad1e0f4 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 by SignatureConsumer // -#define SIGNATURE_HASH 182822070 -#define TS_SIGNATURE "rusEFI master.2023.02.15.hellen128.182822070" +#define SIGNATURE_HASH 2495584643 +#define TS_SIGNATURE "rusEFI master.2023.02.15.hellen128.2495584643" diff --git a/firmware/controllers/generated/signature_hellen154hyundai.h b/firmware/controllers/generated/signature_hellen154hyundai.h index 3f7e94cdfe..0ba7e74886 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 by SignatureConsumer // -#define SIGNATURE_HASH 1590227012 -#define TS_SIGNATURE "rusEFI master.2023.02.15.hellen154hyundai.1590227012" +#define SIGNATURE_HASH 3230846321 +#define TS_SIGNATURE "rusEFI master.2023.02.15.hellen154hyundai.3230846321" diff --git a/firmware/controllers/generated/signature_hellen72.h b/firmware/controllers/generated/signature_hellen72.h index d7ac07537f..f839a12972 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 by SignatureConsumer // -#define SIGNATURE_HASH 1072984088 -#define TS_SIGNATURE "rusEFI master.2023.02.15.hellen72.1072984088" +#define SIGNATURE_HASH 2712554797 +#define TS_SIGNATURE "rusEFI master.2023.02.15.hellen72.2712554797" diff --git a/firmware/controllers/generated/signature_hellen81.h b/firmware/controllers/generated/signature_hellen81.h index 7c54d26312..b5438ffeb1 100644 --- a/firmware/controllers/generated/signature_hellen81.h +++ b/firmware/controllers/generated/signature_hellen81.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 3927811472 -#define TS_SIGNATURE "rusEFI master.2023.02.15.hellen81.3927811472" +#define SIGNATURE_HASH 1950849189 +#define TS_SIGNATURE "rusEFI master.2023.02.15.hellen81.1950849189" diff --git a/firmware/controllers/generated/signature_hellen88bmw.h b/firmware/controllers/generated/signature_hellen88bmw.h index 6803a74f6c..602a9c6fe3 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 by SignatureConsumer // -#define SIGNATURE_HASH 3191300124 -#define TS_SIGNATURE "rusEFI master.2023.02.15.hellen88bmw.3191300124" +#define SIGNATURE_HASH 544038185 +#define TS_SIGNATURE "rusEFI master.2023.02.15.hellen88bmw.544038185" diff --git a/firmware/controllers/generated/signature_hellenNA6.h b/firmware/controllers/generated/signature_hellenNA6.h index cc3285b50f..678b6ad67a 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 by SignatureConsumer // -#define SIGNATURE_HASH 3312516373 -#define TS_SIGNATURE "rusEFI master.2023.02.15.hellenNA6.3312516373" +#define SIGNATURE_HASH 1529528352 +#define TS_SIGNATURE "rusEFI master.2023.02.15.hellenNA6.1529528352" diff --git a/firmware/controllers/generated/signature_hellenNA8_96.h b/firmware/controllers/generated/signature_hellenNA8_96.h index 2f68277ea8..440a235aaa 100644 --- a/firmware/controllers/generated/signature_hellenNA8_96.h +++ b/firmware/controllers/generated/signature_hellenNA8_96.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 2913041962 -#define TS_SIGNATURE "rusEFI master.2023.02.15.hellenNA8_96.2913041962" +#define SIGNATURE_HASH 872104735 +#define TS_SIGNATURE "rusEFI master.2023.02.15.hellenNA8_96.872104735" diff --git a/firmware/controllers/generated/signature_kin.h b/firmware/controllers/generated/signature_kin.h index 49f3b1fe86..181d36d247 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 by SignatureConsumer // -#define SIGNATURE_HASH 3288720385 -#define TS_SIGNATURE "rusEFI master.2023.02.15.kin.3288720385" +#define SIGNATURE_HASH 1516230964 +#define TS_SIGNATURE "rusEFI master.2023.02.15.kin.1516230964" diff --git a/firmware/controllers/generated/signature_m74_9.h b/firmware/controllers/generated/signature_m74_9.h index cddd836eed..2c7fca64b8 100644 --- a/firmware/controllers/generated/signature_m74_9.h +++ b/firmware/controllers/generated/signature_m74_9.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 1935449078 -#define TS_SIGNATURE "rusEFI master.2023.02.15.m74_9.1935449078" +#define SIGNATURE_HASH 3976636099 +#define TS_SIGNATURE "rusEFI master.2023.02.15.m74_9.3976636099" diff --git a/firmware/controllers/generated/signature_mre_f4.h b/firmware/controllers/generated/signature_mre_f4.h index 1d56729394..f7c35e60b4 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 by SignatureConsumer // -#define SIGNATURE_HASH 141059902 -#define TS_SIGNATURE "rusEFI master.2023.02.15.mre_f4.141059902" +#define SIGNATURE_HASH 2519882251 +#define TS_SIGNATURE "rusEFI master.2023.02.15.mre_f4.2519882251" diff --git a/firmware/controllers/generated/signature_mre_f7.h b/firmware/controllers/generated/signature_mre_f7.h index ca505f5a10..fd47980b3c 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 by SignatureConsumer // -#define SIGNATURE_HASH 141059902 -#define TS_SIGNATURE "rusEFI master.2023.02.15.mre_f7.141059902" +#define SIGNATURE_HASH 2519882251 +#define TS_SIGNATURE "rusEFI master.2023.02.15.mre_f7.2519882251" diff --git a/firmware/controllers/generated/signature_prometheus_405.h b/firmware/controllers/generated/signature_prometheus_405.h index 0fc2e72f8d..9bd3b35968 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 by SignatureConsumer // -#define SIGNATURE_HASH 4231569195 -#define TS_SIGNATURE "rusEFI master.2023.02.15.prometheus_405.4231569195" +#define SIGNATURE_HASH 1650631198 +#define TS_SIGNATURE "rusEFI master.2023.02.15.prometheus_405.1650631198" diff --git a/firmware/controllers/generated/signature_prometheus_469.h b/firmware/controllers/generated/signature_prometheus_469.h index 268a9c442e..5f4907c051 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 by SignatureConsumer // -#define SIGNATURE_HASH 4231569195 -#define TS_SIGNATURE "rusEFI master.2023.02.15.prometheus_469.4231569195" +#define SIGNATURE_HASH 1650631198 +#define TS_SIGNATURE "rusEFI master.2023.02.15.prometheus_469.1650631198" diff --git a/firmware/controllers/generated/signature_proteus_f4.h b/firmware/controllers/generated/signature_proteus_f4.h index aa5ce2e41b..85d0fde7ac 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 by SignatureConsumer // -#define SIGNATURE_HASH 2182471482 -#define TS_SIGNATURE "rusEFI master.2023.02.15.proteus_f4.2182471482" +#define SIGNATURE_HASH 474997263 +#define TS_SIGNATURE "rusEFI master.2023.02.15.proteus_f4.474997263" diff --git a/firmware/controllers/generated/signature_proteus_f7.h b/firmware/controllers/generated/signature_proteus_f7.h index 841b7851ed..b410d17240 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 by SignatureConsumer // -#define SIGNATURE_HASH 2182471482 -#define TS_SIGNATURE "rusEFI master.2023.02.15.proteus_f7.2182471482" +#define SIGNATURE_HASH 474997263 +#define TS_SIGNATURE "rusEFI master.2023.02.15.proteus_f7.474997263" diff --git a/firmware/controllers/generated/signature_proteus_h7.h b/firmware/controllers/generated/signature_proteus_h7.h index 445010d737..2ec0c8bdbd 100644 --- a/firmware/controllers/generated/signature_proteus_h7.h +++ b/firmware/controllers/generated/signature_proteus_h7.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 2182471482 -#define TS_SIGNATURE "rusEFI master.2023.02.15.proteus_h7.2182471482" +#define SIGNATURE_HASH 474997263 +#define TS_SIGNATURE "rusEFI master.2023.02.15.proteus_h7.474997263" diff --git a/firmware/controllers/generated/signature_s105.h b/firmware/controllers/generated/signature_s105.h index 2a256d56d5..bafbbbc686 100644 --- a/firmware/controllers/generated/signature_s105.h +++ b/firmware/controllers/generated/signature_s105.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 355295459 -#define TS_SIGNATURE "rusEFI master.2023.02.15.s105.355295459" +#define SIGNATURE_HASH 2339855830 +#define TS_SIGNATURE "rusEFI master.2023.02.15.s105.2339855830" diff --git a/firmware/controllers/generated/signature_subaru_eg33_f7.h b/firmware/controllers/generated/signature_subaru_eg33_f7.h index 8a8e806778..26637d2916 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_subaru_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 3742307424 -#define TS_SIGNATURE "rusEFI master.2023.02.15.subaru_eg33_f7.3742307424" +#define SIGNATURE_HASH 1096100181 +#define TS_SIGNATURE "rusEFI master.2023.02.15.subaru_eg33_f7.1096100181" diff --git a/firmware/controllers/generated/signature_tdg-pdm8.h b/firmware/controllers/generated/signature_tdg-pdm8.h index 0a8849f85b..3f0391dc1c 100644 --- a/firmware/controllers/generated/signature_tdg-pdm8.h +++ b/firmware/controllers/generated/signature_tdg-pdm8.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh by SignatureConsumer // -#define SIGNATURE_HASH 645688047 -#define TS_SIGNATURE "rusEFI master.2023.02.15.tdg-pdm8.645688047" +#define SIGNATURE_HASH 3089520602 +#define TS_SIGNATURE "rusEFI master.2023.02.15.tdg-pdm8.3089520602" diff --git a/firmware/tunerstudio/generated/rusefi.ini b/firmware/tunerstudio/generated/rusefi.ini index 4320b081d7..7c51eb087b 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 master.2023.02.15.f407-discovery.3298646123" + signature = "rusEFI master.2023.02.15.f407-discovery.1523017054" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.f407-discovery.3298646123" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.f407-discovery.1523017054" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 00:56:35 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:53:03 UTC 2023 pageSize = 22432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5901,85 +5900,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6376,12 +6381,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_48way.ini b/firmware/tunerstudio/generated/rusefi_48way.ini index d3efeb5b71..38e6851198 100644 --- a/firmware/tunerstudio/generated/rusefi_48way.ini +++ b/firmware/tunerstudio/generated/rusefi_48way.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI master.2023.02.15.48way.60278189" + signature = "rusEFI master.2023.02.15.48way.2647521432" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.48way.60278189" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.48way.2647521432" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 00:56:19 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:52:47 UTC 2023 pageSize = 22432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5899,85 +5898,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6374,12 +6379,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_alphax-2chan.ini b/firmware/tunerstudio/generated/rusefi_alphax-2chan.ini index 6ae78dbdf4..fdc9f781ea 100644 --- a/firmware/tunerstudio/generated/rusefi_alphax-2chan.ini +++ b/firmware/tunerstudio/generated/rusefi_alphax-2chan.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI master.2023.02.15.alphax-2chan.4041367422" + signature = "rusEFI master.2023.02.15.alphax-2chan.1857577547" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.alphax-2chan.4041367422" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.alphax-2chan.1857577547" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 00:55:55 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:52:23 UTC 2023 pageSize = 22432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5895,85 +5894,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6370,12 +6375,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_alphax-4chan.ini b/firmware/tunerstudio/generated/rusefi_alphax-4chan.ini index 2d30a64be1..14e2197051 100644 --- a/firmware/tunerstudio/generated/rusefi_alphax-4chan.ini +++ b/firmware/tunerstudio/generated/rusefi_alphax-4chan.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI master.2023.02.15.alphax-4chan.1404826440" + signature = "rusEFI master.2023.02.15.alphax-4chan.3454127741" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.alphax-4chan.1404826440" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.alphax-4chan.3454127741" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 00:55:56 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:52:24 UTC 2023 pageSize = 22432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5898,85 +5897,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6373,12 +6378,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_alphax-8chan.ini b/firmware/tunerstudio/generated/rusefi_alphax-8chan.ini index 47cbe7a33a..695dc3bf89 100644 --- a/firmware/tunerstudio/generated/rusefi_alphax-8chan.ini +++ b/firmware/tunerstudio/generated/rusefi_alphax-8chan.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI master.2023.02.15.alphax-8chan.112073193" + signature = "rusEFI master.2023.02.15.alphax-8chan.2566137052" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.alphax-8chan.112073193" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.alphax-8chan.2566137052" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 00:55:58 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:52:25 UTC 2023 pageSize = 22432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5898,85 +5897,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6373,12 +6378,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_atlas.ini b/firmware/tunerstudio/generated/rusefi_atlas.ini index 3998694c81..84e64be00b 100644 --- a/firmware/tunerstudio/generated/rusefi_atlas.ini +++ b/firmware/tunerstudio/generated/rusefi_atlas.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI master.2023.02.15.atlas.2954408938" + signature = "rusEFI master.2023.02.15.atlas.776113887" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.atlas.2954408938" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.atlas.776113887" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 00:56:33 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:53:00 UTC 2023 pageSize = 22432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5901,85 +5900,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6376,12 +6381,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_core8.ini b/firmware/tunerstudio/generated/rusefi_core8.ini index be7892ae2b..174ec626f9 100644 --- a/firmware/tunerstudio/generated/rusefi_core8.ini +++ b/firmware/tunerstudio/generated/rusefi_core8.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI master.2023.02.15.core8.2137669793" + signature = "rusEFI master.2023.02.15.core8.3778051476" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.core8.2137669793" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.core8.3778051476" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 00:56:18 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:52:45 UTC 2023 pageSize = 22432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5899,85 +5898,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6374,12 +6379,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_cypress.ini b/firmware/tunerstudio/generated/rusefi_cypress.ini index f9afab1668..153f456f3a 100644 --- a/firmware/tunerstudio/generated/rusefi_cypress.ini +++ b/firmware/tunerstudio/generated/rusefi_cypress.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI master.2023.02.15.cypress.2899461837" + signature = "rusEFI master.2023.02.15.cypress.847805432" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.cypress.2899461837" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.cypress.847805432" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Wed Feb 15 00:55:53 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Wed Feb 15 23:52:20 UTC 2023 pageSize = 22432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5901,85 +5900,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6376,12 +6381,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_f407-discovery.ini b/firmware/tunerstudio/generated/rusefi_f407-discovery.ini index edc19690cf..afc4b6863a 100644 --- a/firmware/tunerstudio/generated/rusefi_f407-discovery.ini +++ b/firmware/tunerstudio/generated/rusefi_f407-discovery.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI master.2023.02.15.f407-discovery.3298646123" + signature = "rusEFI master.2023.02.15.f407-discovery.1523017054" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.f407-discovery.3298646123" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.f407-discovery.1523017054" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 00:56:31 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:52:58 UTC 2023 pageSize = 22432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5901,85 +5900,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6376,12 +6381,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_f429-discovery.ini b/firmware/tunerstudio/generated/rusefi_f429-discovery.ini index 4bc72b2701..517c054d22 100644 --- a/firmware/tunerstudio/generated/rusefi_f429-discovery.ini +++ b/firmware/tunerstudio/generated/rusefi_f429-discovery.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI master.2023.02.15.f429-discovery.2899461837" + signature = "rusEFI master.2023.02.15.f429-discovery.847805432" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.f429-discovery.2899461837" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.f429-discovery.847805432" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 00:56:32 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:52:59 UTC 2023 pageSize = 22432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5901,85 +5900,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6376,12 +6381,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini b/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini index a81c8d8bdf..a23b405c49 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 master.2023.02.15.frankenso_na6.2390795783" + signature = "rusEFI master.2023.02.15.frankenso_na6.282762034" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.frankenso_na6.2390795783" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.frankenso_na6.282762034" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 00:56:23 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:52:50 UTC 2023 pageSize = 22432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5901,85 +5900,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6376,12 +6381,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_harley81.ini b/firmware/tunerstudio/generated/rusefi_harley81.ini index 2c5c0e2881..6a8d2b440c 100644 --- a/firmware/tunerstudio/generated/rusefi_harley81.ini +++ b/firmware/tunerstudio/generated/rusefi_harley81.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI master.2023.02.15.harley81.2346447749" + signature = "rusEFI master.2023.02.15.harley81.360828592" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.harley81.2346447749" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.harley81.360828592" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 00:55:59 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:52:26 UTC 2023 pageSize = 22432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5897,85 +5896,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6370,12 +6375,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_hellen-gm-e67.ini b/firmware/tunerstudio/generated/rusefi_hellen-gm-e67.ini index 1f4363bcc0..d47f8ae1a1 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen-gm-e67.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen-gm-e67.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI master.2023.02.15.hellen-gm-e67.3551149130" + signature = "rusEFI master.2023.02.15.hellen-gm-e67.1307574655" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.hellen-gm-e67.3551149130" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.hellen-gm-e67.1307574655" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 00:56:12 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:52:39 UTC 2023 pageSize = 22432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5898,85 +5897,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6373,12 +6378,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_hellen-honda-k.ini b/firmware/tunerstudio/generated/rusefi_hellen-honda-k.ini index 749ddcff01..0c40538d65 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen-honda-k.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen-honda-k.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI master.2023.02.15.hellen-honda-k.3719322364" + signature = "rusEFI master.2023.02.15.hellen-honda-k.1139435465" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.hellen-honda-k.3719322364" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.hellen-honda-k.1139435465" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 20:19:42 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:52:31 UTC 2023 pageSize = 22432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5897,85 +5896,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6370,12 +6375,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_hellen-nb1.ini b/firmware/tunerstudio/generated/rusefi_hellen-nb1.ini index 60c5b7de79..208b029eb2 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen-nb1.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen-nb1.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI master.2023.02.15.hellen-nb1.1177933388" + signature = "rusEFI master.2023.02.15.hellen-nb1.3631213433" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.hellen-nb1.1177933388" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.hellen-nb1.3631213433" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 00:56:10 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:52:38 UTC 2023 pageSize = 22432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5898,85 +5897,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6373,12 +6378,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_hellen121nissan.ini b/firmware/tunerstudio/generated/rusefi_hellen121nissan.ini index c44730962c..b242144ba5 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen121nissan.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen121nissan.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI master.2023.02.15.hellen121nissan.305513552" + signature = "rusEFI master.2023.02.15.hellen121nissan.2356148581" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.hellen121nissan.305513552" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.hellen121nissan.2356148581" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 00:56:03 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:52:30 UTC 2023 pageSize = 22432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5897,85 +5896,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6370,12 +6375,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_hellen121vag.ini b/firmware/tunerstudio/generated/rusefi_hellen121vag.ini index b7735b0318..023c13bbe4 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen121vag.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen121vag.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI master.2023.02.15.hellen121vag.594952077" + signature = "rusEFI master.2023.02.15.hellen121vag.3173778104" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.hellen121vag.594952077" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.hellen121vag.3173778104" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 00:56:01 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:52:29 UTC 2023 pageSize = 22432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5898,85 +5897,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6373,12 +6378,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_hellen128mercedes.ini b/firmware/tunerstudio/generated/rusefi_hellen128mercedes.ini index bd909bf523..e11d58a23b 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen128mercedes.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen128mercedes.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI master.2023.02.15.hellen128.182822070" + signature = "rusEFI master.2023.02.15.hellen128.2495584643" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.hellen128.182822070" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.hellen128.2495584643" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 00:56:00 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:52:28 UTC 2023 pageSize = 22432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5897,85 +5896,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6370,12 +6375,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_hellen154hyundai.ini b/firmware/tunerstudio/generated/rusefi_hellen154hyundai.ini index 147af1744f..125435a833 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen154hyundai.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen154hyundai.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI master.2023.02.15.hellen154hyundai.1590227012" + signature = "rusEFI master.2023.02.15.hellen154hyundai.3230846321" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.hellen154hyundai.1590227012" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.hellen154hyundai.3230846321" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 00:56:05 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:52:33 UTC 2023 pageSize = 22432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5897,85 +5896,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6370,12 +6375,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_hellen72.ini b/firmware/tunerstudio/generated/rusefi_hellen72.ini index 872b6d452e..c21fd48b86 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen72.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen72.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI master.2023.02.15.hellen72.1072984088" + signature = "rusEFI master.2023.02.15.hellen72.2712554797" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.hellen72.1072984088" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.hellen72.2712554797" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 00:56:08 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:52:35 UTC 2023 pageSize = 22432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5898,85 +5897,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6373,12 +6378,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_hellen81.ini b/firmware/tunerstudio/generated/rusefi_hellen81.ini index ed663b376e..8bf64997c3 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen81.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen81.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI master.2023.02.15.hellen81.3927811472" + signature = "rusEFI master.2023.02.15.hellen81.1950849189" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.hellen81.3927811472" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.hellen81.1950849189" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 00:56:09 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:52:37 UTC 2023 pageSize = 22432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5896,85 +5895,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6371,12 +6376,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_hellen88bmw.ini b/firmware/tunerstudio/generated/rusefi_hellen88bmw.ini index f51c111173..05f0692c36 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen88bmw.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen88bmw.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI master.2023.02.15.hellen88bmw.3191300124" + signature = "rusEFI master.2023.02.15.hellen88bmw.544038185" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.hellen88bmw.3191300124" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.hellen88bmw.544038185" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 00:56:06 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:52:34 UTC 2023 pageSize = 22432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5897,85 +5896,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6370,12 +6375,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_hellenNA6.ini b/firmware/tunerstudio/generated/rusefi_hellenNA6.ini index 13d32a3687..e401c105d3 100644 --- a/firmware/tunerstudio/generated/rusefi_hellenNA6.ini +++ b/firmware/tunerstudio/generated/rusefi_hellenNA6.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI master.2023.02.15.hellenNA6.3312516373" + signature = "rusEFI master.2023.02.15.hellenNA6.1529528352" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.hellenNA6.3312516373" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.hellenNA6.1529528352" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 00:56:13 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:52:40 UTC 2023 pageSize = 22432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5898,85 +5897,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6373,12 +6378,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_hellenNA8_96.ini b/firmware/tunerstudio/generated/rusefi_hellenNA8_96.ini index b531deb7ec..4ca8a0b2cd 100644 --- a/firmware/tunerstudio/generated/rusefi_hellenNA8_96.ini +++ b/firmware/tunerstudio/generated/rusefi_hellenNA8_96.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI master.2023.02.15.hellenNA8_96.2913041962" + signature = "rusEFI master.2023.02.15.hellenNA8_96.872104735" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.hellenNA8_96.2913041962" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.hellenNA8_96.872104735" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 00:56:14 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:52:42 UTC 2023 pageSize = 22432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5898,85 +5897,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6373,12 +6378,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_kin.ini b/firmware/tunerstudio/generated/rusefi_kin.ini index b65d7d7013..a048eeadd3 100644 --- a/firmware/tunerstudio/generated/rusefi_kin.ini +++ b/firmware/tunerstudio/generated/rusefi_kin.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI master.2023.02.15.kin.3288720385" + signature = "rusEFI master.2023.02.15.kin.1516230964" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.kin.3288720385" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.kin.1516230964" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Wed Feb 15 00:55:52 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Wed Feb 15 23:52:19 UTC 2023 pageSize = 22432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5901,86 +5900,92 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} panel = triggerInputComparator + panel = triggerConfiguration_gap - - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6377,12 +6382,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_m74_9.ini b/firmware/tunerstudio/generated/rusefi_m74_9.ini index 9d2b805b5d..3de0b73533 100644 --- a/firmware/tunerstudio/generated/rusefi_m74_9.ini +++ b/firmware/tunerstudio/generated/rusefi_m74_9.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI master.2023.02.15.m74_9.1935449078" + signature = "rusEFI master.2023.02.15.m74_9.3976636099" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.m74_9.1935449078" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.m74_9.3976636099" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 00:56:21 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:52:48 UTC 2023 pageSize = 22432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5898,85 +5897,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6373,12 +6378,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_mre_f4.ini b/firmware/tunerstudio/generated/rusefi_mre_f4.ini index 268e96c6f3..c94772250d 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 master.2023.02.15.mre_f4.141059902" + signature = "rusEFI master.2023.02.15.mre_f4.2519882251" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.mre_f4.141059902" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.mre_f4.2519882251" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 00:56:17 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:52:44 UTC 2023 pageSize = 22432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5899,85 +5898,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6374,12 +6379,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_mre_f7.ini b/firmware/tunerstudio/generated/rusefi_mre_f7.ini index 8d881543cb..6e277d4b99 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 master.2023.02.15.mre_f7.141059902" + signature = "rusEFI master.2023.02.15.mre_f7.2519882251" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.mre_f7.141059902" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.mre_f7.2519882251" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 00:56:16 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:52:43 UTC 2023 pageSize = 22432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5899,85 +5898,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6374,12 +6379,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_prometheus_405.ini b/firmware/tunerstudio/generated/rusefi_prometheus_405.ini index e1b9dbbf0a..a133fd0695 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 master.2023.02.15.prometheus_405.4231569195" + signature = "rusEFI master.2023.02.15.prometheus_405.1650631198" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.prometheus_405.4231569195" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.prometheus_405.1650631198" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 00:56:26 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:52:53 UTC 2023 pageSize = 22432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5895,85 +5894,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6370,12 +6375,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_prometheus_469.ini b/firmware/tunerstudio/generated/rusefi_prometheus_469.ini index e5290b0b5c..d99b0b38fd 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 master.2023.02.15.prometheus_469.4231569195" + signature = "rusEFI master.2023.02.15.prometheus_469.1650631198" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.prometheus_469.4231569195" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.prometheus_469.1650631198" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 00:56:24 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:52:52 UTC 2023 pageSize = 22432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5895,85 +5894,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6370,12 +6375,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_proteus_f4.ini b/firmware/tunerstudio/generated/rusefi_proteus_f4.ini index f4b9e0d068..3c4ecd1995 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 master.2023.02.15.proteus_f4.2182471482" + signature = "rusEFI master.2023.02.15.proteus_f4.474997263" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.proteus_f4.2182471482" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.proteus_f4.474997263" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 00:56:28 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:52:55 UTC 2023 pageSize = 26432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5895,85 +5894,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6370,12 +6375,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_proteus_f7.ini b/firmware/tunerstudio/generated/rusefi_proteus_f7.ini index e3238cce5c..fbe1e5a9a9 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 master.2023.02.15.proteus_f7.2182471482" + signature = "rusEFI master.2023.02.15.proteus_f7.474997263" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.proteus_f7.2182471482" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.proteus_f7.474997263" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 00:56:27 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:52:54 UTC 2023 pageSize = 26432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5895,85 +5894,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6370,12 +6375,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_proteus_h7.ini b/firmware/tunerstudio/generated/rusefi_proteus_h7.ini index cf6dc68285..0d21df3bff 100644 --- a/firmware/tunerstudio/generated/rusefi_proteus_h7.ini +++ b/firmware/tunerstudio/generated/rusefi_proteus_h7.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI master.2023.02.15.proteus_h7.2182471482" + signature = "rusEFI master.2023.02.15.proteus_h7.474997263" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.proteus_h7.2182471482" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.proteus_h7.474997263" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 00:56:29 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:52:56 UTC 2023 pageSize = 26432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5895,85 +5894,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6370,12 +6375,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_s105.ini b/firmware/tunerstudio/generated/rusefi_s105.ini index 84e6c94848..0eded7946e 100644 --- a/firmware/tunerstudio/generated/rusefi_s105.ini +++ b/firmware/tunerstudio/generated/rusefi_s105.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI master.2023.02.15.s105.355295459" + signature = "rusEFI master.2023.02.15.s105.2339855830" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.s105.355295459" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.s105.2339855830" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 00:56:22 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:52:49 UTC 2023 pageSize = 22432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5898,85 +5897,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6373,12 +6378,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_subaru_eg33_f7.ini b/firmware/tunerstudio/generated/rusefi_subaru_eg33_f7.ini index 8afffc6700..b8dc22ba43 100644 --- a/firmware/tunerstudio/generated/rusefi_subaru_eg33_f7.ini +++ b/firmware/tunerstudio/generated/rusefi_subaru_eg33_f7.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI master.2023.02.15.subaru_eg33_f7.3742307424" + signature = "rusEFI master.2023.02.15.subaru_eg33_f7.1096100181" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.subaru_eg33_f7.3742307424" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.subaru_eg33_f7.1096100181" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on config/boards/subaru_eg33/config/gen_subaru_config.sh integration/rusefi_config.txt Wed Feb 15 00:55:54 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on config/boards/subaru_eg33/config/gen_subaru_config.sh integration/rusefi_config.txt Wed Feb 15 23:52:21 UTC 2023 pageSize = 22432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5897,85 +5896,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6372,12 +6377,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/firmware/tunerstudio/generated/rusefi_tdg-pdm8.ini b/firmware/tunerstudio/generated/rusefi_tdg-pdm8.ini index cbfebff53f..3afd99a0d7 100644 --- a/firmware/tunerstudio/generated/rusefi_tdg-pdm8.ini +++ b/firmware/tunerstudio/generated/rusefi_tdg-pdm8.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI master.2023.02.15.tdg-pdm8.645688047" + signature = "rusEFI master.2023.02.15.tdg-pdm8.3089520602" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI master.2023.02.15.tdg-pdm8.645688047" ; signature is expected to be 7 or more characters. + signature= "rusEFI master.2023.02.15.tdg-pdm8.3089520602" ; 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 @@ -86,7 +86,7 @@ enable2ndByteCanID = false ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 00:56:34 UTC 2023 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:53:01 UTC 2023 pageSize = 22432 page = 1 @@ -186,7 +186,7 @@ boostControlMinTps = scalar, U08, 388, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 389, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 392, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 396, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" -gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 0, 18, 0 +gapTrackingLengthOverride = scalar, S08, 397, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 398, "kph", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 400, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 402, [0:0], "dynamic", "fixed" @@ -4902,8 +4902,7 @@ menuDialog = main subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = triggerConfiguration, "Trigger" - subMenu = triggerConfiguration_IO, "Advanced Trigger" - subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = trigger_advanced, "Advanced Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator @@ -5901,85 +5900,91 @@ dialog = sent_stateDialog, "sent_state" field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction -; Engine->Trigger configuration - dialog = triggerConfiguration_settings, "Trigger Pattern" + dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} - - ; see also in firmware '[doesTriggerImplyOperationMode]' tag - field = "What kind of engine", twoStroke - field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" field = "!Reminder that 4-stroke cycle is 720 degrees" field = "!For well-known trigger types use '0' trigger angle offset" field = "Trigger Angle Advance", globalTriggerAngleOffset - dialog = triggerConfiguration_gap, "Trigger Gap Override" - field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" - field = "Override well known trigger gaps", overrideTriggerGaps - field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } - field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } - field = "First gap to", triggerGapOverrideTo1 , { overrideTriggerGaps == 1 } + field = "" + field = "" - field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 } - field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 } - - field = "Third gap from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 } - field = "Third gap to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 } - - field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 } - field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 } - field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 } - field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 } - - dialog = triggerConfiguration_IO, "Advanced Trigger" - field = "!https://rusefi.com/s/vvt" -; todo: code generator to hard-code all triggers not requiring VVT? -; todo: https://github.com/rusefi/rusefi/issues/2077 - - field = "Cam mode (intake cams)", vvtMode1, {trigger_type != 3} - field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } - field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != 3} - field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } - field = "#Set offset so VVT indicates 0 degrees in default position" - field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } - field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } - field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } - field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } - field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition - field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm - field = "Print verbose VVT sync details to console",verboseVVTDecoding - field = "Print verbose trigger sync to console", verboseTriggerSynchDetails - field = "Display logic signals", displayLogicLevelsInEngineSniffer - field = "Do not print messages in case of sync error", silentTriggerError - field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs - field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} - field = "Trigger Edge Filter", doNotFilterTriggerEdgeNoise - - dialog = triggerInputs, "Trigger Inputs" field = "#Cam is primary if you have cam sensor as part of trigger shape" ; cam if ; two-stroke, or ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } - field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 4 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 34 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } - field = "#VVT or Cam for 60/2 goes below" - field = "#If your engine has no exhaust cam sensor, use intake cam inputs" + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } - dialog = triggerConfiguration - panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } - panel = triggerInputs, {1}, { consumeObdSensors == 0 } + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis @@ -6376,12 +6381,6 @@ dialog = sent_stateDialog, "sent_state" field = "Input channel", fuelLevelSensor panel = fuelLevelCurve - dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" - field = "Comparator Center Point Voltage", triggerCompCenterVolt - field = "Comparator hysteresis voltage (Min)", triggerCompHystMin - field = "Comparator hysteresis voltage (Max)", triggerCompHystMax - field = "VR-sensor saturation RPM", triggerCompSensorSatRpm - dialog = joystickPanel, "Joystick" field = "joustick center button", joystickCenterPin field = "joustick button A", joystickAPin diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/Fields.java b/java_console/models/src/main/java/com/rusefi/config/generated/Fields.java index 36bc593e6e..aced9f65cd 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/Fields.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/Fields.java @@ -1,6 +1,6 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 14:11:10 UTC 2023 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Wed Feb 15 23:53:05 UTC 2023 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; @@ -999,6 +999,7 @@ public class Fields { public static final int SENT_INPUT_COUNT = 1; public static final int SentEtbType_FORD_TYPE_1 = 1; public static final int SentEtbType_GM_TYPE_1 = 0; + public static final int SIGNATURE_HASH = 1523017054; public static final int specs_s_size = 12; public static final int spi_device_e_SPI_DEVICE_1 = 1; public static final int spi_device_e_SPI_DEVICE_2 = 2; @@ -1208,7 +1209,7 @@ public class Fields { public static final int TS_RESPONSE_UNDERRUN = 0x80; public static final int TS_RESPONSE_UNRECOGNIZED_COMMAND = 0x83; public static final char TS_SET_LOGGER_SWITCH = 'l'; - public static final String TS_SIGNATURE = "rusEFI master.2023.02.15.f407-discovery.3298646123"; + public static final String TS_SIGNATURE = "rusEFI master.2023.02.15.f407-discovery.1523017054"; public static final char TS_SINGLE_WRITE_COMMAND = 'W'; public static final char TS_TEST_COMMAND = 't'; public static final int TS_TOTAL_OUTPUT_SIZE = 1336;