; This is a TunerStudio project for the rusEFI.com engine management system ; ; This file has been generated by invoking gen_config.bat. ; The input files are ; rusefi.input the common template ; rusefi_config.txt the project specific file ; ; In TunerStudio some fields have little question mark on the left of the name for additional field tips. ; Those tips are defined in ../integration/rusefi_config.txt ; ; For example ; ; float bias_resistor;Pull-up resistor value on your board;"Ohm" ; here 'bias_resistor' is internal field name and the text between semicolons is what produces the tooltip ; Note that '+' sign is required after first semicolon for tooltop to appear in TunerStudio ; ; ; field = "# blue text" ; field = "! red text" ; field = "normal text" ; ; ; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. enable2ndByteCanID = false [SettingGroups] ; the referenceName will over-ride previous, so if you are creating a ; settingGroup with a reference name of lambdaSensor, it will replace the ; setting group defined in the settingGroups.xml of the TunerStudio config ; folder. If is is an undefined referenceName, it will be added. ; keyword = referenceName, DisplayName [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 signature = @@TS_SIGNATURE@@ [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. signature = @@TS_SIGNATURE@@ ; 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 ignoreMissingBitOptions = true ; Optimize comms for fast rusEFI ECUs noCommReadDelay = true; defaultRuntimeRecordPerSec = 100; maxUnusedRuntimeRange = 1000; ; Set default IP/port to our IP/port defaultIpAddress = 192.168.10.1; defaultIpPort = 29000; [Constants] ; new packet serial format with CRC messageEnvelopeFormat = msEnvelope_1.0 endianness = little nPages = 1 pageIdentifier = "\x00\x00" pageReadCommand = "@@TS_READ_COMMAND_char@@%2o%2c" burnCommand = "@@TS_BURN_COMMAND_char@@" pageActivate = "@@TS_PAGE_COMMAND_char@@" pageValueWrite = "@@TS_SINGLE_WRITE_COMMAND_char@@%2o%v" pageChunkWrite = "@@TS_CHUNK_WRITE_COMMAND_char@@%2o%2c%v" crc32CheckCommand = "@@TS_CRC_CHECK_COMMAND_char@@%2o%2c" retrieveConfigError = "e" ;communication settings pageActivationDelay = 500 ; Milliseconds delay after burn command. See https://sourceforge.net/p/rusefi/tickets/77/ ;e.g. put writeblocks off and add an interwrite delay writeBlocks = on interWriteDelay = 10 blockReadTimeout = @@TS_BLOCK_READ_TIMEOUT@@; Milliseconds general timeout ; delayAfterPortOpen = 500 blockingFactor = @@BLOCKING_FACTOR@@ ; max chunk size ;end communication settings ; name = bits, type, offset, bits ; name = array, type, offset, shape, units, scale, translate, lo, hi, digits ; name = scalar, type, offset, units, scale, translate, lo, hi, digits ; CONFIG_DEFINITION_START ; this section will be generated automatically by ConfigDefinition.jar based on rusefi_config.txt ; CONFIG_DEFINITION_END [Tuning] spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators. cursorDepth = 2 ; Same as spot depth. gaugeColumns = 1 ; Only 1 or 2 are valid. pageButtons = "&EGO" gauge1 = RPMGauge #if LAMBDA gauge2 = lambda1Gauge #else gauge2 = afr1Gauge #endif gauge3 = MAPGauge gauge4 = veValueGauge [LoggerDefinition] ; valid logger types: composite, tooth, trigger, csv ; loggerDef = compositeLogger, "Primary Trigger Logger", tooth loggerDef = compositeLogger, "Trigger Logger", composite startCommand = "l\x01" stopCommand = "l\x02" dataReadCommand = "L" dataReadTimeout = 10000 ; time in ms dataReadyCondition = { toothLogReady } continuousRead = true ;tooth ; recordDef = headerLen, footerLen, recordLen ; recordDef = 0, 0, @@COMPOSITE_PACKET_SIZE@@ ; uint16 that stores 1/100 second ; recordField = toothTime, "tooth", 0, 16, 0.01, "ms" ; recordDef = headerLen, footerLen, recordLen recordDef = 0, 0, @@COMPOSITE_PACKET_SIZE@@ ; these names are hard-coded inside TS recordField = priLevel, "PriLevel", 0, 1, 1.0, "Flag" recordField = secLevel, "SecLevel", 1, 1, 1.0, "Flag" recordField = trigger, "Trigger", 2, 1, 1.0, "Flag" recordField = sync, "Sync", 3, 1, 1.0, "Flag" recordField = coil, "Coil", 4, 1, 1.0, "Flag" recordField = inj, "Injector", 5, 1, 1.0, "Flag" recordField = time, "Time", 8, 32, 0.001, "ms" ; it seems that TS also needs to know the diff.size of a tooth calcField = toothTime, "ToothTime", "ms", { time - pastValue(time, 1) } [VeAnalyze] ; tableName, lambdaTargetTableName, lambdaChannel, egoCorrectionChannel, activeCondition #if LAMBDA veAnalyzeMap = veTableTbl, lambdaTableTbl, lambdaValue, egoCorrectionForVeAnalyze, { 1 } lambdaTargetTables = lambdaTableTbl, afrTSCustom #else veAnalyzeMap = veTableTbl, afrTableTbl, AFRValue, egoCorrectionForVeAnalyze, { 1 } lambdaTargetTables = afrTableTbl, afrTSCustom #endif ; filter = Name, "DisplayName", outputChannel, operator, defaultVal, userAdjustable filter = minRPMFilter, "Minimum RPM", RPMValue, < , 500, , true filter = minCltFilter, "Minimum CLT", coolant, < , 60, , true filter = deltaTps, "dTPS", deltaTps > , 50, , true filter = VBatt, "VBatt", VBatt < , 12, , true filter = minTps, "Minimum TPS", TPSValue, < , 1, , true ; ; in order to add new TunerStudio gauge you need to chagne two places ; 1) add a line here in '[OutputChannels]' ; 2) in rusEFI firmware make a change to output_channels.txt ; [OutputChannels] ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code ochBlockSize = @@TS_TOTAL_OUTPUT_SIZE@@ ; ; see TunerStudioOutputChannels struct ; @@OUTPUTS_SECTION_FROM_FILE@@ time = { timeNow } egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } ; These "synthetic" channels provide the Y-axis (load) value for gen purp PWM table's Y axes gppwm1_load = {(gppwm1_loadAxis == 0) ? 0 : (gppwm1_loadAxis == 1) ? TPSValue : (gppwm1_loadAxis == 2) ? MAPValue : (gppwm1_loadAxis == 3) ? coolant : (gppwm1_loadAxis == 4) ? intake : (gppwm1_loadAxis == 5) ? fuelingLoad : (gppwm1_loadAxis == 6) ? ignitionLoad : (gppwm1_loadAxis == 7) ? auxTemp1 : (gppwm1_loadAxis == 8) ? auxTemp2 : (gppwm1_loadAxis == 9) ? throttlePedalPosition : (gppwm1_loadAxis == 10) ? VBatt : (gppwm1_loadAxis == 11) ? vvtPositionB1I : (gppwm1_loadAxis == 12) ? vvtPositionB1E : (gppwm1_loadAxis == 13) ? vvtPositionB2I : (gppwm1_loadAxis == 14) ? vvtPositionB2E : (gppwm1_loadAxis == 15) ? flexPercent : (gppwm1_loadAxis == 16) ? auxLinear1 : (gppwm1_loadAxis == 17) ? auxLinear2 : 0} gppwm2_load = {(gppwm2_loadAxis == 0) ? 0 : (gppwm2_loadAxis == 1) ? TPSValue : (gppwm2_loadAxis == 2) ? MAPValue : (gppwm2_loadAxis == 3) ? coolant : (gppwm2_loadAxis == 4) ? intake : (gppwm2_loadAxis == 5) ? fuelingLoad : (gppwm2_loadAxis == 6) ? ignitionLoad : (gppwm2_loadAxis == 7) ? auxTemp1 : (gppwm2_loadAxis == 8) ? auxTemp2 : (gppwm2_loadAxis == 9) ? throttlePedalPosition : (gppwm2_loadAxis == 10) ? VBatt : (gppwm2_loadAxis == 11) ? vvtPositionB1I : (gppwm2_loadAxis == 12) ? vvtPositionB1E : (gppwm2_loadAxis == 13) ? vvtPositionB2I : (gppwm2_loadAxis == 14) ? vvtPositionB2E : (gppwm2_loadAxis == 15) ? flexPercent : (gppwm2_loadAxis == 16) ? auxLinear1 : (gppwm2_loadAxis == 17) ? auxLinear2 : 0} gppwm3_load = {(gppwm3_loadAxis == 0) ? 0 : (gppwm3_loadAxis == 1) ? TPSValue : (gppwm3_loadAxis == 2) ? MAPValue : (gppwm3_loadAxis == 3) ? coolant : (gppwm3_loadAxis == 4) ? intake : (gppwm3_loadAxis == 5) ? fuelingLoad : (gppwm3_loadAxis == 6) ? ignitionLoad : (gppwm3_loadAxis == 7) ? auxTemp1 : (gppwm3_loadAxis == 8) ? auxTemp2 : (gppwm3_loadAxis == 9) ? throttlePedalPosition : (gppwm3_loadAxis == 10) ? VBatt : (gppwm3_loadAxis == 11) ? vvtPositionB1I : (gppwm3_loadAxis == 12) ? vvtPositionB1E : (gppwm3_loadAxis == 13) ? vvtPositionB2I : (gppwm3_loadAxis == 14) ? vvtPositionB2E : (gppwm3_loadAxis == 15) ? flexPercent : (gppwm3_loadAxis == 16) ? auxLinear1 : (gppwm3_loadAxis == 17) ? auxLinear2 : 0} gppwm4_load = {(gppwm4_loadAxis == 0) ? 0 : (gppwm4_loadAxis == 1) ? TPSValue : (gppwm4_loadAxis == 2) ? MAPValue : (gppwm4_loadAxis == 3) ? coolant : (gppwm4_loadAxis == 4) ? intake : (gppwm4_loadAxis == 5) ? fuelingLoad : (gppwm4_loadAxis == 6) ? ignitionLoad : (gppwm4_loadAxis == 7) ? auxTemp1 : (gppwm4_loadAxis == 8) ? auxTemp2 : (gppwm4_loadAxis == 9) ? throttlePedalPosition : (gppwm4_loadAxis == 10) ? VBatt : (gppwm4_loadAxis == 11) ? vvtPositionB1I : (gppwm4_loadAxis == 12) ? vvtPositionB1E : (gppwm4_loadAxis == 13) ? vvtPositionB2I : (gppwm4_loadAxis == 14) ? vvtPositionB2E : (gppwm4_loadAxis == 15) ? flexPercent : (gppwm4_loadAxis == 16) ? auxLinear1 : (gppwm4_loadAxis == 17) ? auxLinear2 : 0} ignBlends1_blendVal = {(ignBlends1_blendParameter == 0) ? 0 : (ignBlends1_blendParameter == 1) ? TPSValue : (ignBlends1_blendParameter == 2) ? MAPValue : (ignBlends1_blendParameter == 3) ? coolant : (ignBlends1_blendParameter == 4) ? intake : (ignBlends1_blendParameter == 5) ? fuelingLoad : (ignBlends1_blendParameter == 6) ? ignitionLoad : (ignBlends1_blendParameter == 7) ? auxTemp1 : (ignBlends1_blendParameter == 8) ? auxTemp2 : (ignBlends1_blendParameter == 9) ? throttlePedalPosition : (ignBlends1_blendParameter == 10) ? VBatt : (ignBlends1_blendParameter == 11) ? vvtPositionB1I : (ignBlends1_blendParameter == 12) ? vvtPositionB1E : (ignBlends1_blendParameter == 13) ? vvtPositionB2I : (ignBlends1_blendParameter == 14) ? vvtPositionB2E : (ignBlends1_blendParameter == 15) ? flexPercent : (ignBlends1_blendParameter == 16) ? auxLinear1 : (ignBlends1_blendParameter == 17) ? auxLinear2 : 0} ignBlends2_blendVal = {(ignBlends2_blendParameter == 0) ? 0 : (ignBlends2_blendParameter == 1) ? TPSValue : (ignBlends2_blendParameter == 2) ? MAPValue : (ignBlends2_blendParameter == 3) ? coolant : (ignBlends2_blendParameter == 4) ? intake : (ignBlends2_blendParameter == 5) ? fuelingLoad : (ignBlends2_blendParameter == 6) ? ignitionLoad : (ignBlends2_blendParameter == 7) ? auxTemp1 : (ignBlends2_blendParameter == 8) ? auxTemp2 : (ignBlends2_blendParameter == 9) ? throttlePedalPosition : (ignBlends2_blendParameter == 10) ? VBatt : (ignBlends2_blendParameter == 11) ? vvtPositionB1I : (ignBlends2_blendParameter == 12) ? vvtPositionB1E : (ignBlends2_blendParameter == 13) ? vvtPositionB2I : (ignBlends2_blendParameter == 14) ? vvtPositionB2E : (ignBlends2_blendParameter == 15) ? flexPercent : (ignBlends2_blendParameter == 16) ? auxLinear1 : (ignBlends2_blendParameter == 17) ? auxLinear2 : 0} ignBlends3_blendVal = {(ignBlends3_blendParameter == 0) ? 0 : (ignBlends3_blendParameter == 1) ? TPSValue : (ignBlends3_blendParameter == 2) ? MAPValue : (ignBlends3_blendParameter == 3) ? coolant : (ignBlends3_blendParameter == 4) ? intake : (ignBlends3_blendParameter == 5) ? fuelingLoad : (ignBlends3_blendParameter == 6) ? ignitionLoad : (ignBlends3_blendParameter == 7) ? auxTemp1 : (ignBlends3_blendParameter == 8) ? auxTemp2 : (ignBlends3_blendParameter == 9) ? throttlePedalPosition : (ignBlends3_blendParameter == 10) ? VBatt : (ignBlends3_blendParameter == 11) ? vvtPositionB1I : (ignBlends3_blendParameter == 12) ? vvtPositionB1E : (ignBlends3_blendParameter == 13) ? vvtPositionB2I : (ignBlends3_blendParameter == 14) ? vvtPositionB2E : (ignBlends3_blendParameter == 15) ? flexPercent : (ignBlends3_blendParameter == 16) ? auxLinear1 : (ignBlends3_blendParameter == 17) ? auxLinear2 : 0} ignBlends4_blendVal = {(ignBlends4_blendParameter == 0) ? 0 : (ignBlends4_blendParameter == 1) ? TPSValue : (ignBlends4_blendParameter == 2) ? MAPValue : (ignBlends4_blendParameter == 3) ? coolant : (ignBlends4_blendParameter == 4) ? intake : (ignBlends4_blendParameter == 5) ? fuelingLoad : (ignBlends4_blendParameter == 6) ? ignitionLoad : (ignBlends4_blendParameter == 7) ? auxTemp1 : (ignBlends4_blendParameter == 8) ? auxTemp2 : (ignBlends4_blendParameter == 9) ? throttlePedalPosition : (ignBlends4_blendParameter == 10) ? VBatt : (ignBlends4_blendParameter == 11) ? vvtPositionB1I : (ignBlends4_blendParameter == 12) ? vvtPositionB1E : (ignBlends4_blendParameter == 13) ? vvtPositionB2I : (ignBlends4_blendParameter == 14) ? vvtPositionB2E : (ignBlends4_blendParameter == 15) ? flexPercent : (ignBlends4_blendParameter == 16) ? auxLinear1 : (ignBlends4_blendParameter == 17) ? auxLinear2 : 0} veBlends1_blendVal = {(veBlends1_blendParameter == 0) ? 0 : (veBlends1_blendParameter == 1) ? TPSValue : (veBlends1_blendParameter == 2) ? MAPValue : (veBlends1_blendParameter == 3) ? coolant : (veBlends1_blendParameter == 4) ? intake : (veBlends1_blendParameter == 5) ? fuelingLoad : (veBlends1_blendParameter == 6) ? ignitionLoad : (veBlends1_blendParameter == 7) ? auxTemp1 : (veBlends1_blendParameter == 8) ? auxTemp2 : (veBlends1_blendParameter == 9) ? throttlePedalPosition : (veBlends1_blendParameter == 10) ? VBatt : (veBlends1_blendParameter == 11) ? vvtPositionB1I : (veBlends1_blendParameter == 12) ? vvtPositionB1E : (veBlends1_blendParameter == 13) ? vvtPositionB2I : (veBlends1_blendParameter == 14) ? vvtPositionB2E : (veBlends1_blendParameter == 15) ? flexPercent : (veBlends1_blendParameter == 16) ? auxLinear1 : (veBlends1_blendParameter == 17) ? auxLinear2 : 0} veBlends2_blendVal = {(veBlends2_blendParameter == 0) ? 0 : (veBlends2_blendParameter == 1) ? TPSValue : (veBlends2_blendParameter == 2) ? MAPValue : (veBlends2_blendParameter == 3) ? coolant : (veBlends2_blendParameter == 4) ? intake : (veBlends2_blendParameter == 5) ? fuelingLoad : (veBlends2_blendParameter == 6) ? ignitionLoad : (veBlends2_blendParameter == 7) ? auxTemp1 : (veBlends2_blendParameter == 8) ? auxTemp2 : (veBlends2_blendParameter == 9) ? throttlePedalPosition : (veBlends2_blendParameter == 10) ? VBatt : (veBlends2_blendParameter == 11) ? vvtPositionB1I : (veBlends2_blendParameter == 12) ? vvtPositionB1E : (veBlends2_blendParameter == 13) ? vvtPositionB2I : (veBlends2_blendParameter == 14) ? vvtPositionB2E : (veBlends2_blendParameter == 15) ? flexPercent : (veBlends2_blendParameter == 16) ? auxLinear1 : (veBlends2_blendParameter == 17) ? auxLinear2 : 0} veBlends3_blendVal = {(veBlends3_blendParameter == 0) ? 0 : (veBlends3_blendParameter == 1) ? TPSValue : (veBlends3_blendParameter == 2) ? MAPValue : (veBlends3_blendParameter == 3) ? coolant : (veBlends3_blendParameter == 4) ? intake : (veBlends3_blendParameter == 5) ? fuelingLoad : (veBlends3_blendParameter == 6) ? ignitionLoad : (veBlends3_blendParameter == 7) ? auxTemp1 : (veBlends3_blendParameter == 8) ? auxTemp2 : (veBlends3_blendParameter == 9) ? throttlePedalPosition : (veBlends3_blendParameter == 10) ? VBatt : (veBlends3_blendParameter == 11) ? vvtPositionB1I : (veBlends3_blendParameter == 12) ? vvtPositionB1E : (veBlends3_blendParameter == 13) ? vvtPositionB2I : (veBlends3_blendParameter == 14) ? vvtPositionB2E : (veBlends3_blendParameter == 15) ? flexPercent : (veBlends3_blendParameter == 16) ? auxLinear1 : (veBlends3_blendParameter == 17) ? auxLinear2 : 0} veBlends4_blendVal = {(veBlends4_blendParameter == 0) ? 0 : (veBlends4_blendParameter == 1) ? TPSValue : (veBlends4_blendParameter == 2) ? MAPValue : (veBlends4_blendParameter == 3) ? coolant : (veBlends4_blendParameter == 4) ? intake : (veBlends4_blendParameter == 5) ? fuelingLoad : (veBlends4_blendParameter == 6) ? ignitionLoad : (veBlends4_blendParameter == 7) ? auxTemp1 : (veBlends4_blendParameter == 8) ? auxTemp2 : (veBlends4_blendParameter == 9) ? throttlePedalPosition : (veBlends4_blendParameter == 10) ? VBatt : (veBlends4_blendParameter == 11) ? vvtPositionB1I : (veBlends4_blendParameter == 12) ? vvtPositionB1E : (veBlends4_blendParameter == 13) ? vvtPositionB2I : (veBlends4_blendParameter == 14) ? vvtPositionB2E : (veBlends4_blendParameter == 15) ? flexPercent : (veBlends4_blendParameter == 16) ? auxLinear1 : (veBlends4_blendParameter == 17) ? auxLinear2 : 0} wbo0_hasFault = { enableAemXSeries && (faultCode >= 3) } [PcVariables] tuneCrcPcVariable = continuousChannelValue, tuneCrc16 wueAfrTargetOffset = array, S16, [ 16], ":1", 0.1, 0.0, -3.0, 3.0, 1; wueAnalRecommend = array, U08, [ 16], "%", 1.00, 0.0, 100, 255.00, 0 gearCountArray = array, S08, [@@TCU_GEAR_COUNT@@], "Gear", 1, 0, -1, { @@TCU_GEAR_COUNT@@ - 2 }, 0, noMsqSave solenoidCountArray = array, U08, [@@TCU_SOLENOID_COUNT@@], "Solenoid", 1, 0, 1, @@TCU_SOLENOID_COUNT@@, 0, noMsqSave ; These are inverted (false = "Yes") so that they default to enabled enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" enableLogErrorList = bits, U08, [0:0], "Yes", "No" ; wall of debug mode :) ; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields ; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID ; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 ; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" wboFaultCodeList = bits, U08, [0:3], "OK", "Unk", "Unk", "failed to heat", "overheat", "underheat", "no supply" fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off" [ConstantsExtensions] ; defaultValue is used to provide TunerStudio with a value to use in the case of ; the constant not yet being initialized. This is primarily important if the ; constant is used as a variable in the ini. ; defaultValue = constantName, value; defaultValue = wueAfrTargetOffset, -1.5 -1.4 -1.15 -0.95 -0.775 -0.65 -0.5625 -0.5 -0.4375 -0.375 -0.3125 -0.25 -0.1875 -0.125 -0.0625 0 ; this magic is best described in output_channels.txt search for 'maintainConstantValue' ; TPS 1 Primary maintainConstantValue = tpsMax, { (calibrationMode == @@TsCalMode_Tps1Max@@ ) ? calibrationValue : tpsMax } maintainConstantValue = tpsMin, { (calibrationMode == @@TsCalMode_Tps1Min@@ ) ? calibrationValue : tpsMin } ; TPS 1 Secondary maintainConstantValue = tps1SecondaryMax, { (calibrationMode == 6 ) ? calibrationValue : tps1SecondaryMax } maintainConstantValue = tps1SecondaryMin, { (calibrationMode == 7 ) ? calibrationValue : tps1SecondaryMin } ; TPS 2 Primary maintainConstantValue = tps2Max, { (calibrationMode == 8 ) ? calibrationValue : tps2Max } maintainConstantValue = tps2Min, { (calibrationMode == 9 ) ? calibrationValue : tps2Min } ; TPS 2 Secondary maintainConstantValue = tps2SecondaryMax, { (calibrationMode == @@TsCalMode_Tps2SecondaryMax@@ ) ? calibrationValue : tps2SecondaryMax } maintainConstantValue = tps2SecondaryMin, { (calibrationMode == @@TsCalMode_Tps2SecondaryMin@@ ) ? calibrationValue : tps2SecondaryMin } ; ETB Auto Gain Calibration maintainConstantValue = etb_pFactor, { (calibrationMode == 3 ) ? calibrationValue : etb_pFactor } maintainConstantValue = etb_iFactor, { (calibrationMode == 4 ) ? calibrationValue : etb_iFactor } maintainConstantValue = etb_dFactor, { (calibrationMode == 5 ) ? calibrationValue : etb_dFactor } maintainConstantValue = throttlePedalUpVoltage, { (calibrationMode == @@TsCalMode_PedalMin@@ ) ? calibrationValue : throttlePedalUpVoltage } maintainConstantValue = throttlePedalSecondaryUpVoltage, { (calibrationMode == @@TsCalMode_PedalMin@@ ) ? calibrationValue2 : throttlePedalSecondaryUpVoltage } maintainConstantValue = throttlePedalWOTVoltage, { (calibrationMode == @@TsCalMode_PedalMax@@ ) ? calibrationValue : throttlePedalWOTVoltage } maintainConstantValue = throttlePedalSecondaryWOTVoltage,{ (calibrationMode == @@TsCalMode_PedalMax@@ ) ? calibrationValue2 : throttlePedalSecondaryWOTVoltage } requiresPowerCycle = useETBforIdleControl requiresPowerCycle = warningLedPin requiresPowerCycle = runningLedPin requiresPowerCycle = binarySerialTxPin requiresPowerCycle = binarySerialRxPin requiresPowerCycle = tunerStudioSerialSpeed requiresPowerCycle = auxSerialRxPin requiresPowerCycle = auxSerialTxPin requiresPowerCycle = etb_use_two_wires requiresPowerCycle = etbFreq requiresPowerCycle = etbFunctions1 requiresPowerCycle = etbFunctions2 requiresPowerCycle = idle_solenoidFrequency requiresPowerCycle = boostPwmFrequency requiresPowerCycle = alternatorPwmFrequency requiresPowerCycle = vvtOutputFrequency1 requiresPowerCycle = vvtOutputFrequency2 requiresPowerCycle = vvtPins1 requiresPowerCycle = vvtPins2 requiresPowerCycle = vvtPins3 requiresPowerCycle = vvtPins4 requiresPowerCycle = auxAnalogInputs1 requiresPowerCycle = auxAnalogInputs2 requiresPowerCycle = auxAnalogInputs3 requiresPowerCycle = auxAnalogInputs4 requiresPowerCycle = auxAnalogInputs5 requiresPowerCycle = auxAnalogInputs6 requiresPowerCycle = auxAnalogInputs7 requiresPowerCycle = auxAnalogInputs8 readOnly = warning_message defaultValue = gearCountArray, -1 0 1 2 3 4 5 6 7 8 readOnly = gearCountArray defaultValue = solenoidCountArray, 1 2 3 4 5 6 7 8 readOnly = solenoidCountArray [CurveEditor] ; xAxis = leftValue, rightValue, step ; yAxis = bottomValue, topValue, step curve = knockThresholdCurve, "Engine knock threshold RPM based" columnLabel = "RPM", "Threshold" xAxis = 0, 8000, 9 yAxis = 0, 8, 10 xBins = knockNoiseRpmBins, RPMValue yBins = knockBaseNoise gauge = RPMGauge curve = narrowToWideOxygenCurve, "Narrow to Wideband approximation" columnLabel = "Voltage", "AFR" xAxis = 0, 6, 10 yAxis = 0, 28, 10 xBins = narrowToWideOxygenBins yBins = narrowToWideOxygen #if LAMBDA gauge = lambda1Gauge #else gauge = afr1Gauge #endif curve = scriptCurve1, "Script Curve #1" columnLabel = "X", "Y" xAxis = 0, 128, 10 yAxis = -155, 150, 10 xBins = scriptCurve1Bins yBins = scriptCurve1 showTextValues = true curve = scriptCurve2, "Script Curve #2" columnLabel = "X", "Y" xAxis = 0, 128, 10 yAxis = -150, 150, 10 xBins = scriptCurve2Bins yBins = scriptCurve2 showTextValues = true curve = scriptCurve3, "Script Curve #3" columnLabel = "X", "Y" xAxis = 0, 128, 10 yAxis = -5, 5, 10 xBins = scriptCurve3Bins yBins = scriptCurve3 showTextValues = true curve = scriptCurve4, "Script Curve #4" columnLabel = "X", "Y" xAxis = 0, 128, 10 yAxis = -5, 5, 10 xBins = scriptCurve4Bins yBins = scriptCurve4 showTextValues = true curve = scriptCurve5, "Script Curve #5" columnLabel = "X", "Y" xAxis = 0, 128, 10 yAxis = -5, 5, 10 xBins = scriptCurve5Bins yBins = scriptCurve5 showTextValues = true curve = scriptCurve6, "Script Curve #6" columnLabel = "X", "Y" xAxis = 0, 128, 10 yAxis = -5, 5, 10 xBins = scriptCurve6Bins yBins = scriptCurve6 showTextValues = true curve = dwellCorrection, "Dwell time base" columnLabel = "RPM", "Dwell" xAxis = 0, 8000, 9 yAxis = 0, 8, 9 xBins = sparkDwellRpmBins, RPMValue yBins = sparkDwellValues gauge = RPMGauge curve = dwellVoltageCorrection, "Dwell voltage correction" columnLabel = "Battery Volts", "Multiplier" xAxis = 6, 16, 11 yAxis = 0, 3, 7 xBins = dwellVoltageCorrVoltBins, VBatt yBins = dwellVoltageCorrValues gauge = VBattGauge curve = primingPulse, "Priming pulse fuel mass" columnLabel = "Coolant", "Prime Pulse" xAxis = -40, 120, 9 yAxis = 0, 1000, 9 xBins = primeBins, coolant yBins = primeValues gauge = CLTGauge curve = map_samplingAngleCurve, "MAP Sampling Start Angle" columnLabel = "RPM", "Angle" xAxis = 0, 8000, 9 yAxis = 0, 180, 10 xBins = map_samplingAngleBins, RPMValue yBins = map_samplingAngle gauge = MAPGauge curve = map_samplingWindowCurve, "MAP Sampling Duration" columnLabel = "RPM", "Window" xAxis = 0, 8000, 9 yAxis = 0, 180, 10 xBins = map_samplingWindowBins, RPMValue yBins = map_samplingWindow gauge = MAPGauge curve = injectorsDeadTime, "Injector dead time" columnLabel = "Battery", "Dead Time" xAxis = 6, 16, 11 yAxis = 0, 8, 9 xBins = injector_battLagCorrBins, VBatt yBins = injector_battLagCorr gauge = VBattGauge curve = vrThresholdCurve1, "VR 1 Threshold" columnLabel = "RPM", "Voltage" xAxis = 0, 8000, 9 yAxis = 0, 2.5, 6 xBins = vrThreshold1_rpmBins, RPMValue yBins = vrThreshold1_values curve = vrThresholdCurve2, "VR 2 Threshold" columnLabel = "RPM", "Voltage" xAxis = 0, 8000, 9 yAxis = 0, 2.5, 6 xBins = vrThreshold2_rpmBins, RPMValue yBins = vrThreshold2_values curve = mafDecodingCurve, "MAF sensor" columnLabel = "Voltage", "kg/hour" xAxis = -1, 6, 10 yAxis = -30, 1300, 10 xBins = mafDecodingBins, rawMaf yBins = mafDecoding gauge = rawMafGauge curve = iatFuelCorrCurve, "Intake air temperature fuel Multiplier" columnLabel = "Air Temp", "Multiplier" xAxis = -40, 120, 9 yAxis = 0, 2, 11 xBins = iatFuelCorrBins, intake yBins = iatFuelCorr gauge = IATGauge curve = cltTimingCorrCurve, "Warmup timing correction" columnLabel = "Coolant", "Extra" xAxis = -40, 120, 9 yAxis = 0, 20, 9 xBins = cltTimingBins, coolant yBins = cltTimingExtra gauge = CLTGauge curve = cltFuelCorrCurve, "Warmup fuel manual Multiplier" columnLabel = "Coolant", "Multiplier" xAxis = -40, 120, 9 yAxis = 0, 3, 10 xBins = cltFuelCorrBins, coolant yBins = cltFuelCorr gauge = CLTGauge curve = crankingCltCurve, "Cranking Coolant Temperature Multiplier" columnLabel = "Coolant", "Multiplier" xAxis = -40, 120, 9 yAxis = 0, 3, 10 xBins = crankingFuelBins, coolant yBins = crankingFuelCoef gauge = CLTGauge curve = crankingCltCurveE100, "Cranking Coolant Temperature Multiplier (Flex Fuel E85)" columnLabel = "Coolant", "Multiplier" xAxis = -40, 120, 9 yAxis = 0, 3, 10 xBins = crankingFuelBins, coolant yBins = crankingFuelCoefE100 gauge = CLTGauge curve = cltRevLimitCurve, "" columnLabel = "Coolant", "RPM Limit" xAxis = -40, 120, 9 yAxis = 0, 8000, 9 xBins = cltRevLimitRpmBins, coolant yBins = cltRevLimitRpm gauge = CLTGauge curve = etbTpsBiasCurve, "Electronic TB Bias Curve" columnLabel = "TPS", "duty bias" xAxis = 0, 50, 11 yAxis = -40, 40, 9 xBins = etbBiasBins, TPSValue yBins = etbBiasValues gauge = TPSGauge curve = crankingTpsCurve, "Cranking TPS Multiplier" columnLabel = "TPS", "Multiplier" xAxis = 0, 100, 11 yAxis = 0, 3, 10 xBins = crankingTpsBins, TPSValue yBins = crankingTpsCoef gauge = TPSGauge curve = crankingDurationCurve, "Cranking Duration Multiplier" columnLabel = "Engine Cycle", "Multiplier" xAxis = 0, 50, 11 yAxis = 0, 5, 6 xBins = crankingCycleBins yBins = crankingCycleCoef curve = cltIdleCurve, "Warmup Idle multiplier" columnLabel = "Coolant", "Multiplier" xAxis = -40, 120, 10 yAxis = 0, 3, 10 xBins = cltIdleCorrBins, coolant yBins = cltIdleCorr gauge = CLTGauge curve = iacCoastingCurve, "Coasting IAC Position" columnLabel = "RPM", "Multiplier" xAxis = -40, 120, 9 yAxis = 0, 100, 10 xBins = iacCoastingRpmBins, RPMValue yBins = iacCoasting gauge = idleAirValvePositionGauge curve = cltCrankingCurve, "Cranking Idle Air multiplier" columnLabel = "Coolant", "Multiplier" xAxis = -40, 120, 9 yAxis = 0, 3, 10 xBins = cltCrankingCorrBins, coolant yBins = cltCrankingCorr gauge = CLTGauge curve = cltIdleRPMCurve, "Idle Target RPM" columnLabel = "Coolant", "RPM" xAxis = -40, 120, 9 yAxis = 0, 2400, 13 xBins = cltIdleRpmBins, coolant yBins = cltIdleRpm, RPMValue gauge = CLTGauge curve = idleAdvanceCurve, "Idle Advance Angle" columnLabel = "RPM", "degrees" xAxis = 0, 2400, 13 yAxis = -100, 100, 11 xBins = idleAdvanceBins, RPMValue yBins = idleAdvance gauge = RPMGauge curve = crankingAdvanceCurve, "Cranking Advance Angle" columnLabel = "RPM", "degrees" xAxis = 0, 1200, 13 yAxis = -30, 30, 11 xBins = crankingAdvanceBins, RPMValue yBins = crankingAdvance gauge = RPMGauge curve = fuelLevelCurve, "Fuel Level" columnLabel = "Voltage", "%" xAxis = 0, 5, 6 yAxis = 0, 100, 11 xBins = fuelLevelBins yBins = fuelLevelValues gauge = fuelTankLevelGauge curve = wueAfrTargetOffsetCurve, "AFR Target Temperature Adjustment" columnLabel = "Coolant", "AFR Offset" xAxis = -40, 200, 9 yAxis = -3, 1, 5 xBins = cltFuelCorrBins, coolant yBins = wueAfrTargetOffset gauge = cltGauge curve = wueAnalyzer_warmup_curve, "Warmup Enrichment" columnLabel = "Coolant", "Current WUE", "Coolant", "Corrected" xAxis = -40, 200, 9 yAxis = 90, 500, 6 xBins = cltFuelCorrBins, coolant yBins = cltFuelCorr yBins = wueAnalRecommend ;gauge = cltGauge lineLabel = "Warmup Correction" lineLabel = "Recommended WUE" curve = hpfpLobeProfileCurve, "HPFP Lobe Profile" columnLabel = "% pump volume", "angle" xAxis = 0, 100, 11 yAxis = 0, 240, 13 xBins = hpfpLobeProfileQuantityBins yBins = hpfpLobeProfileAngle curve = hpfpDeadtimeCurve, "HPFP Valve Deadtime" columnLabel = "volts", "ms" xAxis = 5, 15, 11 yAxis = 0, 5, 6 xBins = hpfpDeadtimeVoltsBins yBins = hpfpDeadtimeMS curve = wwTauCltCurve, "Evap time vs. CLT" columnLabel = "coolant", "seconds" xAxis = -40, 120, 9 yAxis = 0, 2, 9 xBins = wwCltBins, coolant yBins = wwTauCltValues gauge = CLTGauge curve = wwTauMapCurve, "Evap time vs. MAP" columnLabel = "MAP", "mult" xAxis = 0, 100, 5 yAxis = 0, 2, 9 xBins = wwMapBins, MAPValue yBins = wwTauMapValues gauge = MAPGauge curve = wwBetaCltCurve, "Impact fraction vs. CLT" columnLabel = "coolant", "fraction" xAxis = -40, 120, 9 yAxis = 0, 2, 9 xBins = wwCltBins, coolant yBins = wwBetaCltValues gauge = CLTGauge curve = wwBetaMapCurve, "Impact fraction vs. MAP" columnLabel = "MAP", "mult" xAxis = 0, 100, 5 yAxis = 0, 2, 9 xBins = wwMapBins, MAPValue yBins = wwBetaMapValues gauge = MAPGauge curve = tchargeCurve, "Charge temperature estimation coefficient" columnLabel = "flow", "coefficient" xAxis = 0, 500, 6 yAxis = 0, 100, 5 xBins = tchargeBins, mafEstimate yBins = tchargeValues gauge = tChargeGauge curve = tccLockCurve, "TCC Lock Curve" columnLabel = "TPS", "Lock Speed", "Unlock Speed" xAxis = 0, 100, 10 yAxis = 0, 100, 10 xBins = tcu_tccTpsBins, TPSValue yBins = tcu_tccLockSpeed yBins = tcu_tccUnlockSpeed gauge = TPSGauge curve = pcPerGearCurve, "Transmission Line Pressure Control" columnLabel = "Airmass", "" xAxis = 0, 5, 10 yAxis = 0, 100, 10 xBins = tcu_pcAirmassBins, chargeAirMass yBins = tcu_pcValsR yBins = tcu_pcValsN yBins = tcu_pcVals1 yBins = tcu_pcVals2 yBins = tcu_pcVals3 yBins = tcu_pcVals4 lineLabel = "R%" lineLabel = "N%" lineLabel = "1%" lineLabel = "2%" lineLabel = "3%" lineLabel = "4%" curve = pcPerShiftCurve, "Transmission Line Pressure Control - Shift" columnLabel = "Airmass", "" xAxis = 0, 5, 10 yAxis = 0, 100, 10 xBins = tcu_pcAirmassBins, chargeAirMass yBins = tcu_pcVals12 yBins = tcu_pcVals23 yBins = tcu_pcVals34 yBins = tcu_pcVals21 yBins = tcu_pcVals32 yBins = tcu_pcVals43 lineLabel = "1->2%" lineLabel = "2->3%" lineLabel = "3->4%" lineLabel = "2->1%" lineLabel = "3->2%" lineLabel = "4->3%" curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" columnLabel = "Speed", "%" xAxis = 0, 200, 20 yAxis = 0, 100, 10 xBins = tcu_32SpeedBins, vehicleSpeedKph yBins = tcu_32Vals curve = ignAdder1Bias, "Ignition adder 1 bias" columnLabel = "param", "bias" xAxis = 0, 100, 11 yAxis = 0, 100, 5 xBins = ignBlends1_blendBins, ignBlends1_blendVal yBins = ignBlends1_blendValues curve = ignAdder2Bias, "Ignition adder 2 bias" columnLabel = "param", "bias" xAxis = 0, 100, 11 yAxis = 0, 100, 5 xBins = ignBlends2_blendBins, ignBlends2_blendVal yBins = ignBlends2_blendValues curve = ignAdder3Bias, "Ignition adder 3 bias" columnLabel = "param", "bias" xAxis = 0, 100, 11 yAxis = 0, 100, 5 xBins = ignBlends3_blendBins, ignBlends3_blendVal yBins = ignBlends3_blendValues curve = ignAdder4Bias, "Ignition adder 4 bias" columnLabel = "param", "bias" xAxis = 0, 100, 11 yAxis = 0, 100, 5 xBins = ignBlends4_blendBins, ignBlends4_blendVal yBins = ignBlends4_blendValues curve = veBlend1Bias, "VE blend 1 bias" columnLabel = "param", "bias" xAxis = 0, 100, 11 yAxis = 0, 100, 5 xBins = veBlends1_blendBins, veBlends1_blendVal yBins = veBlends1_blendValues curve = veBlend2Bias, "VE blend 2 bias" columnLabel = "param", "bias" xAxis = 0, 100, 11 yAxis = 0, 100, 5 xBins = veBlends2_blendBins, veBlends2_blendVal yBins = veBlends2_blendValues curve = veBlend3Bias, "VE blend 3 bias" columnLabel = "param", "bias" xAxis = 0, 100, 11 yAxis = 0, 100, 5 xBins = veBlends3_blendBins, veBlends3_blendVal yBins = veBlends3_blendValues curve = veBlend4Bias, "VE blend 4 bias" columnLabel = "param", "bias" xAxis = 0, 100, 11 yAxis = 0, 100, 5 xBins = veBlends4_blendBins, veBlends4_blendVal yBins = veBlends4_blendValues [TableEditor] ; table_id, map3d_id, "title", page ; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 topicHelp = "tpstpsHelp" xBins = tpsTpsAccelFromRpmBins, TPSValue yBins = tpsTpsAccelToRpmBins, TPSValue zBins = tpsTpsAccelTable table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 xBins = boostRpmBins, RPMValue yBins = boostTpsBins, TPSValue zBins = boostTableOpenLoop table = boostTable2Tbl, boostMapClosed, "Boost control target", 1 xBins = boostRpmBins, RPMValue yBins = boostTpsBins, TPSValue zBins = boostTableClosedLoop table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 xBins = vvtTable1RpmBins, RPMValue yBins = vvtTable1LoadBins, fuelingLoad zBins = vvtTable1 table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 xBins = vvtTable2RpmBins, RPMValue yBins = vvtTable2LoadBins, fuelingLoad zBins = vvtTable2 table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 xBins = scriptTable1RpmBins, RPMValue yBins = scriptTable1LoadBins, fuelingLoad zBins = scriptTable1 table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 xBins = scriptTable2RpmBins, RPMValue yBins = scriptTable2LoadBins, fuelingLoad zBins = scriptTable2 table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 xBins = scriptTable3RpmBins, RPMValue yBins = scriptTable3LoadBins, fuelingLoad zBins = scriptTable3 table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 xBins = scriptTable4RpmBins, RPMValue yBins = scriptTable4LoadBins, fuelingLoad zBins = scriptTable4 table = baroCorrTbl, baroCorrMap, "Baro Correction", 1 ; constant, variable xBins = baroCorrRpmBins, RPMValue yBins = baroCorrPressureBins, baroPressure zBins = baroCorrTable ; gridHeight = 2.0 gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" table = ignitionTableTbl, ignitionTableMap, "Ignition Table", 1 ; constant, variable xBins = ignitionRpmBins, RPMValue yBins = ignitionLoadBins, ignitionLoad zBins = ignitionTable ; gridHeight = 2.0 gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" table = ignAdder1Table, ignAdder1Map, "Ignition adder 1", 1 xBins = ignBlends1_rpmBins, RPMValue yBins = ignBlends1_loadBins, ignitionLoad zBins = ignBlends1_table gridOrient = 250, 0, 340 table = ignAdder2Table, ignAdder2Map, "Ignition adder 2", 1 xBins = ignBlends2_rpmBins, RPMValue yBins = ignBlends2_loadBins, ignitionLoad zBins = ignBlends2_table gridOrient = 250, 0, 340 table = ignAdder3Table, ignAdder3Map, "Ignition adder 3", 1 xBins = ignBlends3_rpmBins, RPMValue yBins = ignBlends3_loadBins, ignitionLoad zBins = ignBlends3_table gridOrient = 250, 0, 340 table = ignAdder4Table, ignAdder4Map, "Ignition adder 4", 1 xBins = ignBlends4_rpmBins, RPMValue yBins = ignBlends4_loadBins, ignitionLoad zBins = ignBlends4_table gridOrient = 250, 0, 340 table = veBlend1Table, veBlend1Map, "VE blend 1", 1 xBins = veBlends1_rpmBins, RPMValue yBins = veBlends1_loadBins, fuelingLoad zBins = veBlends1_table gridOrient = 250, 0, 340 table = veBlend2Table, veBlend2Map, "VE blend 2", 1 xBins = veBlends2_rpmBins, RPMValue yBins = veBlends2_loadBins, fuelingLoad zBins = veBlends2_table gridOrient = 250, 0, 340 table = veBlend3Table, veBlend3Map, "VE blend 3", 1 xBins = veBlends3_rpmBins, RPMValue yBins = veBlends3_loadBins, fuelingLoad zBins = veBlends3_table gridOrient = 250, 0, 340 table = veBlend4Table, veBlend4Map, "VE blend 4", 1 xBins = veBlends4_rpmBins, RPMValue yBins = veBlends4_loadBins, fuelingLoad zBins = veBlends4_table gridOrient = 250, 0, 340 table = ignitionIatCorrTableTbl, ignitionIatCorrTableMap, "Ignition Intake Air Temp correction", 1 ; constant, variable xBins = ignitionIatCorrRpmBins, RPMValue yBins = ignitionIatCorrLoadBins, intake zBins = ignitionIatCorrTable ; gridHeight = 2.0 gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" table = torqueTableTbl, torqueTableMap, "Engine Torque", 1 xBins = torqueRpmBins, RPMValue yBins = torqueLoadBins, veTableYAxis zBins = torqueTable table = veTableTbl, veTableMap, "VE Table", 1 ; constant, variable xBins = veRpmBins, RPMValue yBins = veLoadBins, veTableYAxis zBins = veTable ; gridHeight = 2.0 gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" table = idleVeTableTbl, idleVeTable, "Idle VE" xBins = idleVeRpmBins, RPMValue yBins = idleVeLoadBins, veTableYAxis zBins = idleVeTable gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" table = fuelTrimTbl1, fuelTrimMap1, "Fuel trim cyl 1", 1 xBins = fuelTrimRpmBins, RPMValue yBins = fuelTrimLoadBins, veTableYAxis zBins = fuelTrims1_table upDownLabel = "(RICHER)", "(LEANER)" table = fuelTrimTbl2, fuelTrimMap2, "Fuel trim cyl 2", 1 xBins = fuelTrimRpmBins, RPMValue yBins = fuelTrimLoadBins, veTableYAxis zBins = fuelTrims2_table upDownLabel = "(RICHER)", "(LEANER)" table = fuelTrimTbl3, fuelTrimMap3, "Fuel trim cyl 3", 1 xBins = fuelTrimRpmBins, RPMValue yBins = fuelTrimLoadBins, veTableYAxis zBins = fuelTrims3_table upDownLabel = "(RICHER)", "(LEANER)" table = fuelTrimTbl4, fuelTrimMap4, "Fuel trim cyl 4", 1 xBins = fuelTrimRpmBins, RPMValue yBins = fuelTrimLoadBins, veTableYAxis zBins = fuelTrims4_table upDownLabel = "(RICHER)", "(LEANER)" table = fuelTrimTbl5, fuelTrimMap5, "Fuel trim cyl 5", 1 xBins = fuelTrimRpmBins, RPMValue yBins = fuelTrimLoadBins, veTableYAxis zBins = fuelTrims5_table upDownLabel = "(RICHER)", "(LEANER)" table = fuelTrimTbl6, fuelTrimMap6, "Fuel trim cyl 6", 1 xBins = fuelTrimRpmBins, RPMValue yBins = fuelTrimLoadBins, veTableYAxis zBins = fuelTrims6_table upDownLabel = "(RICHER)", "(LEANER)" table = fuelTrimTbl7, fuelTrimMap7, "Fuel trim cyl 7", 1 xBins = fuelTrimRpmBins, RPMValue yBins = fuelTrimLoadBins, veTableYAxis zBins = fuelTrims7_table upDownLabel = "(RICHER)", "(LEANER)" table = fuelTrimTbl8, fuelTrimMap8, "Fuel trim cyl 8", 1 xBins = fuelTrimRpmBins, RPMValue yBins = fuelTrimLoadBins, veTableYAxis zBins = fuelTrims8_table upDownLabel = "(RICHER)", "(LEANER)" table = fuelTrimTbl9, fuelTrimMap9, "Fuel trim cyl 9", 1 xBins = fuelTrimRpmBins, RPMValue yBins = fuelTrimLoadBins, veTableYAxis zBins = fuelTrims9_table upDownLabel = "(RICHER)", "(LEANER)" table = fuelTrimTbl10, fuelTrimMap10, "Fuel trim cyl 10", 1 xBins = fuelTrimRpmBins, RPMValue yBins = fuelTrimLoadBins, veTableYAxis zBins = fuelTrims10_table upDownLabel = "(RICHER)", "(LEANER)" table = fuelTrimTbl11, fuelTrimMap11, "Fuel trim cyl 11", 1 xBins = fuelTrimRpmBins, RPMValue yBins = fuelTrimLoadBins, veTableYAxis zBins = fuelTrims11_table upDownLabel = "(RICHER)", "(LEANER)" table = fuelTrimTbl12, fuelTrimMap12, "Fuel trim cyl 12", 1 xBins = fuelTrimRpmBins, RPMValue yBins = fuelTrimLoadBins, veTableYAxis zBins = fuelTrims12_table upDownLabel = "(RICHER)", "(LEANER)" table = ignTrimTbl1, ignTrimMap1, "Ign trim cyl 1", 1 xBins =ignTrimRpmBins, RPMValue yBins =ignTrimLoadBins, ignitionLoad zBins =ignTrims1_table table = ignTrimTbl2, ignTrimMap2, "Ign trim cyl 2", 1 xBins =ignTrimRpmBins, RPMValue yBins =ignTrimLoadBins, ignitionLoad zBins =ignTrims2_table table = ignTrimTbl3, ignTrimMap3, "Ign trim cyl 3", 1 xBins =ignTrimRpmBins, RPMValue yBins =ignTrimLoadBins, ignitionLoad zBins =ignTrims3_table table = ignTrimTbl4, ignTrimMap4, "Ign trim cyl 4", 1 xBins =ignTrimRpmBins, RPMValue yBins =ignTrimLoadBins, ignitionLoad zBins =ignTrims4_table table = ignTrimTbl5, ignTrimMap5, "Ign trim cyl 5", 1 xBins =ignTrimRpmBins, RPMValue yBins =ignTrimLoadBins, ignitionLoad zBins =ignTrims5_table table = ignTrimTbl6, ignTrimMap6, "Ign trim cyl 6", 1 xBins =ignTrimRpmBins, RPMValue yBins =ignTrimLoadBins, ignitionLoad zBins =ignTrims6_table table = ignTrimTbl7, ignTrimMap7, "Ign trim cyl 7", 1 xBins =ignTrimRpmBins, RPMValue yBins =ignTrimLoadBins, ignitionLoad zBins =ignTrims7_table table = ignTrimTbl8, ignTrimMap8, "Ign trim cyl 8", 1 xBins =ignTrimRpmBins, RPMValue yBins =ignTrimLoadBins, ignitionLoad zBins =ignTrims8_table table = ignTrimTbl9, ignTrimMap9, "Ign trim cyl 9", 1 xBins =ignTrimRpmBins, RPMValue yBins =ignTrimLoadBins, ignitionLoad zBins =ignTrims9_table table = ignTrimTbl10, ignTrimMap10, "Ign trim cyl 10", 1 xBins = ignTrimRpmBins, RPMValue yBins = ignTrimLoadBins, ignitionLoad zBins = ignTrims10_table table = ignTrimTbl11, ignTrimMap11, "Ign trim cyl 11", 1 xBins = ignTrimRpmBins, RPMValue yBins = ignTrimLoadBins, ignitionLoad zBins = ignTrims11_table table = ignTrimTbl12, ignTrimMap12, "Ign trim cyl 12", 1 xBins = ignTrimRpmBins, RPMValue yBins = ignTrimLoadBins, ignitionLoad zBins = ignTrims12_table table = mapEstimateTableTbl, mapEstimateTableMap, "MAP Estimate", 1 xBins = mapEstimateRpmBins, RPMValue yBins = mapEstimateTpsBins, TPSValue zBins = mapEstimateTable table = injPhaseTableTbl, injPhaseTableMap, "Injection Phase", 1 topicHelp = "fuelHelp" ; constant, variable xBins = injPhaseRpmBins, RPMValue yBins = injPhaseLoadBins, fuelingLoad zBins = injectionPhase ; gridHeight = 2.0 gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(Later)", "(Sooner)" table = pedalToTpsTbl, pedalToTpsMap, "ETB Pedal to TPS", 1 ; constant, variable xBins = pedalToTpsRpmBins, RPMValue yBins = pedalToTpsPedalBins, throttlePedalPosition zBins = pedalToTpsTable ; gridHeight = 2.0 gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(Later)", "(Sooner)" table = throttle2TrimTbl, throttle2TrimMap, "ETB #2 Trim", 1 xBins = throttle2TrimRpmBins, RPMValue yBins = throttle2TrimTpsBins, TPSValue zBins = throttle2TrimTable gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. table = maxKnockRetardTbl, maxKnockRetardMap, "Max knock retard", 1 xBins = maxKnockRetardRpmBins, RPMValue yBins = maxKnockRetardLoadBins, TPSValue zBins = maxKnockRetardTable gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. #if LAMBDA table = lambdaTableTbl, lambdaTableMap, "Target Lambda Table", 1 #else table = afrTableTbl, afrTableMap, "Target AFR Table", 1 #endif ; constant, variable xBins = lambdaRpmBins, RPMValue yBins = lambdaLoadBins, afrTableYAxis zBins = lambdaTable ; gridHeight = 2.0 gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" table = iacPidMultTbl, iacPidMultMap, "IAC PID Multiplier Table", 1 ; constant, variable xBins = iacPidMultRpmBins, RPMValue yBins = iacPidMultLoadBins, fuelingLoad zBins = iacPidMultTable ; gridHeight = 2.0 gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(Later)", "(Sooner)" table = gppwm1Tbl, gppwm1Map, "GP#1", 1 xyLabels = "RPM", "" xBins = gppwm1_rpmBins, RPMValue yBins = gppwm1_loadBins, gppwm1_load zBins = gppwm1_table table = gppwm2Tbl, gppwm2Map, "GP#2", 1 xyLabels = "RPM", "" xBins = gppwm2_rpmBins, RPMValue yBins = gppwm2_loadBins, gppwm2_load zBins = gppwm2_table table = gppwm3Tbl, gppwm3Map, "GP#3", 1 xyLabels = "RPM", "" xBins = gppwm3_rpmBins, RPMValue yBins = gppwm3_loadBins, gppwm3_load zBins = gppwm3_table table = gppwm4Tbl, gppwm4Map, "GP#4", 1 xyLabels = "RPM", "" xBins = gppwm4_rpmBins, RPMValue yBins = gppwm4_loadBins, gppwm4_load zBins = gppwm4_table table = tcuSolenoidTableTbl, tcuSolenoidTableMap, "Solenoids Active By Gear", 1 xBins = solenoidCountArray, tcuCurrentGear yBins = gearCountArray, tcuCurrentGear zBins = tcuSolenoidTable xyLabels = "Solenoid", "Gear" table = hpfpTargetTable, hpfpTargetTableId, "HPFP Target Fuel Pressure", 1 xBins = hpfpTargetRpmBins, RPMValue yBins = hpfpTargetLoadBins, veTableYAxis zBins = hpfpTarget table = hpfpCompensationTable, hpfpCompensationTableId, "HPFP Pump Compensation Factor", 1 xBins = hpfpCompensationRpmBins, RPMValue yBins = hpfpCompensationLoadBins, fuelRunning zBins = hpfpCompensation [GaugeConfigurations] gaugeCategory = Trigger triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 gaugeCategory = Test Bench testBenchIterGauge = testBenchIter, "Test Bench Iterations", "count", -10, {benchTestCount + 10}, -5, 0, {benchTestCount}, {benchTestCount + 5}, 1, 1 gaugeCategory = LUA luaInvocationCounterGauge = luaInvocationCounter,"luaInvocationCounter", "count", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 luaLastCycleDurationGauge = luaLastCycleDuration,"luaLastCycleDuration", "nt", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 gaugeCategory = Alternator PID alternatorStatus_iTermGauge = alternatorStatus_iTerm,"Alternator PID iTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 alternatorStatus_dTermGauge = alternatorStatus_dTerm,"Alternator PID dTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 alternatorStatus_outputGauge = alternatorStatus_output,"Alternator PID output", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 alternatorStatus_errorGauge = alternatorStatus_error,"Alternator PID error", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 alternatorStatus_resetCounterGauge = alternatorStatus_resetCounter,"Alternator PID resetCounter", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 0,0 gaugeCategory = IDLE PID idleStatus_iTermGauge = idleStatus_iTerm,"Idle PID iTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 idleStatus_dTermGauge = idleStatus_dTerm,"Idle PID dTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 idleStatus_outputGauge = idleStatus_output,"Idle PID output", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 idleStatus_errorGauge = idleStatus_error,"Idle PID error", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 idleStatus_resetCounterGauge = idleStatus_resetCounter,"Idle PID resetCounter", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 0,0 gaugeCategory = ETB PID etbStatus_iTermGauge = etbStatus_iTerm,"ETB 1 PID iTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 etbStatus_dTermGauge = etbStatus_dTerm,"ETB 1 PID dTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 etbStatus_outputGauge = etbStatus_output,"ETB 1 PID output", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 etbStatus_errorGauge = etbStatus_error,"ETB 1 PID error", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 etbStatus_resetCounterGauge = etbStatus_resetCounter,"ETB 1 PID resetCounter", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 0,0 gaugeCategory = CAN canReadCounterGauge = canReadCounter,"canReadCounter", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 canWriteOkGauge = canWriteOk,"canWriteOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 canWriteNotOkGauge = canWriteNotOk,"canWriteNotOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 ;gaugeCategory = MAP Cam ;TEMPLOG_map_peakGauge = TEMPLOG_map_peak,"TEMPLOG_map_peak", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 ;TEMPLOG_MAP_AT_SPECIAL_POINTGauge = TEMPLOG_MAP_AT_SPECIAL_POINT,"TEMPLOG_MAP_AT_SPECIAL_POINT", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 ;TEMPLOG_MAP_AT_DIFFGauge = TEMPLOG_MAP_AT_DIFF,"TEMPLOG_MAP_AT_DIFF", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 ;TEMPLOG_MAP_AT_CYCLE_COUNTGauge = TEMPLOG_MAP_AT_CYCLE_COUNT,"TEMPLOG_MAP_AT_CYCLE_COUNT", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 gaugeCategory = GDI systemEventReuseGauge = systemEventReuse,"systemEventReuse", "counter", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 di_nextStartGauge = di_nextStart,"DI: next start", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0 m_requested_pumpGauge = m_requested_pump,"DI: Pump Angle", "deg", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 fuel_requested_percentGauge = fuel_requested_percent,"DI: fuel_requested_percent", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0 fuel_requested_percent_piGauge = fuel_requested_percent_pi,"DI: fuel_requested_percent_pi", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0 ;todo see comment in HpfpQuantity class definition ;m_I_sum_percentGauge = m_I_sum_percent,"DI: m_I_sum_percent", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0 ;m_pressureTarget_kPaGauge = m_pressureTarget_kPa,"DI: m_pressureTarget_kPa", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0 highFuelPressureGauge = highFuelPressure, @@GAUGE_NAME_FUEL_PRESSURE_HIGH@@, @@GAUGE_NAME_FUEL_PRESSURE_HIGH_UNITS@@, 0, 200, 0, 0, 200, 200, 1, 0 gaugeCategory = Sensors - Extra 2 egt1Gauge = egt1, "EGT#1", "C", 0, 2000 egt2Gauge = egt2, "EGT#2", "C", 0, 2000 rpmAccelerationGa = rpmAcceleration, "rpm delta", "RPM/s", -2000, 2000, -2000, 2000, -2000, 2000, 0, 0 fuelTankLevelGauge = fuelTankLevel,"Fuel level", "%", 0, 100, 10, 20, 100, 100, 1, 1 wastegatePosGauge = wastegatePositionSensor, @@GAUGE_NAME_WG_POSITION@@, "%", 0, 100, 0, 0, 100, 100, 1, 1 idlePosSensGauge = idlePositionSensor, @@GAUGE_NAME_IDLE_POSITION@@, "%", 0, 100, 0, 0, 100, 100, 1, 1 currentEnginePhaseGauge = currentEngineDecodedPhase, "Engine Phase", "deg", 0, 720, 0, 0, 720, 720, 0, 0 auxSpeed1Gauge = auxSpeed1, "Aux Freq Input1", "hz", 0, 30000, 0, 0, 30000, 30000, 0, 0 luaGauges1gauge = luaGauges1, "Lua Gauge 1", "lua", 0, 30000, 0, 0, 30000, 30000, 0, 3 luaGauges2gauge = luaGauges2, "Lua Gauge 2", "lua", 0, 30000, 0, 0, 30000, 30000, 0, 3 gaugeCategory = ECU Status warningCounterGauge = warningCounter, @@GAUGE_NAME_WARNING_COUNT@@, "", 0, 100, 0, 0, 100, 100, 0, 0 lastErrorCodeGauge = lastErrorCode, @@GAUGE_NAME_LAST_ERROR@@, "", 0, 18000, 0, 0, 18000, 18000, 0, 0 triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 recentErrorCode1Gauge = recentErrorCode1, "Error#1", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 recentErrorCode2Gauge = recentErrorCode2, "Error#2", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 recentErrorCode3Gauge = recentErrorCode3, "Error#3", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 recentErrorCode4Gauge = recentErrorCode4, "Error#4", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 recentErrorCode5Gauge = recentErrorCode5, "Error#5", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 recentErrorCode6Gauge = recentErrorCode6, "Error#6", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 recentErrorCode7Gauge = recentErrorCode7, "Error#7", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 recentErrorCode8Gauge = recentErrorCode8, "Error#8", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 firmwareVersionGauge = firmwareVersion , @@GAUGE_NAME_FW_VERSION@@, "%", 0, 100, 0, 0, 100, 100, 0, 0 timeSecondsGauge = seconds, @@GAUGE_NAME_UPTIME@@, "sec", 0, 100, 0, 0, 100, 100, 0, 0 tuneCrc16Gauge = tuneCrc16, @@GAUGE_NAME_TUNE_CRC16@@, "", 0, 64000, 0, 0, 64000, 64000, 0, 0 gaugeCategory = Debug debugF1Gauge = debugFloatField1, {bitStringValue( debugFieldF1List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 4, 4 debugF2Gauge = debugFloatField2, {bitStringValue( debugFieldF2List, debugMode )}, "", -100, 100, 0, 0, 100, 100, 4, 4 debugF3Gauge = debugFloatField3, {bitStringValue( debugFieldF3List, debugMode )}, "", -100, 100, 0, 0, 100, 100, 4, 4 debugF4Gauge = debugFloatField4, {bitStringValue( debugFieldF4List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 4, 4 debugF5Gauge = debugFloatField5, {bitStringValue( debugFieldF5List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 4, 4 debugF6Gauge = debugFloatField6, {bitStringValue( debugFieldF6List, debugMode )}, "", -100, 100, 0, 0, 100, 100, 4, 4 debugF7Gauge = debugFloatField7, {bitStringValue( debugFieldF7List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 4, 4 debugI1Gauge = debugIntField1, {bitStringValue( debugFieldI1List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 debugI2Gauge = debugIntField2, {bitStringValue( debugFieldI2List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 debugI3Gauge = debugIntField3, {bitStringValue( debugFieldI3List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 debugI4Gauge = debugIntField4, {bitStringValue( debugFieldI4List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 debugI5Gauge = debugIntField5, {bitStringValue( debugFieldI5List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 gaugeCategory = Sensors - Basic RPMGauge = RPMValue, "RPM - engine speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 CLTGauge = coolant, "Coolant temp", "C", -40, 140, -15, 1, 95, 110, 1, 1 IATGauge = intake, "Intake air temp", "C", -40, 140, -15, 1, 95, 110, 1, 1 afr1Gauge = AFRValue, @@GAUGE_NAME_AFR@@, "", 10, 19.4, 12, 13, 15, 16, 2, 2 afr2Gauge = AFRValue2, @@GAUGE_NAME_AFR2@@, "", 10, 19.4, 12, 13, 15, 16, 2, 2 lambda1Gauge = lambdaValue, @@GAUGE_NAME_LAMBDA@@, "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 lambda2Gauge = lambdaValue2, @@GAUGE_NAME_LAMBDA2@@, "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 VBattGauge = VBatt, "Battery", "V", 8, 21, 9, 10, 17, 19, 1, 1 MAPGauge = MAPValue, "MAP", "kPa", 0, 300, 10, 10, 200, 200, 0, 0 massAirFlowValueGa = mafMeasured, @@GAUGE_NAME_AIR_FLOW_MEASURED@@, "kg/h", 0, 50, -999, -999, 999, 999, 1, 1 gaugeCategory = Sensors - Extra 1 VSSGauge = vehicleSpeedKph, @@GAUGE_NAME_VVS@@, "kmh", 0, 200, 0, 1, 3, 4, 1, 1 turboSpeedGauge = turboSpeed, @@GAUGE_NAME_TURBO_SPEED@@, "hz", 0, 200, 0, 1, 3, 4, 1, 1 accelerationXGauge = accelerationX, @@GAUGE_NAME_ACCEL_X@@, "acc", -11, 11, 1.0, 1.2, 100, 100, 3, 1 accelerationYGauge = accelerationY, @@GAUGE_NAME_ACCEL_Y@@, "acc", -11, 11, 1.0, 1.2, 100, 100, 3, 1 accelerationZGauge = accelerationZ, @@GAUGE_NAME_ACCEL_Z@@, "acc", -11, 11, 1.0, 1.2, 100, 100, 3, 1 accelerationRollGauge=accelerationRoll, @@GAUGE_NAME_ACCEL_ROLL@@, "acc", -11, 11, 1.0, 1.2, 100, 100, 3, 1 accelerationYawGauge=accelerationYaw, @@GAUGE_NAME_ACCEL_YAW@@, "acc", -11, 11, 1.0, 1.2, 100, 100, 3, 1 atmPresCGauge = baroPressure, @@GAUGE_NAME_BARO_PRESSURE@@, "kPa", 0, 1024, 0, 0, 0, 0, 0, 0 internalMcuTemperatureGauge = internalMcuTemperature, @@GAUGE_NAME_ECU_TEMPERATURE@@, "C", 0, 100, 0, 0, 75, 100, 0, 0 OilPressGauge = oilPressure, @@GAUGE_NAME_OIL_PRESSURE@@, @@GAUGE_NAME_OIL_PRESSURE_UNITS@@, 0, 750, 35, 75, 550, 700, 0, 0 idleAirValvePositionGauge = idleAirValvePosition, "Idle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 AuxT1Gauge = auxTemp1, @@GAUGE_NAME_AUX_TEMP1@@, "C", -40, 140, -15, 1, 95, 110, 1, 1 AuxT2Gauge = auxTemp2, @@GAUGE_NAME_AUX_TEMP2@@, "C", -40, 140, -15, 1, 95, 110, 1, 1 lowFuelPressureGauge = lowFuelPressure, @@GAUGE_NAME_FUEL_PRESSURE_LOW@@, @@GAUGE_NAME_FUEL_PRESSURE_LOW_UNITS@@, 0, 700, 0, 0, 700, 700, 1, 0 flexPercentGauge = flexPercent, @@GAUGE_NAME_FLEX@@, "%", 0, 100, 0, 0, 100, 100, 0, 0 AuxL1Gauge = auxLinear1, @@GAUGE_NAME_AUX_LINEAR_1@@, "", -100, 100, -100, -100, 100, 100, 2, 2 AuxL2Gauge = auxLinear2, @@GAUGE_NAME_AUX_LINEAR_2@@, "", -100, 100, -100, -100, 100, 100, 2, 2 gaugeCategory = VVT vvtPositionB1IGauge = vvtPositionB1I, @@GAUGE_NAME_VVT_B1I@@, "deg", -60, 60, -60, -60, 60, 60, 1, 1 vvtPositionB1EGauge = vvtPositionB1E, @@GAUGE_NAME_VVT_B1E@@, "deg", -60, 60, -60, -60, 60, 60, 1, 1 vvtPositionB2IGauge = vvtPositionB2I, @@GAUGE_NAME_VVT_B2I@@, "deg", -60, 60, -60, -60, 60, 60, 1, 1 vvtPositionB2EGauge = vvtPositionB2E, @@GAUGE_NAME_VVT_B2E@@, "deg", -60, 60, -60, -60, 60, 60, 1, 1 vvtTargets1Gauge = vvtTargets1, @@GAUGE_NAME_VVT_TARGET_B1I@@, "deg", -60, 60, -60, -60, 60, 60, 0, 0 vvtTargets2Gauge = vvtTargets2, @@GAUGE_NAME_VVT_TARGET_B1E@@, "deg", -60, 60, -60, -60, 60, 60, 0, 0 vvtTargets3Gauge = vvtTargets3, @@GAUGE_NAME_VVT_TARGET_B2I@@, "deg", -60, 60, -60, -60, 60, 60, 0, 0 vvtTargets4Gauge = vvtTargets4, @@GAUGE_NAME_VVT_TARGET_B2E@@, "deg", -60, 60, -60, -60, 60, 60, 0, 0 gaugeCategory = Ignition sparkCutReasonGauge = sparkCutReason,"Spark Cut Code", "code", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 ignadvGauge = ignitionAdvance, "Ignition timing", "degrees", -100, 100, -999, -999, 999, 999, 1, 1 dwellGauge = sparkDwellValue, "Dwell", "mSec", 0, 10, 0.5, 1.0, 6.0, 8.0, 1, 1 coilDutyCycleGauge = coilDutyCycle, @@GAUGE_NAME_DWELL_DUTY@@, "%", 0, 110, 0, 0, 90, 100, 1, 1 ignitionLoadGauge = ignitionLoad, @@GAUGE_NAME_IGNITION_LOAD@@, "%", 0, 300, 0, 0, 300, 300, 1, 1 gaugeCategory = Acceleration Enrichment deltaTpsGauge = deltaTps, "AE: TPS change", "", 0, 120, 10, 10, 100, 100, 1, 1 tpsAccelFuelGauge = tpsAccelFuel,"AE: TPS enrich", "ms", 0, 120, 10, 10, 100, 100, 1, 1 wallFuelAmountGauge = wallFuelAmount, "AE: wall amount", "mg", 0, 100, 0, 0, 100, 100, 0, 0 wallFuelCorrectionGauge = wallFuelCorrection, "AE: wall correction extra", "mg", -20, 20, -100, -100, 100, 100, 1, 1 gaugeCategory = Fueling ;Name Var Title Units Lo Hi LoD LoW HiW HiD vd ld fuelCutReasonGauge = fuelCutReason,"Fuel Cut Code", "code", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 tChargeGauge = tCharge, @@GAUGE_NAME_FUEL_CHARGE_TEMP@@, "C", -40, 140, -15, 1, 95, 110, 1, 1 baroCorrectionGauge = baroCorrection,@@GAUGE_NAME_FUEL_BARO_CORR@@, "ratio", 0.5, 1.5, 0.6, 0.7, 1.3, 1.4, 1, 1 crankingFuelGauge = crankingFuelMs, @@GAUGE_NAME_FUEL_CRANKING@@, "mg", 0, 100, 0, 0, 100, 100, 3, 1 iatCorrectionGauge = running_intakeTemperatureCoefficient, @@GAUGE_NAME_FUEL_IAT_CORR@@, "mult", 0, 3, 0, 0, 3, 3, 2, 2 cltCorrectionGauge = running_coolantTemperatureCoefficient, @@GAUGE_NAME_FUEL_CLT_CORR@@, "mult", 0, 3, 0, 0, 3, 3, 2, 2 injectorDutyCycleGauge=injectorDutyCycle, @@GAUGE_NAME_FUEL_INJ_DUTY@@,"%", 0, 120, 10, 10, 100, 100, 1, 1 actualLastInjectionGauge = actualLastInjection, @@GAUGE_NAME_FUEL_LAST_INJECTION@@, "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 injectorLagMsGauge = injectorLagMs, @@GAUGE_NAME_INJECTOR_LAG@@, "mSec", 0, 10, 0, 0, 10, 10, 3, 1 fuelRunningGauge = fuelRunning, @@GAUGE_NAME_FUEL_RUNNING@@, "mg", 0, 100, 0, 0, 100, 100, 3, 1 baseFuelGauge = baseFuel, @@GAUGE_NAME_FUEL_BASE@@, "mg", 0, 100, 0, 0, 100, 100, 2, 0 fuelPidCorrectionGauge = fuelPidCorrection1, @@GAUGE_NAME_FUEL_TRIM@@, "%", -10, 10, -8, -5, 5, 8, 3, 1 fuelPidCorrectionGauge2= fuelPidCorrection2, @@GAUGE_NAME_FUEL_TRIM_2@@, "%", -10, 10, -8, -5, 5, 8, 3, 1 fuelingLoadGauge = fuelingLoad, @@GAUGE_NAME_FUEL_LOAD@@, "%", 0, 300, 0, 0, 300, 300, 1, 1 totalFuelConsumptionGauge = totalFuelConsumption, @@GAUGE_NAME_FUEL_CONSUMPTION@@, "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 fuelFlowRateGauge = fuelFlowRate, @@GAUGE_NAME_FUEL_FLOW@@, "g/s", 0, 50, 0, 0, 50, 50, 2, 0 targetLambdaGauge = targetLambda,"fuel: target lambda", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 currentTargetAfrGauge = currentTargetAfr,"fuel: target AFR", "ratio", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 gaugeCategory = Throttle Body (incl. ETB) pedalPositionGauge = throttlePedalPosition, @@GAUGE_NAME_THROTTLE_PEDAL@@, "%", 0, 120, 0, 0, 100, 100, 1, 1 tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 etbTargetGauge = etbTarget, @@GAUGE_NAME_ETB_TARGET@@, "%", 0, 100, 0, 0, 100, 100, 1, 1 etbErrorGauge = etb1Error, @@GAUGE_NAME_ETB_ERROR@@, "%", -20, 20, -10, -5, 5, 10, 2, 0 etbDutyCycleGauge = etb1DutyCycle, @@GAUGE_NAME_ETB_DUTY@@, "%", -100, 100, -75, -50, 50, 75, 0, 0 gaugeCategory = Sensors - Raw rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 rawIdlePositionSensorGauge = rawIdlePositionSensor, "Raw Idle Position", "V", 0, 5, 0, 0, 5, 5, 3, 0 rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 gaugeCategory = Transmission desiredGearGauge = tcuDesiredGear, @@GAUGE_NAME_DESIRED_GEAR@@, "gear", -1, 10, -1, -1, 10, 10, 0, 0 currentGearGauge = tcuCurrentGear, @@GAUGE_NAME_CURRENT_GEAR@@, "gear", -1, 10, -1, -1, 10, 10, 0, 0 detectedGearGauge = detectedGear, @@GAUGE_NAME_DETECTED_GEAR@@, "gear", 0, @@GEARS_COUNT@@, 0, 0, @@GEARS_COUNT@@, @@GEARS_COUNT@@, 0, 0 speedToRpmRatioGauge = speedToRpmRatio, @@GAUGE_NAME_GEAR_RATIO@@, "", 0, 100, 0, 0, 100, 100, 4, 4 ISSGauge = ISSValue, @@GAUGE_NAME_ISS@@, "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 tcRatioGauge = tcRatio, @@GAUGE_NAME_TC_RATIO@@, "", 0, 100, 0, 0, 100, 100, 4, 4 shiftTimeGauge = lastShiftTime, "Last Shift Time", "S", 0, 2, 0, 0, 2, 2, 4, 4 gaugeCategory = Knock knock1Gauge = knock1, "Knock Cyl 1", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 knock2Gauge = knock2, "Knock Cyl 2", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 knock3Gauge = knock3, "Knock Cyl 3", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 knock4Gauge = knock4, "Knock Cyl 4", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 knock5Gauge = knock5, "Knock Cyl 5", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 knock6Gauge = knock6, "Knock Cyl 6", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 knock9Gauge = knock9, "Knock Cyl 9", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 knock10Gauge = knock10, "Knock Cyl 10", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 knock11Gauge = knock11, "Knock Cyl 11", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 knock12Gauge = knock12, "Knock Cyl 12", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 knockLevelGauge = knockLevel,"Knock level", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 knockRetardGauge = knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 knockCountGauge = knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 gaugeCategory = DynoView accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 gaugeCategory = GPPWM Outputs gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 [WueAnalyze] ; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition #if LAMBDA wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, cltCorrection, egoCorrectionForVeAnalyze lambdaTargetTables = lambdaTableTbl, afrTSCustom #else wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, cltCorrection, egoCorrectionForVeAnalyze lambdaTargetTables = afrTableTbl, afrTSCustom #endif wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 option = disableLiveUpdates option = burnOnSend ; filter = std_DeadLambda ; Auto build filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false ; this works, just another way to skin a cat ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false filter = highThrottle, "High Throttle" , throttle, > , 15, , true filter = lowRpm, "Low RPM" , rpm, < , 300, , false filter = std_Custom ; Standard Custom Expression Filter. [FrontPage] ; Gauges are numbered left to right, top to bottom. ; ; 1 2 3 4 ; 5 6 7 8 gauge1 = RPMGauge gauge2 = CLTGauge gauge3 = TPSGauge gauge4 = MAPGauge #if LAMBDA gauge5 = lambda1Gauge #else gauge5 = afr1Gauge #endif gauge6 = VBattGauge gauge7 = dwellGauge gauge8 = ignadvGauge ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg ; Line 1 ; important status ; todo: do we want to drop this line since we have "config error" feature thing below? indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black ; this is required so that the "config error" feature works in TS ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling ; you don't even have to show it by default ; DO NOT CHANGE THIS LINE ; DO NOT CHANGE THIS LINE indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black ; DO NOT CHANGE THIS LINE ; DO NOT CHANGE THIS LINE ; minor info indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black ; Line 2 ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black indicator = { tpsAccelActive }, "No TPS accel", "TPS accel active", white, black, yellow, black ; error codes indicator = { isTpsError }, "TPS OK", "TPS error", white, black, red, black ; Line 3 ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg indicator = { isTps2Error }, "TPS 2 OK", "TPS 2 error", white, black, red, black indicator = { isPedalError }, "Pedal OK", "Pedal error", white, black, red, black indicator = { isCltError }, "CLT OK", "CLT error", white, black, red, black indicator = { isIatError }, "IAT OK", "IAT error", white, black, red, black ; not implemented ; indicator = { ind_map_error}, "map", "map error", white, black, red, black indicator = { sd_present }, "No SD card", "SD card present", white, black, green, black indicator = { sd_logging_internal }, "No SD logging", "SD logging", white, black, green, black indicator = { sd_msd }, "No SD USB", "SD USB", white, black, green, black indicator = { etbRevLimitActive }, "No ETB RPM Limit", "ETB RPM Limit", white, black, yellow, black indicator = { wbo0_hasFault }, { WBO0: bitStringValue(wboFaultCodeList, faultCode)}, { WBO0: bitStringValue(wboFaultCodeList, faultCode)}, white, black, red, black ; looks like TS would append four system indicators below: Data Logging, ???, Not Connected, Protocol Error [KeyActions] showPanel = spi, spiFunction showPanel = con, connection ; ; this section defines how we log output channels ; see [OutputChannels] ; [Datalog] ; Channel Label Type Format entry = time, @@GAUGE_NAME_TIME@@, float, "%.3f" @@DATALOG_SECTION_FROM_FILE@@ [Menu] menuDialog = main ; see #1653 ; menu = "Data Logging" ; subMenu = std_ms3SdConsole, "Browse / Import SD Card" menu = "&Base &Engine" subMenu = engineChars, "Base engine" subMenu = limitsAndFallback, "Limits and fallbacks" subMenu = cltRevLimitCurve, "CLT-based RPM Limit", 0, { (cutFuelOnHardLimit || cutSparkOnHardLimit) && useCltBasedRpmLimit } subMenu = triggerConfiguration, "Trigger" subMenu = triggerConfiguration_IO, "Advanced Trigger" subMenu = triggerConfiguration_gap, "Trigger Gap Override" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator # Digital outputs subMenu = mainRelayDialog, "Main relay" subMenu = fuelPump, "Fuel pump" subMenu = fanSetting, "Radiator Fan" subMenu = acSettings, "Air Conditioning" subMenu = tachSettings, "Tachometer" subMenu = malfunction, "Check engine light" subMenu = statusLeds, "Status LEDs" subMenu = startStopDialog, "Start Button" subMenu = starterRelay, "Starter Disable relay" menu = "Fuel" # basic subMenu = injectorConfig, "Injection configuration" subMenu = injectionSettings, "Injection hardware", 0, {isInjectionEnabled == 1} subMenu = cylinderBankSelect, "Cylinder bank selection", 0, {isInjectionEnabled == 1} subMenu = injectorNonlinear, "Injector small-pulse correction", 0, {isInjectionEnabled == 1} groupMenu = "Cylinder fuel trims" groupChildMenu = fuelTrimTbl1, "Fuel trim cyl 1" groupChildMenu = fuelTrimTbl2, "Fuel trim cyl 2" groupChildMenu = fuelTrimTbl3, "Fuel trim cyl 3" groupChildMenu = fuelTrimTbl4, "Fuel trim cyl 4" groupChildMenu = fuelTrimTbl5, "Fuel trim cyl 5" groupChildMenu = fuelTrimTbl6, "Fuel trim cyl 6" groupChildMenu = fuelTrimTbl7, "Fuel trim cyl 7" groupChildMenu = fuelTrimTbl8, "Fuel trim cyl 8" groupChildMenu = fuelTrimTbl9, "Fuel trim cyl 9" groupChildMenu = fuelTrimTbl10, "Fuel trim cyl 10" groupChildMenu = fuelTrimTbl11, "Fuel trim cyl 11" groupChildMenu = fuelTrimTbl12, "Fuel trim cyl 12" subMenu = std_separator # Air mass model subMenu = veTableDialog, "VE", 0, {isInjectionEnabled == 1} groupMenu = "VE blend tables" groupChildMenu = veBlend1Cfg, "Adder 1 bias", 0, {isInjectionEnabled} groupChildMenu = veBlend1Table, "Ignition adder 1", 0, { isInjectionEnabled && veBlends1_blendParameter != 0 } groupChildMenu = veBlend2Cfg, "Adder 2 bias", 0, {isInjectionEnabled} groupChildMenu = veBlend2Table, "Ignition adder 2", 0, { isInjectionEnabled && veBlends2_blendParameter != 0 } groupChildMenu = veBlend3Cfg, "Adder 3 bias", 0, {isInjectionEnabled} groupChildMenu = veBlend3Table, "Ignition adder 3", 0, { isInjectionEnabled && veBlends3_blendParameter != 0 } groupChildMenu = veBlend4Cfg, "Adder 4 bias", 0, {isInjectionEnabled} groupChildMenu = veBlend4Table, "Ignition adder 4", 0, { isInjectionEnabled && veBlends4_blendParameter != 0 } subMenu = tChargeSettings, "Charge temperature estimation", 0, {isInjectionEnabled == 1} subMenu = baroCorrTbl, "Barometric pressure correction", 0, {isInjectionEnabled == 1 && fuelAlgorithm == @@engine_load_mode_e_LM_SPEED_DENSITY@@} subMenu = mapEstimateTableTbl, "MAP estimate table", 0, { enableMapEstimationTableFallback } subMenu = std_separator # Fuel model #if LAMBDA subMenu = lambdaTableTbl, "Target lambda", 0, {isInjectionEnabled == 1} #else subMenu = afrTableTbl, "Target AFR", 0, {isInjectionEnabled == 1} #endif subMenu = cltFuelCorrCurve, "CLT multiplier", 0, {isInjectionEnabled == 1} subMenu = iatFuelCorrCurve, "IAT multiplier", 0, {isInjectionEnabled == 1} subMenu = fuelClosedLoopDialog, "Closed loop fuel correction", 0, {isInjectionEnabled == 1} subMenu = coastingFuelCutControl, "Deceleration fuel cutoff (DFCO)", 0, {isInjectionEnabled == 1} subMenu = std_separator # Injector model subMenu = injPhaseTableTbl, "Injection phase", 0, {isInjectionEnabled == 1} subMenu = std_separator # Accel enrichment subMenu = AccelEnrich, "Acceleration enrichment", 0, {isInjectionEnabled == 1} subMenu = tpsTpsAccelTbl, "TPS/TPS acceleration extra fuel", 0, {isInjectionEnabled == 1} groupMenu = "Wall wetting AE" groupChildMenu = wwTauCurves, "Evap time", 0, { complexWallModel != 0 } groupChildMenu = wwBetaCurves, "Impact fraction", 0, { complexWallModel != 0 } menu = "Ignition" subMenu = ignitionSettings, "Ignition settings" subMenu = std_separator subMenu = dwellSettings, "Dwell", 0, {isIgnitionEnabled == 1} subMenu = multisparkSettings, "Multispark", 0, {isIgnitionEnabled == 1} subMenu = std_separator subMenu = ignitionTableTbl, "Ignition advance", 0, {isIgnitionEnabled} groupMenu = "Ignition blend tables" groupChildMenu = ignAdder1Cfg, "Adder 1 bias", 0, {isIgnitionEnabled} groupChildMenu = ignAdder1Table, "Ignition adder 1", 0, { isIgnitionEnabled && ignBlends1_blendParameter != 0 } groupChildMenu = ignAdder2Cfg, "Adder 2 bias", 0, {isIgnitionEnabled} groupChildMenu = ignAdder2Table, "Ignition adder 2", 0, { isIgnitionEnabled && ignBlends2_blendParameter != 0 } groupChildMenu = ignAdder3Cfg, "Adder 3 bias", 0, {isIgnitionEnabled} groupChildMenu = ignAdder3Table, "Ignition adder 3", 0, { isIgnitionEnabled && ignBlends3_blendParameter != 0 } groupChildMenu = ignAdder4Cfg, "Adder 4 bias", 0, {isIgnitionEnabled} groupChildMenu = ignAdder4Table, "Ignition adder 4", 0, { isIgnitionEnabled && ignBlends4_blendParameter != 0 } groupMenu = "Cylinder ign trims" groupChildMenu = ignTrimTbl1, "Ignition trim cyl 1" groupChildMenu = ignTrimTbl2, "Ignition trim cyl 2" groupChildMenu = ignTrimTbl3, "Ignition trim cyl 3" groupChildMenu = ignTrimTbl4, "Ignition trim cyl 4" groupChildMenu = ignTrimTbl5, "Ignition trim cyl 5" groupChildMenu = ignTrimTbl6, "Ignition trim cyl 6" groupChildMenu = ignTrimTbl7, "Ignition trim cyl 7" groupChildMenu = ignTrimTbl8, "Ignition trim cyl 8" groupChildMenu = ignTrimTbl9, "Ignition trim cyl 9" groupChildMenu = ignTrimTbl10, "Ignition trim cyl 10" groupChildMenu = ignTrimTbl11, "Ignition trim cyl 11" groupChildMenu = ignTrimTbl12, "Ignition trim cyl 12" subMenu = std_separator # corrections subMenu = cltTimingCorrCurve, "CLT correction", 0, {isIgnitionEnabled == 1} subMenu = ignitionIatCorrTableTbl, "IAT correction", 0, {isIgnitionEnabled == 1} menu = "&Cranking" subMenu = crankingDialog, "Cranking settings" subMenu = postCrankingEnrichment, "After-start enrichment" subMenu = primingFuelPulsePanel, "Priming pulse" subMenu = std_separator subMenu = crankingCltCurve, "Fuel CLT multiplier" subMenu = crankingCltCurveE100, "Fuel CLT multiplier (Flex Fuel E85)", 0, { flexSensorPin != @@ADC_CHANNEL_NONE@@ && flexCranking } subMenu = crankingDurationCurve, "Fuel duration multiplier" subMenu = crankingTpsCurve, "Fuel TPS multiplier" subMenu = std_separator subMenu = crankingAdvanceCurve, "Cranking ignition advance", 0, {useSeparateAdvanceForCranking == 1} subMenu = std_separator subMenu = cltCrankingCurve, "Cranking IAC CLT multiplier", 0, {overrideCrankingIacSetting == 1} menu = "&Idle" subMenu = idleSettings, "Idle settings" subMenu = idlehw, "Idle hardware" subMenu = std_separator subMenu = cltIdleRPMCurve, "Target RPM" subMenu = cltIdleCurve, "CLT multiplier" subMenu = std_separator subMenu = idleTimingPidCorrDialog, "Closed-loop idle timing" subMenu = iacPidMultTbl, "IAC PID multiplier", 0, {idleMode == 0 && useIacPidMultTable == 1} subMenu = iacCoastingCurve, "Coasting IAC position", 0, {useIacTableForCoasting == 1} subMenu = std_separator subMenu = idleVeTableTbl, "Idle VE", 0, {useSeparateVeForIdle == 1} subMenu = idleAdvanceCurve, "Ignition advance", 0, {useSeparateAdvanceForIdle == 1} menu = "&View" @@LIVE_DATA_MENU_FROM_FILE@@ menu = "&Advanced" subMenu = ignitionCylExtra, "Cylinder offsets", 0 subMenu = gearDetection, "Gear detection", 0 subMenu = std_separator subMenu = boostDialog, "Boost control" subMenu = boostOpenLoopDialog, "Boost control open loop", { isBoostControlEnabled } subMenu = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == @@etb_function_e_ETB_Wastegate@@ || etbFunctions2 == @@etb_function_e_ETB_Wastegate@@ } subMenu = std_separator subMenu = gppwm1, "General Purpose PWM 1" subMenu = gppwm2, "General Purpose PWM 2" subMenu = gppwm3, "General Purpose PWM 3" subMenu = gppwm4, "General Purpose PWM 4" subMenu = std_separator @@if_ts_show_etb subMenu = etbDialog, "Electronic throttle body" @@if_ts_show_etb subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" @@if_ts_show_etb subMenu = pedalToTpsTbl, "ETB pedal target" @@if_ts_show_etb subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != @@ADC_CHANNEL_NONE@@ } @@if_ts_show_etb subMenu = std_separator subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != @@vvt_mode_e_VVT_INACTIVE@@ } subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != @@vvt_mode_e_VVT_INACTIVE@@ } subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != @@vvt_mode_e_VVT_INACTIVE@@ } subMenu = std_separator subMenu = auxInputsDialog, "Lua Analog Inputs" subMenu = luaOutputs, "Lua Script PWM Outputs" subMenu = scriptSetting, "Lua Script Settings" subMenu = std_separator subMenu = scriptTable1TblSettings, "Script Table #1" subMenu = scriptTable2TblSettings, "Script Table #2" subMenu = scriptTable3TblSettings, "Script Table #3" subMenu = scriptTable4TblSettings, "Script Table #4" subMenu = scriptCurve1Settings, "Script Curve #1" subMenu = scriptCurve2Settings, "Script Curve #2" subMenu = scriptCurve3Settings, "Script Curve #3" subMenu = scriptCurve4Settings, "Script Curve #4" subMenu = scriptCurve5Settings, "Script Curve #5" subMenu = scriptCurve6Settings, "Script Curve #6" # users are confused by TCU dialogs. open question how to repackage as pre-alpha # subMenu = std_separator # subMenu = tcuControls, "Transmission Settings" # subMenu = gearControls, "Gear Selection Settings" # subMenu = inputSpeedSensor, "Input Speed Sensor" # subMenu = tcuSolenoidTableTbl, "Shift Solenoids" # subMenu = tccCurves, "TCC Lock/Unlock Speed" # subMenu = pcPerGearDialog, "Line Pressure Per Gear" # subMenu = pcPerShiftDialog, "Line Pressure Per Shift" # subMenu = 32Dialog, "3-2 Shift Solenoid Percent by Speed" menu = "&Sensors" # Base analog input settings subMenu = otherSensorInputs, "Misc sensors" subMenu = analogInputSettings, "Analog input settings" subMenu = std_separator # Thermistors subMenu = cltSensor, "CLT sensor" subMenu = iatSensor, "IAT sensor" subMenu = auxTempSensor1Sensor, "AuxTemp1 sensor" subMenu = auxTempSensor2Sensor, "AuxTemp2 sensor" subMenu = std_separator # TPS/pedal subMenu = tpsSensor, "TPS" subMenu = pedalSensor, "Accelerator pedal" subMenu = std_separator # MAP/Baro subMenu = mapSettings, "MAP sensor" subMenu = mapCurves, "MAP sampling" subMenu = baroSettings, "Baro sensor" subMenu = std_separator # MAF subMenu = mafSettings, "MAF sensor" subMenu = mafDecodingCurve, "MAF transfer function", 0, {mafAdcChannel != @@ADC_CHANNEL_NONE@@ } subMenu = std_separator # O2 sensor(s) subMenu = egoSettings, "EGO sensor" subMenu = widebandConfig, "rusEFI Wideband Controller", 0, { canReadEnabled && canWriteEnabled } subMenu = narrowToWideOxygenCurve, "Narrow to Wideband approximation" subMenu = cj125Function, "CJ125 settings (wbo decoder)" @@if_ts_show_cj125 subMenu = std_separator # Misc sensors subMenu = vrThreshold, "VR Sensor Threshold"@@if_ts_show_vr_threshold_all subMenu = speedSensor, "Vehicle speed sensor" subMenu = oilPressureSensor, "Oil pressure" subMenu = fuelPressureSensor, "Fuel pressure" subMenu = fuelLevelDialog, "Fuel level sensor" subMenu = egtInputs, "EGT" @@if_ts_show_egt subMenu = wastegateIdlePos, "Wastegate and idle position sensors" subMenu = std_separator subMenu = auxLinearSensors, "Aux Sensors" menu = "&Controller" subMenu = ecuStimulator, "ECU stimulator" subMenu = datalogSettings, "Datalogging" subMenu = ioTest, "Bench test" subMenu = injTest, "Injector test" subMenu = engineTypeDialog, "Popular vehicles" subMenu = std_separator subMenu = lcdScreen, "LCD" @@if_ts_show_lcd subMenu = joystickPanel, "Joystick" @@if_ts_show_joystick subMenu = spiFunction, "SPI"@@if_ts_show_spi subMenu = monitoringSettings, "rusEFI console" subMenu = std_separator subMenu = canBusMain, "CAN Bus Communication" subMenu = sdCard, "SD Card Logger" @@if_ts_show_sd_card subMenu = connection, "Connection" subMenu = tle8888, "TLE8888" subMenu = allPins1, "Full pinout 1/3" @@if_ts_show_full_pinout subMenu = allPins2, "Full pinout 2/3" @@if_ts_show_full_pinout subMenu = allPins3_1_and_2 "Full pinout 3/3" @@if_ts_show_full_pinout subMenu = std_separator # EXPERIMENTAL FEATURES subMenu = mc33Dialog, "PT2001 control" subMenu = hpfpCamDialog, "HPFP Cam Configuration" subMenu = hpfpPumpDialog, "HPFP Pump Configuration", {hpfpCamLobes != 0} subMenu = hpfpTargetTable, "HPFP Target Pressure", {hpfpCamLobes != 0} subMenu = hpfpCompensationTable, "HPFP Pump Compensation", {hpfpCamLobes != 0} subMenu = std_separator subMenu = smLaunchControl, "Launch Control" subMenu = fancyHardwareDialog, "Fancy Hardware" subMenu = std_separator subMenu = hipFunction, "HIP9011 settings (knock sensor) (alpha version)" @@if_ts_show_hip9011 subMenu = softwareKnock, "Software knock" @@if_ts_show_software_knock subMenu = maxKnockRetardTbl, "Max knock retard" @@if_ts_show_software_knock subMenu = std_separator subMenu = std_separator # subMenu = smRollingLaunch, "Rolling Launch" # subMenu = std_separator # subMenu = antiLag, "Antilag Setup" # subMenu = std_separator subMenu = std_separator subMenu = parkingLot, "Experimental/Broken" subMenu = rotaryDialog, "Rotary" menu = "Help" subMenu = helpGeneral, "rusEFI Info" [ControllerCommands] ; commandName = command1, command2, commandn... ; command in standard ini format, a command name can be assigned to 1 to n commands that will be executed in order. ; This does not include any resultant protocol envelope data, only the response data itself. ; WARNING!! These commands bypass TunerStudio's normal memory synchronization. If these commands ; alter mapped settings (Constant) memory in the controller, TunerStudio will have an out of sync condition ; and may create error messages. ; It is expected that these commands would not typically alter any ram mapped to a Constant. ; ; see TS_IO_TEST_COMMAND in firmware code ; cmd_test_spk1 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_IGNITION_CATEGORY_16_hex@@\x00\x01" cmd_test_spk2 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_IGNITION_CATEGORY_16_hex@@\x00\x02" cmd_test_spk3 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_IGNITION_CATEGORY_16_hex@@\x00\x03" cmd_test_spk4 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_IGNITION_CATEGORY_16_hex@@\x00\x04" cmd_test_spk5 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_IGNITION_CATEGORY_16_hex@@\x00\x05" cmd_test_spk6 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_IGNITION_CATEGORY_16_hex@@\x00\x06" cmd_test_spk7 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_IGNITION_CATEGORY_16_hex@@\x00\x07" cmd_test_spk8 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_IGNITION_CATEGORY_16_hex@@\x00\x08" cmd_test_spk9 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_IGNITION_CATEGORY_16_hex@@\x00\x09" cmd_test_spk10 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_IGNITION_CATEGORY_16_hex@@\x00\x0a" cmd_test_spk11 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_IGNITION_CATEGORY_16_hex@@\x00\x0b" cmd_test_spk12 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_IGNITION_CATEGORY_16_hex@@\x00\x0c" cmd_test_lua1 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_LUA_OUTPUT_CATEGORY_16_hex@@\x00\x01" cmd_test_lua2 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_LUA_OUTPUT_CATEGORY_16_hex@@\x00\x02" cmd_test_lua3 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_LUA_OUTPUT_CATEGORY_16_hex@@\x00\x03" cmd_test_lua4 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_LUA_OUTPUT_CATEGORY_16_hex@@\x00\x04" cmd_test_lua5 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_LUA_OUTPUT_CATEGORY_16_hex@@\x00\x05" cmd_test_lua6 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_LUA_OUTPUT_CATEGORY_16_hex@@\x00\x06" cmd_test_lua7 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_LUA_OUTPUT_CATEGORY_16_hex@@\x00\x07" cmd_test_lua8 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_LUA_OUTPUT_CATEGORY_16_hex@@\x00\x08" cmd_test_inj1 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_INJECTOR_CATEGORY_16_hex@@\x00\x01" cmd_test_inj2 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_INJECTOR_CATEGORY_16_hex@@\x00\x02" cmd_test_inj3 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_INJECTOR_CATEGORY_16_hex@@\x00\x03" cmd_test_inj4 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_INJECTOR_CATEGORY_16_hex@@\x00\x04" cmd_test_inj5 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_INJECTOR_CATEGORY_16_hex@@\x00\x05" cmd_test_inj6 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_INJECTOR_CATEGORY_16_hex@@\x00\x06" cmd_test_inj7 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_INJECTOR_CATEGORY_16_hex@@\x00\x07" cmd_test_inj8 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_INJECTOR_CATEGORY_16_hex@@\x00\x08" cmd_test_inj9 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_INJECTOR_CATEGORY_16_hex@@\x00\x09" cmd_test_inj10 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_INJECTOR_CATEGORY_16_hex@@\x00\x0a" cmd_test_inj11 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_INJECTOR_CATEGORY_16_hex@@\x00\x0b" cmd_test_inj12 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_INJECTOR_CATEGORY_16_hex@@\x00\x0c" cmd_test_sol1 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SOLENOID_CATEGORY_16_hex@@\x00\x01" cmd_test_sol2 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SOLENOID_CATEGORY_16_hex@@\x00\x02" cmd_test_sol3 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SOLENOID_CATEGORY_16_hex@@\x00\x03" cmd_test_sol4 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SOLENOID_CATEGORY_16_hex@@\x00\x04" cmd_test_sol5 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SOLENOID_CATEGORY_16_hex@@\x00\x05" cmd_test_sol6 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SOLENOID_CATEGORY_16_hex@@\x00\x06" cmd_test_main_relay = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_BENCH_CATEGORY_16_hex@@@@bench_mode_e_BENCH_MAIN_RELAY_16_hex@@" cmd_test_fuel_pump = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_BENCH_CATEGORY_16_hex@@@@bench_mode_e_BENCH_FUEL_PUMP_16_hex@@" cmd_test_starter_relay = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_BENCH_CATEGORY_16_hex@@@@bench_mode_e_BENCH_STARTER_ENABLE_RELAY_16_hex@@" cmd_test_starter_disable_relay = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_BENCH_CATEGORY_16_hex@@@@bench_mode_e_BENCH_STARTER_DISABLE_RELAY_16_hex@@" cmd_test_ac_relay = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_BENCH_CATEGORY_16_hex@@@@bench_mode_e_BENCH_AC_COMPRESSOR_RELAY_16_hex@@" cmd_test_fan_1 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_BENCH_CATEGORY_16_hex@@@@bench_mode_e_BENCH_FAN_RELAY_16_hex@@" cmd_test_fan_2 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_BENCH_CATEGORY_16_hex@@@@bench_mode_e_BENCH_FAN_RELAY_2_16_hex@@" cmd_test_check_engine_light = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_BENCH_CATEGORY_16_hex@@@@bench_mode_e_BENCH_CHECK_ENGINE_LIGHT_16_hex@@" cmd_test_idle_valve = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_BENCH_CATEGORY_16_hex@@@@bench_mode_e_BENCH_IDLE_VALVE_16_hex@@" cmd_test_second_idle_valve = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_BENCH_CATEGORY_16_hex@@@@bench_mode_e_BENCH_SECOND_IDLE_VALVE_16_hex@@" cmd_test_hpfp_valve = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_BENCH_CATEGORY_16_hex@@@@bench_mode_e_BENCH_HPFP_VALVE_16_hex@@" cmd_calibrate_tps_1_closed = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_X14_16_hex@@\x00\x02" cmd_calibrate_tps_1_wot = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_X14_16_hex@@\x00\x03" cmd_calibrate_tps_2_closed = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_X14_16_hex@@\x00\x04" cmd_calibrate_tps_2_wot = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_X14_16_hex@@\x00\x05" cmd_calibrate_pedal_up = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_X14_16_hex@@\x00\x06" cmd_calibrate_pedal_down = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_X14_16_hex@@\x00\x07" cmd_tle8888_init = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_X14_16_hex@@\x00\x08" cmd_write_config = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_X14_16_hex@@\x00\x0A" cmd_etb_autotune = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_X14_16_hex@@\x00\x0C" cmd_enable_self_stim = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_X14_16_hex@@\x00\x0D" cmb_etb_auto_calibrate = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_X14_16_hex@@\x00\x0E" cmd_disable_self_stim = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_X14_16_hex@@\x00\x0F" cmd_etb_autotune_stop = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_X14_16_hex@@\x00\x10" cmb_etb_auto_calibrate_2 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_X14_16_hex@@\x00\x11" cmd_wideband_firmare_update = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_X14_16_hex@@\x00\x12" cmd_enable_ext_stim = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_X14_16_hex@@\x00\x13" cmd_nDBANK = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_X14_16_hex@@\x00\x14"@@if_ts_show_f7_presets cmd_burn_without_flash = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_X14_16_hex@@\x00\x15" cmd_set_wideband_idx_0 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_WIDEBAND_16_hex@@\x00\x00" cmd_set_wideband_idx_1 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_WIDEBAND_16_hex@@\x00\x01" cmd_cj125_calibrate = "@@TS_IO_TEST_COMMAND_char@@\x00\x18\x00\x00" cmd_call_from_pit = "@@TS_IO_TEST_COMMAND_char@@\x00\x20\x34\x56" cmd_stop_engine = "@@TS_IO_TEST_COMMAND_char@@\x00\x79\x00\x00" ; reboot ECU cmd_reset_controller = "@@TS_IO_TEST_COMMAND_char@@\x00\xbb\x00\x00" ; jump to DFU mode cmd_dfu = "@@TS_IO_TEST_COMMAND_char@@\x00\xba\x00\x00" ; jump to OpenBLT bootloader cmd_openblt = "@@TS_IO_TEST_COMMAND_char@@\x00\xbc\x00\x00" ; See 'executeTSCommand' in firmware source code ; MRE_MIATA_NB2_MAP = 11 cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_MRE_MIATA_NB2_MAP_16_hex@@" cmd_set_engine_type_microRusEFI_VW_B6 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_MRE_VW_B6_16_hex@@" cmd_set_engine_type_Proteus_VW_B6 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_PROTEUS_VW_B6_16_hex@@" cmd_set_engine_type_microRusEFI_MRE_BODY_CONTROL = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_MRE_BODY_CONTROL_16_hex@@" cmd_set_engine_type_MRE_SECONDARY_CAN = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_MRE_SECONDARY_CAN_16_hex@@" ; MRE_MIATA_NA6 12 cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_MRE_MIATA_NA6_VAF_16_hex@@" cmd_set_engine_type_microRusEFI_Miata_NA6_MAP = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_MRE_MIATA_NA6_MAP_16_hex@@" cmd_set_engine_type_microRusEFI_Miata_94_MAP = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_MRE_MIATA_94_MAP_16_hex@@" ; MRE_MIATA_NB2_MAF = 15 cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_MRE_MIATA_NB2_MAF_16_hex@@" cmd_set_engine_type_MRE_SUBARU_EJ18 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_MRE_SUBARU_EJ18_16_hex@@" cmd_set_engine_type_MRE_M111 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_MRE_M111_16_hex@@" cmd_set_engine_type_hellen_NA6 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_HELLEN_NA6_16_hex@@" cmd_set_engine_type_hellen_NA94 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_HELLEN_NA94_16_hex@@" cmd_set_engine_type_hellen_NB1_36 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_HELLEN_NB1_36_16_hex@@" cmd_set_engine_type_hellen_NB2_36 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_HELLEN_NB2_36_16_hex@@" cmd_set_engine_type_hellen_nissan_121_4 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_HELLEN_121_NISSAN_4_CYL_16_hex@@" cmd_set_engine_type_hellen_nissan_121_6 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_HELLEN_121_NISSAN_6_CYL_16_hex@@" cmd_set_engine_type_hellen_nissan_121_8 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_HELLEN_121_NISSAN_8_CYL_16_hex@@" cmd_set_engine_type_hellen_121_vag_4 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_HELLEN_121_VAG_4_CYL_16_hex@@" cmd_set_engine_type_hellen_121_vag_5 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_HELLEN_121_VAG_5_CYL_16_hex@@" cmd_set_engine_type_hellen_121_vag_v6 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_HELLEN_121_VAG_V6_CYL_16_hex@@" cmd_set_engine_type_hellen_121_vag_vr6 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_HELLEN_121_VAG_VR6_CYL_16_hex@@" cmd_set_engine_type_hellen_121_vag_8 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_HELLEN_121_VAG_8_CYL_16_hex@@" cmd_set_engine_type_hellen_128_merc_4 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_HELLEN_128_MERCEDES_4_CYL_16_hex@@" cmd_set_engine_type_hellen_128_merc_6 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_HELLEN_128_MERCEDES_6_CYL_16_hex@@" cmd_set_engine_type_hellen_128_merc_8 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_HELLEN_128_MERCEDES_8_CYL_16_hex@@" cmd_set_engine_type_hellen_couple_bk1 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_HELLEN_154_HYUNDAI_COUPE_BK1_16_hex@@" cmd_set_engine_type_hellen_couple_bk2 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_HELLEN_154_HYUNDAI_COUPE_BK2_16_hex@@" ; MIATA_NA6_MAP = 41 cmd_set_engine_type_Frankenso_Miata_NA6_MAP = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_FRANKENSO_MIATA_NA6_MAP_16_hex@@" ; MIATA_NA6_VAF = 57 cmd_set_engine_type_Frankenso_Miata_NA6_VAF = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_FRANKENSO_MIATA_NA6_VAF_16_hex@@" ; MAZDA_MIATA_2003 = 47 cmd_set_engine_type_Frankenso_Miata_NB2 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_FRANKENSO_MAZDA_MIATA_2003_16_hex@@" cmd_set_engine_type_Proteus_M73 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_PROTEUS_BMW_M73_16_hex@@" cmd_set_engine_type_PROTEUS_VW_B6 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_PROTEUS_VW_B6_16_hex@@" cmd_set_engine_type_PROTEUS_HONDA_K = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_PROTEUS_HONDA_K_16_hex@@" cmd_set_engine_type_PROTEUS_HONDA_OBD2A = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_PROTEUS_HONDA_OBD2A_16_hex@@" cmd_set_engine_type_PROTEUS_MIATA_NB2 = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_PROTEUS_MIATA_NB2_16_hex@@" cmd_set_engine_type_Proteus_Miata_TCU = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_MIATA_PROTEUS_TCU_16_hex@@" cmd_set_engine_type_PROTEUS_LUA_DEMO = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_PROTEUS_LUA_DEMO_16_hex@@" cmd_set_engine_type_PROTEUS_HARLEY = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@@@engine_type_e_PROTEUS_HARLEY_16_hex@@" ; ETB_BENCH_ENGINE = 58 cmd_set_engine_type_etb_test = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@\x00\x3A" ; ETB_BENCH_ENGINE = 59 cmd_set_engine_type_8888_test = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_ENGINE_TYPE_16_hex@@\x00\x3B" cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_SET_DEFAULT_ENGINE_16_hex@@\x00\x00" [UserDefined] @@LIVE_DATA_PANELS_FROM_FILE@@ dialog = scriptTable1TblSettings, "", yAxis field = "Name", scriptTableName1 panel = scriptTable1Tbl dialog = scriptTable2TblSettings, "", yAxis field = "Name", scriptTableName2 panel = scriptTable2Tbl dialog = scriptTable3TblSettings, "", yAxis field = "Name", scriptTableName3 panel = scriptTable3Tbl dialog = scriptTable4TblSettings, "", yAxis field = "Name", scriptTableName4 panel = scriptTable4Tbl dialog = scriptCurve1Settings, "", yAxis field = "Name", scriptCurveName1 panel = scriptCurve1 dialog = scriptCurve2Settings, "", yAxis field = "Name", scriptCurveName2 panel = scriptCurve2 dialog = scriptCurve3Settings, "", yAxis field = "Name", scriptCurveName3 panel = scriptCurve3 dialog = scriptCurve4Settings, "", yAxis field = "Name", scriptCurveName4 panel = scriptCurve4 dialog = scriptCurve5Settings, "", yAxis field = "Name", scriptCurveName5 panel = scriptCurve5 dialog = scriptCurve6Settings, "", yAxis field = "Name", scriptCurveName6 panel = scriptCurve6 dialog = tChargeRpmTpsSettings, "RPM+TPS mode" field = "We use these coefficients to approximate air/fuel charge" field = "temperature based on CLT and IAT, depending on RPM and TPM" field = "Low RPM/Low TPS", tChargeMinRpmMinTps field = "Low RPM/High TPS", tChargeMinRpmMaxTps field = "High RPM/Low TPS", tChargeMaxRpmMinTps field = "High RPM/High TPS", tChargeMaxRpmMaxTps dialog = tChargeGeneralSettings, "" field = "Mode", tChargeMode field = "#These two parameters limit the estimate's rate of change" field = "Increase rate limit", tChargeAirIncrLimit field = "Decrease rate limit", tChargeAirDecrLimit field = "" dialog = tChargeAirInterpSettings, "Airflow interpolation mode" field = "Low flow coefficient", tChargeAirCoefMin field = "High flow coefficient", tChargeAirCoefMax field = "Max air flow", tChargeAirFlowMax dialog = tChargeSettings, "Charge temperature estimation" panel = tChargeGeneralSettings panel = tChargeRpmTpsSettings, { tChargeMode == 0} panel = tChargeAirInterpSettings, { tChargeMode == 1} panel = tchargeCurve, { tChargeMode == 2 } dialog = baseInjection, "Injection" field = "Enabled", isInjectionEnabled field = "Mode", injectionMode, {isInjectionEnabled == 1} field = "#Batch injection with individual wiring" field = "Individually wired Batch Fuel", twoWireBatchInjection, {isInjectionEnabled == 1 && injectionMode == @@injection_mode_e_IM_BATCH@@ } field = "Override VE table load axis", veOverrideMode, { isInjectionEnabled } field = "Override AFR table load axis", afrOverrideMode, { isInjectionEnabled } field = "Injection phase control mode", injectionTimingMode, { isInjectionEnabled } dialog = ignitionOutputs, "Ignition Outputs" field = "Ignition Pin Mode", ignitionPinMode, {isIgnitionEnabled == 1}@@if_ts_show_ignitionPinMode field = "Ignition Pin 1", ignitionPins1, {isIgnitionEnabled == 1} ; see rusefi_config.txt comment next to 'ignitionPin2logic' which says ; this section is auto-generated by FiringOrderTSLogic.java @@FIRINGORDER@@ dialog = ignitionBasic, "" field = "Enabled", isIgnitionEnabled field = "Mode", ignitionMode, {isIgnitionEnabled == 1} field = "Individually wired Wasted Spark", twoWireBatchIgnition, {isIgnitionEnabled == 1 && ignitionMode == @@ignition_mode_e_IM_WASTED_SPARK@@ } field = "Override ignition table load axis", ignOverrideMode, {isIgnitionEnabled} field = "#Use fixed timing while validating with a timing gun" field = "Timing Mode", timingMode, {isIgnitionEnabled == 1} field = "Fixed Timing", fixedTiming, {isIgnitionEnabled == 1 && timingMode == 1} dialog = ignitionSettings, "", xAxis panel = ignitionBasic panel = ignitionOutputs dialog = baseEngineConfig, "Engine Configuration" ; field = "Engine preset", engineType field = "Number of cylinders", cylindersCount field = "Displacement", displacement field = "Firing order", firingOrder field = "Vehicle weight", vehicleWeight dialog = engineMetadata, "Engine Metadata" field = "#These metadata are used by rusEFI Online" field = "Engine Make", engineMake field = "Manufacturer Engine Code", engineCode field = "Vehicle Name", vehicleName field = "Compression Ratio", compressionRatio field = "Forced Induction?", isForcedInduction ; Engine->Trigger configuration dialog = triggerConfiguration_settings, "Trigger Pattern" topicHelp = "triggerHelp" field = "Trigger type", trigger_type field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == @@trigger_type_e_TT_TOOTHED_WHEEL@@}, {trigger_type == @@trigger_type_e_TT_TOOTHED_WHEEL@@} field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == @@trigger_type_e_TT_TOOTHED_WHEEL@@}, {trigger_type == @@trigger_type_e_TT_TOOTHED_WHEEL@@} ; see also in firmware '[doesTriggerImplyOperationMode]' tag field = "What kind of engine", twoStroke field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == @@trigger_type_e_TT_TOOTHED_WHEEL@@ || @@TRIGGER_TYPE_WITHOUT_KNOWN_LOCATION@@) } field = "With VR sensors only rising edge has reliable position" field = "use only rising edge", useOnlyRisingEdgeForTrigger 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 = "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 != @@trigger_type_e_TT_MAZDA_MIATA_NA@@} field = "MAP readout angle", mapCamDetectionAnglePosition, { vvtMode1 == @@vvt_mode_e_VVT_MAP_V_TWIN@@ } field = "Cam mode (exhaust cams)", vvtMode2, {trigger_type != @@trigger_type_e_TT_MAZDA_MIATA_NA@@} field = "VVT sync edge", vvtCamSensorUseRise, {trigger_type != @@trigger_type_e_TT_MAZDA_MIATA_NA@@} field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != @@vvt_mode_e_VVT_INACTIVE@@ || vvtMode2 != @@vvt_mode_e_VVT_INACTIVE@@ } 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 = "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 == @@trigger_type_e_TT_TOOTHED_WHEEL_60_2@@ || trigger_type == @@trigger_type_e_TT_TOOTHED_WHEEL_36_1@@} 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_CRANK_BASED@@) && ( ( (@@TRIGGER_TYPE_WITHOUT_KNOWN_LOCATION@@) && skippedWheelOnCam) || !(@@TRIGGER_TYPE_WITHOUT_KNOWN_LOCATION@@) ) ) } field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(@@TRIGGER_CRANK_BASED@@) && ( ( (@@TRIGGER_TYPE_WITHOUT_KNOWN_LOCATION@@) && skippedWheelOnCam) || !(@@TRIGGER_TYPE_WITHOUT_KNOWN_LOCATION@@) ) )) } field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (@@TRIGGER_TYPE_WITH_SECOND_WHEEL@@) ) } field = "Invert Secondary", invertSecondaryTriggerSignal, { triggerInputPins2 != 0 && (@@TRIGGER_TYPE_WITH_SECOND_WHEEL@@) } field = "#VVT or Cam for 60/2 goes below" field = "#If your engine has no exhaust cam sensor, use intake cam inputs" field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != @@vvt_mode_e_VVT_INACTIVE@@ ) } field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != @@vvt_mode_e_VVT_INACTIVE@@ && camInputs1 != 0 ) } field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != @@vvt_mode_e_VVT_INACTIVE@@ && camInputs1 != 0 ) } field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != @@vvt_mode_e_VVT_INACTIVE@@ && camInputs2 != 0 ) } field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } panel = triggerInputComparator @@if_ts_show_trigger_comparator dialog = triggerConfiguration panel = triggerConfiguration_settings, {1}, { consumeObdSensors == 0 } panel = triggerInputs, {1}, { consumeObdSensors == 0 } field = "Display logic signals", displayLogicLevelsInEngineSniffer ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis field = "Injector Flow", injector_flow, {isInjectionEnabled == 1} field = "Fuel rail pressure sensor", injectorPressureType, { isInjectionEnabled && (highPressureFuel_hwChannel || lowPressureFuel_hwChannel) } field = "Injector flow compensation mode", injectorCompensationMode, { isInjectionEnabled } field = "Injector reference pressure", fuelReferencePressure, { isInjectionEnabled && injectorCompensationMode != 0 } dialog = fuelParams, "Fuel characteristics", yAxis field = "Stoichiometric ratio", stoichRatioPrimary, {isInjectionEnabled == 1} field = "E100 stoichiometric ratio", stoichRatioSecondary, {isInjectionEnabled == 1 && flexSensorPin != 0 } dialog = injectorOutputSettings, "Injector Outputs", yAxis field = "Use only first half of pins for batch mode" field = "Injection Pin 1", injectionPins1, {isInjectionEnabled == 1} field = "Injection Pin 2", injectionPins2, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 1} field = "Injection Pin 3", injectionPins3, {isInjectionEnabled == 1 && injectionMode != @@injection_mode_e_IM_SINGLE_POINT@@ && cylindersCount > 2} field = "Injection Pin 4", injectionPins4, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 3} field = "Injection Pin 5 ", injectionPins5, {isInjectionEnabled == 1 && injectionMode != @@injection_mode_e_IM_SINGLE_POINT@@ && cylindersCount > 4} field = "Injection Pin 6 ", injectionPins6, {isInjectionEnabled == 1 && injectionMode != @@injection_mode_e_IM_SINGLE_POINT@@ && cylindersCount > 5} field = "Injection Pin 7 ", injectionPins7, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 6} field = "Injection Pin 8 ", injectionPins8, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 7} field = "Injection Pin 9 ", injectionPins9, {isInjectionEnabled == 1 && cylindersCount > 8} field = "Injection Pin 10 ", injectionPins10, {isInjectionEnabled == 1 && cylindersCount > 9} field = "Injection Pin 11 ", injectionPins11, {isInjectionEnabled == 1 && cylindersCount > 10} field = "Injection Pin 12 ", injectionPins12, {isInjectionEnabled == 1 && cylindersCount > 11} field = ""@@if_ts_show_injectionPinMode field = "injection Pin Mode", injectionPinMode, {isInjectionEnabled == 1}@@if_ts_show_injectionPinMode dialog = cylinderBankSelect, "Cylinder Banks", yAxis field = "Cylinder 1", cylinderBankSelect1, {isInjectionEnabled == 1} field = "Cylinder 2", cylinderBankSelect2, {isInjectionEnabled == 1 && injectionMode != @@injection_mode_e_IM_SINGLE_POINT@@ && cylindersCount > 1} field = "Cylinder 3", cylinderBankSelect3, {isInjectionEnabled == 1 && injectionMode != @@injection_mode_e_IM_SINGLE_POINT@@ && cylindersCount > 2} field = "Cylinder 4", cylinderBankSelect4, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 3} field = "Cylinder 5 ", cylinderBankSelect5, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 4} field = "Cylinder 6 ", cylinderBankSelect6, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 5} field = "Cylinder 7 ", cylinderBankSelect7, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 6} field = "Cylinder 8 ", cylinderBankSelect8, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 7} field = "Cylinder 9 ", cylinderBankSelect9, {isInjectionEnabled == 1 && cylindersCount > 8} field = "Cylinder 10 ", cylinderBankSelect10, {isInjectionEnabled == 1 && cylindersCount > 9} field = "Cylinder 11 ", cylinderBankSelect11, {isInjectionEnabled == 1 && cylindersCount > 10} field = "Cylinder 12 ", cylinderBankSelect12, {isInjectionEnabled == 1 && cylindersCount > 11} dialog = injectorNonlinearPolynomial, "Polynomial Adder", yAxis field = "Add nonlinearity below pulse", applyNonlinearBelowPulse field = "constant", injectorCorrectionPolynomial1 field = "x^1", injectorCorrectionPolynomial2 field = "x^2", injectorCorrectionPolynomial3 field = "x^3", injectorCorrectionPolynomial4 field = "x^4", injectorCorrectionPolynomial5 field = "x^5", injectorCorrectionPolynomial6 field = "x^6", injectorCorrectionPolynomial7 field = "x^7", injectorCorrectionPolynomial8 dialog = injectorNonlinear field = "Small pulse correction mode", injectorNonlinearMode panel = injectorNonlinearPolynomial, {1}, { injectorNonlinearMode != 0 } dialog = testLuaOut, "Lua Out Test" commandButton = "Lua Out #1", cmd_test_lua1 commandButton = "Lua Out #2", cmd_test_lua2 commandButton = "Lua Out #3", cmd_test_lua3 commandButton = "Lua Out #4", cmd_test_lua4 commandButton = "Lua Out #5", cmd_test_lua5 commandButton = "Lua Out #6", cmd_test_lua6 commandButton = "Lua Out #7", cmd_test_lua7 commandButton = "Lua Out #8", cmd_test_lua8 dialog = testInjectors, "Injector Test" commandButton = "Injector #1", cmd_test_inj1 commandButton = "Injector #2", cmd_test_inj2, { cylindersCount >= 2 } commandButton = "Injector #3", cmd_test_inj3, { cylindersCount >= 3 } commandButton = "Injector #4", cmd_test_inj4, { cylindersCount >= 4 } commandButton = "Injector #5", cmd_test_inj5, { cylindersCount >= 5 } commandButton = "Injector #6", cmd_test_inj6, { cylindersCount >= 6 } commandButton = "Injector #7", cmd_test_inj7, { cylindersCount >= 7 } commandButton = "Injector #8", cmd_test_inj8, { cylindersCount >= 8 } commandButton = "Injector #9", cmd_test_inj9, { cylindersCount >= 9 } commandButton = "Injector #10", cmd_test_inj10, { cylindersCount >= 10 } commandButton = "Injector #11", cmd_test_inj11, { cylindersCount >= 11 } commandButton = "Injector #12", cmd_test_inj12, { cylindersCount >= 12 } dialog = testSolenoids, "TCU Solenoid Test" commandButton = "Solenoid #1", cmd_test_sol1 commandButton = "Solenoid #2", cmd_test_sol2 commandButton = "Solenoid #3", cmd_test_sol3 commandButton = "Solenoid #4", cmd_test_sol4 commandButton = "Solenoid #5", cmd_test_sol5 commandButton = "Solenoid #6", cmd_test_sol6 dialog = testOther field = "Count", benchTestCount field = "On Time", benchTestOnTime field = "Off Time", benchTestOffTime panel = testSolenoids dialog = injectionSettingsEast, "", yAxis panel = testInjectors field = "" dialog = injectionSettingsWest, "", yAxis panel = injectorOutputSettings field = "" dialog = injectionSettings, "", xAxis panel = injectionSettingsWest panel = injectionSettingsEast dialog = injectorConfig, "", yAxis topicHelp = "fuelHelp" panel = baseInjection panel = injChars panel = fuelParams panel = injectorsDeadTime dialog = ignitionCylExtra, "Cylinder offsets" field = "Offset angle for each cylinder if you have an odd fire" field = "engine, like a v-twin or some V6/V10 engines" field = "#Positive numbers retard, negative numbers advance" field = "Offset cyl 1", timing_offset_cylinder1 field = "Offset cyl 2", timing_offset_cylinder2, {cylindersCount > 1} field = "Offset cyl 3", timing_offset_cylinder3, {cylindersCount > 2} field = "Offset cyl 4", timing_offset_cylinder4, {cylindersCount > 3} field = "Offset cyl 5", timing_offset_cylinder5, {cylindersCount > 4} field = "Offset cyl 6", timing_offset_cylinder6, {cylindersCount > 5} field = "Offset cyl 7", timing_offset_cylinder7, {cylindersCount > 6} field = "Offset cyl 8", timing_offset_cylinder8, {cylindersCount > 7} field = "Offset cyl 9", timing_offset_cylinder9, {cylindersCount > 8} field = "Offset cyl 10", timing_offset_cylinder10, {cylindersCount > 9} field = "Offset cyl 11", timing_offset_cylinder11, {cylindersCount > 10} field = "Offset cyl 12", timing_offset_cylinder12, {cylindersCount > 11} dialog = multisparkDwellParams, "Delay & Dwell" field = "Spark duration", multisparkSparkDuration, {multisparkEnable} field = "Subsequent spark dwell", multisparkDwell, {multisparkEnable} dialog = multisparkMain, "Configuration" field = "Maximum engine speed", multisparkMaxRpm, {multisparkEnable} field = "Fire sparks for this angle duration" multisparkMaxSparkingAngle, {multisparkEnable} field = "Maximum extra spark count" multisparkMaxExtraSparkCount, {multisparkEnable} dialog = multisparkSettings, "Multispark" field = "#WARNING! These settings have the potential to overheat ignition components" field = "#and cause other nasty misbehavior. Use with care, at your own risk!" field = "#Not recommended for use on distributor or wasted spark ignition systems." field = "Enable multiple sparks", multisparkEnable panel = multisparkMain panel = multisparkDwellParams dialog = ignAdder1Cfg, "Ignition adder 1 config" field = "Blend parameter", ignBlends1_blendParameter panel = ignAdder1Bias dialog = ignAdder2Cfg, "Ignition adder 2 config" field = "Blend parameter", ignBlends2_blendParameter panel = ignAdder2Bias dialog = ignAdder3Cfg, "Ignition adder 3 config" field = "Blend parameter", ignBlends3_blendParameter panel = ignAdder3Bias dialog = ignAdder4Cfg, "Ignition adder 4 config" field = "Blend parameter", ignBlends4_blendParameter panel = ignAdder4Bias dialog = veBlend1Cfg, "VE blend 1 config" field = "Blend parameter", veBlends1_blendParameter panel = veBlend2Bias dialog = veBlend2Cfg, "VE blend 2 config" field = "Blend parameter", veBlends2_blendParameter panel = veBlend2Bias dialog = veBlend3Cfg, "VE blend 3 config" field = "Blend parameter", veBlends3_blendParameter panel = veBlend3Bias dialog = veBlend4Cfg, "VE blend 4 config" field = "Blend parameter", veBlends4_blendParameter panel = veBlend4Bias dialog = dwellSettings, "", yAxis panel = dwellCorrection panel = dwellVoltageCorrection ; Sensors->AUX1 Thermistor Sensor Setting dialog = auxTempSensor1Sensor, "aux1 Thermistor Settings" field = "Input channel", auxTempSensor1_adcChannel field = "Bias resistor", auxTempSensor1_bias_resistor, {auxTempSensor1_adcChannel != @@ADC_CHANNEL_NONE@@} field = "#Here is three pairs of thermistor temperature and resistance." field = "#Typical temperatures is -40 deg C, 0 deg C and 100 deg C" field = "" field = "Lowest temperature", auxTempSensor1_tempC_1, {auxTempSensor1_adcChannel != @@ADC_CHANNEL_NONE@@} field = "Resistance @ LT", auxTempSensor1_resistance_1, {auxTempSensor1_adcChannel != @@ADC_CHANNEL_NONE@@} field = "" field = "Middle temperature", auxTempSensor1_tempC_2, {auxTempSensor1_adcChannel != @@ADC_CHANNEL_NONE@@} field = "Resistance @ MT", auxTempSensor1_resistance_2, {auxTempSensor1_adcChannel != @@ADC_CHANNEL_NONE@@} field = "" field = "Highest temperature", auxTempSensor1_tempC_3, {auxTempSensor1_adcChannel != @@ADC_CHANNEL_NONE@@} field = "Resistance @ HT", auxTempSensor1_resistance_3, {auxTempSensor1_adcChannel != @@ADC_CHANNEL_NONE@@} ; Sensors->AUX2 Thermistor Sensor Setting dialog = auxTempSensor2Sensor, "aux2 Thermistor Settings" field = "Input channel", auxTempSensor2_adcChannel field = "Bias resistor", auxTempSensor2_bias_resistor, {auxTempSensor2_adcChannel != @@ADC_CHANNEL_NONE@@} field = "#Here is three pairs of thermistor temperature and resistance." field = "#Typical temperatures is -40 deg C, 0 deg C and 100 deg C" field = "" field = "Lowest temperature", auxTempSensor2_tempC_1, {auxTempSensor2_adcChannel != @@ADC_CHANNEL_NONE@@} field = "Resistance @ LT", auxTempSensor2_resistance_1, {auxTempSensor2_adcChannel != @@ADC_CHANNEL_NONE@@} field = "" field = "Middle temperature", auxTempSensor2_tempC_2, {auxTempSensor2_adcChannel != @@ADC_CHANNEL_NONE@@} field = "Resistance @ MT", auxTempSensor2_resistance_2, {auxTempSensor2_adcChannel != @@ADC_CHANNEL_NONE@@} field = "" field = "Highest temperature", auxTempSensor2_tempC_3, {auxTempSensor2_adcChannel != @@ADC_CHANNEL_NONE@@} field = "Resistance @ HT", auxTempSensor2_resistance_3, {auxTempSensor2_adcChannel != @@ADC_CHANNEL_NONE@@} dialog = tpsNum1, "Throttle Body #1" field = "Primary sensor", tps1_1AdcChannel field = "Primary min", tpsMin, {tps1_1AdcChannel != @@ADC_CHANNEL_NONE@@} field = "Primary max", tpsMax, {tps1_1AdcChannel != @@ADC_CHANNEL_NONE@@} field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != @@ADC_CHANNEL_NONE@@} field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != @@ADC_CHANNEL_NONE@@} field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != @@ADC_CHANNEL_NONE@@} commandButton = "Auto Calibrate ETB 1", cmb_etb_auto_calibrate, {tps1_2AdcChannel != @@ADC_CHANNEL_NONE@@ && throttlePedalPositionAdcChannel != @@ADC_CHANNEL_NONE@@} dialog = tpsNum2, "Throttle Body #2" field = "Primary sensor", tps2_1AdcChannel field = "Primary min", tps2Min, {tps2_1AdcChannel != @@ADC_CHANNEL_NONE@@} field = "Primary max", tps2Max, {tps2_1AdcChannel != @@ADC_CHANNEL_NONE@@} field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != @@ADC_CHANNEL_NONE@@} field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != @@ADC_CHANNEL_NONE@@} field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != @@ADC_CHANNEL_NONE@@} commandButton = "Auto Calibrate ETB 2", cmb_etb_auto_calibrate_2, {tps2_1AdcChannel != @@ADC_CHANNEL_NONE@@ && tps2_2AdcChannel != @@ADC_CHANNEL_NONE@@ && throttlePedalPositionAdcChannel != @@ADC_CHANNEL_NONE@@} dialog = tpsLimits, "TPS Limits" field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != @@ADC_CHANNEL_NONE@@} field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != @@ADC_CHANNEL_NONE@@} dialog = tpsSensorLeft panel = tpsLimits panel = tpsNum1 panel = tpsNum2 dialog = pedalSensorLeft, "Accelerator pedal" field = "Accelerator position sensor", throttlePedalPositionAdcChannel field = "Up voltage", throttlePedalUpVoltage commandButton = "Grab Up", cmd_calibrate_pedal_up field = "Down (WOT) voltage", throttlePedalWOTVoltage commandButton = "Grab Down", cmd_calibrate_pedal_down field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel field = "Up voltage", throttlePedalSecondaryUpVoltage field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage dialog = pedalGauges gauge = pedalPositionGauge gauge = rawPpsPrimaryGauge gauge = rawPpsSecondaryGauge dialog = tpsGauges gauge = rawTps1PrimaryGauge gauge = rawTps1SecondaryGauge gauge = rawTps2PrimaryGauge gauge = rawTps2SecondaryGauge dialog = pedalSensor, "Accelerator pedal", border panel = pedalSensorLeft, West panel = pedalGauges, East dialog = tpsSensor, "", border panel = tpsSensorLeft, West panel = tpsGauges, East dialog = wastegatePosConfig, "Wastegate position sensor" field = "Input pin", wastegatePositionSensor field = "Min (fully closed, most boost)", wastegatePositionMin field = "Max (fully open, least boost)", wastegatePositionMax dialog = idlePosConfig, "Idle position sensor" field = "Input pin", idlePositionSensor field = "Min (valve closed, low idle)", idlePositionMin field = "Max (valve open, high idle)", idlePositionMax dialog = wastegateIdlePosLeft, "" panel = wastegatePosConfig panel = idlePosConfig dialog = wastegateIdlePosGauges, "" gauge = rawWastegatePositionGauge, West gauge = wastegatePosGauge, East gauge = rawIdlePositionSensorGauge gauge = idlePosSensGauge dialog = wastegateIdlePos, "", border panel = wastegateIdlePosLeft, West panel = wastegateIdlePosGauges, East dialog = mc33Dialog, "Low-Z injector control PT2001" field = "SPI Chip Select", mc33816_cs field = "SPI Device", mc33816spiDevice field = "MC33816 rstb", mc33816_rstb field = "MC33816 flag0", mc33816_flag0 field = "Boost voltage", mc33_hvolt field = "Boost current target", mc33_i_boost field = "Min boost time", mc33_t_min_boost field = "Max boost time (timeout)", mc33_t_max_boost field = "Peak phase current target", mc33_i_peak field = "Peak phase duration", mc33_t_peak_tot field = "Peak phase loop off time", mc33_t_peak_off field = "Peak -> Hold Bypass Time", mc33_t_bypass field = "Hold current target", mc33_i_hold field = "Hold phase loop off time", mc33_t_hold_off field = "Maximum injection duration", mc33_t_hold_tot ; Sensor Inputs dialog = otherSensorInputs, "Other Sensor Inputs" field = "Clutch Down", clutchDownPin field = "Clutch Down inverted", clutchDownPinInverted field = "Clutch Down mode", clutchDownPinMode field = "Clutch Up", clutchUpPin field = "Clutch Up inverted", clutchUpPinInverted field = "Clutch Up mode", clutchUpPinMode field = "Throttle Up switch", throttlePedalUpPin field = "Brake pedal switch", brakePedalPin field = "Flex fuel sensor", flexSensorPin field = "Turbo Speed Sensor", turboSpeedSensorInputPin field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier dialog = fuelLevelDialog, "Fuel Level Sensor" 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 field = "joustick button B", joystickBPin field = "joustick button C", joystickCPin field = "joustick button D", joystickDPin ; ; allXXX sections allows a quick overview of used I/O in order to address conflicts mostly, not really to ; configure the features. ; dialog = allPinsSensors, "Sensors" field = "Throttle pedal Position Channel", throttlePedalPositionAdcChannel field = "Throttle pedal Position #2", throttlePedalPositionSecondAdcChannel field = "Primary input channel", triggerInputPins1 field = "Secondary channel", triggerInputPins2 field = "Cam Sync/VVT input", camInputs1 field = "CLT ADC input", clt_adcChannel field = "IAT ADC input", iat_adcChannel field = "vBatt ADC input", vbattAdcChannel field = "TPS1 ADC input", tps1_1AdcChannel field = "TPS2 ADC input", tps2_1AdcChannel field = "MAF ADC input", mafAdcChannel field = "AFR ADC input", afr_hwChannel field = "Baro ADC input", baroSensor_hwChannel field = "MAP ADC input", map_sensor_hwChannel field = "FuelLevelSensor", fuelLevelSensor field = "Vehicle Speed Input pin", vehicleSpeedSensorInputPin field = "clutchDownPin", clutchDownPin field = "clutchUpPin", clutchUpPin field = "brakePedalPin", brakePedalPin field = "A/C Switch", acSwitch field = "Aux Temperature #1", auxTempSensor1_adcChannel field = "Aux Temperature #2", auxTempSensor2_adcChannel field = "Aux Fast Analog", auxFastSensor1_adcChannel dialog = allTriggerDebug, "Trigger Debug" field = "trigger 1 debug", triggerInputDebugPins1 field = "trigger 2 debug", triggerInputDebugPins2 field = "cam 1 debug", camInputsDebug1 field = "cam 2 debug", camInputsDebug2 field = "cam 3 debug", camInputsDebug3 field = "cam 4 debug", camInputsDebug4 dialog = allPinsMC33, "MC33816" field = "Chip Select", mc33816_cs field = rstb, mc33816_rstb field = flag0, mc33816_flag0 field = mc33816_driven, mc33816_driven field = mc33816spiDevice, mc33816spiDevice field = hpfpValcePin, hpfpValvePin dialog = allPins1_1 field = "trigger stimulator pin #1", triggerSimulatorPins1 field = "trigger stimulator pin #2", triggerSimulatorPins2 field = "Warning Led", warningLedPin field = "tle6240_cs", tle6240_cs field = "tle6240 SPI", tle6240spiDevice panel = joystickPanel dialog = allPins1_2 field = "Tachometer output Pin", tachOutputPin field = "O2 heater pin", o2heaterPin field = "Idle Solenoid Pin", idle_solenoidPin field = "Second Idle Solenoid Pin", secondSolenoidPin field = "Idle Stepper Dir", idle_stepperDirectionPin field = "Idle Stepper Step", idle_stepperStepPin field = "Idle Stepper Enable", stepperEnablePin field = "Fuel Pump Pin", fuelPumpPin field = "ETB#1 Dir #1", etbIo1_directionPin1 @@if_ts_show_etb_pins field = "ETB#1 Dir #2", etbIo1_directionPin2 @@if_ts_show_etb_pins field = "ETB#1 Control", etbIo1_controlPin @@if_ts_show_etb_pins field = "ETB#1 Disable", etbIo1_disablePin @@if_ts_show_etb_pins field = "ETB#2 Dir #1", etbIo2_directionPin1 @@if_ts_show_etb_pins field = "ETB#2 Dir #2", etbIo2_directionPin2 @@if_ts_show_etb_pins field = "ETB#2 Control", etbIo2_controlPin @@if_ts_show_etb_pins field = "ETB#2 Disable", etbIo2_disablePin @@if_ts_show_etb_pins field = "SD CS Pin", sdCardCsPin @@if_ts_show_sd_card field = "MIL / Check Engine Pin", malfunctionIndicatorPin field = "test557pin", test557pin field = "Fan Pin", fanPin field = "A/C Relay", acRelayPin field = "Main Relay Pin", mainRelayPin field = "Starter Relay Pin", starterRelayDisablePin dialog = allPins2_1 field = "Injection Pin 1", injectionPins1 field = "Injection Pin 2", injectionPins2 field = "Injection Pin 3", injectionPins3 field = "Injection Pin 4", injectionPins4 field = "Injection Pin 5 ", injectionPins5 field = "Injection Pin 6 ", injectionPins6 field = "Injection Pin 7 ", injectionPins7 field = "Injection Pin 8 ", injectionPins8 field = "Injection Pin 9 ", injectionPins9 field = "Injection Pin 10 ", injectionPins10 field = "Injection Pin 11 ", injectionPins11 field = "Injection Pin 12 ", injectionPins12 field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 dialog = allPins2_2 field = "Ignition Pin 1", ignitionPins1 field = "Ignition Pin 2", ignitionPins2 field = "Ignition Pin 3", ignitionPins3 field = "Ignition Pin 4", ignitionPins4 field = "Ignition Pin 5", ignitionPins5 field = "Ignition Pin 6", ignitionPins6 field = "Ignition Pin 7", ignitionPins7 field = "Ignition Pin 8", ignitionPins8 field = "Ignition Pin 9", ignitionPins9 field = "Ignition Pin 10", ignitionPins10 field = "Ignition Pin 11", ignitionPins11 field = "Ignition Pin 12", ignitionPins12 dialog = allPins2_3 field = "LCD E pin", HD44780_e field = "LCD D4 pin", HD44780_db4 field = "LCD D5 pin", HD44780_db5 field = "LCD D6 pin", HD44780_db6 field = "LCD D7 pin", HD44780_db7 field = "Debug Trigger Sync", debugTriggerSync panel = allTriggerDebug panel = allPinsMC33 dialog = allPins1_3 field = "Aux ADC #1", auxAnalogInputs1 field = "Aux ADC #2", auxAnalogInputs2 field = "Aux ADC #3", auxAnalogInputs3 field = "Aux ADC #4", auxAnalogInputs4 field = "Aux ADC #5", auxAnalogInputs5 field = "Aux ADC #6", auxAnalogInputs6 field = "Aux ADC #7", auxAnalogInputs7 field = "Aux ADC #8", auxAnalogInputs8 field = "GPS RX", gps_rx_pin @@if_ts_show_gps field = "GPS TX", gps_tx_pin @@if_ts_show_gps field = "CAN RX pin", canRxPin @@if_ts_show_can_pins field = "CAN TX pin", canTxPin @@if_ts_show_can_pins field = "SPI1 MOSI", spi1mosiPin, { spi1mosiPin != 0 || is_enabled_spi_1 == 1} @@if_ts_show_spi field = "SPI1 MISO", spi1misoPin, { spi1misoPin != 0 || is_enabled_spi_1 == 1} @@if_ts_show_spi field = "SPI1 SCK", spi1sckPin, {is_enabled_spi_1 == 1} @@if_ts_show_spi field = "SPI2 MOSI", spi2mosiPin, {is_enabled_spi_2 == 1} @@if_ts_show_spi field = "SPI2 MISO", spi2misoPin, {is_enabled_spi_2 == 1} @@if_ts_show_spi field = "SPI2 SCK", spi2sckPin, {is_enabled_spi_2 == 1} @@if_ts_show_spi field = "SPI3 MOSI", spi3mosiPin, {is_enabled_spi_3 == 1} @@if_ts_show_spi field = "SPI3 MISO", spi3misoPin, {is_enabled_spi_3 == 1} @@if_ts_show_spi field = "SPI3 SCK", spi3sckPin, {is_enabled_spi_3 == 1} @@if_ts_show_spi field = "hip9011CsPin", hip9011CsPin field = "LIS302DLCsPin", LIS302DLCsPin field = "MIL / Check Engine", malfunctionIndicatorPin field = "Saab CDM knock", cdmInputPin field = "DRV8860 CS", drv8860_cs field = "DRV8860 CS Mode", drv8860_csPinMode field = "DRV8860 MISO pin", drv8860_miso field = "DRV8860 SPI", drv8860spiDevice field = "comm status light", communicationLedPin field = "running status light", runningLedPin dialog = allPins3_1 panel = allPinsSensors dialog = allPins3_2 field = "VVT Pin #1", vvtPins1 field = "VVT Pin #2", vvtPins2 field = "VVT Pin #3", vvtPins3 field = "VVT Pin #4", vvtPins4 field = "Aux Valve #1", auxValves1 field = "Aux Valve #2", auxValves2 field = "TLE8888 Chip Select", tle8888_cs @@if_ts_show_spi field = "TLE 8888 spi", tle8888spiDevice @@if_ts_show_spi field = "L9779 Chip Select", l9779_cs @@if_ts_show_spi field = "AUX Serial TX", auxSerialTxPin field = "AUX Serial RX", auxSerialRxPin field = "Start/Stop Button", startStopButtonPin field = "Upshift Pin", tcuUpshiftButtonPin field = "Downshift Pin", tcuDownshiftButtonPin dialog = allPins3_1_and_2, "All Pins 3/3", xAxis panel = allPins3_1 panel = allPins3_2 dialog = allPins1_1_and_2, "", xAxis panel = allPins1_1 panel = allPins1_2 dialog = allPins1, "All Pins 1/3", xAxis panel = allPins1_1_and_2 panel = allPins1_3 dialog = allPins2_1_and_2, "", xAxis panel = allPins2_1 panel = allPins2_2 dialog = allPins2, "All Pins 2/3", xAxis panel = allPins2_1_and_2 panel = allPins2_3 ; Sensors->CLT sensor dialog = clt_thermistor, "CLT sensor" field = "Input channel", clt_adcChannel field = "Bias resistor", clt_bias_resistor, {clt_adcChannel != @@ADC_CHANNEL_NONE@@}@@if_ts_show_clt_iat_pullup settingSelector = "Common CLT Sensors" settingOption = "GM CLT", clt_tempC_1=0,clt_resistance_1=9240,clt_tempC_2=40,clt_resistance_2=1459,clt_tempC_3=100,clt_resistance_3=177,useLinearCltSensor=0 settingOption = "Miata NA", clt_tempC_1=-20,clt_resistance_1=16150,clt_tempC_2=40,clt_resistance_2=1150,clt_tempC_3=80,clt_resistance_3=330,useLinearCltSensor=0 settingOption = "Miata NB", clt_tempC_1=-10,clt_resistance_1=9000,clt_tempC_2=20,clt_resistance_2=2500,clt_tempC_3=80,clt_resistance_3=320,useLinearCltSensor=0 settingOption = "Bosch Various", clt_tempC_1=0,clt_resistance_1=5896,clt_tempC_2=50,clt_resistance_2=834,clt_tempC_3=100,clt_resistance_3=187,useLinearCltSensor=0 field = "#Input three pairs of thermistor temperature and resistance." field = "#Typical temperatures are -40 deg C, 0 deg C and 100 deg C" field = "" field = "Lowest temperature", clt_tempC_1, {clt_adcChannel != @@ADC_CHANNEL_NONE@@} field = "Resistance @ LT", clt_resistance_1, {clt_adcChannel != @@ADC_CHANNEL_NONE@@} field = "" field = "Middle temperature", clt_tempC_2, {clt_adcChannel != @@ADC_CHANNEL_NONE@@} field = "Resistance @ MT", clt_resistance_2, {clt_adcChannel != @@ADC_CHANNEL_NONE@@} field = "" field = "Highest temperature", clt_tempC_3, {clt_adcChannel != @@ADC_CHANNEL_NONE@@} field = "Resistance @ HT", clt_resistance_3, {clt_adcChannel != @@ADC_CHANNEL_NONE@@} field = "" field = "Linear characteristic", useLinearCltSensor, {clt_adcChannel != @@ADC_CHANNEL_NONE@@} dialog = cltGauges gauge = CLTGauge gauge = rawCltGauge dialog = cltSensor, "CLT Sensor", border panel = clt_thermistor, West panel = cltGauges, East ; Sensors->IAT sensor dialog = iat_thermistor, "IAT sensor" field = "Input channel", iat_adcChannel field = "Bias resistor", iat_bias_resistor, {iat_adcChannel != @@ADC_CHANNEL_NONE@@}@@if_ts_show_clt_iat_pullup settingSelector = "Common IAT Sensors", {iat_adcChannel != 0} settingOption = "GM IAT", iat_tempC_1=8.9,iat_resistance_1=7000,iat_tempC_2=30.6,iat_resistance_2=1930,iat_tempC_3=63.3,iat_resistance_3=560,useLinearIatSensor=0 settingOption = "Miata NA/NB", iat_tempC_1=-20,iat_resistance_1=16150,iat_tempC_2=40,iat_resistance_2=1150,iat_tempC_3=80,iat_resistance_3=330,useLinearIatSensor=0 settingOption = "Bosch Various", iat_tempC_1=-10,iat_resistance_1=9397,iat_tempC_2=30,iat_resistance_2=1707,iat_tempC_3=70,iat_resistance_3=436,useLinearIatSensor=0 field = "#Input three pairs of thermistor temperature and resistance." field = "#Typical temperatures are -40 deg C, 0 deg C and 100 deg C" field = "" field = "Lowest temperature", iat_tempC_1, {iat_adcChannel != @@ADC_CHANNEL_NONE@@} field = "Resistance @ LT", iat_resistance_1, {iat_adcChannel != @@ADC_CHANNEL_NONE@@} field = "" field = "Middle temperature", iat_tempC_2, {iat_adcChannel != @@ADC_CHANNEL_NONE@@} field = "Resistance @ MT", iat_resistance_2, {iat_adcChannel != @@ADC_CHANNEL_NONE@@} field = "" field = "Highest temperature", iat_tempC_3, {iat_adcChannel != @@ADC_CHANNEL_NONE@@} field = "Resistance @ HT", iat_resistance_3, {iat_adcChannel != @@ADC_CHANNEL_NONE@@} field = "" field = "Linear characteristic", useLinearIatSensor, {iat_adcChannel != @@ADC_CHANNEL_NONE@@} dialog = iatGauges gauge = IATGauge gauge = rawIatGauge dialog = iatSensor, "IAT Sensor", border panel = iat_thermistor, West panel = iatGauges, East ; Sensors->Oil pressure sensor dialog = oilp_settings, "Oil Pressure Sensor" field = "Oil Pressure ADC input", oilPressure_hwChannel field = "low voltage", oilPressure_v1, {oilPressure_hwChannel != @@ADC_CHANNEL_NONE@@} field = "low pressure", oilPressure_value1, {oilPressure_hwChannel != @@ADC_CHANNEL_NONE@@} field = "high voltage", oilPressure_v2, {oilPressure_hwChannel != @@ADC_CHANNEL_NONE@@} field = "high pressure", oilPressure_value2, {oilPressure_hwChannel != @@ADC_CHANNEL_NONE@@} dialog = oilPressureGauges gauge = OilPressGauge gauge = rawOilPressureGauge dialog = oilPressureSensor, "", border panel = oilp_settings, West panel = oilPressureGauges, East dialog = fuelp_settings, "Fuel Pressure Sensor" field = "Fuel low pressure ADC input", lowPressureFuel_hwChannel field = "low voltage", lowPressureFuel_v1, {lowPressureFuel_hwChannel != @@ADC_CHANNEL_NONE@@} field = "low pressure", lowPressureFuel_value1, {lowPressureFuel_hwChannel != @@ADC_CHANNEL_NONE@@} field = "high voltage", lowPressureFuel_v2, {lowPressureFuel_hwChannel != @@ADC_CHANNEL_NONE@@} field = "high pressure", lowPressureFuel_value2, {lowPressureFuel_hwChannel != @@ADC_CHANNEL_NONE@@} field = "Fuel high pressure ADC input", highPressureFuel_hwChannel field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != @@ADC_CHANNEL_NONE@@} field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != @@ADC_CHANNEL_NONE@@} field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != @@ADC_CHANNEL_NONE@@} field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != @@ADC_CHANNEL_NONE@@} dialog = fuelPressureGauges gauge = lowFuelPressureGauge gauge = rawLowFuelPressureGauge gauge = highFuelPressureGauge gauge = rawHighFuelPressureGauge dialog = fuelPressureSensor, "", border panel = fuelp_settings, West panel = fuelPressureGauges, East dialog = auxLinearSensor1, "Aux Linear Sensor #1" field = "ADC input", auxLinear1_hwChannel field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != @@ADC_CHANNEL_NONE@@} field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != @@ADC_CHANNEL_NONE@@} field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != @@ADC_CHANNEL_NONE@@} field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != @@ADC_CHANNEL_NONE@@} dialog = auxLinearSensor2, "Aux Linear Sensor #2" field = "ADC input", auxLinear2_hwChannel field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != @@ADC_CHANNEL_NONE@@} field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != @@ADC_CHANNEL_NONE@@} field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != @@ADC_CHANNEL_NONE@@} field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != @@ADC_CHANNEL_NONE@@} dialog = auxLinearSensors panel = auxLinearSensor1 panel = auxLinearSensor2 field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 ; Sensors->MAP sensor dialog = mapSensorAnalog, "MAP sensor", yAxis field = "MAP ADC input", map_sensor_hwChannel field = "MAP type", map_sensor_type, { map_sensor_hwChannel != @@ADC_CHANNEL_NONE@@ } field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != @@ADC_CHANNEL_NONE@@ && map_sensor_type == 0 } field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != @@ADC_CHANNEL_NONE@@ && map_sensor_type == 0 } field = "MAP value high point", map_sensor_highValue,{ map_sensor_hwChannel != @@ADC_CHANNEL_NONE@@ && map_sensor_type == 0 } field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != @@ADC_CHANNEL_NONE@@ && map_sensor_type == 0 } dialog = mapCommon, "MAP common settings" field = "Low value threshold", mapErrorDetectionTooLow field = "High value threshold", mapErrorDetectionTooHigh field = "" field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder field = "Cylinder count to sample MAP", mapMinBufferLength dialog = mapSettings, "", yAxis panel = mapCommon panel = mapSensorAnalog dialog = baroSettings, "Baro sensor" field = "Baro ADC input", baroSensor_hwChannel field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != @@ADC_CHANNEL_NONE@@ || lps25BaroSensorScl != 0 } field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != @@ADC_CHANNEL_NONE@@ || lps25BaroSensorScl != 0 } field = "Type", baroSensor_type, {baroSensor_hwChannel != @@ADC_CHANNEL_NONE@@ || lps25BaroSensorScl != 0 } field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == @@ADC_CHANNEL_NONE@@} field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == @@ADC_CHANNEL_NONE@@} dialog = mapCurves, "MAP sampling", yAxis field = "isMapAveragingEnabled", isMapAveragingEnabled panel = map_samplingAngleCurve panel = map_samplingWindowCurve dialog = mafSettings, "MAF sensor", yAxis field = "MAF ADC input", mafAdcChannel ; Sensors->EGO sensor dialog = egoSettings_sensor, "EGO sensor" field = "Type", afr_type ; todo: only use these values for custom! field = "low voltage", afr_v1 field = "low value", afr_value1 field = "high voltage", afr_v2 field = "high value", afr_value2 field = "Correction", egoValueShift dialog = egoSettings_IO, "EGO Sensor I/O" field = "Input channel", afr_hwChannel field = "Heater pin", o2heaterPin dialog = egoSettings, "", yAxis field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled } field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } panel = egoSettings_IO panel = egoSettings_sensor, {afr_hwChannel != @@ADC_CHANNEL_NONE@@ && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} ; Engine->EGT inputs dialog = egtInputs, "EGT inputs" field = "SPI", max31855spiDevice field = "CS #1", max31855_cs1 field = "CS #2", max31855_cs2 field = "CS #3", max31855_cs3 field = "CS #4", max31855_cs4 field = "CS #5", max31855_cs5 field = "CS #6", max31855_cs6 field = "CS #7", max31855_cs7 field = "CS #8", max31855_cs8 ; Engine->idle Settings dialog = idleSolenoid, "Solenoid" field = "Idle Solenoid Pin Mode", idle_solenoidPinMode, !useStepperIdle field = "Idle Solenoid Pin", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle } field = "Second Idle Solenoid Pin", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) } field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle dialog = etbHbridgeHardware, "ETB H-Bridge Hardware" field = "Two-wire mode", etb_use_two_wires field = "No1 Direction #1", etbIo1_directionPin1 field = "No1 Direction #2", etbIo1_directionPin2 field = "No1 Control", etbIo1_controlPin field = "No1 Disable", etbIo1_disablePin field = "No2 Direction #1", etbIo2_directionPin1 field = "No2 Direction #2", etbIo2_directionPin2 field = "No2 Control", etbIo2_controlPin field = "No2 Disable", etbIo2_disablePin dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" topicHelp = "stepperHbridgeHardwareHelp" field = "Inverted driver pins", stepperDcInvertedPins field = "No1 Direction #1", stepperDcIo1_directionPin1 field = "No1 Direction #2", stepperDcIo1_directionPin2 field = "No1 Disable", stepperDcIo1_disablePin field = "No2 Direction #1", stepperDcIo2_directionPin1 field = "No2 Direction #2", stepperDcIo2_directionPin2 field = "No2 Disable", stepperDcIo2_disablePin dialog = idleStepperHw, "Stepper Controller Hardware" topicHelp = "idleStepperHwHelp" field = "Idle Stepper Step Pin", idle_stepperStepPin field = "Idle Stepper Dir Pin", idle_stepperDirectionPin field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode field = "Idle Stepper Enable Pin", stepperEnablePin field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" topicHelp = "stepperDirectDriveHardwareHelp" field = "Stepper A+", stepper_raw_output1 field = "Stepper A-", stepper_raw_output2 field = "Stepper B+", stepper_raw_output3 field = "Stepper B-", stepper_raw_output4 dialog = idleStepperHwType, "" panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } dialog = idleStepperGeneral, "" field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle dialog = idleStepperMicro, "Micro-Stepping" field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } dialog = idleStepper, "Stepper" panel = idleStepperGeneral panel = idleStepperHwType panel = idleStepperMicro dialog = idleHwType, "Idle Valve Hardware", yAxis panel = idleSolenoid panel = idleStepper dialog = idlehw, "", yAxis field = "!ECU reboot needed to apply these settings" field = "Use Stepper", useStepperIdle field = "Double Solenoid Mode", isDoubleSolenoidIdle field = "Use electronic throttle for idle", useETBforIdleControl, { throttlePedalPositionAdcChannel != @@ADC_CHANNEL_NONE@@ } field = "Electronic throttle idle range", etbIdleThrottleRange, { useETBforIdleControl == 1 } panel = idleHwType dialog = idlePidSettings, "Closed Loop Idle" field = "P-factor", idleRpmPid_pFactor field = "I-factor", idleRpmPid_iFactor field = "derivativeFilterLoss", idle_derivativeFilterLoss field = "antiwindupFreq", idle_antiwindupFreq field = "D-factor", idleRpmPid_dFactor field = "Min", idleRpmPid_minValue field = "Max", idleRpmPid_maxValue field = "iTerm Min", idlerpmpid_iTermMin field = "iTerm Max", idlerpmpid_iTermMax field = "PID Extra for low RPM", pidExtraForLowRpm field = idleIncrementalPidCic, idleIncrementalPidCic field = "use Cic Pid", useCicPidForIdle field = "Use IAC PID Multiplier Table", useIacPidMultTable dialog = idleOpenLoop, "Open Loop Idle" slider = "Open loop base position", manIdlePosition, horizontal field = "A/C adder", acIdleExtraOffset field = "A/C target adder", acIdleRpmBump field = "Fan #1 adder", fan1ExtraIdle field = "Fan #2 adder", fan2ExtraIdle field = "Extra idle air if throttle pressed", iacByTpsTaper field = "Air Taper Rpm Range", airTaperRpmRange field = "Air By Rpm Taper", airByRpmTaper dialog = idleGating, "Idle Detection Thresholds" field = "TPS threshold", idlePidDeactivationTpsThreshold field = "RPM upper limit", idlePidRpmUpperLimit field = "RPM deadzone", idlePidRpmDeadZone field = "Max vehicle speed", maxIdleVss dialog = idleExtra, "Extra Idle Features" field = "Use idle ignition table", useSeparateAdvanceForIdle field = "Use idle VE table", useSeparateVeForIdle field = "Use idle tables for cranking taper", useSeparateIdleTablesForCrankingTaper field = "Use coasting idle table", useIacTableForCoasting field = "Detailed status in console", isVerboseIAC dialog = idleSettings, "", yAxis field = "Idle control mode", idleMode field = "! Solenoid idle control is disabled at zero RPM" ; gating applies both to open loop and closed loop! panel = idleGating ; closed loop mode is an addition on top of open loop, so idleOpenLoop stays open even when closed loop is selected panel = idleOpenLoop panel = idlePidSettings, { idleMode == @@idle_mode_e_IM_AUTO@@ } panel = idleExtra dialog = idleTimingPidCorrDialog, "", yAxis field = "" field = "Enable closed loop idle ignition timing", useIdleTimingPidControl field = "RPM deadzone", idleTimingPidDeadZone field = "" field = "#Gain is in degrees advance per rpm away from target" field = "#A good starting point is 0.1 = 10 deg per 100 rpm" field = "Proportional gain", idleTimingPid_pFactor, {useIdleTimingPidControl == 1} field = "Derivative gain", idleTimingPid_dFactor, {useIdleTimingPidControl == 1} field = "" field = "Min adjustment (retard)", idleTimingPid_minValue, {useIdleTimingPidControl == 1} field = "Max adjustment (advance)", idleTimingPid_maxValue, {useIdleTimingPidControl == 1} field = "" field = "#Use debug mode 'Timing' to view idle timing adjustment" ; Engine->Fan Settings dialog = fan1Settings, "Fan 1" field = "Pin", fanPin field = "Pin mode", fanPinMode field = "On temperature", fanOnTemperature field = "Off temperature", fanOffTemperature field = "Enable with AC", enableFan1WithAc field = "Disable when engine stopped", disableFan1WhenStopped dialog = fan2Settings, "Fan 2" field = "Pin", fan2Pin field = "Pin mode", fan2PinMode field = "On temperature", fan2OnTemperature field = "Off temperature", fan2OffTemperature field = "Enable with AC", enableFan2WithAc field = "Disable when engine stopped", disableFan2WhenStopped dialog = fanTest, "", xAxis commandButton = "Test Fan 1", cmd_test_fan_1 commandButton = "Test Fan 2", cmd_test_fan_2 indicatorPanel = fanIndicators, 2 indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black dialog = acSettingsWest, "A/C Settings" field = "A/C switch", acSwitch field = "A/C switch mode", acSwitchMode field = "A/C Relay", acRelayPin field = "A/C Relay Mode", acRelayPinMode field = "A/C compressor delay", acDelay field = "Max RPM", maxAcRpm field = "Max CLT", maxAcClt field = "Max TPS", maxAcTps dialog = acSettings, "", border panel = acSettingsWest, West panel = ac_controlIndicatorPanel, East dialog = fanSetting, "Fan Settings" panel = fan1Settings panel = fan2Settings panel = fanTest panel = fanIndicators dialog = fuelPump, "Fuel Pump" field = "Pin", fuelPumpPin field = "Pin mode", fuelPumpPinMode field = "Prime duration", startUpFuelPumpDuration ; Controller->Actuator Outputs dialog = mainRelayDialog, "Main relay output" field = "microRusEFI main relay control is hard wired on pin #29"@@if_ts_show_main_relay_microRusEFI_message field = "Pin", mainRelayPin@@if_ts_show_main_relay field = "Pin mode", mainRelayPinMode@@if_ts_show_main_relay dialog = starterRelay, "Starter relay output" field = "Pin", starterRelayDisablePin field = "Pin mode", starterRelayDisablePinMode dialog = statusLeds, "Status LEDs" field = "Running status LED", runningLedPin field = "TS communication status LED", communicationLedPin field = "Warning LED", warningLedPin field = "Trigger error LED", triggerErrorPin field = "Debug Trigger Sync", debugTriggerSync ; Engine->MIL Settings dialog = malfunction, "Check Engine Settings" field = "Pin", malfunctionIndicatorPin field = "Pin mode", malfunctionIndicatorPinMode field = "Warning Period", warningPeriod dialog = softwareKnockCfg, "Sense" field = "Enable", enableSoftwareKnock field = "Cylinder Bore", cylinderBore field = "Knock filter frequency", knockBandCustom, {enableSoftwareKnock} field = "knockDetectionWindowStart",knockDetectionWindowStart, {enableSoftwareKnock} field = "knockSamplingDuration", knockSamplingDuration, {enableSoftwareKnock} field = "" field = "Select the nearest sensor for each cylinder" field = "Cylinder 1", knockBankCyl1, {enableSoftwareKnock} field = "Cylinder 2", knockBankCyl2, {enableSoftwareKnock && cylindersCount >= 2} field = "Cylinder 3", knockBankCyl3, {enableSoftwareKnock && cylindersCount >= 3} field = "Cylinder 4", knockBankCyl4, {enableSoftwareKnock && cylindersCount >= 4} field = "Cylinder 5", knockBankCyl5, {enableSoftwareKnock && cylindersCount >= 5} field = "Cylinder 6", knockBankCyl6, {enableSoftwareKnock && cylindersCount >= 6} field = "Cylinder 7", knockBankCyl7, {enableSoftwareKnock && cylindersCount >= 7} field = "Cylinder 8", knockBankCyl8, {enableSoftwareKnock && cylindersCount >= 8} field = "Cylinder 9", knockBankCyl9, {enableSoftwareKnock && cylindersCount >= 9} field = "Cylinder 10", knockBankCyl10, {enableSoftwareKnock && cylindersCount >= 10} field = "Cylinder 11", knockBankCyl11, {enableSoftwareKnock && cylindersCount >= 11} field = "Cylinder 12", knockBankCyl12, {enableSoftwareKnock && cylindersCount >= 12} dialog = softwareKnockResponseCfg, "Response" field = knockRetardAggression, knockRetardAggression field = knockRetardReapplyRate, knockRetardReapplyRate dialog = softwareKnockLeft, "" panel = softwareKnockCfg panel = softwareKnockResponseCfg dialog = softwareKnock, "Software Knock", border panel = softwareKnockLeft, West panel = knockThresholdCurve, Center ; Engine->hip9011 Settings dialog = hipFunction, "HIP9011 Settings (knock decoder)" field = "Enabled", isHip9011Enabled field = "!ECU reboot needed to apply these settings" field = "IntHold pin (hip9011 input)", hip9011IntHoldPin, {isHip9011Enabled == 1} field = "IntHold pin (hip9011 input) mode", hip9011IntHoldPinMode, {isHip9011Enabled == 1} field = "ChipSelect pin", hip9011CsPin, {isHip9011Enabled == 1} field = "ChipSelect mode", hip9011CsPinMode, {isHip9011Enabled == 1} field = "hip Output/stm input", hipOutputChannel, {isHip9011Enabled == 1} field = "prescaler & SDO", hip9011PrescalerAndSDO, {isHip9011Enabled == 1} field = "knockDetectionWindowStart", knockDetectionWindowStart, {isHip9011Enabled == 1} field = "knockDetectionWindowEnd", knockDetectionWindowEnd, {isHip9011Enabled == 1} field = "cylinder bore (mm)", cylinderBore, {isHip9011Enabled == 1} field = "Band Freq override", knockBandCustom, {isHip9011Enabled == 1} field = "SPI device", hip9011SpiDevice, {isHip9011Enabled == 1} panel = knockThresholdCurve ; Engine->cj125 Settings dialog = cj125Function, "CJ125 Settings (wbo decoder)" field = "Enabled", isCJ125Enabled commandButton = "Calibrate", cmd_cj125_calibrate field = "Using 4.9 sensor?", cj125isLsu49 field = "!ECU reboot needed to apply these settings" field = "ChipSelect pin", cj125CsPin, {isCJ125Enabled == 1} field = "ChipSelect mode", cj125CsPinMode, {isCJ125Enabled == 1} field = "!See also 'Controller-SPI setting'" field = "SPI device", cj125SpiDevice field = "Heater pin", wboHeaterPin, {isCJ125Enabled == 1} field = "UA input", cj125ua, {isCJ125Enabled == 1} field = "UR input", cj125ur, {isCJ125Enabled == 1} field = "Is UA input divided?" cj125isUaDivided, {isCJ125Enabled == 1} field = "Is UR input divided?" cj125isUrDivided, {isCJ125Enabled == 1} dialog = spiFunction, "SPI settings" field = "!ECU reboot needed to apply these settings" field = "SPI1 enable", is_enabled_spi_1 field = "SPI1 MOSI", spi1mosiPin, {is_enabled_spi_1 == 1} field = "SPI1mosi mode", spi1MosiMode, {is_enabled_spi_1 == 1} field = "SPI1 MISO", spi1misoPin, {is_enabled_spi_1 == 1} field = "SPI1miso mode", spi1MisoMode, {is_enabled_spi_1 == 1} field = "SPI1 SCK", spi1sckPin, {is_enabled_spi_1 == 1} field = "SPI1sck mode", spi1SckMode, {is_enabled_spi_1 == 1} field = "SPI2 enable", is_enabled_spi_2 field = "SPI2 MOSI", spi2mosiPin, {is_enabled_spi_2 == 1} field = "SPI2mosi mode", spi2MosiMode, {is_enabled_spi_2 == 1} field = "SPI2 MISO", spi2misoPin, {is_enabled_spi_2 == 1} field = "SPI2miso mode", spi2MisoMode, {is_enabled_spi_2 == 1} field = "SPI2 SCK", spi2sckPin, {is_enabled_spi_2 == 1} field = "SPI2sck mode", spi2SckMode, {is_enabled_spi_2 == 1} field = "SPI3 enable", is_enabled_spi_3 field = "SPI3 MOSI", spi3mosiPin, {is_enabled_spi_3 == 1} field = "SPI3mosi mode", spi3MosiMode, {is_enabled_spi_3 == 1} field = "SPI3 MISO", spi3misoPin, {is_enabled_spi_3 == 1} field = "SPI3miso mode", spi3MisoMode, {is_enabled_spi_3 == 1} field = "SPI3 SCK", spi3sckPin, {is_enabled_spi_3 == 1} field = "SPI3sck mode", spi3SckMode, {is_enabled_spi_3 == 1} field = "LIS302DLCsPin", LIS302DLCsPin dialog = stftPartitioning, "Region Configuration" field = "Idle region RPM", stft_maxIdleRegionRpm field = "Overrun region load", stft_maxOverrunLoad field = "Power region load", stft_minPowerLoad dialog = stftPartitionSettingsMain, "Main Region", xAxis field = "Time const", stft_cellCfgs4_timeConstant field = "Max add", stft_cellCfgs4_maxAdd field = "Max remove", stft_cellCfgs4_maxRemove dialog = stftPartitionSettingsIdle, "Idle Region", xAxis field = "Time const", stft_cellCfgs1_timeConstant field = "Max add", stft_cellCfgs1_maxAdd field = "Max remove", stft_cellCfgs1_maxRemove dialog = stftPartitionSettingsPower, "Power Region", xAxis field = "Time const", stft_cellCfgs3_timeConstant field = "Max add", stft_cellCfgs3_maxAdd field = "Max remove", stft_cellCfgs3_maxRemove dialog = stftPartitionSettingsOverrun, "Overrun Region", xAxis field = "Time const", stft_cellCfgs2_timeConstant field = "Max add", stft_cellCfgs2_maxAdd field = "Max remove", stft_cellCfgs2_maxRemove dialog = fuelClosedLoopDialog, "Closed loop fuel correction" field = "Enabled", fuelClosedLoopCorrectionEnabled field = "Startup delay" stft_startupDelay, {fuelClosedLoopCorrectionEnabled == 1} field = "Minimum CLT for correction", stft_minClt, {fuelClosedLoopCorrectionEnabled == 1} field = "Minimum AFR for correction", stft_minAfr, {fuelClosedLoopCorrectionEnabled == 1} field = "Maximum AFR for correction", stft_maxAfr, {fuelClosedLoopCorrectionEnabled == 1} field = "Adjustment deadband", stft_deadband, {fuelClosedLoopCorrectionEnabled == 1} field = "Ignore error magnitude", stftIgnoreErrorMagnitude, {fuelClosedLoopCorrectionEnabled == 1} panel = stftPartitioning, {fuelClosedLoopCorrectionEnabled == 1} panel = stftPartitionSettingsMain, {fuelClosedLoopCorrectionEnabled == 1} panel = stftPartitionSettingsIdle, {fuelClosedLoopCorrectionEnabled == 1} panel = stftPartitionSettingsPower, {fuelClosedLoopCorrectionEnabled == 1} panel = stftPartitionSettingsOverrun, {fuelClosedLoopCorrectionEnabled == 1} dialog = vvtPidDialog0, "Configuration" field = "Activation Delay", vvtActivationDelayMs field = "Do not control below RPM", vvtControlMinRpm field = "VVT solenoid bank 1 intake", vvtPins1 field = "VVT solenoid bank 1 exhaust", vvtPins2 field = "VVT solenoid bank 2 intake", vvtPins3 field = "VVT solenoid bank 2 exhaust", vvtPins4 field = "PWM frequency", vvtOutputFrequency1, {vvtPins1 != 0 || vvtPins2 != 0} field = "Detailed status in console", isVerboseAuxPid1, {vvtPins1 != 0 || vvtPins2 != 0} field = "VVT solenoid intake cams control direction", invertVvtControlIntake, { vvtPins1 != 0 || vvtPins3 != 0 } field = "VVT solenoid exhaust cams control direction", invertVvtControlExhaust, { vvtPins2 != 0 || vvtPins4 != 0 } dialog = vvtPidDialog1, "Intake PID" field = "offset", auxPid1_offset, {vvtPins1 != 0} field = "P factor", auxPid1_pFactor, {vvtPins1 != 0} field = "I factor", auxPid1_iFactor, {vvtPins1 != 0} field = "D factor", auxPid1_dFactor, {vvtPins1 != 0} field = "Min", auxPid1_minValue, {vvtPins1 != 0} field = "Max", auxPid1_maxValue, {vvtPins1 != 0} dialog = vvtPidDialog2, "Exhaust PID" field = "offset", auxPid2_offset, {vvtPins2 != 0} field = "P factor", auxPid2_pFactor, {vvtPins2 != 0} field = "I factor", auxPid2_iFactor, {vvtPins2 != 0} field = "D factor", auxPid2_dFactor, {vvtPins2 != 0} field = "Min", auxPid2_minValue, {vvtPins2 != 0} field = "Max", auxPid2_maxValue, {vvtPins2 != 0} dialog = vvtPidDialog, "VVT Configuration & PID", border panel = vvtPidDialog0, West panel = vvtPidDialog1, Center panel = vvtPidDialog2, East ; Engine->Battery & Alternator dialog = batteryDialog, "Battery Settings", yAxis field = "vBatt ADC input", vbattAdcChannel field = "Battery Input Divider Coefficient", vbattDividerCoeff dialog = alternator, "Alternator Settings", yAxis field = "Enabled", isAlternatorControlEnabled field = "Target", targetVBatt, {isAlternatorControlEnabled == 1} field = "Pin", alternatorControlPin, {isAlternatorControlEnabled == 1} field = "Pin Mode", alternatorControlPinMode, {isAlternatorControlEnabled == 1} field = "PWM frequency", alternatorPwmFrequency, {isAlternatorControlEnabled == 1} field = "Off Above TPS", alternatorOffAboveTps, {isAlternatorControlEnabled == 1} field = "Detailed status in console", isVerboseAlternator, {isAlternatorControlEnabled == 1} field = "#PID control" field = "offset", alternatorControl_offset, {isAlternatorControlEnabled == 1} field = "P factor", alternatorControl_pFactor, {isAlternatorControlEnabled == 1} field = "I factor", alternatorControl_iFactor, {isAlternatorControlEnabled == 1} field = "D factor", alternatorControl_dFactor, {isAlternatorControlEnabled == 1} field = "Min", alternatorControl_minValue, {isAlternatorControlEnabled == 1} field = "Max", alternatorControl_maxValue, {isAlternatorControlEnabled == 1} field = "#% duty = Pterm + Iterm + Dterm + offset%" dialog = startStopDialog, "Start/Stop Button" field = "Start/Stop Button Pin", startStopButtonPin field = "Start/Stop Button Mode", startStopButtonMode field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} dialog = energySystems, "Battery and Alternator Settings", yAxis panel = batteryDialog@@if_ts_show_vbatt panel = alternator dialog = speedSensorAnalog, "Speed sensor" field = "Input pin", vehicleSpeedSensorInputPin field = "Filter parameter", vssFilterReciprocal, { vehicleSpeedSensorInputPin != @@ADC_CHANNEL_NONE@@ } ; ; We prefer quantities that users can actually measure or inspect without math, so we have ; two separate natural settings here without one 'sensor tooth to wheel revolution' ratio ; field = "Wheel revolutions per kilometer", driveWheelRevPerKm field = "Speed sensor gear ratio", vssGearRatio, { vehicleSpeedSensorInputPin != @@ADC_CHANNEL_NONE@@ } field = "Speed sensor tooth count", vssToothCount, { vehicleSpeedSensorInputPin != @@ADC_CHANNEL_NONE@@ } dialog = speedSensorCan, "CAN Vehicle Speed" field = "Enable CAN VSS", enableCanVss, { canReadEnabled } field = "VSS CAN message type", canVssNbcType, { enableCanVss } dialog = speedSensorLeft, "", yAxis panel = speedSensorAnalog, { enableCanVss == 0 } panel = speedSensorCan dialog = gearDetection, "Gear Detection" field = "Wheel revolutions per kilometer", driveWheelRevPerKm field = "Final drive ratio", finalGearRatio field = "" field = "Forward gear count", totalGearsCount field = "" field = "1st gear", gearRatio1, { totalGearsCount >= 1 } field = "2nd gear", gearRatio2, { totalGearsCount >= 2 } field = "3rd gear", gearRatio3, { totalGearsCount >= 3 } field = "4th gear", gearRatio4, { totalGearsCount >= 4 } field = "5th gear", gearRatio5, { totalGearsCount >= 5 } field = "6th gear", gearRatio6, { totalGearsCount >= 6 } field = "7th gear", gearRatio6, { totalGearsCount >= 7 } field = "8th gear", gearRatio6, { totalGearsCount >= 8 } dialog = speedSensor, "Speed sensor", xAxis panel = speedSensorLeft gauge = VSSGauge ; Engine->Other inputs dialog = analogInputSettings, "Analog Input Settings" field = "!ECU reboot needed to apply these settings" field = "ADC vRef voltage", adcVcc field = "Use fixed baro corr from MAP", useFixedBaroCorrFromMap field = "Analog divider ratio", analogInputDividerCoefficient@@if_ts_show_analog_divider field = "Smoothing factor", slowAdcAlpha dialog = tachSettings, "Tachometer output" field = "Pin", tachOutputPin field = "Pin mode", tachOutputPinMode field = "Pulse Mode", tachPulseDurationAsDutyCycle field = "Pulse duration", tachPulseDuractionMs field = "Pulse per Rev", tachPulsePerRev ; Board->Connection dialog = tsPort, "Calibration Secondary Serial" field = "tunerStudioSerialSpeed", tunerStudioSerialSpeed field = "TX pin", binarySerialTxPin field = "RX pin", binarySerialRxPin dialog = canHw1, "Primary CAN" field = "Verbose Can", verboseCan field = "Bitrate", canBaudRate field = "RX pin", canRxPin @@if_ts_show_can_pins field = "TX pin", canTxPin @@if_ts_show_can_pins field = "Allow OpenBLT", canOpenBLT dialog = canHw2, "Secondary CAN" field = "Verbose Can2", verboseCan2 field = "Bitrate", can2BaudRate field = "RX pin", can2RxPin @@if_ts_show_can_pins field = "TX pin", can2TxPin @@if_ts_show_can_pins field = "Allow OpenBLT", can2OpenBLT dialog = canBus, "CAN Bus" field = "CAN read enabled", canReadEnabled field = "CAN write enabled", canWriteEnabled field = "CAN dash type", canNbcType field = "inertia measurement unit", imuType field = "Enable rusEFI CAN broadcast", enableVerboseCanTx field = verboseIsoTp, verboseIsoTp field = "rusEFI CAN data bus", canBroadcastUseChannelTwo field = "rusEFI CAN data base address", verboseCanBaseAddress field = "rusEFI CAN data address type", rusefiVerbose29b field = "rusEFI CAN data period", canSleepPeriodMs dialog = canBus2, "Secondary CAN Bus" dialog = canBusMain, "CAN Bus Communication", yAxis panel = canBus panel = canHw1 panel = canHw2 @@if_ts_show_can2 dialog = auxSerial, "AUX Sensor Serial" field = "RX pin", auxSerialRxPin @@if_ts_show_auxserial_pins field = "TX pin", auxSerialTxPin @@if_ts_show_auxserial_pins field = "Serial Baud Rate", auxSerialSpeed @@if_ts_show_auxserial_pins dialog = sdCard, "SD Card Logger" field = "#rusEFI logs to SD when powered without USB connected" field = "#rusEFI connects SD to your PC when powered by USB" field = "Enable SD Card", isSdCardEnabled field = "CS Pin", sdCardCsPin @@if_ts_show_sd_pins field = "SPI", sdCardSpiDevice @@if_ts_show_sd_pins field = "Write Period", sdCardPeriodMs dialog = gpsReceiver, "GPS Receiver" field = "gps RX", gps_rx_pin field = "gps TX", gps_tx_pin dialog = lcdScreen, "LCD screen" field = "display Mode", displayMode field = "height", HD44780height field = "width", HD44780width field = "RS pin", HD44780_rs field = "E pin", HD44780_e field = "D4 pin", HD44780_db4 field = "D5 pin", HD44780_db5 field = "D6 pin", HD44780_db6 field = "D7 pin", HD44780_db7 dialog = tle8888, "TLE8888", yAxis field = "TLE8888 Chip Select", tle8888_cs @@if_ts_show_spi field = "TLE8888 SPI", tle8888spiDevice @@if_ts_show_spi field = "Mode", tle8888mode field = "useTLE8888 cranking reset hack", useTLE8888_cranking_hack field = "useTLE8888 stepper", useTLE8888_stepper commandButton = "Reinit", cmd_tle8888_init field = "L9779 SPI", tle8888spiDevice @@if_ts_show_spi dialog = connection, "", yAxis panel = tsPort @@if_ts_show_tunerstudio_port field = "uartConsoleSerialSpeed", uartConsoleSerialSpeed panel = auxSerial panel = gpsReceiver @@if_ts_show_gps dialog = monitoringSettings, "rusEFI Console Settings" field = "Sensor Sniffer", sensorChartMode field = " Threshold", sensorSnifferRpmThreshold field = "Engine Sniffer Threshold", engineSnifferRpmThreshold dialog = generalSettings, "Fuel" field = "!https://rusefi.com/s/fuel" field = "Fuel strategy", fuelAlgorithm dialog = debugging, "Debug" field = "!https://rusefi.com/s/debugmode" field = "Debug mode", debugMode dialog = limitsSettings, "Limits" field = "Cut fuel on RPM limit", cutFuelOnHardLimit field = "Cut spark on RPM limit", cutSparkOnHardLimit field = "Use CLT-based RPM limit curve", useCltBasedRpmLimit, { cutFuelOnHardLimit || cutSparkOnHardLimit } field = "RPM hard limit", rpmHardLimit, { (cutFuelOnHardLimit || cutSparkOnHardLimit) && !useCltBasedRpmLimit } field = "Boost cut pressure", boostCutPressure field = "Minimum oil pressure after start", minOilPressureAfterStart dialog = etbLimits, "Electronic Throttle Limiting" field = "Smoothly close the throttle to limit RPM." field = "Soft limiter start", etbRevLimitStart field = "Soft limiter range", etbRevLimitRange dialog = fallbacks, "Fallbacks" field = "Use MAP estimation table as fallback", enableMapEstimationTableFallback field = "Failed MAP sensor fallback", failedMapFallback, { !enableMapEstimationTableFallback } dialog = limitsAndFallback, "Limits and fallbacks" panel = limitsSettings panel = etbLimits panel = fallbacks ; Engine->Base Engine Settings dialog = engineChars, "Base Engine Settings" topicHelp = "baseHelp" panel = baseEngineConfig panel = engineMetadata panel = generalSettings panel = debugging dialog = crankingFuel, "Fuel" field = "Injection mode", crankingInjectionMode field = "Fuel Source For Cranking", useRunningMathForCranking field = "Base fuel mass", cranking_baseFuel, {useRunningMathForCranking == 0} dialog = crankingIAC, "Idle air valve" field = "Cranking base IAC position", crankingIACposition field = "After cranking IAC taper duration",afterCrankingIACtaperDuration field = "Override cranking IAC CLT multiplier", overrideCrankingIacSetting dialog = crankingIgnition, "Ignition" field = "Timing Advance mode", useSeparateAdvanceForCranking field = "Fixed cranking advance", crankingTimingAngle, {useSeparateAdvanceForCranking == 0} field = "Fixed Cranking Dwell", ignitionDwellForCrankingMs dialog = postCrankingEnrichment, "After start enrichment" field = "Post-Cranking factor", postCrankingFactor field = "Duration", postCrankingDurationSec dialog = primingFuelPulsePanel, "Priming fuel pulse" field = "Priming delay", primingDelay panel = primingPulse dialog = crankingAdv, "Advanced" field = "Enable flood clear", isCylinderCleanupEnabled field = "Enable faster engine spin-up", isFasterEngineSpinUpEnabled field = "Use Advance Corrections for cranking", useAdvanceCorrectionsForCranking field = "Use Flex Fuel cranking table", flexCranking ; Cranking->Cranking Settings dialog = crankingDialog, "Cranking Settings" field = "Cranking RPM limit", cranking_rpm panel = crankingFuel panel = crankingIgnition panel = crankingIAC panel = crankingAdv dialog = TpsAccelPanel, "TPS" field = "Set 'Debug Mode' to see detailed 'TPS acceleration enrichment' diagnostics" field = "Length", tpsAccelLookback field = "Accel Threshold", tpsAccelEnrichmentThreshold field = "Decel Threshold", tpsDecelEnleanmentThreshold ; field = "Decel Multiplier", tpsDecelEnleanmentMultiplier field = "#Accelerator Pump model:" field = "Fraction Period", tpsAccelFractionPeriod field = "Fraction Divisor", tpsAccelFractionDivisor dialog = WallWettingAccelPanel, "Wall Wetting (alpha version)" field = "Wall fueling model type", complexWallModel field = "evaporation time constant / tau", wwaeTau, { complexWallModel == 0 } field = "added to wall coef / beta", wwaeBeta, { complexWallModel == 0 } ; Tuning->AccelEnrichment dialog = AccelEnrich, "Accel/Decel Enrichment" panel = TpsAccelPanel panel = WallWettingAccelPanel field = "No accel after RPM hard limit", noAccelAfterHardLimitPeriodSecs dialog = wwTauCurves, "Wall wetting AE evaporation time" field = "#Set a base evaporation time based on coolant temperature, and a multiplier based on MAP." panel = wwTauCltCurve panel = wwTauMapCurve dialog = wwBetaCurves, "Wall wetting AE impact fraction" field = "#Set a base impact fraction based on coolant temperature, and a multiplier based on MAP." panel = wwBetaCltCurve panel = wwBetaMapCurve dialog = auxValvesIO, "Outputs" field = "aux valve #1", auxValves1 field = "aux valve #2", auxValves2 dialog = scriptSetting, "Setting" field = "!Use rusEFI console for Lua script editing" field = "Set number is not associated with the output number." field = "Set number, only the cell number with some numbers." field = "Name #1", scriptSettingName1 field = "Setting #1", scriptSetting1 field = "Name #2", scriptSettingName2 field = "Setting #2", scriptSetting2 field = "Name #3", scriptSettingName3 field = "Setting #3", scriptSetting3 field = "Name #4", scriptSettingName4 field = "Setting #4", scriptSetting4 field = "Name #5", scriptSettingName5 field = "Setting #5", scriptSetting5 field = "Name #6", scriptSettingName6 field = "Setting #6", scriptSetting6 dialog = scriptSettingDialog, "Script Settings", border panel = scriptSetting, East dialog = auxInputsDialog, "Lua Analog Inputs" field = "ADC #1", auxAnalogInputs1 field = "ADC #2", auxAnalogInputs2 field = "ADC #3", auxAnalogInputs3 field = "ADC #4", auxAnalogInputs4 field = "ADC #5", auxAnalogInputs5 field = "ADC #6", auxAnalogInputs6 field = "ADC #7", auxAnalogInputs7 field = "ADC #8", auxAnalogInputs8 dialog = luaOutputs, "Lua Outputs" field = "!Use rusEFI console for Lua script editing" field = "#Call startPwm to initialize, then call" field = "#setPwmDuty and setPwmFreq to vary duty/freq" field = "#See rusefi.com/s/lua for more info" field = "output #0", luaOutputPins1 field = "output #1", luaOutputPins2 field = "output #2", luaOutputPins3 field = "output #3", luaOutputPins4 field = "output #4", luaOutputPins5 field = "output #5", luaOutputPins6 field = "output #6", luaOutputPins7 field = "output #7", luaOutputPins8 dialog = transmissionPanel field = "TCU Enabled" tcuEnabled field = "Gear Controller" gearControllerMode, { tcuEnabled } field = "Transmission Controller" transmissionControllerMode, { tcuEnabled } dialog = shiftSolenoidPanel, "Shift Solenoids" field = "Solenoid 1 Pin" tcu_solenoid1, { tcuEnabled && (transmissionControllerMode == @@TransmissionControllerMode_SimpleTransmissionController@@ || transmissionControllerMode == @@TransmissionControllerMode_Gm4l6x@@) } field = "Solenoid 1 Pin Mode" tcu_solenoid_mode1, { tcuEnabled && (transmissionControllerMode == @@TransmissionControllerMode_SimpleTransmissionController@@ || transmissionControllerMode == @@TransmissionControllerMode_Gm4l6x@@) } field = "Solenoid 2 Pin" tcu_solenoid2, { tcuEnabled && (transmissionControllerMode == @@TransmissionControllerMode_SimpleTransmissionController@@ || transmissionControllerMode == @@TransmissionControllerMode_Gm4l6x@@) } field = "Solenoid 2 Pin Mode" tcu_solenoid_mode2, { tcuEnabled && (transmissionControllerMode == @@TransmissionControllerMode_SimpleTransmissionController@@ || transmissionControllerMode == @@TransmissionControllerMode_Gm4l6x@@) } field = "Solenoid 3 Pin" tcu_solenoid3, { tcuEnabled && (transmissionControllerMode == @@TransmissionControllerMode_SimpleTransmissionController@@ || transmissionControllerMode == @@TransmissionControllerMode_Gm4l6x@@) } field = "Solenoid 3 Pin Mode" tcu_solenoid_mode3, { tcuEnabled && (transmissionControllerMode == @@TransmissionControllerMode_SimpleTransmissionController@@ || transmissionControllerMode == @@TransmissionControllerMode_Gm4l6x@@) } field = "Solenoid 4 Pin" tcu_solenoid4, { tcuEnabled && (transmissionControllerMode == @@TransmissionControllerMode_SimpleTransmissionController@@ || transmissionControllerMode == @@TransmissionControllerMode_Gm4l6x@@) } field = "Solenoid 4 Pin Mode" tcu_solenoid_mode4, { tcuEnabled && (transmissionControllerMode == @@TransmissionControllerMode_SimpleTransmissionController@@ || transmissionControllerMode == @@TransmissionControllerMode_Gm4l6x@@) } field = "Solenoid 5 Pin" tcu_solenoid5, { tcuEnabled && (transmissionControllerMode == @@TransmissionControllerMode_SimpleTransmissionController@@ || transmissionControllerMode == @@TransmissionControllerMode_Gm4l6x@@) } field = "Solenoid 5 Pin Mode" tcu_solenoid_mode5, { tcuEnabled && (transmissionControllerMode == @@TransmissionControllerMode_SimpleTransmissionController@@ || transmissionControllerMode == @@TransmissionControllerMode_Gm4l6x@@) } field = "Solenoid 6 Pin" tcu_solenoid6, { tcuEnabled && (transmissionControllerMode == @@TransmissionControllerMode_SimpleTransmissionController@@ || transmissionControllerMode == @@TransmissionControllerMode_Gm4l6x@@) } field = "Solenoid 6 Pin Mode" tcu_solenoid_mode6, { tcuEnabled && (transmissionControllerMode == @@TransmissionControllerMode_SimpleTransmissionController@@ || transmissionControllerMode == @@TransmissionControllerMode_Gm4l6x@@) } field = "3-2 Solenoid Pin" tcu_32_solenoid_pin, { tcuEnabled && (transmissionControllerMode == @@TransmissionControllerMode_Gm4l6x@@) } field = "3-2 Solenoid Pin mode" tcu_32_solenoid_pin_mode, { tcuEnabled && (transmissionControllerMode == @@TransmissionControllerMode_Gm4l6x@@) } field = "3-2 Solenoid Frequency" tcu_32_solenoid_freq, { tcuEnabled && (transmissionControllerMode == @@TransmissionControllerMode_Gm4l6x@@) } dialog = otherSolenoidPanel, "Other Solenoids" field = "TCC On/Off Solenoid Pin" tcu_tcc_onoff_solenoid, { tcuEnabled && (transmissionControllerMode == @@TransmissionControllerMode_Gm4l6x@@) } field = "TCC On/Off Solenoid Pin Mode" tcu_tcc_onoff_solenoid_mode, { tcuEnabled && (transmissionControllerMode == @@TransmissionControllerMode_Gm4l6x@@) } field = "TCC PWM Solenoid Pin" tcu_tcc_pwm_solenoid, { tcuEnabled && (transmissionControllerMode == @@TransmissionControllerMode_Gm4l6x@@) } field = "TCC PWM Solenoid Pin Mode" tcu_tcc_pwm_solenoid_mode, { tcuEnabled && (transmissionControllerMode == @@TransmissionControllerMode_Gm4l6x@@) } field = "TCC PWM Solenoid Frequency" tcu_tcc_pwm_solenoid_freq, { tcuEnabled && (transmissionControllerMode == @@TransmissionControllerMode_Gm4l6x@@) } field = "Pressure Control Solenoid Pin" tcu_pc_solenoid_pin, { tcuEnabled && (transmissionControllerMode == @@TransmissionControllerMode_Gm4l6x@@) } field = "Pressure Control Solenoid Pin Mode" tcu_pc_solenoid_pin_mode, { tcuEnabled && (transmissionControllerMode == @@TransmissionControllerMode_Gm4l6x@@) } field = "Pressure Control Solenoid Frequency" tcu_pc_solenoid_freq, { tcuEnabled && (transmissionControllerMode == @@TransmissionControllerMode_Gm4l6x@@) } dialog = buttonShiftInputPanel, "Switch/Button Shift" field = "Upshift Pin" tcuUpshiftButtonPin, { tcuEnabled && gearControllerMode == @@GearControllerMode_ButtonShift@@ } field = "Upshift Pin Mode" tcuUpshiftButtonPinMode, { tcuEnabled && gearControllerMode == @@GearControllerMode_ButtonShift@@ } field = "Downshift Pin" tcuDownshiftButtonPin, { tcuEnabled && gearControllerMode == @@GearControllerMode_ButtonShift@@ } field = "Downshift Pin Mode" tcuDownshiftButtonPinMode, { tcuEnabled && gearControllerMode == @@GearControllerMode_ButtonShift@@ } dialog = inputSpeedSensorPanel, "Input Speed Sensor" field = "Input Pin", tcuInputSpeedSensorPin field = "Filter parameter", issFilterReciprocal, { tcuInputSpeedSensorPin != @@ADC_CHANNEL_NONE@@ } field = "Tooth Count", tcuInputSpeedSensorTeeth dialog = tcuControls, "Transmission Settings" panel = transmissionPanel panel = shiftSolenoidPanel panel = otherSolenoidPanel dialog = gearControls, "Gear Selection Settings" panel = buttonShiftInputPanel dialog = inputSpeedSensor, "Input Speed Sensor" panel = inputSpeedSensorPanel dialog = tccCurves, "TCC Lock/Unlock Speed" panel = tccLockCurve dialog = pcPerGearDialog, "Line Pressure Per Gear Steady State" panel = pcPerGearCurve dialog = pcPerShiftDialog, "Line Pressure Per Shift" panel = pcPerShiftCurve dialog = 32Dialog, "3-2 Shift Solenoid Percent by Speed" panel = 32Curve ;Boost Open Loop dialog = boostDialog, "" field = "Enable", isBoostControlEnabled field = "Control Mode", boostType, { isBoostControlEnabled } field = "Output", boostControlPin, { boostControlPin != 0 || isBoostControlEnabled } field = "Output Mode", boostControlPinMode, { isBoostControlEnabled } field = "Frequency", boostPwmFrequency, { isBoostControlEnabled } field = "Safe duty cycle", boostControlSafeDutyCycle, { isBoostControlEnabled } field = "No boost control below RPM", boostControlMinRpm, { isBoostControlEnabled } field = "No boost control below TPS", boostControlMinTps, { isBoostControlEnabled } field = "No boost control below MAP", boostControlMinMap, { isBoostControlEnabled } dialog = boostOpenLoopDialog, "", border panel = boostTableTbl, Center ;Boost Closed Loop dialog = boostPidDialog, "" field = "Enable closed loop above", minimumBoostClosedLoopMap, { isBoostControlEnabled && boostType == 1 } field = "P Gain", boostPid_pFactor, { isBoostControlEnabled && boostType == 1 } field = "I Gain", boostPid_iFactor, { isBoostControlEnabled && boostType == 1 } field = "D Gain", boostPid_dFactor, { isBoostControlEnabled && boostType == 1 } field = "Min adjustment", boostPid_minValue, { isBoostControlEnabled && boostType == 1 } field = "Max adjustment", boostPid_maxValue, { isBoostControlEnabled && boostType == 1 } dialog = boostTargetDialog, "", card panel = boostTable2Tbl dialog = boostEtbPid, "" field = "This PID is controlling how DC motor reaches desired position" field = "" field = "!This section is for advanced users only!" field = "H-Bridge #1 function", etbFunctions1 field = "H-Bridge #2 function", etbFunctions2 field = "P gain", etbWastegatePid_pFactor, { isBoostControlEnabled } field = "I gain", etbWastegatePid_iFactor, { isBoostControlEnabled } field = "D gain", etbWastegatePid_dFactor, { isBoostControlEnabled } field = "PID min", etbWastegatePid_minValue, { isBoostControlEnabled } field = "PID max", etbWastegatePid_maxValue, { isBoostControlEnabled } help = veTableDialogHelp, "Volumetric Efficiency" text = "Volumetric Efficiency is used to calculate fuel in Speed Density mode. VE incorporates pressure ratio as measured by MAP sensor in boost (no VE ever above 105%ish)" webHelp = "https://rusefi.com/s/fuel" help = stepperHbridgeHardwareHelp, "Stepper driven by Dual H-bridge" text = "In case you are using two H-bridges driving 4-wire stepper. H-brigde control signals connected to MCU pins configured here." help = idleStepperHwHelp, "Stepper drivern by step motor driver IC" text = "In case you have some special IC that drives your stepper. MCU to IC control signals (DIR/STEP/EN) configured here" help = stepperDirectDriveHardwareHelp, "Stepper driven by 4 Push-Pull/Pull outputs" text = "In case you have 4/6-wire stepper driven by 4 ECU outputs in Push-Pull or Pull mode. Set ECU outputs used for each phase here." help = fuelHelp, "Fuel Control" text = "More about fuel control on the web" webHelp = "https://rusefi.com/s/fuel" help = triggerHelp, "Trigger Settings" text = "More about Trigger Settings on the web" webHelp = "https://rusefi.com/s/trigger" help = etbHelp, "ETB Control" text = "More about electronic throttle body on the web" webHelp = "https://rusefi.com/s/etb" help = vrThresholdHelp, "VR Sensor Threshold" text = "This is about rusEFI VR Discrete decoder" webHelp = "https://rusefi.com/" help = tpsTpsHelp, "Acceleration Enrichment" text = "More about Tps To Tps acceleration on the web" webHelp = "https://rusefi.com/s/tpstps" help = baseHelp, "Base Settings Control" text = "More about rusefi on the web" webHelp = "https://rusefi.com/" dialog = veTableDialog topicHelp = "veTableDialogHelp" panel = veTableTbl, South dialog = veTableDialog3D, "VE Table" topicHelp = "veTableDialogHelp" panel = veTableMap, South dialog = etbPidDialog, "PID settings" field = "pFactor", etb_pFactor field = "iFactor", etb_iFactor field = "dFactor", etb_dFactor field = "pid min", etb_minValue field = "pid max", etb_maxValue field = "iTermMin", etb_iTermMin field = "iTermMax", etb_iTermMax dialog = etbIdleDialog, "ETB Idle" field = "use ETB for idle", useETBforIdleControl field = "ETB idle maximum angle", etbIdleThrottleRange dialog = etbDialogLeft field = "https://rusefi.com/s/etb" field = "Disable ETB if engine is stopped", disableEtbWhenEngineStopped field = "Disable ETB Motor", pauseEtbControl field = "H-Bridge #1 function", etbFunctions1 field = "H-Bridge #2 function", etbFunctions2 field = "PWM Frequency", etbFreq field = "Minimum ETB position", etbMinimumPosition field = "Maximum ETB position", etbMaximumPosition ; we need the term about stepper idle in here, because there's a bug in TS that you can't have different visibility ; criteria for the same panel when used in multiple places ; todo: report bug to TS? ; another todo: split panel into two panels so that we can enable/disable h-bridge #1 separately from h-bridge #2 panel = etbHbridgeHardware, { etbFunctions1 != @@etb_function_e_ETB_None@@ || etbFunctions2 != @@etb_function_e_ETB_None@@ || (useStepperIdle && useHbridgesToDriveIdleStepper) } @@if_ts_show_etb_pins dialog = etbAutotune, "PID Autotune" field = "First step: calibrate TPS and hit 'Burn'" commandButton = "Auto Calibrate ETB 1", cmb_etb_auto_calibrate commandButton = "Auto Calibrate ETB 2", cmb_etb_auto_calibrate_2 field = "Second step" commandButton = "Start ETB PID Autotune", cmd_etb_autotune commandButton = "Stop ETB PID Autotune", cmd_etb_autotune_stop field = "!Set debug mode below to 'ETB Autotune' to show more detail" field = "Debug mode", debugMode dialog = etbDialogRight panel = etbIdleDialog, { throttlePedalPositionAdcChannel != @@ADC_CHANNEL_NONE@@ } panel = etbPidDialog, { (throttlePedalPositionAdcChannel != @@ADC_CHANNEL_NONE@@) || (etbFunctions1 == @@etb_function_e_ETB_IdleValve@@) } panel = etbAutotune ; Neutral position handling not yet implemented! ;field = "Neutral Position", etbNeutralPosition dialog = etbDialog, "Electronic Throttle Body", border topicHelp = "etbHelp" panel = etbDialogLeft, West panel = etbDialogRight, East dialog = testSpark, "Spark" commandButton = "Spark #1", cmd_test_spk1 commandButton = "Spark #2", cmd_test_spk2, { cylindersCount >= 2 } commandButton = "Spark #3", cmd_test_spk3, { cylindersCount >= 3 } commandButton = "Spark #4", cmd_test_spk4, { cylindersCount >= 4 } commandButton = "Spark #5", cmd_test_spk5, { cylindersCount >= 5 } commandButton = "Spark #6", cmd_test_spk6, { cylindersCount >= 6 } commandButton = "Spark #7", cmd_test_spk7, { cylindersCount >= 7 } commandButton = "Spark #8", cmd_test_spk8, { cylindersCount >= 8 } commandButton = "Spark #9", cmd_test_spk9, { cylindersCount >= 9 } commandButton = "Spark #10", cmd_test_spk10, { cylindersCount >= 10 } commandButton = "Spark #11", cmd_test_spk11, { cylindersCount >= 11 } commandButton = "Spark #12", cmd_test_spk12, { cylindersCount >= 12 } dialog = testMisc, "Misc" ; commandButton = "Come To Pit", cmd_call_from_pit commandButton = "Main Relay", cmd_test_main_relay@@if_ts_show_main_relay commandButton = "Fuel Pump", cmd_test_fuel_pump commandButton = "Cooling Fan", cmd_test_fan_1 commandButton = "Cooling Fan 2", cmd_test_fan_2 commandButton = "A/C Relay", cmd_test_ac_relay commandButton = "Check Engine", cmd_test_check_engine_light commandButton = "Idle Air Valve", cmd_test_idle_valve commandButton = "Idle Second Air Valve", cmd_test_second_idle_valve commandButton = "HPFP Valve", cmd_test_hpfp_valve commandButton = "Starter Relay", cmd_test_starter_relay commandButton = "Stop Engine", cmd_stop_engine commandButton = "Write Config", cmd_write_config commandButton = "Reset ECU", cmd_reset_controller commandButton = "Reset to DFU", cmd_dfu commandButton = "Reset to OpenBLT", cmd_openblt commandButton = "F7 nDBANK fix", cmd_nDBANK@@if_ts_show_f7_presets commandButton = "No flash Burn mode", cmd_burn_without_flash ; bench test dialog = ioTest, "Bench Test & Commands", xAxis panel = testSpark panel = testInjectors panel = testOther panel = testLuaOut panel = testMisc ; Injectors test dialog = injTest_l, "Output test modes", yAxis field = "Iterations", benchTestCount field = "ON time", benchTestOffTime field = "OFF time", benchTestOnTime dialog = injTest_r, "Reference gauges", yAxis gauge = VBattGauge,North gauge = testBenchIterGauge,South dialog = injTest, "", xAxis panel = injTest_l panel = injTest_r dialog = widebandConfig, "rusEFI Wideband Config" field = "!Please connect exactly one wideband controller before pressing these buttons!" commandButton = "Update Firmware", cmd_wideband_firmare_update field = "!These buttons will set ALL connected controllers to the specified index." field = "!Disconnect all controllers you don't want to set!" commandButton = "Set Index 0", cmd_set_wideband_idx_0 commandButton = "Set Index 1", cmd_set_wideband_idx_1 field = "Force O2 sensor heating", forceO2Heating dialog = engineTypeDialog, "Popular vehicles" field = "!These buttons send a command to rusEFI controller to apply preset values" field = "!Once you send the command, please reconnect to rusEFI controller in order to read fresh values" commandButton = "Frankenso Miata NA6 Stage 0", cmd_set_engine_type_Frankenso_Miata_NA6_VAF@@if_show_Frankenso_presets commandButton = "Frankenso Miata NA6 Stage 1", cmd_set_engine_type_Frankenso_Miata_NA6_MAP@@if_show_Frankenso_presets commandButton = "Frankenso Miata NB2 MAP", cmd_set_engine_type_Frankenso_Miata_NB2@@if_show_Frankenso_presets commandButton = "microRusEFI Miata NA6 VAF", cmd_set_engine_type_microRusEFI_Miata_NA6_VAF@@if_show_microRusEFI_presets commandButton = "microRusEFI Miata NA6 MAP", cmd_set_engine_type_microRusEFI_Miata_NA6_MAP@@if_show_microRusEFI_presets commandButton = "microRusEFI Miata 94/95 MAP", cmd_set_engine_type_microRusEFI_Miata_94_MAP@@if_show_microRusEFI_presets commandButton = "microRusEFI Miata NB2 MAP", cmd_set_engine_type_microRusEFI_Miata_NB2_MAP@@if_show_microRusEFI_presets commandButton = "microRusEFI Miata NB2 MAF", cmd_set_engine_type_microRusEFI_Miata_NB2_MAF@@if_show_microRusEFI_presets commandButton = "microRusEFI GDI VAG B6 test", cmd_set_engine_type_microRusEFI_VW_B6@@if_show_microRusEFI_presets commandButton = "microRusEFI BCM", cmd_set_engine_type_microRusEFI_MRE_BODY_CONTROL@@if_show_microRusEFI_presets commandButton = "microRusEFI Subaru EJ18", cmd_set_engine_type_MRE_SUBARU_EJ18@@if_show_microRusEFI_presets commandButton = "microRusEFI CAN Extender", cmd_set_engine_type_MRE_SECONDARY_CAN@@if_show_microRusEFI_presets commandButton = "Proteus M73 v12", cmd_set_engine_type_Proteus_M73@@if_show_Proteus_presets commandButton = "Proteus GDI VAG B6 test", cmd_set_engine_type_PROTEUS_VW_B6@@if_show_Proteus_presets commandButton = "Proteus Miata TCU", cmd_set_engine_type_Proteus_Miata_TCU@@if_show_Proteus_presets commandButton = "Proteus Lua Demo", cmd_set_engine_type_PROTEUS_LUA_DEMO@@if_show_Proteus_presets commandButton = "Proteus Miata NB2", cmd_set_engine_type_PROTEUS_MIATA_NB2@@if_show_Proteus_presets commandButton = "Proteus Honda K", cmd_set_engine_type_PROTEUS_HONDA_K@@if_show_Proteus_presets commandButton = "Proteus Honda OBD2A", cmd_set_engine_type_PROTEUS_HONDA_OBD2A@@if_show_Proteus_presets commandButton = "Proteus Harley", cmd_set_engine_type_PROTEUS_HARLEY@@if_show_Proteus_presets commandButton = "Hellen NA6", cmd_set_engine_type_hellen_NA6@@if_show_HellenNA6_presets commandButton = "Hellen NA8 94-95", cmd_set_engine_type_hellen_NA94@@if_show_HellenNA6_presets commandButton = "Hellen NB1 36 wheel", cmd_set_engine_type_hellen_NB2_36@@if_show_HellenNB1_presets commandButton = "Hellen NB2 36 wheel", cmd_set_engine_type_hellen_NB2_36@@if_show_HellenNB2_presets commandButton = "Hellen Nissan 4 cylinder", cmd_set_engine_type_hellen_nissan_121_4@@if_show_Hellen121nissan_presets commandButton = "Hellen Nissan 6 cylinder", cmd_set_engine_type_hellen_nissan_121_6@@if_show_Hellen121nissan_presets commandButton = "Hellen Nissan 8 cylinder", cmd_set_engine_type_hellen_nissan_121_8@@if_show_Hellen121nissan_presets commandButton = "Hellen 121 VAG i4", cmd_set_engine_type_hellen_121_vag_4@@if_show_Hellen121vag_presets commandButton = "Hellen 121 VAG i5", cmd_set_engine_type_hellen_121_vag_5@@if_show_Hellen121vag_presets commandButton = "Hellen 121 VAG v6", cmd_set_engine_type_hellen_121_vag_v6@@if_show_Hellen121vag_presets commandButton = "Hellen 121 VAG vr6", cmd_set_engine_type_hellen_121_vag_vr6@@if_show_Hellen121vag_presets commandButton = "Hellen 121 VAG v8", cmd_set_engine_type_hellen_121_vag_8@@if_show_Hellen121vag_presets commandButton = "Hellen 128 Merc 4 cyl", cmd_set_engine_type_hellen_128_merc_4@@if_show_Hellen128merc_presets commandButton = "Hellen 128 Merc 6 cyl", cmd_set_engine_type_hellen_128_merc_6@@if_show_Hellen128merc_presets commandButton = "Hellen 128 Merc v8", cmd_set_engine_type_hellen_128_merc_8@@if_show_Hellen128merc_presets commandButton = "Hellen Genesis Couple BK1", cmd_set_engine_type_hellen_couple_bk1@@if_show_Hellen_hyundai_154 commandButton = "Hellen Genesis Couple BK2", cmd_set_engine_type_hellen_couple_bk2@@if_show_Hellen_hyundai_154 commandButton = "ETB test bench", cmd_set_engine_type_etb_test@@if_show_test_presets commandButton = "TLE8888 test bench", cmd_set_engine_type_8888_test@@if_show_test_presets commandButton = "Reset firmware settings", cmd_set_engine_type_default ; Board->ECU stimulator dialog = ecuStimulator, "ECU stimulator" field = "Trigger Simulator", triggerSimulatorFrequency commandButton = "Enable internal trigger simulation", cmd_enable_self_stim commandButton = "Enable external trigger simulation", cmd_enable_ext_stim @@if_ts_show_hardware_simulator commandButton = "Disable trigger simulation", cmd_disable_self_stim ; field = "" ; field = "digipot spi", digitalPotentiometerSpiDevice ; field = "digipot CS #0", digitalPotentiometerChipSelect1 ; field = "digipot CS #1", digitalPotentiometerChipSelect2 ; field = "digipot CS #2", digitalPotentiometerChipSelect3 ; field = "digipot CS #3", digitalPotentiometerChipSelect4 field = ""@@if_ts_show_hardware_simulator field = "trigger stimulator pin #1", triggerSimulatorPins1@@if_ts_show_hardware_simulator field = "trigger stimulator pin mode #1", triggerSimulatorPinModes1@@if_ts_show_hardware_simulator field = "trigger stimulator pin #2", triggerSimulatorPins2@@if_ts_show_hardware_simulator field = "trigger stimulator pin mode #2", triggerSimulatorPinModes2@@if_ts_show_hardware_simulator field = "" field = "Logic input channel 1", logicAnalyzerPins1 field = "Logic input channel 2", logicAnalyzerPins2 field = "Logic input channel 3", logicAnalyzerPins3 field = "Logic input channel 4", logicAnalyzerPins4 field = "" field = "Engine chart size", engineChartSize dialog = datalogSettings, "Datalogging Settings" field = "#Disabling optional logging may increase update rate!" field = "Log debug channels", enableLogDebugChannels field = "Log recent errors list", enableLogErrorList ; Racing Features->Launch Control dialog = smLaunchControlWest, "Launch Control Settings" field = "Enable Launch Control", launchControlEnabled field = "Activation Mode", launchActivationMode field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == @@launchActivationMode_e_SWITCH_INPUT_LAUNCH@@ && launchControlEnabled == 1)} field = "Launch Button inverted", launchActivateInverted field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == @@launchActivationMode_e_SWITCH_INPUT_LAUNCH@@ && launchControlEnabled == 1} field = "Clutch Down", clutchDownPin, {launchActivationMode == @@launchActivationMode_e_CLUTCH_INPUT_LAUNCH@@ && launchControlEnabled == 1} field = "Clutch Down inverted", clutchDownPinInverted field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == @@launchActivationMode_e_CLUTCH_INPUT_LAUNCH@@ && launchControlEnabled == 1} field = "" ; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} field = "" field = "Launch RPM", launchRpm, {launchControlEnabled == 1} ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} field = "Ignition Retard RPM Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} field = "Hard Cut Mode" field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} dialog = smLaunchControl, "", border panel = smLaunchControlWest, West panel = launch_control_stateDialog, East ; Racing Features->Rolling Launch dialog = smRollingLaunch, "Rolling Launch Settings NOT WORKING" field = "Enable Rolling Launch", rollingLaunchEnabled ; Racing Features->Rolling Launch dialog = antiLag, "AntiLag Settings NOT WORKING" field = "Enable AntiLag", antiLagEnabled field = "Activation Mode", antiLagActivationMode, {antiLagEnabled == 1} field = "Switch Input", antiLagActivatePin, {antiLagActivatePin != 0 || ( antiLagActivationMode == 1 && antiLagEnabled == 1 ) } dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} dialog = rotaryDialog, "Rotary" field = "Enable Trailing Sparks", enableTrailingSparks field = "Trailing Spark Offset", trailingSparkAngle field = "Trailing Pin 1", trailingCoilPins1 field = "Trailing Pin 2", trailingCoilPins2 field = "Trailing Pin 3", trailingCoilPins3 field = "Trailing Pin 4", trailingCoilPins4 dialog = fancyHardwareDialog, "Fancy Boards" field = "Tachometer Output", boardUseTachPullUp field = "boardUseTempPullUp", boardUseTempPullUp field = "boardUseCrankPullUp", boardUseCrankPullUp field = "2-step input", boardUse2stepPullDown field = "boardUseCamPullDown", boardUseCamPullDown field = "boardUseCamVrPullUp", boardUseCamVrPullUp field = "boardUseD2PullDown", boardUseD2PullDown field = "boardUseD3PullDown", boardUseD3PullDown field = "boardUseD4PullDown", boardUseD4PullDown field = "boardUseD5PullDown", boardUseD5PullDown field = "SENT input 1", sentInputPins1 dialog = parkingLot, "Experimental/Broken" field = "I understand ECU Locking", yesUnderstandLocking field = "Tune read/write password", tuneHidingKey, { yesUnderstandLocking == 1 } field = verboseQuad, verboseQuad field = useEeprom, useEeprom field = "disablePrimaryUart", disablePrimaryUart field = "#System hacks" field = "vvtBooleanForVerySpecialCases", vvtBooleanForVerySpecialCases field = tempBooleanForVerySpecialLogic, tempBooleanForVerySpecialLogic field = "Global fuel correction", globalFuelCorrection field = "MAP Averaging Logic @", mapAveragingSchedulingAtIndex field = "showHumanReadableWarning (affects Burn)", showHumanReadableWarning field = "Warning Message", warning_message field = totalGearsCount, totalGearsCount field = "Ford redundant TPS mode", useFordRedundantTps field = "consumeObdSensors", consumeObdSensors, { canReadEnabled == 1 && canWriteEnabled == 1} field = "Artificial Misfire", artificialTestMisfire field = "Always use instant RPM", alwaysInstantRpm field = vinNumber, vinNumber field = turbochargerFilter, turbochargerFilter field = auxFrequencyFilter, auxFrequencyFilter field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors field = "TODO KS mode 4569", kickStartCranking panel = allTriggerDebug panel = torqueTableTbl help = helpGeneral, "rusEFI General Help" webHelp = @@MAIN_HELP_URL@@ text = "" dialog = vrThreshold1, "VR 1 Threshold" field = "Pin", vrThreshold1_pin panel = vrThresholdCurve1 dialog = vrThreshold2, "VR 2 Threshold" field = "Pin", vrThreshold2_pin panel = vrThresholdCurve2 dialog = vrThreshold topicHelp = "vrThresholdHelp" panel = vrThreshold1 panel = vrThreshold2@@if_ts_show_vr_threshold_2 dialog = gppwm1left, "" field = "Pin", gppwm1_pin field = "" field = "Set frequency to 0hz for on-off mode" field = "Frequency", gppwm1_pwmFrequency, {gppwm1_pin != 0} field = "" field = "On above duty", gppwm1_onAboveDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} field = "Off below duty", gppwm1_offBelowDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} field = "Duty if error", gppwm1_dutyIfError, {gppwm1_pin != 0} field = "" field = "Load Axis", gppwm1_loadAxis, {gppwm1_pin != 0} field = "Note", gpPwmNote1 field = "" field = "" field = "" field = "" field = "" dialog = gppwm1, "General Purpose PWM 1", xAxis panel = gppwm1left panel = gppwm1Tbl, {gppwm1_pin != 0} dialog = gppwm2left, "" field = "Pin", gppwm2_pin field = "" field = "Set frequency to 0hz for on-off mode" field = "Frequency", gppwm2_pwmFrequency, {gppwm2_pin != 0} field = "" field = "On above duty", gppwm2_onAboveDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} field = "Off below duty", gppwm2_offBelowDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} field = "Duty if error", gppwm2_dutyIfError, {gppwm2_pin != 0} field = "" field = "Load Axis", gppwm2_loadAxis, {gppwm2_pin != 0} field = "Note", gpPwmNote2 field = "" field = "" field = "" field = "" field = "" dialog = gppwm2, "General Purpose PWM 2", xAxis panel = gppwm2left panel = gppwm2Tbl, {gppwm2_pin != 0} dialog = gppwm3left, "" field = "Pin", gppwm3_pin field = "" field = "Set frequency to 0hz for on-off mode" field = "Frequency", gppwm3_pwmFrequency, {gppwm3_pin != 0} field = "" field = "On above duty", gppwm3_onAboveDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} field = "Off below duty", gppwm3_offBelowDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} field = "Duty if error", gppwm3_dutyIfError, {gppwm3_pin != 0} field = "" field = "Load Axis", gppwm3_loadAxis, {gppwm3_pin != 0} field = "Note", gpPwmNote3 field = "" field = "" field = "" field = "" field = "" dialog = gppwm3, "General Purpose PWM 3", xAxis panel = gppwm3left panel = gppwm3Tbl, {gppwm3_pin != 0} dialog = gppwm4left, "" field = "Pin", gppwm4_pin field = "" field = "Set frequency to 0hz for on-off mode" field = "Frequency", gppwm4_pwmFrequency, {gppwm4_pin != 0} field = "" field = "On above duty", gppwm4_onAboveDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} field = "Off below duty", gppwm4_offBelowDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} field = "Duty if error", gppwm4_dutyIfError, {gppwm4_pin != 0} field = "" field = "Load Axis", gppwm4_loadAxis, {gppwm4_pin != 0} field = "Note", gpPwmNote4 field = "" field = "" field = "" field = "" field = "" dialog = gppwm4, "General Purpose PWM 4", xAxis panel = gppwm4left panel = gppwm4Tbl, {gppwm4_pin != 0} dialog = hpfpCamDialog, "HPFP Cam Configuration" field = "Number of lobes", hpfpCamLobes field = "If using VVT, which cam the pump is driven from", hpfpCam, {hpfpCamLobes != 0} field = "Angle of first lobe", hpfpPeakPos, {hpfpCamLobes != 0} panel = hpfpLobeProfileCurve, {hpfpCamLobes != 0} dialog = hpfpPumpDialog, "HPFP Pump Configuration" field = "Valve Pin", hpfpValvePin, {hpfpCamLobes != 0} field = "Valve Pin Mode", hpfpValvePinMode, {hpfpCamLobes != 0} field = "Valve peak current", mc33_hpfp_i_peak, {hpfpCamLobes != 0} field = "Valve hold current", mc33_hpfp_i_hold, {hpfpCamLobes != 0} field = "Valve hold off time", mc33_hpfp_i_hold_off, {hpfpCamLobes != 0} field = "Valve maximum duration", mc33_hpfp_max_hold, {hpfpCamLobes != 0} field = "Pump volume", hpfpPumpVolume, {hpfpCamLobes != 0} field = "Minimum angle", hpfpMinAngle, {hpfpCamLobes != 0} field = "Activation angle", hpfpActivationAngle, {hpfpCamLobes != 0} field = "Target decay rate", hpfpTargetDecay, {hpfpCamLobes != 0} field = "Proportional gain", hpfpPidP, {hpfpCamLobes != 0} field = "Integral gain", hpfpPidI, {hpfpCamLobes != 0} panel = hpfpDeadtimeCurve, {hpfpCamLobes != 0} [Tools] ;addTool = toolName, PanelName addTool = veTableGenerator, "VE Table Generator", veTableTbl #if LAMBDA #else addTool = afrTableGenerator, "AFR Table Generator", afrTableTbl #endif