; 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 ; ; ; ; 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 ;#unset tuneByMAF [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 settingGroup = tuneVeMode, "VE Autotune Mode" settingOption = tuneByTPS, "TPS-Based (See Injection -> Inj.Settings)" settingOption = tuneByMAF, "MAF-Based" settingOption = tuneByLoad, "Load-Based (Default)" ; settingGroup = fAlgorithmSetting, "Fuel Logic / Tables" ; settingOption = FA_PLAIN_MAF, "Plain MAF" ; settingOption = FA_TPS, "AlphaN/TPS" ; settingOption = DEFAULT, "Speed Density" ; DEFAULT will be over looked and this will fall into the #else block of the statement. [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. signature = @@TS_SIGNATURE@@ ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC messageEnvelopeFormat = msEnvelope_1.0 endianness = little nPages = 1 pageIdentifier = "\x00\x00" pageReadCommand = "R\x00\x00%2o%2c" burnCommand = "B\x00\x00" pageActivate = "P\x00\x00" pageValueWrite = "W\x00\x00%2o%v" pageChunkWrite = "C\x00\x00%2o%2c%v" ; crc32CheckCommand = "k%2i%2o\xB8\x36" ; ; TODO: interesting - 0x36B8 equals 14008 which looks like pageSize at some point in the past? is this a defect here - should ; we have current pageSize or (pageSize + 8) here? ; crc32CheckCommand = "k\x00\x00\x00\x00\x36\xB8" ;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 = 3000; Milliseconds general timeout ; delayAfterPortOpen = 500 blockingFactor = 400 ; 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 ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START ; this section will be generated automatically by ConfigDefinition.jar based on rusefi_config.txt ; CONFIG_DEFINITION_END idleRpmPid_offset = "Constant base value" idleRpmPid_periodMs = "PID recalculation period" [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 gauge2 = afr1Gauge gauge3 = MAPGauge gauge4 = veValueGauge [LoggerDefinition] ; valid logger types: composite, tooth, trigger, csv loggerDef = compositeLogger, "Primary Trigger Logger", tooth startCommand = "l\x01" stopCommand = "l\x02" dataReadCommand = "L" dataReadTimeout = 10000 ; time in ms dataReadyCondition = { toothLogReady } ; recordDef = headerLen, footerLen, recordLen recordDef = 0, 0, 2; in bytes, the recordLen is for each record, currently limited to 4 bytes ; uint16 that stores 1/100 second recordField = toothTime, "tooth", 0, 16, 0.01, "ms" [VeAnalyze] ; tableName, lambdaTargetTableName, lambdaChannel, egoCorrectionChannel, activeCondition #if tuneByMAF veAnalyzeMap = fuelTableMAFTbl, afrTableTbl, AFRValue, egoCorrection, { 1 } #else veAnalyzeMap = veTableTbl, afrTableTbl, AFRValue, egoCorrection, { 1 } #endif lambdaTargetTables = afrTableTbl, afrTSCustom ; filter = Name, "DisplayName", outputChannel, operator, defaultVal, userAdjustable filter = minRPMFilter, "Minimum RPM", RPMValue, < , 500, , true #if CELSIUS filter = minCltFilter, "Minimum CLT", coolant, < , 60, , true #else filter = minCltFilter, "Minimum CLT", coolant, < , 160, , true #endif filter = deltaTps, "dTPS", deltaTps > , 50, , true filter = VBatt, "VBatt", VBatt < , 12, , true filter = minTps, "Minimum TPS", TPSValue, < , 1, , true ;[VeAnalyze] ; fuelAnalyzeMap = fuelTableTbl, afrTableTbl, AFRValue, egoCorrection , { 1 } ; filter = minRPMFilter, "Minimum RPM", RPMValue, < , 500, , true [OutputChannels] ; see TS_FILE_VERSION in firmware code fileVersion = { 20190701 } ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code ochBlockSize = 356 ; ; see TunerStudioOutputChannels struct ; RPMValue = scalar, U32, 0, "RPM", 1, 0.00000 #if CELSIUS coolant = scalar, F32, 4, "deg C", 1, 0.0 #else coolant = scalar, F32, 4, "deg F", {9/5}, 17.77777 #endif #if CELSIUS intake = scalar, F32, 8, "deg C", 1, 0.0 #else intake = scalar, F32, 8, "deg F", {9/5}, 17.77777 #endif TPSValue = scalar, F32, 12, "%", 1, 0 MAFValue = scalar, F32, 16, "V", 1, 0 AFRValue = scalar, F32, 20, "AFR", 1, 0.0 engineLoad = scalar, F32, 24, "%", 1, 0.0 ; Blend of MAP and TPS, depends on algorithm VBatt = scalar, F32, 28, "V", 1, 0.0 ; 10 bit TPS ADC value (from 0 to 1023 in 5v scale) tpsADC = scalar, U16, 32, "ADC", 1, 0.0; tpsADC2 = scalar, U16, 34, "ADC", 1, 0.0; baroPressure = scalar, F32, 36, "pres", 1, 0.0; MAPValue = scalar, F32, 40, "MAP", 1, 0.0; ; total fuel squirt duration (in MS) per engine cycle according to current CLT crankingFuelMs = scalar, F32, 44, "ms", 1, 0.0; baseFuel = scalar, F32, 48, "ms", 1, 0 tCharge = scalar, F32, 52, "T", 1, 0.0; ignitionAdvance = scalar, F32, 56, "deg", 1, 0.0; sparkDwellValue = scalar, F32, 60, "ms", 1, 0.0; ; actual total Ms time per engine cycle with all corrections actualLastInjection = scalar, F32, 64, "ms", 1, 0.0; debugFloatField1 = scalar, F32, 68, "val", 1, 0.0; hasSdCard = bits, U32, 72, [0:0], "true", "false"; isIgnitionEnabledIndicator=bits, U32, 72, [1:1], "true", "false"; ind_injection_enabled=bits,U32, 72, [2:2], "true", "false"; isCylinderCleanupEnabled=bits, U32, 72, [3:3], "true", "false"; isCylinderCleanupActivated=bits,U32,72, [4:4], "true", "false"; ind_fuel_pump = bits, U32, 72, [5:5], "true", "false"; ind_fan = bits, U32, 72, [6:6], "true", "false"; ind_o2_heater = bits, U32, 72, [7:7], "true", "false"; ind_check_engine= bits, U32, 72, [8:8], "true", "false"; needBurn = bits, U32, 72, [9:9], "true", "false"; ind_2nd_trigger_en=bits, U32, 72, [10:10], "true", "false"; clutchUpState =bits, U32, 72, [11:11], "true", "false"; clutchDownState =bits, U32, 72, [12:12], "true", "false"; knockEverIndicator=bits, U32, 72, [13:13], "true", "false"; knockNowIndicator=bits, U32, 72, [14:14], "true", "false"; brakePedalIndicator=bits, U32, 72, [15:15], "true", "false"; toothLogReady =bits, U32, 72, [16:16], "true", "false"; acSwitchIndicator =bits, U32, 72, [17:17], "true", "false"; vehicleSpeedKph = scalar, F32, 76, "kph", 1, 0.0; ind_tps_error = bits, U32, 80, [0:0], "true", "false"; ind_clt_error = bits, U32, 80, [1:1], "true", "false"; ind_map_error = bits, U32, 80, [2:2], "true", "false"; ind_iat_error = bits, U32, 80, [3:3], "true", "false"; ind_isTriggerError = bits, U32, 80, [5:5], "true", "false"; ind_hasFatalError=bits, U32, 80, [6:6], "true", "false"; ind_isWarnNow =bits, U32, 80, [7:7], "true", "false"; firmwareTsVersion = scalar,U32, 84, "version_p", 1, 0 egt1 = scalar, S16, 88, "deg C", 1, 0 egt2 = scalar, S16, 90, "deg C", 1, 0 egt3 = scalar, S16, 92, "deg C", 1, 0 egt4 = scalar, S16, 94, "deg C", 1, 0 egt5 = scalar, S16, 96, "deg C", 1, 0 egt6 = scalar, S16, 98, "deg C", 1, 0 egt7 = scalar, S16, 100, "deg C", 1, 0 egt8 = scalar, S16, 102, "deg C", 1, 0 rpmAcceleration = scalar, F32, 104, "dRpm", 1, 0 massAirFlowValue= scalar, F32, 108, "Kg/h", 1, 0 veValue = scalar, F32, 112, "ratio", 1, 0 deltaTps = scalar, F32, 116, "ratio", 1, 0 triggerErrorsCounter = scalar, U32,120, "counter", 1, 0 engineLoadAccelExtra = scalar,F32, 124, "value", 1, 0 tpsAccelFuel = scalar, F32, 128, "ms", 1, 0 baroCorrection = scalar, F32, 132, "%", 1, 0 throttlePedalPosition = scalar, F32, 136, "%", 1, 0 injectorDutyCycle= scalar, F32, 140, "%", 1, 0 knockCount = scalar, U32, 144, "counter", 1, 0 fuelTankLevel = scalar, F32, 148, "amount", 1, 0 knockLevel = scalar, F32, 152, "Volts", 1, 0 ; totalTriggerErrorCounter 156 wallFuelAmount = scalar, F32, 160, "ms", 1, 0 iatCorrection = scalar, F32, 164, "%", 1, 0 wallFuelCorrection = scalar, F32, 168, "ms", 1, 0 idleAirValvePosition = scalar, F32, 172, "percent", 1, 0 currentTargetAfr = scalar, F32, 176, "ratio", 1, 0 chargeAirMass = scalar, F32, 180, "g", 1, 0 cltCorrection = scalar, F32, 184, "%", 1, 0 fuelRunning = scalar, F32, 188, "g", 1, 0 debugIntField1 = scalar, S32, 192, "val", 1, 0.0; injectorLagMs = scalar, F32, 196, "ms", 1, 0.0; debugFloatField2 = scalar, F32, 200, "val", 1, 0.0; debugFloatField3 = scalar, F32, 204, "val", 1, 0.0; debugFloatField4 = scalar, F32, 208, "val", 1, 0.0; debugFloatField5 = scalar, F32, 212, "val", 1, 0.0; debugIntField2 = scalar, S32, 216, "val", 1, 0.0; debugIntField3 = scalar, S32, 220, "val", 1, 0.0; timeSeconds = scalar, U32, 224, "sec", 1, 0.0; engineLoadDelta = scalar,F32, 228, "value", 1, 0 speedToRpmRatio = scalar,F32, 232, "value", 1, 0 warningCounter = scalar,U16, 236, "count", 1, 0 lastErrorCode = scalar,U16, 240, "error", 1, 0 internalMcuTemperature = scalar,F32, 244, "C", 1, 0 vvtPosition = scalar,F32, 248, "deg", 1, 0 engineMode = scalar, U32, 252, "em", 1, 0.0; debugFloatField6 = scalar, F32, 256, "val", 1, 0.0; debugFloatField7 = scalar, F32, 260, "val", 1, 0.0; firmwareVersion = scalar,U32, 264, "version_f", 1, 0 fuelPidCorrection = scalar, F32, 268, "ms", 1, 0 coilDutyCycle = scalar, F32, 272, "perc", 1, 0 accelerationX = scalar, S16, 276, "G", 0.01, 0 accelerationY = scalar, S16, 278, "G", 0.01, 0 oilPressure = scalar, F32, 280, "kPa", 1, 0.0 fuelConsumptionPerHour=scalar, F32, 284, "kPa", 1, 0.0 injectionOffset = scalar, F32, 288, "deg", 1, 0; debugIntField4 = scalar, S16, 292, "val", 1, 0.0; debugIntField5 = scalar, S16, 294, "val", 1, 0.0; recentErrorCode0 = scalar,U16, 296, "error", 1, 0 recentErrorCode1 = scalar,U16, 298, "error", 1, 0 recentErrorCode2 = scalar,U16, 300, "error", 1, 0 recentErrorCode3 = scalar,U16, 302, "error", 1, 0 recentErrorCode4 = scalar,U16, 304, "error", 1, 0 recentErrorCode5 = scalar,U16, 306, "error", 1, 0 recentErrorCode6 = scalar,U16, 308, "error", 1, 0 recentErrorCode7 = scalar,U16, 310, "error", 1, 0 etbTarget = scalar,F32, 312, "%", 1, 0 etb1DutyCycle = scalar,F32, 316, "%", 1, 0 etb1Error = scalar,F32, 320, "%", 1, 0 ; ; see TunerStudioOutputChannels struct ; ; todo: generate this section programatically LM_PLAIN_MAF = {0}, LM_ALPHA_N = {1}, LM_MAP = {2}, LM_SPEED_DENSITY = {3}, LM_REAL_MAF = {4} egoCorrection = { 100 } time = { timeNow } ; engineLoad = { fuleAlgorithm == 0 ? MAF : TPS } [PcVariables] 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 [ConstantsExtensions] 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 [CurveEditor] ; xAxis = leftValue, rightValue, step ; yAxis = bottomValue, topValue, step curve = knockThresholdCurve, "Engine knock threshold RPM based" columnLabel = "RPM", "Threshold" xAxis = 0, 8000, 10 yAxis = 0, 8, 10 xBins = knockNoiseRpmBins, RPMValue yBins = knockNoise gauge = RPMGauge curve = narrowToWideOxygenCurve, "Narrow to Wideband approximation" columnLabel = "Voltage", "AFR" xAxis = 0, 6, 10 yAxis = 0, 28, 10 xBins = narrowToWideOxygenBins yBins = narrowToWideOxygen gauge = afr1Gauge curve = fsioCurve1, "FSIO Curve #1" columnLabel = "X", "Y" xAxis = 0, 128, 10 yAxis = -155, 150, 10 xBins = fsioCurve1Bins yBins = fsioCurve1 curve = fsioCurve2, "FSIO Curve #2" columnLabel = "X", "Y" xAxis = 0, 128, 10 yAxis = -150, 150, 10 xBins = fsioCurve2Bins yBins = fsioCurve2 curve = fsioCurve3, "FSIO Curve #3" columnLabel = "X", "Y" xAxis = 0, 128, 10 yAxis = -5, 5, 10 xBins = fsioCurve3Bins yBins = fsioCurve3 curve = fsioCurve4, "FSIO Curve #4" columnLabel = "X", "Y" xAxis = 0, 128, 10 yAxis = -5, 5, 10 xBins = fsioCurve4Bins yBins = fsioCurve4 curve = mapAccelTaper, "Engine Load Acceleration Enrichment Taper" columnLabel = "Distance", "Multiplier" xAxis = 0, 128, 10 yAxis = -5, 5, 10 xBins = mapAccelTaperBins yBins = mapAccelTaperMult curve = dwellCorrection, "Dwell time RPM based" columnLabel = "RPM", "Dwell" xAxis = 0, 8000, 10 yAxis = 0, 30, 10 xBins = sparkDwellRpmBins, RPMValue yBins = sparkDwellValues gauge = RPMGauge curve = map_samplingAngleCurve, "MAP Sampling Start Angle" columnLabel = "RPM", "Angle" xAxis = 0, 8000, 10 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, 10 yAxis = 0, 180, 10 xBins = map_samplingWindowBins, RPMValue yBins = map_samplingWindow gauge = MAPGauge curve = injectorsDeadTime, "Injector Dead Time by VBatt" columnLabel = "Voltage", "Dead Time" xAxis = 8, 21, 10 yAxis = -3, 3, 10 xBins = injector_battLagCorrBins, VBatt yBins = injector_battLagCorr gauge = VBattGauge curve = mafDecodingCurve, "MAF sensor" columnLabel = "Voltage", "kg/hour" xAxis = -1, 6, 10 yAxis = -30, 1300, 10 xBins = mafDecodingBins, MAFValue yBins = mafDecoding gauge = MAFGauge curve = iatFuelCorrCurve, "Intake air temperature fuel Multiplier" columnLabel = "Coolant", "Multiplier" #if CELSIUS xAxis = -40, 120, 10 #else xAxis = -40, 250, 10 #endif yAxis = 0, 2, 11 xBins = iatFuelCorrBins, intake yBins = iatFuelCorr gauge = IATGauge curve = cltTimingCorrCurve, "Warmup timing correction" columnLabel = "Coolant", "Extra" #if CELSIUS xAxis = -40, 120, 10 #else xAxis = -40, 250, 10 #endif yAxis = 0, 50, 10 xBins = cltTimingBins, coolant yBins = cltTimingExtra gauge = CLTGauge curve = cltFuelCorrCurve, "Warmup fuel manual Multiplier" columnLabel = "Coolant", "Multiplier" #if CELSIUS xAxis = -40, 100, 10 #else xAxis = -40, 210, 10 #endif yAxis = 0, 3, 10 xBins = cltFuelCorrBins, coolant yBins = cltFuelCorr gauge = CLTGauge curve = crankingCltCurve, "Cranking Coolant Temperature Multiplier" columnLabel = "Coolant", "Multiplier" #if CELSIUS xAxis = -40, 100, 10 #else xAxis = -40, 210, 10 #endif yAxis = 0, 3, 10 xBins = crankingFuelBins, coolant yBins = crankingFuelCoef gauge = CLTGauge curve = etbTpsBiasCurve, "Electronic TB Bias Curve" columnLabel = "TPS", "duty bias" xAxis = 0, 100, 10 yAxis = 0, 100, 10 xBins = etbBiasBins, TPSValue yBins = etbBiasValues gauge = TPSGauge curve = crankingTpsCurve, "Cranking TPS Multiplier" columnLabel = "TPS", "Multiplier" xAxis = 0, 100, 10 yAxis = 0, 3, 10 xBins = crankingTpsBins, TPSValue yBins = crankingTpsCoef gauge = TPSGauge curve = crankingDurationCurve, "Cranking Duration Multiplier" columnLabel = "Engine Cycle", "Multiplier" xAxis = 0, 1000, 10 yAxis = 0, 3, 10 xBins = crankingCycleBins yBins = crankingCycleCoef curve = cltIdleCurve, "Warmup Idle multiplier" columnLabel = "Coolant", "Multiplier" #if CELSIUS xAxis = -40, 120, 10 #else xAxis = -40, 250, 10 #endif yAxis = 0, 3, 10 xBins = cltIdleCorrBins, coolant yBins = cltIdleCorr gauge = CLTGauge curve = iacCoastingCurve, "Coasting IAC Position for Auto-Idle" columnLabel = "Coolant", "Multiplier" #if CELSIUS xAxis = -40, 120, 10 #else xAxis = -40, 250, 10 #endif yAxis = 0, 100, 10 xBins = iacCoastingBins, coolant yBins = iacCoasting gauge = idleAirValvePositionGauge curve = cltCrankingCurve, "Cranking Idle Air multiplier" columnLabel = "Coolant", "Multiplier" #if CELSIUS xAxis = -40, 120, 10 #else xAxis = -40, 250, 10 #endif yAxis = 0, 3, 10 xBins = cltCrankingCorrBins, coolant yBins = cltCrankingCorr gauge = CLTGauge curve = cltIdleRPMCurve, "Idle Target RPM" columnLabel = "Coolant", "RPM" #if CELSIUS xAxis = -40, 120, 10 #else xAxis = -40, 250, 10 #endif yAxis = 0, 8000, 10 xBins = cltIdleRpmBins, coolant yBins = cltIdleRpm, RPMValue gauge = CLTGauge curve = idleAdvanceCurve, "Idle Advance Angle" columnLabel = "RPM", "degrees" xAxis = 0, 8000, 10 yAxis = -100, 100, 10 xBins = idleAdvanceBins, RPMValue yBins = idleAdvance gauge = RPMGauge curve = idleVeCurve, "Idle VE" columnLabel = "RPM", "%" xAxis = 0, 8000, 10 yAxis = 0, 250, 10 xBins = idleVeBins, RPMValue yBins = idleVe gauge = afr1Gauge curve = crankingAdvanceCurve, "Cranking Advance Angle" columnLabel = "RPM", "degrees" xAxis = 0, 8000, 10 yAxis = -100, 100, 10 xBins = crankingAdvanceBins, RPMValue yBins = crankingAdvance gauge = RPMGauge curve = wueAfrTargetOffsetCurve, "AFR Target Temperature Adjustment" columnLabel = "Coolant", "AFR Offset" #if CELSIUS xAxis = -40, 200, 9 #else xAxis = -40, 400, 9 #endif yAxis = -3, 1, 5 xBins = cltFuelCorrBins, coolant yBins = wueAfrTargetOffset gauge = cltGauge curve = wueAnalyzer_warmup_curve, "Warmup Enrichment" columnLabel = "Coolant", "Current WUE", "Coolant", "Corrected" #if CELSIUS xAxis = -40, 200, 9 #else xAxis = -40, 400, 9 #endif yAxis = 90, 500, 6 xBins = cltFuelCorrBins, coolant yBins = cltFuelCorr yBins = wueAnalRecommend ;gauge = cltGauge lineLabel = "Warmup Correction" lineLabel = "Recommended WUE" [TableEditor] ; table_id, map3d_id, "title", page table = fuelTableMAFTbl, fuelTableMAFMap, "Fuel Table", 1 topicHelp = "fuelHelp" ; constant, variable xBins = fuelRpmBins, RPMValue yBins = fuelLoadBins, MAFValue zBins = fuelTable ; gridHeight = 2.0 gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" table = fuelTableTPSTbl, fuelTableTPSMap, "Fuel Table", 1 topicHelp = "fuelHelp" ; constant, variable xBins = fuelRpmBins, RPMValue yBins = fuelLoadBins, TPSValue zBins = fuelTable ; gridHeight = 2.0 gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" table = fuelTableELTbl, fuelTableELMap, "Fuel Table", 1 topicHelp = "fuelHelp" ; constant, variable xBins = fuelRpmBins, RPMValue yBins = fuelLoadBins, engineLoad zBins = fuelTable ; gridHeight = 2.0 gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" ; 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 = fsioTable1Tbl, fsioTable1Map, "FSIO Table #1", 1 xBins = fsioTable1RpmBins, RPMValue yBins = fsioTable1LoadBins, engineLoad zBins = fsioTable1 table = fsioTable2Tbl, fsioTable2Map, "FSIO Table #2", 1 xBins = fsioTable2RpmBins, RPMValue yBins = fsioTable2LoadBins, engineLoad zBins = fsioTable2 table = fsioTable3Tbl, fsioTable3Map, "FSIO Table #3", 1 xBins = fsioTable3RpmBins, RPMValue yBins = fsioTable3LoadBins, engineLoad zBins = fsioTable3 table = fsioTable4Tbl, fsioTable4Map, "FSIO Table #4", 1 xBins = fsioTable4RpmBins, RPMValue yBins = fsioTable4LoadBins, engineLoad zBins = fsioTable4 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 #if FA_PLAIN_MAF yBins = ignitionLoadBins, MAFValue #elif FA_TPS yBins = ignitionLoadBins, TPSValue #else yBins = ignitionLoadBins, engineLoad #endif zBins = ignitionTable ; gridHeight = 2.0 gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" table = ignitionTpsTableTbl, ignitionTableMap, "Ignition TPS Table", 1 ; constant, variable ; Currently we share ignitionRpmBins between two advance tables... Is it ok? xBins = ignitionRpmBins, RPMValue yBins = ignitionTpsBins, TPSValue zBins = ignitionTpsTable gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" 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 = veTableTbl, veTableMap, "VE Table", 1 ; constant, variable xBins = veRpmBins, RPMValue #if tuneByTPS yBins = ignitionTpsBins, TPSValue #else yBins = veLoadBins, MAPValue #endif zBins = veTable ; gridHeight = 2.0 gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" table = injPhaseTableTbl, injPhaseTableMap, "Injection Phase", 1 topicHelp = "fuelHelp" ; constant, variable xBins = injPhaseRpmBins, RPMValue yBins = injPhaseLoadBins, engineLoad 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 = afrTableTbl, afrTableMap, "Target AFR Table", 1 ; constant, variable xBins = afrRpmBins, RPMValue yBins = afrLoadBins, MAPValue zBins = afrTable ; gridHeight = 2.0 gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" [GaugeConfigurations] gaugeCategory = Sensors - Extra 2 egt1Gauge = egt1, "EGT#1", "C", 0, 2000 egt2Gauge = egt2, "EGT#2", "C", 0, 2000 egt3Gauge = egt3, "EGT#3", "C", 0, 2000 egt4Gauge = egt4, "EGT#4", "C", 0, 2000 egt5Gauge = egt5, "EGT#5", "C", 0, 2000 egt6Gauge = egt6, "EGT#6", "C", 0, 2000 egt7Gauge = egt7, "EGT#7", "C", 0, 2000 egt8Gauge = egt8, "EGT#8", "C", 0, 2000 rpmAccelerationGa = rpmAcceleration, "rpm delta", "dRpm", 0, 3, 0, 1, 3, 4, 1, 1 knockCountGauge = knockCount,"Knock count", "count", 0, 120, 10, 10, 100, 100, 1, 1 knockLevelGauge = knockLevel,"Knock level", "volts", 0, 7, 10, 10, 100, 100, 1, 2 fuelTankLevelGauge = fuelTankLevel,"Fuel level", "x", 0, 7, 10, 10, 100, 100, 1, 2 speedToRpmRatioGauge = speedToRpmRatio, "speed2rpm", "", 0, 100, 0, 0, 100, 100, 4, 4 gaugeCategory = ECU Status warningCounterGauge = warningCounter, "Warning count", "", 0, 100, 0, 0, 100, 100, 0, 0 lastErrorCodeGauge = lastErrorCode, "Last error", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 triggerErrorsCounterGauge = triggerErrorsCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 recentErrorCode0Gauge = recentErrorCode0, "Error#1", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 recentErrorCode1Gauge = recentErrorCode1, "Error#2", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 recentErrorCode2Gauge = recentErrorCode2, "Error#3", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 recentErrorCode3Gauge = recentErrorCode3, "Error#4", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 recentErrorCode4Gauge = recentErrorCode4, "Error#5", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 recentErrorCode5Gauge = recentErrorCode5, "Error#6", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 recentErrorCode6Gauge = recentErrorCode6, "Error#7", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 recentErrorCode7Gauge = recentErrorCode7, "Error#8", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 firmwareVersionGauge = firmwareVersion , "ECU Software Version", "%", 0, 100, 0, 0, 100, 100, 0, 0 timeSecondsGauge = timeSeconds, "Uptime", "sec", 0, 100, 0, 0, 100, 100, 0, 0 gaugeCategory = Debug debugFloatField1Gauge = debugFloatField1, @@GAUGE_NAME_DEBUG_F1@@, "%", 0, 100, 0, 0, 100, 100, 4, 4 debugFloatField2Gauge = debugFloatField2, @@GAUGE_NAME_DEBUG_F2@@, "%", -100, 100, 0, 0, 100, 100, 4, 4 debugFloatField3Gauge = debugFloatField3, @@GAUGE_NAME_DEBUG_F3@@, "%", -100, 100, 0, 0, 100, 100, 4, 4 debugFloatField4Gauge = debugFloatField4, @@GAUGE_NAME_DEBUG_F4@@, "%", 0, 100, 0, 0, 100, 100, 4, 4 debugFloatField5Gauge = debugFloatField5, @@GAUGE_NAME_DEBUG_F5@@, "%", 0, 100, 0, 0, 100, 100, 4, 4 debugFloatField6Gauge = debugFloatField6, @@GAUGE_NAME_DEBUG_F6@@, "%", -100, 100, 0, 0, 100, 100, 4, 4 debugFloatField7Gauge = debugFloatField7, @@GAUGE_NAME_DEBUG_F7@@, "%", 0, 100, 0, 0, 100, 100, 4, 4 debugIntField1Gauge = debugIntField1, "debug i1: pParam", "%", 0, 100, 0, 0, 100, 100, 0, 0 debugIntField2Gauge = debugIntField2, "debug i2: offset", "%", 0, 100, 0, 0, 100, 100, 0, 0 debugIntField3Gauge = debugIntField3, "debug i3", "%", 0, 100, 0, 0, 100, 100, 0, 0 debugIntField4Gauge = debugIntField4, "debug i4", "%", 0, 100, 0, 0, 100, 100, 0, 0 debugIntField5Gauge = debugIntField5, "debug i5", "%", 0, 100, 0, 0, 100, 100, 0, 0 gaugeCategory = Sensors - Basic RPMGauge = RPMValue, "RPM - engine speed", "RPM", 0, 15000, 200, 500, 6000, 6000, 0, 0 #if CELSIUS CLTGauge = coolant, "Coolant temp", "deg C", -40, 140, -15, 1, 95, 110, 1, 1 #else CLTGauge = coolant, "Coolant temp", "deg F", -40, 285, 5, 35, 205, 230, 1, 1 #endif #if CELSIUS IATGauge = intake, "Intake air temp", "deg C", -40, 140, -15, 1, 95, 110, 1, 1 #else IATGauge = intake, "Intake air temp", "deg F", -40, 285, 5, 35, 205, 230, 1, 1 #endif afr1Gauge = AFRValue, "Air fuel ratio", "", 10, 19.4, 12, 13, 15, 16, 2, 2 MAFGauge = MAFValue, "Mass air flow", "v", 0, 5, 0, 1, 3, 4, 1, 1 VBattGauge = VBatt, "Battery voltage", "V", 8, 21, 9, 10, 17, 19, 1, 1 MAPGauge = MAPValue, "MAP", "kPa", 0, 300, 10, 10, 200, 200, 0, 0 massAirFlowValueGa = massAirFlowValue,"Mass air flow", "kg/hr", 0, 50, -999, -999, 999, 999, 1, 1 gaugeCategory = Sensors - Extra 1 VSSGauge = vehicleSpeedKph, "Vehicle speed", "kmh", 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 atmPresCGauge = baroPressure, "Barometric pressure", "kPa", 0, 1024, 0, 0, 0, 0, 0, 0 vvtPositionGauge = vvtPosition, "VVT position", "deg", 0, 100, 0, 0, 720, 720, 0, 0 internalMcuTemperatureGauge = internalMcuTemperature, @@GAUGE_NAME_ECU_TEMPERATURE@@, "C", 0, 100, 0, 0, 75, 100, 0, 0 OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 idleAirValvePositionGauge = idleAirValvePosition, "Idle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 gaugeCategory = Ignition 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@@, "perc", -11, 11, 1.0, 1.2, 100, 100, 3, 1 gaugeCategory = Acceleration Enrichment engineLoadDeltaGauge = engineLoadDelta,"AE: load change","value", 0, 120, 10, 10, 100, 100, 1, 1 engineLoadAccelExtraGauge = engineLoadAccelExtra,"AE: load extra","value", 0, 120, 10, 10, 100, 100, 1, 1 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", "ms", 0, 100, 0, 0, 100, 100, 0, 0 wallFuelCorrectionGauge = wallFuelCorrection, "AE: wall correction extra", "ms", 0, 100, 0, 0, 100, 100, 0, 0 gaugeCategory = Fueling ;Name Var Title Units Lo Hi LoD LoW HiW HiD vd ld #if CELSIUS tChargeGauge = tCharge, @@GAUGE_NAME_FUEL_CHARGE_TEMP@@, "deg C", -40, 140, -15, 1, 95, 110, 1, 1 #else tChargeGauge = tCharge, @@GAUGE_NAME_FUEL_CHARGE_TEMP@@, "deg F", -40, 285, 5, 35, 205, 230, 1, 1 #endif 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@@, "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 iatCorrectionGauge = iatCorrection, @@GAUGE_NAME_FUEL_IAT_CORR@@, "mult", 0, 3, 0, 0, 3, 3, 2, 2 cltCorrectionGauge = cltCorrection, @@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, 25.5, 1.0, 1.2, 20, 25, 3, 1 fuelRunningGauge = fuelRunning, @@GAUGE_NAME_FUEL_RUNNING@@, "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 baseFuelGauge = baseFuel, @@GAUGE_NAME_FUEL_BASE@@, "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 fuelPidCorrectionGauge = fuelPidCorrection, @@GAUGE_NAME_FUEL_PID_CORR@@, "mSec", -11, 11, 1.0, 1.2, 20, 25, 3, 1 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 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 [WueAnalyze] ; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, cltCorrection, egoCorrection lambdaTargetTables = afrTableTbl, afrTSCustom 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 ; currently a minimum of 6 gauges must be on the dash, this appears to be an old not needed limitation. next release 1 will work. gauge1 = RPMGauge gauge2 = CLTGauge gauge3 = TPSGauge gauge4 = MAFGauge gauge5 = afr1Gauge gauge6 = VBattGauge gauge7 = dwellGauge gauge8 = ignadvGauge ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg ; important status indicator = { ind_hasFatalError }, "", "FATAL ERROR", green, black, red, black indicator = { firmwareTsVersion == fileVersion }, "WRONG VERSION", "version", red, black, green, black indicator = { ind_isWarnNow }, "", "warn", green, black, red, black indicator = { ind_check_engine }, "ok", "Check engine", green, black, red, black indicator = { isIgnitionEnabledIndicator}, "no ignition", "ignition", red, black, green, black indicator = { ind_injection_enabled}, "no injection", "injection", red, black, green, black indicator = { ind_isTriggerError}, "ok", "trg err", green, black, red, black ; minor info indicator = { ind_fan}, "no fan", "fan", white, black, green, black indicator = { isCylinderCleanupActivated}, "no cyl cleanup", "cyl cleanup", white, black, green, black indicator = { needBurn }, "config ok", "unsaved changes", white, black, yellow, black indicator = { hasSdCard}, "no SD", "with SD", white, black, green, black indicator = { ind_fuel_pump}, "no pump", "pump", white, black, green, black indicator = { clutchUpState }, "clutch", "cltch Up", white, black, red, black indicator = { clutchDownState }, "clutch", "cltch Down", white, black, yellow, black indicator = { brakePedalIndicator }, "brake", "brake down", white, black, red, black indicator = { acSwitchIndicator }, "AC on", "AC off", yellow, black, white, black ; error codes indicator = { ind_tps_error}, "tps", "tps error", white, black, red, black indicator = { ind_clt_error}, "clt", "clt error", white, black, red, black indicator = { ind_iat_error}, "iat", "iat error", white, black, red, black indicator = { ind_map_error}, "map", "map error", white, black, red, black indicator = { knockEverIndicator }, "", "Knock recently", white, black, red, black indicator = { knockNowIndicator }, "no knock", "Knock NOW", white, black, red, black [Datalog] ; Channel Label Type Format entry = time, "Time", float, "%.3f" entry = RPMValue, "RPM", int, "%d" entry = firmwareVersion, @@GAUGE_NAME_VERSION@@, int, "%d" entry = coolant, "CLT", float, "%.2f" entry = intake, "IAT", float, "%.2f" entry = oilPressure, "Oil Press", float, "%.1f" entry = TPSValue, "TPS", float, "%.2f" entry = MAFValue, "MAF", float, "%.2f" entry = MAPValue, "MAP", float, "%.1f" entry = AFRValue, @@GAUGE_NAME_AFR@@, float, "%.2f" entry = VBatt, @@GAUGE_NAME_VBAT@@, float, "%.2f" entry = engineLoad, @@GAUGE_NAME_ENGINE_LOAD@@, float, "%.1f" entry = ignitionAdvance, @@GAUGE_NAME_TIMING_ADVANCE@@, float, "%.2f" entry = knockLevel, @@GAUGE_NAME_KNOCK_LEVEL@@, float, "%.2f" entry = knockCount, @@GAUGE_NAME_KNOCK_COUNTER@@, int, "%d" entry = vehicleSpeedKph, @@GAUGE_NAME_VVS@@, float, "%.2f" entry = speedToRpmRatio, "s2rpm", float, "%.3f" entry = rpmAcceleration, "dRPM", float, "%.3f" entry = massAirFlowValue,@@GAUGE_NAME_AIR_FLOW@@, float, "%.3f" entry = chargeAirMass, @@GAUGE_NAME_AIR_MASS@@, float, "%.3f" entry = throttlePedalPosition, @@GAUGE_NAME_THROTTLE_PEDAL@@, float, "%.3f" entry = triggerErrorsCounter, "trg err",int, "%d" entry = idleAirValvePosition, @@GAUGE_NAME_IAC@@, float, "%.3f" entry = injectorLagMs, @@GAUGE_NAME_INJECTOR_LAG@@, float, "%.3f" entry = fuelRunning, @@GAUGE_NAME_FUEL_RUNNING@@, float, "%.3f" entry = actualLastInjection, @@GAUGE_NAME_FUEL_LAST_INJECTION@@, float, "%.3f" entry = baseFuel, @@GAUGE_NAME_FUEL_BASE@@, float, "%.2f" entry = fuelPidCorrection,@@GAUGE_NAME_FUEL_PID_CORR@@, float, "%.2f" entry = veValue, @@GAUGE_NAME_FUEL_VE@@, float, "%.3f" entry = injectorDutyCycle,@@GAUGE_NAME_FUEL_INJ_DUTY@@,float,"%.3f" entry = coilDutyCycle, @@GAUGE_NAME_DWELL_DUTY@@, float,"%.3f" entry = currentTargetAfr,@@GAUGE_NAME_TARGET_AFR@@, float,"%.3f" entry = accelerationX, @@GAUGE_NAME_ACCEL_X@@, float,"%.2f" entry = accelerationY, @@GAUGE_NAME_ACCEL_Y@@, float,"%.2f" entry = egt1, "EGT1", float,"%.1f" entry = egt2, "EGT2", float,"%.1f" entry = egt3, "EGT3", float,"%.1f" entry = egt4, "EGT4", float,"%.1f" entry = egt5, "EGT5", float,"%.1f" entry = egt6, "EGT6", float,"%.1f" entry = egt7, "EGT7", float,"%.1f" entry = egt8, "EGT8", float,"%.1f" entry = engineLoadAccelExtra, @@GAUGE_NAME_FUEL_EL_EXTRA@@,float, "%.3f" entry = engineLoadDelta, "fuel: load change",float, "%.3f" entry = deltaTps, @@GAUGE_NAME_FUEL_TPS_ROC@@,float, "%.3f" entry = tpsAccelFuel, @@GAUGE_NAME_FUEL_TPS_EXTRA@@, float, "%.3f" entry = wallFuelCorrection,@@GAUGE_NAME_FUEL_WALL_CORRECTION@@, float, "%.3f" entry = wallFuelAmount, @@GAUGE_NAME_FUEL_WALL_AMOUNT@@, float, "%.3f" entry = baroCorrection, @@GAUGE_NAME_FUEL_BARO_CORR@@,float,"%.3f" entry = iatCorrection, @@GAUGE_NAME_FUEL_IAT_CORR@@, float, "%.3f" entry = cltCorrection, @@GAUGE_NAME_FUEL_CLT_CORR@@, float,"%.3f" entry = sparkDwellValue, @@GAUGE_COIL_DWELL_TIME@@, float,"%.3f" entry = vvtPosition, @@GAUGE_NAME_VVT@@, float,"%.2f" entry = injectionOffset, "injOffset" , float, "%.2F" ; is there a way to log parameter? entry = debugMode, "debugMode",int,"%d" ; Alternator_PID: alternator duty cycle ; DBG_TPS_ACCEL: from TPS entry = debugFloatField1, @@GAUGE_NAME_DEBUG_F1@@,float,"%.4f" ; Alternator_PID: current integration term ; DBG_TPS_ACCEL: to TPS entry = debugFloatField2, @@GAUGE_NAME_DEBUG_F2@@,float,"%.4f" ; Alternator_PID: previous error ; DBG_TPS_ACCEL: tps<>tps table value entry = debugFloatField3, @@GAUGE_NAME_DEBUG_F3@@,float,"%.4f" ; Alternator_PID: I setting ; DBG_TPS_ACCEL: extra fuel entry = debugFloatField4, @@GAUGE_NAME_DEBUG_F4@@,float,"%.4f" ; Alternator_PID: D setting entry = debugFloatField5, @@GAUGE_NAME_DEBUG_F5@@,float,"%.4f" ; Alternator_PID: dTerm entry = debugFloatField6, @@GAUGE_NAME_DEBUG_F6@@,float,"%.4f" entry = debugFloatField7, @@GAUGE_NAME_DEBUG_F7@@,float,"%.4f" ; Alternator_PID: P setting entry = debugIntField1, @@GAUGE_NAME_DEBUG_I1@@,int,"%d" ; Alternator_PID: offset setting entry = debugIntField2, @@GAUGE_NAME_DEBUG_I2@@,int,"%d" ; Alternator_PID: PID reset counter entry = debugIntField3, @@GAUGE_NAME_DEBUG_I3@@,int,"%d" entry = debugIntField4, @@GAUGE_NAME_DEBUG_I4@@,int,"%d" entry = debugIntField5, @@GAUGE_NAME_DEBUG_I5@@,int,"%d" entry = engineMode, "Engine Mode",int,"%d" entry = warningCounter, @@GAUGE_NAME_WARNING_COUNTER@@,int,"%d" entry = lastErrorCode, @@GAUGE_NAME_WARNING_LAST@@,int,"%d" entry = recentErrorCode0, "error 0",int,"%d" entry = recentErrorCode1, "error 1",int,"%d" entry = recentErrorCode2, "error 2",int,"%d" entry = recentErrorCode3, "error 3",int,"%d" entry = recentErrorCode4, "error 4",int,"%d" entry = recentErrorCode5, "error 5",int,"%d" entry = recentErrorCode6, "error 6",int,"%d" entry = recentErrorCode7, "error 7",int,"%d" entry = internalMcuTemperature, @@GAUGE_NAME_CPU_TEMP@@,float,"%.2f" entry = tCharge, "tCharge",float,"%.3f" entry = clutchUpState, @@INDICATOR_NAME_CLUTCH_UP@@,int,"%d" entry = clutchDownState, @@INDICATOR_NAME_CLUTCH_DOWN@@,int,"%d" entry = brakePedalIndicator, @@INDICATOR_NAME_BRAKE_DOWN@@,int,"%d" entry = acSwitchIndicator, @@INDICATOR_NAME_AC_SWITCH@@,int,"%d" entry = ind_fan, "radiator fan",int,"%d" ; Electronic throttle body entry = etb1Error, "ETB Error", float, "%.3f" entry = etb1DutyCycle, "ETB Duty", float, "%.3f" entry = etbTarget, "ETB Target", float, "%.3f" ; tpsADC = U16, "ADC", ; alignmet = U16, "al", ; atmPres = F32, "pres", ; crankingFuel = F32, "ms", ; tCharge = F32, "T", ; sparkDwell = F32, "MAP", ; warmUpEnrich = F32, "%", [Menu] menuDialog = main menu = "&Base &Engine" subMenu = engineChars, "Base engine" subMenu = triggerConfiguration, "Trigger" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator # Digital outputs subMenu = mainRelay, "Main relay" subMenu = fuelPump, "Fuel rail" subMenu = fanSetting, "Fan" subMenu = tachSettings, "Tachometer" subMenu = malfunction, "Check engine light" subMenu = statusLeds, "Status LEDs" menu = "Fuel" # basic subMenu = injectionSettings, "Injection settings" subMenu = injectionDeadTime, "Injector dead time", 0, {isInjectionEnabled == 1} subMenu = std_separator # Targets & closed loop subMenu = afrTableTbl, "Target AFR", 0, {isInjectionEnabled == 1 && fuelAlgorithm == LM_SPEED_DENSITY} subMenu = fuelClosedLoopDialog, "Closed loop correction", 0, {isInjectionEnabled == 1} subMenu = coastingFuelCutControl, "Deceleration fuel cutoff (DFCO)", 0, {isInjectionEnabled == 1} subMenu = std_separator # Fuel table/VE subMenu = fuelTableDialog, "Fuel table", 0, {isInjectionEnabled == 1 && fuelAlgorithm != LM_SPEED_DENSITY} subMenu = veTableDialog, "VE", 0, {isInjectionEnabled == 1 && fuelAlgorithm == LM_SPEED_DENSITY} subMenu = injPhaseTableTbl, "Injection phase", 0, {isInjectionEnabled == 1} subMenu = std_separator # Corrections subMenu = cltFuelCorrCurve, "CLT multiplier", 0, {isInjectionEnabled == 1} subMenu = iatFuelCorrCurve, "IAT multiplier", 0, {isInjectionEnabled == 1} subMenu = baroCorrTbl, "Baro multiplier", 0, {isInjectionEnabled == 1 && fuelAlgorithm == LM_SPEED_DENSITY} subMenu = tChargeSettings, "tCharge settings", 0, {isInjectionEnabled == 1} subMenu = std_separator # Accel enrichment subMenu = AccelEnrich, "Accel/decel enrichment/enleanment", 0, {isInjectionEnabled == 1} subMenu = tpsTpsAccelTbl, "TPS/TPS acceleration extra fuel", 0, {isInjectionEnabled == 1} subMenu = mapAccelTaper, "Engine load AE taper", 0, {isInjectionEnabled == 1} menu = "Ignition" subMenu = ignitionSettings, "Ignition settings" subMenu = std_separator subMenu = dwellSettings, "Dwell", 0, {isIgnitionEnabled == 1} subMenu = ignitionCylExtra, "Ignition cylinder trim", 0, {isIgnitionEnabled == 1} subMenu = std_separator subMenu = ignitionTableTbl, "Ignition advance", 0, {isIgnitionEnabled == 1 && useTPSAdvanceTable == 0} subMenu = ignitionTpsTableTbl, "Ignition advance (TPS)", 0, {isIgnitionEnabled == 1 && useTPSAdvanceTable == 1} 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 = std_separator subMenu = crankingCltCurve, "Fuel CLT multiplier" subMenu = crankingDurationCurve, "Fuel duration multiplier" subMenu = crankingTpsCurve, "Fuel TPS multiplier" subMenu = std_separator subMenu = crankingAdvanceCurve, "Ignition advance", 0, {useSeparateAdvanceForCranking == 1} subMenu = std_separator subMenu = cltCrankingCurve, "IAC multiplier", 0, {overrideCrankingIacSetting == 1} menu = "&Idle" subMenu = idleSettings, "Idle settings" subMenu = idlehw, "Idle hardware" subMenu = std_separator subMenu = cltIdleRPMCurve, "Target RPM", 0, {idleMode == 0} subMenu = idleVeCurve, "VE", 0, {useSeparateVeForIdle == 1} subMenu = idleAdvanceCurve, "Ignition advance", 0, {useSeparateAdvanceForIdle == 1} subMenu = std_separator subMenu = idleTimingPidCorrDialog, "Closed-loop idle timing" subMenu = cltIdleCurve, "CLT multiplier" subMenu = iacCoastingCurve, "Coasting IAC Position for Auto-Idle", 0, {useIacTableForCoasting == 1} menu = "&FSIO" subMenu = fsioInputsDialog, "FSIO inputs" subMenu = auxPidDialog, "Aux PID" subMenu = fsioOutputsDialog, "FSIO outputs" subMenu = fsioTable1Tbl, "FSIO Table #1" subMenu = fsioTable2Tbl, "FSIO Table #2" subMenu = fsioTable3Tbl, "FSIO Table #3" subMenu = fsioTable4Tbl, "FSIO Table #4" subMenu = fsioFormulas, "FSIO Formulas" subMenu = fsioCurve1, "FSIO Curve #1" subMenu = fsioCurve2, "FSIO Curve #2" subMenu = fsioCurve3, "FSIO Curve #3" subMenu = fsioCurve4, "FSIO Curve #4" menu = "&Sensors" # Base analog input settings subMenu = triggerInputs, "Trigger inputs" 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 != 16} subMenu = std_separator # O2 sensor(s) subMenu = egoSettings, "EGO sensor" subMenu = narrowToWideOxygenCurve, "Narrow to Wideband approximation" subMenu = cj125Function, "CJ125 settings (wbo decoder)" @@if_ts_show_cj125 subMenu = std_separator # Misc sensors subMenu = speedSensor, "Vehicle speed sensor" subMenu = oilPressureSensor, "Oil pressure" subMenu = egtInputs, "EGT" @@if_ts_show_egt menu = "&Controller" subMenu = ecuStimulator, "ECU stimulator" subMenu = ioTest, "Bench 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" subMenu = monitoringSettings, "rusEfi console" subMenu = std_separator subMenu = connection, "Connection" subMenu = allPins1, "Full pinout 1/2" @@if_ts_show_full_pinout subMenu = allPins2, "Full pinout 2/2" @@if_ts_show_full_pinout subMenu = std_separator # EXPERIMENTAL FEATURES subMenu = parkingLot, "Experimental/Broken" subMenu = smLaunchControl, "Launch control" subMenu = std_separator subMenu = hipFunction, "HIP9011 settings (knock sensor) (alpha version)" @@if_ts_show_hip9011 subMenu = std_separator subMenu = etbDialog, "Electronic throttle body (beta version)" @@if_ts_show_etb subMenu = etbTpsBiasCurve, "Electronic throttle body bias curve" @@if_ts_show_etb subMenu = pedalToTpsTbl, "Electronic Pedal Map" @@if_ts_show_etb [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 = "w\x00\x12\x00\x01" cmd_test_spk2 = "w\x00\x12\x00\x02" cmd_test_spk3 = "w\x00\x12\x00\x03" cmd_test_spk4 = "w\x00\x12\x00\x04" cmd_test_spk5 = "w\x00\x12\x00\x05" cmd_test_spk6 = "w\x00\x12\x00\x06" cmd_test_spk7 = "w\x00\x12\x00\x07" cmd_test_spk8 = "w\x00\x12\x00\x08" cmd_test_spk9 = "w\x00\x12\x00\x09" cmd_test_spk10 = "w\x00\x12\x00\x0a" cmd_test_spk11 = "w\x00\x12\x00\x0b" cmd_test_spk12 = "w\x00\x12\x00\x0c" cmd_test_spk13 = "w\x00\x12\x00\x0d" cmd_test_spk14 = "w\x00\x12\x00\x0e" cmd_test_spk15 = "w\x00\x12\x00\x0f" cmd_test_spk16 = "w\x00\x12\x00\x10" cmd_test_inj1 = "w\x00\x13\x00\x01" cmd_test_inj2 = "w\x00\x13\x00\x02" cmd_test_inj3 = "w\x00\x13\x00\x03" cmd_test_inj4 = "w\x00\x13\x00\x04" cmd_test_inj5 = "w\x00\x13\x00\x05" cmd_test_inj6 = "w\x00\x13\x00\x06" cmd_test_inj7 = "w\x00\x13\x00\x07" cmd_test_inj8 = "w\x00\x13\x00\x08" cmd_test_inj9 = "w\x00\x13\x00\x09" cmd_test_inj10 = "w\x00\x13\x00\x0a" cmd_test_inj11 = "w\x00\x13\x00\x0b" cmd_test_inj12 = "w\x00\x13\x00\x0c" cmd_test_inj13 = "w\x00\x13\x00\x0d" cmd_test_inj14 = "w\x00\x13\x00\x0e" cmd_test_inj15 = "w\x00\x13\x00\x0f" cmd_test_inj16 = "w\x00\x13\x00\x10" cmd_test_fuel_pump = "w\x00\x14\x00\x01" cmd_calibrate_tps_1_closed = "w\x00\x14\x00\x02" cmd_calibrate_tps_1_wot = "w\x00\x14\x00\x03" cmd_calibrate_tps_2_closed = "w\x00\x14\x00\x04" cmd_calibrate_tps_2_wot = "w\x00\x14\x00\x05" cmd_calibrate_pedal_up = "w\x00\x14\x00\x06" cmd_calibrate_pedal_down = "w\x00\x14\x00\x07" cmd_tle8888_init = "w\x00\x14\x00\x08" cmd_test_ac_relay = "w\x00\x14\x00\x09" cmd_test_radiator_fan = "w\x00\x15\x00\x01" cmd_test_check_engine_light = "w\x00\x16\x00\x01" cmd_test_idle_valve = "w\x00\x17\x00\x01" cmd_call_from_pit = "w\x00\x20\x34\x56" cmd_stop_engine = "w\x00\x79\x00\x00" ; reboot ECU cmd_reset_controller = "w\x00\xbb\x00\x00" ; jump to DFU mode cmd_dfu = "w\x00\xba\x00\x00" ; See 'executeTSCommand' in firmware source code ; MIATA_NA6_MAP = 41 cmd_set_engine_type_Miata_NA6_MAP = "w\x00\x30\x00\x29" ; MIATA_NA6_VAF = 57 cmd_set_engine_type_Miata_NA6_VAF = "w\x00\x30\x00\x39" ; MAZDA_MIATA_2003 = 47 cmd_set_engine_type_Miata_NA2 = "w\x00\x30\x00\x2F" ; ETB_BENCH_ENGINE = 58 cmd_set_engine_type_etb_test = "w\x00\x30\x00\x3A" ; ETB_BENCH_ENGINE = 59 cmd_set_engine_type_8888_test = "w\x00\x30\x00\x3B" cmd_set_engine_type_default = "w\x00\x31\x00\x00" [UserDefined] dialog = fuelTableBottomDialog, "", card panel = fuelTableMAFTbl, Center, {fuelAlgorithm==LM_PLAIN_MAF} panel = fuelTableTPSTbl, Center, {fuelAlgorithm==LM_ALPHA_N} panel = fuelTableELTbl, Center dialog = fuelTableRight, "", yAxis topicHelp = "https://rusefi.com/s/fuel" displayOnlyField = "Fuel Algorithm", fuelAlgorithm panel = fuelTableBottomDialog, Center liveGraph = fuelLive, "Fuel", South graphLine = AFRValue graphLine = RPMValue dialog = fuelTableGaugesPanel, yAxis gauge = TPSGauge gauge = MAFGauge gauge = MAPGauge dialog = fuelTableDialog, "Fuel Table", xAxis topicHelp = "fuelHelp" panel = fuelTableGaugesPanel panel = fuelTableRight dialog = tChargeRpmTpsSettings, "RPM+TPS Mode Settings" field = "We use these coefficients to approximate air/fuel charge temperate" field = "based on CLT and IAT, depending on RPM and TPM" field = "minRPM minTPS", tChargeMinRpmMinTps field = "minRPM maxTPS", tChargeMinRpmMaxTps field = "maxRPM minTPS", tChargeMaxRpmMinTps field = "maxRPM maxTPS", tChargeMaxRpmMaxTps dialog = tChargeGeneralSettings, "" field = "tCharge Mode", tChargeMode field = "tChange Increment Limit, deg/sec", tChargeAirIncrLimit field = "tChange Decrement Limit, deg/sec", tChargeAirDecrLimit field = "" dialog = tChargeAirInterpSettings, "Air Interpolation Mode Settings" field = "Min tCharge Coeff.", tChargeAirCoefMin field = "Max tCharge Coeff.", tChargeAirCoefMax field = "Max Air Flow, kg/h", tChargeAirFlowMax dialog = tChargeSettings, "tCharge Settings" panel = tChargeGeneralSettings panel = tChargeRpmTpsSettings, { tChargeMode == 0} panel = tChargeAirInterpSettings, { tChargeMode == 1} dialog = baseInjection, "General" field = "Enabled", isInjectionEnabled field = "Mode", injectionMode, {isInjectionEnabled == 1} field = "#Batch injection with individual wiring" field = "Two wire batch emulation", twoWireBatchInjection, {isInjectionEnabled == 1 && injectionMode == 2} #if tuneByTPS field = "Use TPS instead of Load for VE table", useTPSBasedVeTable, {isInjectionEnabled == 1 && fuelAlgorithm == LM_SPEED_DENSITY} #else field = "#Enabled for TPS-Based 'VE Autotune Mode' in Project Settings" field = "Use TPS instead of Load for VE table", useTPSBasedVeTable, {0} #endif dialog = ignitionOutputs, "Ignition Outputs" field = "Ignition Pin Mode", ignitionPinMode, {isIgnitionEnabled == 1} 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 field = "Ignition Pin 2", ignitionPins2, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 1) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 2) || (firingOrder == 7) || (firingOrder == 9) || (firingOrder == 11) || (firingOrder == 12)))} field = "Ignition Pin 3", ignitionPins3, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 2) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 1) || (firingOrder == 3) || (firingOrder == 4) || (firingOrder == 5) || (firingOrder == 9)))} field = "Ignition Pin 4", ignitionPins4, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 3) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 7) || (firingOrder == 12)))} field = "Ignition Pin 5", ignitionPins5, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 4) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 4) || (firingOrder == 12)))} field = "Ignition Pin 6", ignitionPins6, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 5) && (ignitionMode !=2 || twoWireBatchIgnition == 1 )} field = "Ignition Pin 7", ignitionPins7, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 6) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 11)))} field = "Ignition Pin 8", ignitionPins8, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 7) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))} field = "Ignition Pin 9", ignitionPins9, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 8) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))} field = "Ignition Pin 10", ignitionPins10, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 9) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))} field = "Ignition Pin 11", ignitionPins11, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 10) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))} field = "Ignition Pin 12", ignitionPins12, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 11) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))} field = "This is useful to have tachometer working" field = " while converting from distributor" field = "Dizzy out Pin", dizzySparkOutputPin, {isIgnitionEnabled == 1} field = "Dizzy out Pin Mode", dizzySparkOutputPinMode, {isIgnitionEnabled == 1} dialog = ignitionBasic, "" field = "Enabled", isIgnitionEnabled field = "Mode", ignitionMode, {isIgnitionEnabled == 1} field = "#Wasted spark with individual coils" field = "Two wire wasted", twoWireBatchIgnition, {isIgnitionEnabled == 1 && ignitionMode == 2} field = "Timing Mode", timingMode, {isIgnitionEnabled == 1} field = "Use TPS-based Advance Table", useTPSAdvanceTable, {isIgnitionEnabled == 1 && fuelAlgorithm == LM_SPEED_DENSITY} field = "#Use fixed timing while validating with a timing gun" field = "Fixed Timinig", 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 = "Engine Displacement", displacement field = "Firing Order", firingOrder ; Engine->Trigger configuration dialog = triggerConfiguration_settings, "Settings Trigger" field = "!https://rusefi.com/s/trigger" field = "Trigger type", trigger_type ; see also in firmware '[doesTriggerImplyOperationMode]' tag field = "Operation mode / speed", ambiguousOperationMode 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 Offset", globalTriggerAngleOffset field = "#Custom Trigger" field = "total Tooth Count", trigger_customTotalToothCount, {trigger_type == 0} field = "skipped Tooth Count", trigger_customSkippedToothCount, {trigger_type == 0} dialog = triggerConfiguration_IO, "Settings I/O" field = "!https://rusefi.com/s/vvt" field = "VVT mode", vvtMode, {trigger_type != 80} field = "VVT use rise front", vvtCamSensorUseRise, {trigger_type != 80} field = "VVT position display offset", vvtOffset field = "VVT display inverted", vvtDisplayInverted field = "Miata NB2 from (temporary)", miataNb2VVTRatioFrom field = "Miata NB2 to (temporary)", miataNb2VVTRatioTo field = "nbVvtIndex", nbVvtIndex field = "print verbose sync details to console",verboseTriggerSynchDetails field = "Do not print messages in case of sync error", silentTriggerError field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} dialog = triggerConfiguration panel = triggerConfiguration_settings, North panel = triggerConfiguration_IO, South ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis field = "Injector Flow", injector_flow, {isInjectionEnabled == 1} dialog = injectorOutputSettings, "Injector Outputs", yAxis field = "!ECU reboot needed to apply these settings" field = "injection Pin Mode", injectionPinMode, {isInjectionEnabled == 1} field = "With batched injection without 'Two wire batch emulation'" field = " fill only first count / 2 values" 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 != 3 && cylindersCount > 2} field = "Injection Pin 4", injectionPins4, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 3} field = "Injection Pin 5 ", injectionPins5, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 4} field = "Injection Pin 6 ", injectionPins6, {isInjectionEnabled == 1 && injectionMode != 3 && 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} dialog = injectionBasic, "" topicHelp = "fuelHelp" panel = baseInjection panel = injChars dialog = injectionSettings, "", xAxis panel = injectionBasic panel = injectorOutputSettings dialog = injectionDeadTime, "", yAxis panel = injectorsDeadTime, East dialog = ignitionCylExtra, "Ignition Cylinder Extra Timing" field = "Extra cyl #1", timing_offset_cylinder1 field = "Extra cyl #2", timing_offset_cylinder2, {cylindersCount > 1} field = "Extra cyl #3", timing_offset_cylinder3, {cylindersCount > 2} field = "Extra cyl #4", timing_offset_cylinder4, {cylindersCount > 3} field = "Extra cyl #5", timing_offset_cylinder5, {cylindersCount > 4} field = "Extra cyl #6", timing_offset_cylinder6, {cylindersCount > 5} field = "Extra cyl #7", timing_offset_cylinder7, {cylindersCount > 6} field = "Extra cyl #8", timing_offset_cylinder8, {cylindersCount > 7} field = "Extra cyl #9", timing_offset_cylinder9, {cylindersCount > 8} field = "Extra cyl #10", timing_offset_cylinder10, {cylindersCount > 9} field = "Extra cyl #11", timing_offset_cylinder11, {cylindersCount > 10} field = "Extra cyl #12", timing_offset_cylinder12, {cylindersCount > 11} dialog = dwellSettings, "", yAxis panel = dwellCorrection, Center ; Sensors->AUX1 Thermistor Sensor Setting dialog = auxTempSensor1Sensor, "aux1 Thermistor Settings" field = "Input channel", auxTempSensor1_adcChannel field = "Bias resistor", auxTempSensor1_bias_resistor, {auxTempSensor1_adcChannel != 16} 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 != 16} field = "Resistance @ LT", auxTempSensor1_resistance_1, {auxTempSensor1_adcChannel != 16} field = "" field = "Middle temperature", auxTempSensor1_tempC_2, {auxTempSensor1_adcChannel != 16} field = "Resistance @ MT", auxTempSensor1_resistance_2, {auxTempSensor1_adcChannel != 16} field = "" field = "Highest temperature", auxTempSensor1_tempC_3, {auxTempSensor1_adcChannel != 16} field = "Resistance @ HT", auxTempSensor1_resistance_3, {auxTempSensor1_adcChannel != 16} ; Sensors->AUX2 Thermistor Sensor Setting dialog = auxTempSensor2Sensor, "aux2 Thermistor Settings" field = "Input channel", auxTempSensor2_adcChannel field = "Bias resistor", auxTempSensor2_bias_resistor, {auxTempSensor2_adcChannel != 16} 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 != 16} field = "Resistance @ LT", auxTempSensor2_resistance_1, {auxTempSensor2_adcChannel != 16} field = "" field = "Middle temperature", auxTempSensor2_tempC_2, {auxTempSensor2_adcChannel != 16} field = "Resistance @ MT", auxTempSensor2_resistance_2, {auxTempSensor2_adcChannel != 16} field = "" field = "Highest temperature", auxTempSensor2_tempC_3, {auxTempSensor2_adcChannel != 16} field = "Resistance @ HT", auxTempSensor2_resistance_3, {auxTempSensor2_adcChannel != 16} dialog = tpsSensor, "TPS" field = "!See Tools>Calibrate TPS" field = "Throttle1 position sensor", tps1_1AdcChannel field = "Throttle2 position sensor", tps2_1AdcChannel field = "TPS low value detection threshold", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 16} field = "TPS high value detection threshold", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 16} dialog = pedalSensor, "Accelerator pedal" field = "Accelerator position sensor", throttlePedalPositionAdcChannel field = "Up voltage", throttlePedalUpVoltage field = "Down (WOT) voltage", throttlePedalWOTVoltage ; Sensor Inputs dialog = otherSensorInputs, "Other Sensor Inputs" field = "Fuel level", fuelLevelSensor field = "Clutch down switch", clutchDownPin field = "Clutch down inverted", clutchDownPinInverted field = "Clutch up switch", clutchUpPin field = "Clutch up inverted", clutchUpPinInverted field = "Throttle Up switch", throttlePedalUpPin field = "Brake pedal switch", brakePedalPin field = "A/C switch", acSwitchAdc dialog = triggerInputs, "Trigger Inputs" field = "!ECU reboot needed to apply these settings" field = "#Cam is primary if you have cam sensor" field = "Primary channel", triggerInputPins1 field = "Invert Primary", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { trigger_type != 0 && trigger_type != 8 && trigger_type != 9 && trigger_type != 18 && trigger_type != 20} field = "Invert Secondary", invertSecondaryTriggerSignal, { trigger_type != 0 && trigger_type != 8 && trigger_type != 9 && trigger_type != 18 && trigger_type != 20} field = "Cam Sync/VVT input", camInputs1 dialog = allPinsSensors, "Sensors" 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 = "FrequencyReportingMapInputPin", frequencyReportingMapInputPin field = "FuelLevelSensor", fuelLevelSensor field = "Vehicle Speed Input pin", vehicleSpeedSensorInputPin field = "clutchDownPin", clutchDownPin field = "clutchUpPin", clutchUpPin field = "brakePedalPin", brakePedalPin field = "A/C Switch", acSwitchAdc field = "Aux Temperature #1", auxTempSensor1_adcChannel field = "Aux Temperature #2", auxTempSensor2_adcChannel dialog = allPins1_1 field = mc33816_cs, mc33816_cs field = mc33816_rstb, mc33816_rstb field = high_fuel_pressure_sensor_1, high_fuel_pressure_sensor_1 field = high_fuel_pressure_sensor_2, high_fuel_pressure_sensor_2 field = mc33816_driven, mc33816_driven field = mc33816spiDevice, mc33816spiDevice field = "Warning Led", warningLedPin ; field = "Fatal Error Led", fatalErrorPin field = "tle6240_cs", tle6240_cs field = "tle6240 SPI", tle6240spiDevice field = "mc33972_cs", mc33972_cs field = "mc33972 SPI", mc33972spiDevice panel = allPinsSensors field = "Throttle pedal Position Channel", throttlePedalPositionAdcChannel field = "Primary input channel", triggerInputPins1 field = "Secondary channel", triggerInputPins2 field = "Cam Sync/VVT input", camInputs1 dialog = allPins1_2 field = "Tachometer output Pin", tachOutputPin field = "Dizzy out Pin", dizzySparkOutputPin field = "O2 heater pin", o2heaterPin field = "Idle Solenoid Pin", idle_solenoidPin field = "Idle Stepper Dir", idle_stepperDirectionPin field = "Idle Stepper Dir Mode", stepperDirectionPinMode field = "Idle Stepper Step", idle_stepperStepPin field = "Idle Stepper Enable", stepperEnablePin field = "Fuel Pump Pin", fuelPumpPin field = "Fuel Pump Pin Mode", fuelPumpPinMode field = "ETB#1 Dir #1", etb1_directionPin1 @@if_ts_show_etb_pins field = "ETB#1 Dir #2", etb1_directionPin2 @@if_ts_show_etb_pins field = "ETB#1 Control #1", etb1_controlPin1 @@if_ts_show_etb_pins field = "etb1_controlPinMode", etb1_controlPinMode @@if_ts_show_etb_pins field = "ETB#2 Dir #1", etb2_directionPin1 @@if_ts_show_etb_pins field = "ETB#2 Dir #2", etb2_directionPin2 @@if_ts_show_etb_pins field = "ETB#2 Control #1", etb2_controlPin1 @@if_ts_show_etb_pins field = "SD CS Pin", sdCardCsPin field = "MIL / Check Engine Pin", malfunctionIndicatorPin field = "MIL / Check Engine Pin Mode", malfunctionIndicatorPinMode field = "Aux Pin #1", auxPidPins1 field = "Aux Pin #2", auxPidPins2 field = "Aux Pin #3", auxPidPins3 field = "Aux Pin #4", auxPidPins4 field = "test557pin", test557pin field = "Fan Pin", fanPin field = "Fan Pin Mode", fanPinMode field = "Main Relay Pin", mainRelayPin field = "Main Relay Mode", mainRelayPinMode field = "aux valve #1", auxValves1 field = "aux valve #2", auxValves2 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 = "FSIO dig inp #1", fsioDigitalInputs1 field = "FSIO dig inp #2", fsioDigitalInputs2 field = "FSIO dig inp #3", fsioDigitalInputs3 field = "FSIO dig inp #4", fsioDigitalInputs4 field = "FSIO dig inp #5", fsioDigitalInputs5 field = "FSIO dig inp #6", fsioDigitalInputs6 field = "FSIO dig inp #7", fsioDigitalInputs7 field = "FSIO dig inp #8", fsioDigitalInputs8 field = "FSIO dig inp #9", fsioDigitalInputs9 field = "FSIO dig inp #10", fsioDigitalInputs10 field = "FSIO dig inp #11", fsioDigitalInputs11 field = "FSIO dig inp #12", fsioDigitalInputs12 field = "FSIO dig inp #13", fsioDigitalInputs13 field = "FSIO dig inp #14", fsioDigitalInputs14 field = "FSIO dig inp #15", fsioDigitalInputs15 field = "FSIO dig inp #16", fsioDigitalInputs16 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 field = "output #1", fsioOutputPins1 field = "output #2", fsioOutputPins2 field = "output #3", fsioOutputPins3 field = "output #4", fsioOutputPins4 field = "output #5", fsioOutputPins5 field = "output #6", fsioOutputPins6 field = "output #7", fsioOutputPins7 field = "output #8", fsioOutputPins8 field = "output #9", fsioOutputPins9 field = "output #10", fsioOutputPins10 field = "output #11", fsioOutputPins11 field = "output #12", fsioOutputPins12 field = "output #13", fsioOutputPins13 field = "output #14", fsioOutputPins14 field = "output #15", fsioOutputPins15 field = "output #16", fsioOutputPins16 dialog = allPins1_3 field = "FSIO ADC #1", fsioAdc1 field = "FSIO ADC #2", fsioAdc2 field = "FSIO ADC #3", fsioAdc3 field = "FSIO ADC #4", fsioAdc4 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 field = "CAN TX pin", canTxPin field = "SPI1 MOSI", spi1mosiPin, {is_enabled_spi_1 == 1} field = "SPI1 MISO", spi1misoPin, {is_enabled_spi_1 == 1} field = "SPI1 SCK", spi1sckPin, {is_enabled_spi_1 == 1} field = "SPI2 MOSI", spi2mosiPin, {is_enabled_spi_2 == 1} field = "SPI2 MISO", spi2misoPin, {is_enabled_spi_2 == 1} field = "SPI2 SCK", spi2sckPin, {is_enabled_spi_2 == 1} field = "SPI3 MOSI", spi3mosiPin, {is_enabled_spi_3 == 1} field = "SPI3 MISO", spi3misoPin, {is_enabled_spi_3 == 1} field = "SPI3 SCK", spi3sckPin, {is_enabled_spi_3 == 1} field = "hip9011CsPin", hip9011CsPin field = "LIS302DLCsPin", LIS302DLCsPin field = "MIL / Check Engine", malfunctionIndicatorPin field = "Saab CDM knock", cdmInputPin field = "comm status light", communicationLedPin field = "running status light", runningLedPin field = "TLE8888 Chip Select", tle8888_cs field = "TLE8888 CS Mode", tle8888_csPinMode field = "TLE 8888 spi", tle8888spiDevice field = "servo#1", servoOutputPins1 field = "servo#2", servoOutputPins2 field = "servo#3", servoOutputPins3 field = "servo#4", servoOutputPins4 field = "servo#5", servoOutputPins5 dialog = allPins1_1_and_2, "", xAxis panel = allPins1_1 panel = allPins1_2 dialog = allPins1, "All Pins 1/2", 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/2", xAxis panel = allPins2_1_and_2 ; Sensors->CLT sensor dialog = clt_thermistor, "CLT sensor" field = "Input channel", clt_adcChannel field = "Bias resistor", clt_bias_resistor, {clt_adcChannel != 16} 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", clt_tempC_1, {clt_adcChannel != 16} field = "Resistance @ LT", clt_resistance_1, {clt_adcChannel != 16} field = "" field = "Middle temperature", clt_tempC_2, {clt_adcChannel != 16} field = "Resistance @ MT", clt_resistance_2, {clt_adcChannel != 16} field = "" field = "Highest temperature", clt_tempC_3, {clt_adcChannel != 16} field = "Resistance @ HT", clt_resistance_3, {clt_adcChannel != 16} field = "" field = "Linear characteristic", useLinearCltSensor, {clt_adcChannel != 16} dialog = cltSensor, "", xAxis panel = clt_thermistor gauge = CLTGauge ; Sensors->IAT sensor dialog = iat_thermistor, "IAT sensor" field = "Input channel", iat_adcChannel field = "Bias resistor", iat_bias_resistor, {iat_adcChannel != 16} 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", iat_tempC_1, {iat_adcChannel != 16} field = "Resistance @ LT", iat_resistance_1, {iat_adcChannel != 16} field = "" field = "Middle temperature", iat_tempC_2, {iat_adcChannel != 16} field = "Resistance @ MT", iat_resistance_2, {iat_adcChannel != 16} field = "" field = "Highest temperature", iat_tempC_3, {iat_adcChannel != 16} field = "Resistance @ HT", iat_resistance_3, {iat_adcChannel != 16} field = "" field = "Linear characteristic", useLinearIatSensor, {iat_adcChannel != 16} dialog = iatSensor, "", xAxis panel = iat_thermistor gauge = IATGauge ; Sensors->Oil pressure sensor dialog = oilp_settings, "Oil pressure sensor" field = "Oil Pressure ADC input", oilPressure_hwChannel field = "low voltage", oilPressure_v1, {oilPressure_hwChannel != 16} field = "low pressure", oilPressure_value1, {oilPressure_hwChannel != 16} field = "high voltage", oilPressure_v2, {oilPressure_hwChannel != 16} field = "high pressure", oilPressure_value2, {oilPressure_hwChannel != 16} dialog = oilPressureSensor, "", xAxis panel = oilp_settings gauge = OilPressGauge ; Sensors->MAP sensor dialog = mapSensorAnalog, "MAP sensor", yAxis field = "MAP ADC input", map_sensor_hwChannel field = "MAP type", map_sensor_type field = "MAP value low point", map_sensor_lowValue field = "MAP voltage low point", mapLowValueVoltage field = "MAP value high point", map_sensor_highValue field = "MAP voltage high value", mapHighValueVoltage dialog = mapSensorFreq, "MAP frequency sensor", yAxis field = "MAP Freq", frequencyReportingMapInputPin field = "0 kPa freq", mapFrequency0Kpa field = "100 kpa freq", mapFrequency100Kpa dialog = mapCommon, "MAP common settings" field = "frequency-based MAP", hasFrequencyReportingMapSensor field = "Low value threshold", mapErrorDetectionTooLow field = "High value threshold", mapErrorDetectionTooHigh field = "" field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder field = "Minimum MAP samples", mapMinBufferLength dialog = mapSettings, "", yAxis panel = mapCommon panel = mapSensorAnalog, {hasFrequencyReportingMapSensor == 0} panel = mapSensorFreq, {hasFrequencyReportingMapSensor == 1} dialog = baroSettings, "Baro sensor" field = "Baro ADC input", baroSensor_hwChannel field = baroSensor_lowValue, baroSensor_lowValue, {baroSensor_hwChannel != 16} field = baroSensor_highValue, baroSensor_highValue, {baroSensor_hwChannel != 16} field = baroSensor_type, baroSensor_type, {baroSensor_hwChannel != 16} 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 panel = egoSettings_IO panel = egoSettings_sensor, {afr_hwChannel != 16} ; 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, !useStepperIdle field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle dialog = idleStepper, "Stepper" field = "Idle Stepper Step Pin", idle_stepperStepPin, useStepperIdle field = "Idle Stepper Dir Pin", idle_stepperDirectionPin, useStepperIdle field = "Idle Stepper Enable Pin", stepperEnablePin, useStepperIdle field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode, useStepperIdle 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 = idleHwType, "Idle Valve Hardware", border panel = idleSolenoid, West panel = idleStepper, East dialog = idlehw, "", yAxis field = "!ECU reboot needed to apply these settings" field = "Use Stepper", useStepperIdle panel = idleHwType dialog = idlePidSettings, "PID IAC Control" field = "#See Idle Target RPM Curve" field = "P-factor", idleRpmPid_pFactor field = "I-factor", idleRpmPid_iFactor field = "D-factor", idleRpmPid_dFactor field = "Offset", idleRpmPid_offset field = "Min", idleRpmPid_minValue field = "Max", idleRpmPid_maxValue field = "iTerm Min", idlerpmpid_iTermMin field = "iTerm Max", idlerpmpid_iTermMax field = "Offset#2", idleRpmPid2_offset field = "Min#2", idleRpmPid2_minValue field = "period", idleRpmPid_periodMs field = "RPM dead zone to deactivate IAC pid", idlePidRpmDeadZone field = "RPM upper limit to deactivate IAC pid",idlePidRpmUpperLimit field = "PID Extra for low RPM", pidExtraForLowRpm dialog = idleSettings, "", yAxis field = "Idle IAC control mode", idleMode field = useInstantRpmForIdle, useInstantRpmForIdle field = "use ETB for idle", useETBforIdleControl field = "ETB Idle range", etbIdleThrottleRange, {useETBforIdleControl == 1} field = "Use separate Ignition Table for idle", useSeparateAdvanceForIdle field = "Use separate VE Table for idle", useSeparateVeForIdle field = "Use separate IAC Table For Coasting", useIacTableForCoasting, {idleMode == 0} field = idleIncrementalPidCic, idleIncrementalPidCic field = "TPS deactivation threshold", idlePidDeactivationTpsThreshold panel = idlePidSettings, { idleMode == 0} field = "Extra IAC if Throttle Pressed", iacByTpsTaper; field = "Detailed status in console", isVerboseIAC field = "#See Warmup idle multiplier" slider = "Manual IAC Position", manIdlePosition, horizontal dialog = idleTimingPidCorrDialog, "", yAxis field = "!This timing correction mode is Alpha Version" field = "Use Auto-PID ignition advance control", useIdleTimingPidControl field = "#See Idle Target RPM Curve" field = "P-factor", idleTimingPid_pFactor, {useIdleTimingPidControl == 1} field = "I-factor", idleTimingPid_iFactor, {useIdleTimingPidControl == 1} field = "D-factor", idleTimingPid_dFactor, {useIdleTimingPidControl == 1} field = "Offset", idleTimingPid_offset, {useIdleTimingPidControl == 1} field = "Min Delta", idleTimingPid_minValue, {useIdleTimingPidControl == 1} field = "Max Delta", idleTimingPid_maxValue, {useIdleTimingPidControl == 1} field = "period", idleTimingPid_periodMs, {useIdleTimingPidControl == 1} field = "#See RPM dead zone to deactivate IAC pid" field = "RPM working zone for timing pid", idleTimingPidWorkZone, {useIdleTimingPidControl == 1} field = "RPM working zone falloff", idlePidFalloffDeltaRpm, {useIdleTimingPidControl == 1} field = "RPM dead zone to deactivate timing pid", idleTimingPidDeadZone, {useIdleTimingPidControl == 1} ; Engine->Fan Settings dialog = fanSetting, "Fan Settings" field = "Pin", fanPin field = "Pin mode", fanPinMode field = "On temperature", fanOnTemperature field = "Off temperature", fanOffTemperature dialog = fuelPump, "Fuel Rail" field = "Pin", fuelPumpPin field = "Pin mode", fuelPumpPinMode field = "Prime duration", startUpFuelPumpDuration field = "Absolute Fuel Pressure", absoluteFuelPressure field = "Fuel Rail pressure", fuelRailPressure, {absoluteFuelPressure == 1} ; Controller->Actuator Outputs dialog = mainRelay, "Main relay output" field = "Pin", mainRelayPin field = "Pin mode", mainRelayPinMode dialog = statusLeds, "Status LEDs" field = "Running status LED", runningLedPin field = "TS communication status LED", communicationLedPin field = "Trigger error LED", triggerErrorPin ; field = "Fatal Error Led", fatalErrorPin ; Engine->MIL Settings dialog = malfunction, "Check Engine Settings" field = "Pin", malfunctionIndicatorPin field = "Pin mode", malfunctionIndicatorPinMode field = "Warning Period", warningPeriod ; Engine->hip9011 Settings dialog = hipFunction, "HIP9011 Settings (knock decoder)" field = "Enabled", isHip9011Enabled field = "Threshold", knockVThreshold, {isHip9011Enabled == 1} 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 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 = fuelClosedLoopDialog, "Fuel short-term closed-loop correction" field = "#This is just the cherry on the cake once you have good VE table" field = "Enabled", fuelClosedLoopCorrectionEnabled field = "!No correction below these value" field = "CLT - low threshod", fuelClosedLoopCltThreshold, {fuelClosedLoopCorrectionEnabled == 1} field = "RPM - low threshod", fuelClosedLoopRpmThreshold, {fuelClosedLoopCorrectionEnabled == 1} field = "EGO - low threshod", fuelClosedLoopAfrLowThreshold, {fuelClosedLoopCorrectionEnabled == 1} field = "!No correction above these value" field = "TPS - high threshod", fuelClosedLoopTpsThreshold, {fuelClosedLoopCorrectionEnabled == 1} field = "EGO - high threshod", fuelClosedLoopAfrHighThreshold, {fuelClosedLoopCorrectionEnabled == 1} field = "!PID settings" field = "P factor", fuelClosedLoopPid_pFactor, {fuelClosedLoopCorrectionEnabled == 1} field = "I factor", fuelClosedLoopPid_iFactor, {fuelClosedLoopCorrectionEnabled == 1} field = "D factor", fuelClosedLoopPid_dFactor, {fuelClosedLoopCorrectionEnabled == 1} field = "min", fuelClosedLoopPid_minValue, {fuelClosedLoopCorrectionEnabled == 1} field = "max", fuelClosedLoopPid_maxValue, {fuelClosedLoopCorrectionEnabled == 1} dialog = auxPidDialog, "Aux PID" field = "Enabled", activateAuxPid1 field = "FSIO pin #1", auxPidPins1 field = "PWM Frequency", auxPidFrequency1 field = "Detailed status in console", isVerboseAuxPid1 field = "#target based on FSIO map#1" field = "control period", auxPid1_periodMs, {activateAuxPid1 == 1} field = "#PID control" field = "offset", auxPid1_offset, {activateAuxPid1 == 1} field = "P factor", auxPid1_pFactor, {activateAuxPid1 == 1} field = "I factor", auxPid1_iFactor, {activateAuxPid1 == 1} field = "D factor", auxPid1_dFactor, {activateAuxPid1 == 1} field = "Min", auxPid1_minValue, {activateAuxPid1 == 1} field = "Max", auxPid1_maxValue, {activateAuxPid1 == 1} field = "FSIO pin #2", auxPidPins2 field = "FSIO pin #3", auxPidPins3 field = "FSIO pin #4", auxPidPins4 ; 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 = "simple on/off mode", onOffAlternatorLogic, {isAlternatorControlEnabled == 1} field = "Target", targetVBatt, {isAlternatorControlEnabled == 1} field = "Pin", alternatorControlPin, {isAlternatorControlEnabled == 1} field = "Pin Mode", alternatorControlPinMode, {isAlternatorControlEnabled == 1} field = "PWM frequency", alternatorPwmFrequency, {isAlternatorControlEnabled == 1 && onOffAlternatorLogic == 0} field = "Off Above TPS", alternatorOffAboveTps, {isAlternatorControlEnabled == 1} field = "Detailed status in console", isVerboseAlternator, {isAlternatorControlEnabled == 1} field = "control period", alternatorControl_periodMs, {isAlternatorControlEnabled == 1} field = "#PID control" field = "offset", alternatorControl_offset, {isAlternatorControlEnabled == 1 && onOffAlternatorLogic == 0} field = "P factor", alternatorControl_pFactor, {isAlternatorControlEnabled == 1 && onOffAlternatorLogic == 0} field = "I factor", alternatorControl_iFactor, {isAlternatorControlEnabled == 1 && onOffAlternatorLogic == 0} field = "D factor", alternatorControl_dFactor, {isAlternatorControlEnabled == 1 && onOffAlternatorLogic == 0} field = "Min", alternatorControl_minValue, {isAlternatorControlEnabled == 1 && onOffAlternatorLogic == 0} field = "Max", alternatorControl_maxValue, {isAlternatorControlEnabled == 1 && onOffAlternatorLogic == 0} field = "#% duty = Pterm + Iterm + Dterm + offset%" dialog = energySystems, "Battery and Alternator Settings", yAxis panel = batteryDialog panel = alternator dialog = speedSensorLeft field = "Input pin", vehicleSpeedSensorInputPin field = "revolution to speed mult", vehicleSpeedCoef 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 = "Use fixed baro corr from MAP", useFixedBaroCorrFromMap field = "Analog divider", analogInputDividerCoefficient field = "Use BiQuad averaging", useBiQuadAnalogFiltering field = "Smoothing factor", slowAdcAlpha, {useBiQuadAnalogFiltering == 0} field = "Bi_Q a0", biQuad_a0, {useBiQuadAnalogFiltering == 1} field = "Bi_Q a1", biQuad_a1, {useBiQuadAnalogFiltering == 1} field = "Bi_Q a2", biQuad_a2, {useBiQuadAnalogFiltering == 1} field = "Bi_Q b1", biQuad_b1, {useBiQuadAnalogFiltering == 1} field = "Bi_Q b2", biQuad_b2, {useBiQuadAnalogFiltering == 1} dialog = tachSettings, "Tachometer output" field = "!See also dizzySparkOutputPin" field = "Pin", tachOutputPin field = "Pin mode", tachOutputPinMode field = "Rise at trigger index", tachPulseTriggerIndex field = "Pulse duration is duty cycle", tachPulseDurationAsDutyCycle field = "Pulse duration", tachPulseDuractionMs ; Board->Connection dialog = tsPort, "TunerStudio Port" field = "tunerStudioSerialSpeed", tunerStudioSerialSpeed field = "Use PC10/PC11 serial?", useSerialPort field = "uartConsoleSerialSpeed", uartConsoleSerialSpeed dialog = canBus, "CAN Bus" field = "Can Read Enabled", canReadEnabled field = "Can Write Enabled", canWriteEnabled field = "Can Nbc Type", canNbcType field = "Can Sleep Period", canSleepPeriodMs field = "RX pin", canRxPin field = "TX pin", canTxPin dialog = sdCard, "SD Card Logger" field = "SdCard", isSdCardEnabled field = "showSdCardWarning", showSdCardWarning field = "CS Pin", sdCardCsPin field = "SPI", sdCardSpiDevice field = "log format", logFormat field = "Mass Storage", storageMode 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 field = "TLE8888 SPI", tle8888spiDevice field = "useTLE8888_hall_mode", useTLE8888_hall_mode field = "useTLE8888 cranking reset hack", useTLE8888_cranking_hack commandButton = "Reinit", cmd_tle8888_init dialog = connection, "", yAxis field = "STM32 vRef voltage", adcVcc panel = tsPort panel = canBus panel = sdCard panel = gpsReceiver @@if_ts_show_gps panel = tle8888 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 dialog = monitoringSettings, "rusEfi Console Settings" field = "Sensor Sniffer", sensorChartMode field = " Threshold", sensorSnifferRpmThreshold field = " Each X cycle", sensorChartFrequency field = "Engine Sniffer", isEngineChartEnabled field = " Threshold", engineSnifferRpmThreshold dialog = generalSettings, "General" field = "!https://rusefi.com/s/fuel" field = "Fuel strategy", fuelAlgorithm dialog = debugging, "Debug" field = "!https://rusefi.com/s/debugmode" field = "Debug mode", debugMode dialog = limits, "Limits" field = "RPM hard limit", rpmHardLimit field = "Boost cut pressure", boostCutPressure ; Engine->Base Engine Settings dialog = engineChars, "Base Engine Settings" topicHelp = "baseHelp" panel = baseEngineConfig panel = generalSettings panel = limits panel = debugging dialog = crankingFuel, "Fuel" field = "Injection mode", crankingInjectionMode field = "!Value '1' is currently recommended" field = "Base fuel pulse width", cranking_baseFuel dialog = crankingIAC, "IAC" field = "Cranking IAC position", crankingIACposition field = "After cranking IAC taper duration", afterCrankingIACtaperDuration field = "Override IAC multiplier for cranking", overrideCrankingIacSetting dialog = crankingIgnition, "Ignition" field = "Advance", crankingTimingAngle, {useSeparateAdvanceForCranking == 0} field = "Use separate Advance Table for cranking", useSeparateAdvanceForCranking field = "Use Advance Corrections for cranking", useAdvanceCorrectionsForCranking field = "Use fixed cranking dwell", useConstantDwellDuringCranking field = "Fixed Cranking Dwell", ignitionDwellForCrankingMs, {useConstantDwellDuringCranking == 1} field = "Cranking Dwell Angle", crankingChargeAngle, {useConstantDwellDuringCranking == 0} dialog = postCrankingEnrichment, "Post-cranking short-time fuel enrichment (NOT IMPLEMENTED #331)" field = "Post-Cranking factor", postCrankingFactor field = "Duration", postCrankingDurationSec dialog = primingFuelPulsePanel, "Priming fuel pulse" field = "Duration at -40C degrees", startOfCrankingPrimingPulse field = "Falloff temperature", primeInjFalloffTemperature ; Cranking->Cranking Settings dialog = crankingDialog, "Cranking Settings" field = "Cranking RPM limit", cranking_rpm field = "Enable cylinder cleanup", isCylinderCleanupEnabled field = "" field = "Enable faster engine spin-up", isFasterEngineSpinUpEnabled panel = primingFuelPulsePanel panel = crankingFuel panel = crankingIgnition panel = crankingIAC panel = postCrankingEnrichment dialog = EngineLoadAccelPanel, "Engine Load (alpha version)" field = "Length", engineLoadAccelLength field = "Accel threshold", engineLoadAccelEnrichmentThreshold field = "Accel multiplier", engineLoadAccelEnrichmentMultiplier field = "Decel threshold", engineLoadDecelEnleanmentThreshold field = "Decel multiplier", engineLoadDecelEnleanmentMultiplier dialog = TpsAccelPanel, "TPS" field = "Set 'Debug Mode' to see detailed 'TPS acceleration enrichment' diagnostics" field = "Length", tpsAccelLength 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 = "evaporation time constant / tau", wwaeTau field = "added to wall coef / beta", wwaeBeta ; Tuning->AccelEnrichment dialog = AccelEnrich, "Accel/Decel Enrichment" panel = TpsAccelPanel panel = WallWettingAccelPanel panel = EngineLoadAccelPanel field = "No accel after RPM hard limit", noAccelAfterHardLimitPeriodSecs ; Flex Logic dialog = fsioIO, "Outputs" field = "output #1", fsioOutputPins1 field = "output #2", fsioOutputPins2 field = "output #3", fsioOutputPins3 field = "output #4", fsioOutputPins4 field = "output #5", fsioOutputPins5 field = "output #6", fsioOutputPins6 field = "output #7", fsioOutputPins7 field = "output #8", fsioOutputPins8 field = "output #9", fsioOutputPins9 field = "output #10", fsioOutputPins10 field = "output #11", fsioOutputPins11 field = "output #12", fsioOutputPins12 field = "output #13", fsioOutputPins13 field = "output #14", fsioOutputPins14 field = "output #15", fsioOutputPins15 field = "output #16", fsioOutputPins16 field = "aux valve #1", auxValves1 field = "aux valve #2", auxValves2 field = "" field = "" dialog = fsioFrequency, "Frequency" field = "freq #1", fsioFrequency1 field = "freq #2", fsioFrequency2 field = "freq #3", fsioFrequency3 field = "freq #4", fsioFrequency4 field = "freq #5", fsioFrequency5 field = "freq #6", fsioFrequency6 field = "freq #7", fsioFrequency7 field = "freq #8", fsioFrequency8 field = "freq #9", fsioFrequency9 field = "freq #10", fsioFrequency10 field = "freq #11", fsioFrequency11 field = "freq #12", fsioFrequency12 field = "freq #13", fsioFrequency13 field = "freq #14", fsioFrequency14 field = "freq #15", fsioFrequency15 field = "freq #16", fsioFrequency16 field = "" field = "" dialog = fsioSetting, "Setting" field = "Set number is not associated with the output number." field = "Set number, only the cell number with some numbers." field = "set #1", fsio_setting1 field = "set #2", fsio_setting2 field = "set #3", fsio_setting3 field = "set #4", fsio_setting4 field = "set #5", fsio_setting5 field = "set #6", fsio_setting6 field = "set #7", fsio_setting7 field = "set #8", fsio_setting8 field = "set #9", fsio_setting9 field = "set #10", fsio_setting10 field = "set #11", fsio_setting11 field = "set #12", fsio_setting12 field = "set #13", fsio_setting13 field = "set #14", fsio_setting14 field = "set #15", fsio_setting15 field = "set #16", fsio_setting16 dialog = fsioOutputsDialog, "FSIO outputs", border panel = fsioIO, West panel = fsioFrequency, Center panel = fsioSetting, East dialog = fsioFormulas, "FSIO Formulas" field = "!FSIO uses Reverse Polish Notation. Please read http://rusefi.com/s/fsio" field = "#1", fsioFormulas1 field = "#2", fsioFormulas2 field = "#3", fsioFormulas3 field = "use FSIO #4 for serious engine warning",useFSIO4ForSeriousEngineWarning field = "#4", fsioFormulas4 field = "use FSIO #5 for critical engine stop", useFSIO5ForCriticalIssueEngineStop field = "#5", fsioFormulas5 field = "#6", fsioFormulas6 field = "#7", fsioFormulas7 field = "use FSIO #8 for servo #1", useFSIO8ForServo1 field = "#8", fsioFormulas8 field = "use FSIO #9 for servo #2", useFSIO9ForServo2 field = "#9", fsioFormulas9 field = "use FSIO #10 for servo #3", useFSIO10ForServo3 field = "#10", fsioFormulas10 field = "use FSIO #11 for servo #4", useFSIO11ForServo4 field = "#11", fsioFormulas11 field = "use FSIO #12 for servo #5", useFSIO12ForServo5 field = "use FSIO #12 idle offset", useFSIO12ForIdleOffset field = "#12", fsioFormulas12 field = "use FSIO #13 idle min value", useFSIO13ForIdleMinValue field = "#13", fsioFormulas13 field = "#14", fsioFormulas14 field = "use FSIO #15 for target idle RPM adjustment", useFSIO15ForIdleRpmAdjustment field = "#15", fsioFormulas15 field = "use FSIO #16 for timing adjustment", useFSIO16ForTimingAdjustment field = "#16", fsioFormulas16 dialog = fsioInputsDialog, "FSIO inputs" field = "ADC #1", fsioAdc1 field = "ADC #2", fsioAdc2 field = "ADC #3", fsioAdc3 field = "ADC #4", fsioAdc4 help = veTableDialogHelp, "Volumetric Efficiency" text = "Volumetric Efficiency is used to calculate fuel in Speed Density mode" webHelp = "https://rusefi.com/s/fuel" help = fuelHelp, "Fuel Control" text = "More about fuel control on the web" webHelp = "https://rusefi.com/s/fuel" help = etbHelp, "ETB Control" text = "More about electronic throttle body on the web" webHelp = "https://rusefi.com/s/etb" 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, {throttlePedalPositionAdcChannel != 16} field = "iFactor", etb_iFactor, {throttlePedalPositionAdcChannel != 16} field = "dFactor", etb_dFactor, {throttlePedalPositionAdcChannel != 16} field = "offset", etb_offset, {throttlePedalPositionAdcChannel != 16} field = "control period", etb_periodMs, {throttlePedalPositionAdcChannel != 16} field = "pid min", etb_minValue, {throttlePedalPositionAdcChannel != 16} field = "pid max", etb_maxValue, {throttlePedalPositionAdcChannel != 16} field = "iTermMin", etb_iTermMin, {throttlePedalPositionAdcChannel != 16} field = "iTermMax", etb_iTermMax, {throttlePedalPositionAdcChannel != 16} dialog = etbDialogLeft field = "https://rusefi.com/s/etb" field = "Detailed status in console", isVerboseETB field = "Pause ETB control", pauseEtbControl field = "Throttle Pedal Up", throttlePedalUpVoltage field = "Throttle Pedal Wide Open", throttlePedalWOTVoltage field = "PWM Frequency", etbFreq, {throttlePedalPositionAdcChannel != 16} field = etbCalibrationOnStart, etbCalibrationOnStart field = "No1 Direction #1", etb1_directionPin1, {throttlePedalPositionAdcChannel != 16} field = "No1 Direction #2", etb1_directionPin2, {throttlePedalPositionAdcChannel != 16} field = "Two-wire mode", etb1_use_two_wires, {throttlePedalPositionAdcChannel != 16} field = "No1 Control #1", etb1_controlPin1, {throttlePedalPositionAdcChannel != 16 && etb1_use_two_wires == 0} field = "No2 Direction #1", etb2_directionPin1, {throttlePedalPositionAdcChannel != 16} field = "No2 Direction #2", etb2_directionPin2, {throttlePedalPositionAdcChannel != 16} field = "Two-wire mode", etb2_use_two_wires, {throttlePedalPositionAdcChannel != 16} field = "No2 Control #1", etb2_controlPin1, {throttlePedalPositionAdcChannel != 16 && etb2_use_two_wires == 0} panel = etbPidDialog dialog = etbDialogRight field = "!https://rusefi.com/s/debugmode" field = "Neutral Position", etbNeutralPosition field = "Debug mode", debugMode field = "use ETB for idle", useETBforIdleControl field = "ETB idle maximum angle", etbIdleRange field = "Press buttons to calibrate sensors" field = "You would have to remove air filter to move throttle manually" commandButton = "TPS#1 closed position", cmd_calibrate_tps_1_closed commandButton = "TPS#1 wide open position", cmd_calibrate_tps_1_wot field = "Not many vehicles have two throttle bodies but some do" commandButton = "TPS#2 closed position", cmd_calibrate_tps_2_closed commandButton = "TPS#2 wide open position", cmd_calibrate_tps_2_wot commandButton = "Pedal Up", cmd_calibrate_pedal_up commandButton = "Pedal Down", cmd_calibrate_pedal_down dialog = etbDialog, "Electronic Throttle Body (beta)", border topicHelp = "etbHelp" panel = etbDialogLeft, West panel = etbDialogRight, East dialog = testSpark, "Spark" commandButton = "Spark #1", cmd_test_spk1 commandButton = "Spark #2", cmd_test_spk2 commandButton = "Spark #3", cmd_test_spk3 commandButton = "Spark #4", cmd_test_spk4 commandButton = "Spark #5", cmd_test_spk5 commandButton = "Spark #6", cmd_test_spk6 commandButton = "Spark #7", cmd_test_spk7 commandButton = "Spark #8", cmd_test_spk8 dialog = testInjectors, "Fuel" commandButton = "Injector #1", cmd_test_inj1 commandButton = "Injector #2", cmd_test_inj2 commandButton = "Injector #3", cmd_test_inj3 commandButton = "Injector #4", cmd_test_inj4 commandButton = "Injector #5", cmd_test_inj5 commandButton = "Injector #6", cmd_test_inj6 commandButton = "Injector #7", cmd_test_inj7 commandButton = "Injector #8", cmd_test_inj8 dialog = testMisc, "Misc" commandButton = "Come To Pit", cmd_call_from_pit commandButton = "Fuel Pump", cmd_test_fuel_pump commandButton = "Radiator Fan", cmd_test_radiator_fan commandButton = "Check Engine", cmd_test_check_engine_light commandButton = "Idle Air Valve", cmd_test_idle_valve commandButton = "A/C Relay", cmd_test_ac_relay commandButton = "Stop Engine", cmd_stop_engine commandButton = "Reset ECU", cmd_reset_controller commandButton = "Reset to DFU", cmd_dfu ; bench test dialog = ioTest, "Bench Test & Commands", border panel = testSpark, West panel = testInjectors, Center panel = testMisc, East 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 = "Miata NA6 Stage 0", cmd_set_engine_type_Miata_NA6_VAF commandButton = "Miata NA6 Stage 1", cmd_set_engine_type_Miata_NA6_MAP commandButton = "Miata NB2 MAP", cmd_set_engine_type_Miata_NA2 commandButton = "ETB test bench", cmd_set_engine_type_etb_test commandButton = "TLE8888B test bench", cmd_set_engine_type_8888_test commandButton = "Reset firmware settings", cmd_set_engine_type_default ; Board->ECU stimulator dialog = ecuStimulator, "ECU stimulator" field = "Trigger Simulator", triggerSimulatorFrequency field = "self-stimulation", directSelfStimulation 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 = "" field = "trigger stimulator pin #1", triggerSimulatorPins1 field = "trigger stimulator pin mode #1", triggerSimulatorPinModes1 field = "trigger stimulator pin #2", triggerSimulatorPins2 field = "trigger stimulator pin mode #2", triggerSimulatorPinModes2 field = "trigger stimulator pin #3", triggerSimulatorPins3 field = "trigger stimulator pin mode #3", triggerSimulatorPinModes3 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 ; Racing Features->Launch Control dialog = smLaunchControl, "Launch Control Settings NOT WORKING" field = "RPM Step1 Limit", step1rpm field = "Launch RPM Window" step1RpmWindow field = "Step1 Ignition Advance", step1timing field = "Use Spark Cut", step1SparkCutEnable field = "Use Fuel Cut", step1fuelCutEnable field = "clutchDownPin", clutchDownPin field = "clutchUpPin", clutchUpPin field = "brakePedalPin", brakePedalPin dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled field = "Cutoff Activation RPM High Limit", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} field = "Cutoff Deactivation RPM Low Limit", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} field = "TPS Deactivation Threshold", coastingFuelCutTps, {coastingFuelCutEnabled == 1} field = "CLT Activation Threshold", coastingFuelCutClt, {coastingFuelCutEnabled == 1} field = "MAP Deactivation Threshold", coastingFuelCutMap, {coastingFuelCutEnabled == 1} dialog = parkingLot, "Experimental/Broken" field = "#System hacks" field = "Global fuel correction", globalFuelCorrection field = "Ignition Math Logic @", ignMathCalculateAtIndex field = "MAP Averaging Logic @", mapAveragingSchedulingAtIndex field = "Target temperature", postCrankingTargetClt [Tools] ;addTool = toolName, PanelName addTool = veTableGenerator, "VE Table Generator", veTableTbl addTool = afrTableGenerator, "AFR Table Generator", afrTableTbl