Auto-generated configs and docs

This commit is contained in:
GitHub gen-configs Action 2023-02-15 23:53:06 +00:00
parent 952ae30775
commit a9835df9ac
76 changed files with 2422 additions and 2457 deletions

View File

@ -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'

View File

@ -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'

View File

@ -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'

View File

@ -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'

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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;