; this is TunerStudio project for www.rusefi.com DIY engine management system ; 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 [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. signature = "MShift v0.02" ; 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" 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 [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 = tachometer gauge2 = afr1Gauge gauge3 = mapGaugeValue gauge4 = veValueGauge [VeAnalyze] ; tableName, lambdaTargetTableName, lambdaChannel, egoCorrectionChannel, activeCondition #if tuneByMAF veAnalyzeMap = fuelTableTbl, afrTableTbl, AFRactual, egoCorrection, { 1 } #else veAnalyzeMap = veTableTbl, afrTableTbl, AFRactual, egoCorrection, { 1 } #endif ;lambdaTargetTables = afrTable1Tbl, afrTable2Tbl, afrTSCustom ; filter = Name, "DisplayName", outputChannel, operator, defaultVal, userAdjustable filter = minRPMFilter, "Minimum RPM", rpm, < , 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", TPS, > , 1, , true ;[VeAnalyze] ; fuelAnalyzeMap = fuelTableTbl, afrTableTbl, AFRactual, egoCorrection , { 1 } ; filter = minRPMFilter, "Minimum RPM", rpm, < , 500, , true [OutputChannels] ; see TS_FILE_VERSION in firmware code fileVersion = { 20161225 } ochGetCommand = "O" ; see TS_OUTPUT_SIZE in console source code ochBlockSize = 356 rpm = scalar, U32, 0, "RPM", 1, 0.00000 #if CELSIUS coolant = scalar, F32, 4, "°C", 1, 0.0 #else coolant = scalar, F32, 4, "°F", {9/5}, 17.77777 #endif #if CELSIUS intake = scalar, F32, 8, "°C", 1, 0.0 #else intake = scalar, F32, 8, "°F", {9/5}, 17.77777 #endif TPS = scalar, F32, 12, "%", 1, 0 MAF = scalar, F32, 16, "V", 1, 0 AFRactual = 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; alignmet = scalar, U16, 34, "al", 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 crankingFuel = 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 pulseWidth = 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"; 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, "°C", 1, 0 egt2 = scalar, S16, 90, "°C", 1, 0 egt3 = scalar, S16, 92, "°C", 1, 0 egt4 = scalar, S16, 94, "°C", 1, 0 egt5 = scalar, S16, 96, "°C", 1, 0 egt6 = scalar, S16, 98, "°C", 1, 0 egt7 = scalar, S16, 100, "°C", 1, 0 egt8 = scalar, S16, 102, "°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 pedalPosition = scalar, F32, 136, "%", 1, 0 injectorDutyCycle= scalar, F32, 140, "%", 1, 0 knockCount = scalar, U32, 144, "counter", 1, 0 ; fuelLevel 148 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 curIdlePosition = scalar, F32, 172, "percent", 1, 0 cltCorrection = scalar, F32, 184, "%", 1, 0 debugIntField1 = scalar, U32, 192, "val", 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, U32, 216, "val", 1, 0.0; debugIntField3 = scalar, U32, 220, "val", 1, 0.0; engineLoadDelta = scalar,F32, 228, "value", 1, 0 speedToRpmRatio = scalar,F32, 232, "value", 1, 0 warningCounter = scalar,U32, 236, "count", 1, 0 lastErrorCode = scalar,U32, 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 egoCorrection = { 100 } time = { timeNow } ; engineLoad = { fuleAlgorithm == 0 ? MAF : TPS } [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, rpm yBins = knockNoise gauge = rpm 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, rpm yBins = sparkDwellValues gauge = rpm curve = map_samplingAngleCurve, "MAP Sampling Start Angle" columnLabel = "RPM", "Angle" xAxis = 0, 8000, 10 yAxis = 0, 180, 10 xBins = map_samplingAngleBins, rpm yBins = map_samplingAngle gauge = rpm curve = map_samplingWindowCurve, "MAP Sampling Duration" columnLabel = "RPM", "Window" xAxis = 0, 8000, 10 yAxis = 0, 180, 10 xBins = map_samplingWindowBins, rpm yBins = map_samplingWindow gauge = rpm 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 Settings" columnLabel = "Voltage", "kg/hour" xAxis = -1, 6, 10 yAxis = -30, 1300, 10 xBins = mafDecodingBins, MAF yBins = mafDecoding gauge = mafGaugeVolts curve = iatFuelCorrCurve, "Intake air temperature fuel Multiplier" columnLabel = "Coolant", "Multiplier" xAxis = -40, 120, 10 yAxis = 0, 5, 10 xBins = iatFuelCorrBins, intake yBins = iatFuelCorr gauge = IATGauge curve = cltTimingCorrCurve, "Warmup timing correction" columnLabel = "Coolant", "Extra" xAxis = -40, 120, 10 yAxis = 0, 50, 100 xBins = cltTimingBins, coolant yBins = cltTimingExtra gauge = CLTGauge curve = cltFuelCorrCurve, "Warmup fuel manual Multiplier" columnLabel = "Coolant", "Multiplier" xAxis = -40, 120, 10 yAxis = 0, 50, 100 xBins = cltFuelCorrBins, coolant yBins = cltFuelCorr gauge = CLTGauge curve = crankingCltCurve, "Cranking Coolant Temperature multiplier" columnLabel = "Coolant", "Multiplier" xAxis = -40, 120, 10 yAxis = 0, 5, 10 xBins = crankingFuelBins, coolant yBins = crankingFuelCoef gauge = CLTGauge curve = crankingTpsCurve, "Cranking TPS Multiplier" columnLabel = "TPS", "Multiplier" xAxis = -40, 120, 10 yAxis = 0, 5, 10 xBins = crankingTpsBins, TPS yBins = crankingTpsCoef gauge = throttleGauge curve = crankingDurationCurve, "Cranking Duration Multiplier" columnLabel = "Engine Cycle", "Multiplier" xAxis = 0, 1000, 10 yAxis = 0, 5, 10 xBins = crankingCycleBins yBins = crankingCycleCoef curve = cltIdleCurve, "Warmup IAC position manual Multiplier" columnLabel = "Coolant", "Multiplier" xAxis = -40, 120, 10 yAxis = 0, 50, 100 xBins = cltIdleCorrBins, coolant yBins = cltIdleCorr gauge = CLTGauge curve = warmupTargetAfrCurve, "CLT-based target AFR" columnLabel = "Coolant", "Correction" xAxis = -40, 120, 10 yAxis = 0, 50, 100 xBins = warmupTargetAfrBins, coolant yBins = warmupTargetAfr gauge = CLTGauge [TableEditor] ; table_id, map3d_id, "title", page table = fuelTableTbl, fuelTableMap, "Fuel Table", 1 ; constant, variable xBins = fuelRpmBins, rpm yBins = fuelLoadBins, engineLoad zBins = fuelTable ; gridHeight = 2.0 gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel", 1 xBins = tpsTpsAccelFromRpmBins, TPS yBins = tpsTpsAccelToRpmBins, TPS zBins = tpsTpsAccelTable table = fsioTable1Tbl, fsioTable1Map, "FSIO Table #1", 1 xBins = fsioTable1RpmBins, rpm yBins = fsioTable1LoadBins, engineLoad zBins = fsioTable1 table = fsioTable2Tbl, fsioTable2Map, "FSIO Table #2", 1 xBins = fsioTable2RpmBins, rpm yBins = fsioTable2LoadBins, engineLoad zBins = fsioTable2 table = fsioTable3Tbl, fsioTable3Map, "FSIO Table #3", 1 xBins = fsioTable3RpmBins, rpm yBins = fsioTable3LoadBins, engineLoad zBins = fsioTable3 table = fsioTable4Tbl, fsioTable4Map, "FSIO Table #4", 1 xBins = fsioTable4RpmBins, rpm yBins = fsioTable4LoadBins, engineLoad zBins = fsioTable4 table = baroCorrTbl, baroCorrMap, "Baro Correction", 1 ; constant, variable xBins = baroCorrRpmBins, rpm 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, rpm yBins = ignitionLoadBins, engineLoad zBins = ignitionTable ; gridHeight = 2.0 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, rpm 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, rpm yBins = veLoadBins, MAPValue 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 ; constant, variable xBins = injPhaseRpmBins, rpm yBins = injPhaseLoadBins, engineLoad zBins = injectionPhase ; 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, rpm yBins = afrLoadBins, MAPValue zBins = afrTable ; gridHeight = 2.0 gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" [GaugeConfigurations] ;Name Var Title Units Lo Hi LoD LoW HiW HiD vd ld tachometer = rpm, "Engine Speed", "RPM", 0, 15000, 200, 500, 6000, 6000, 0, 0 #if CELSIUS CLTGauge = coolant, "Coolant Temp", "°C", -40, 140, -15, 1, 95, 110, 1, 1 #else CLTGauge = coolant, "Coolant Temp", "°F", -40, 285, 5, 35, 205, 230, 1, 1 #endif #if CELSIUS IATGauge = intake, "Intake Air Temp", "°C", -40, 140, -15, 1, 95, 110, 1, 1 #else IATGauge = intake, "Intake Air Temp", "°F", -40, 285, 5, 35, 205, 230, 1, 1 #endif #if CELSIUS tChargeGauge = tCharge, "Charge Temp", "°C", -40, 140, -15, 1, 95, 110, 1, 1 #else tChargeGauge = tCharge, "Charge Temp", "°F", -40, 285, 5, 35, 205, 230, 1, 1 #endif throttleGauge = TPS, "Throttle Position", "%", 0, 100, 0, 0, 100, 100, 2, 2 afr1Gauge = AFRactual, "Air:Fuel Ratio 1", "", 10, 19.4, 12, 13, 15, 16, 2, 2 mafGaugeVolts = MAF, "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 tpsADCGauge = tpsADC, "tps ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 atmPresCGauge = baroPressure, "Baro", "kPa", 0, 1024, 0, 0, 0, 0, 0, 0 mapGaugeValue = MAPValue, "MAP", "kPa", 0, 300, 10, 10, 200, 200, 0, 0 ignadvGauge = ignitionAdvance, "Ignition Advance 1", "degrees", -100, 100, -999, -999, 999, 999, 1, 1 ; warmupEnrichGauge = warmupEnrich, "Warmup Enrichment", "%", 100, 150, -1, -1, 101, 105, 0, 0 ; accelEnrichGauge = accDecEnrich, "Accel Enrich", "%", 50, 150, -1, -1, 999, 999, 0, 0 dwellGauge = sparkDwellValue, "Dwell", "mSec", 0, 10, 0.5, 1.0, 6.0, 8.0, 1, 1 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 vssGauge = vehicleSpeedKph, "Speed", "kmh", 0, 200, 0, 1, 3, 4, 1, 1 rpmAccelerationGa = rpmAcceleration, "rpm delta", "dRpm", 0, 3, 0, 1, 3, 4, 1, 1 massAirFlowValueGa = massAirFlowValue,"Air Flow", "kg/hr", 0, 50, -999, -999, 999, 999, 1, 1 veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 baroCorrectionGauge = baroCorrection,"BaroCorr", "%", 0, 120, 10, 10, 100, 100, 1, 1 pedalPositionGauge = pedalPosition,"Pedal Position", "%", 0, 120, 10, 10, 100, 100, 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 triggerErrorsCounterGauge = triggerErrorsCounter, "trg err", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 pulseWidthGauge = pulseWidth, "fuel final squirt, per injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 baseFuelGauge = baseFuel, "fuel: base duration, before corr", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 fuelPidCorrectionGauge = fuelPidCorrection, "fuel: closed loop correction", "mSec", -11, 11, 1.0, 1.2, 20, 25, 3, 1 coilDutyCycleGauge = coilDutyCycle, "dwell: duty cycle", "perc", -11, 11, 1.0, 1.2, 100, 100, 3, 1 crankingFuelGauge = crankingFuel, "fuel: crank Width", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 iatCorrectionGauge = iatCorrection, "fuel: IAT correction", "mult", 0, 3, 0, 0, 3, 3, 2, 2 cltCorrectionGauge = cltCorrection, "fuel: CLT correction", "mult", 0, 3, 0, 0, 3, 3, 2, 2 injectorDutyCycleGauge=injectorDutyCycle, "fuel: injectorDutyCycle","%", 0, 120, 10, 10, 100, 100, 1, 1 engineLoadDeltaGauge = engineLoadDelta,"fuel: load change","value", 0, 120, 10, 10, 100, 100, 1, 1 engineLoadAccelExtraGauge = engineLoadAccelExtra,"fuel: load extra","value", 0, 120, 10, 10, 100, 100, 1, 1 deltaTpsGauge = deltaTps, "fuel: TPS change", "", 0, 120, 10, 10, 100, 100, 1, 1 tpsAccelFuelGauge = tpsAccelFuel,"fuel: TPS enrich", "ms", 0, 120, 10, 10, 100, 100, 1, 1 wallFuelAmountGauge = wallFuelAmount, "fuel: wall amount", "ms", 0, 100, 0, 0, 100, 100, 0, 0 wallFuelCorrectionGauge = wallFuelCorrection, "fuel: wall correction extra", "ms", 0, 100, 0, 0, 100, 100, 0, 0 curIdlePositionGauge = curIdlePosition, "idle position", "%", 0, 100, 0, 0, 100, 100, 0, 0 debugFloatField1Gauge = debugFloatField1, "debug f1", "%", 0, 100, 0, 0, 100, 100, 4, 4 debugFloatField2Gauge = debugFloatField2, "debug f2", "%", 0, 100, 0, 0, 100, 100, 4, 4 debugFloatField3Gauge = debugFloatField3, "debug f3", "%", 0, 100, 0, 0, 100, 100, 4, 4 debugFloatField4Gauge = debugFloatField4, "debug f4", "%", 0, 100, 0, 0, 100, 100, 4, 4 debugFloatField5Gauge = debugFloatField5, "debug f5", "%", 0, 100, 0, 0, 100, 100, 4, 4 debugFloatField6Gauge = debugFloatField6, "debug f6", "%", 0, 100, 0, 0, 100, 100, 4, 4 debugFloatField7Gauge = debugFloatField7, "debug f7", "%", 0, 100, 0, 0, 100, 100, 4, 4 debugIntField1Gauge = debugIntField1, "debug i1", "%", 0, 100, 0, 0, 100, 100, 0, 0 debugIntField2Gauge = debugIntField2, "debug i2", "%", 0, 100, 0, 0, 100, 100, 0, 0 debugIntField3Gauge = debugIntField3, "debug i3", "%", 0, 100, 0, 0, 100, 100, 0, 0 speedToRpmRatioGauge = speedToRpmRatio, "speed2rpm", "", 0, 100, 0, 0, 100, 100, 4, 4 warningCounterGauge = warningCounter, "warn", "", 0, 100, 0, 0, 100, 100, 0, 0 lastErrorCodeGauge = lastErrorCode, "error", "", 0, 8000, 0, 0, 8000, 8000, 0, 0 internalMcuTemperatureGauge = internalMcuTemperature, "internal temperature", "C", 0, 100, 0, 0, 100, 100, 0, 0 vvtPositionGauge = vvtPosition, "VVT position", "deg", 0, 100, 0, 0, 720, 720, 0, 0 [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 = tachometer gauge2 = CLTGauge gauge3 = throttleGauge gauge4 = mafGaugeVolts 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 }, "no Burn", "Need Burn", 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, red, black indicator = { brakePedalIndicator }, "brake", "brake down", white, black, red, 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 = rpm, "RPM", int, "%d" entry = firmwareVersion, @@GAUGE_NAME_VERSION@@, int, "%d" entry = coolant, "CLT", float, "%.2f" entry = intake, "IAT", float, "%.2f" entry = TPS, "TPS", float, "%.2f" entry = MAF, "MAF", float, "%.2f" entry = MAPValue, "MAP", float, "%.1f" entry = AFRactual, "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 = vehicleSpeedKph, @@GAUGE_NAME_VVS@@, float, "%.2f" entry = speedToRpmRatio, "s2rpm", float, "%.3f" entry = rpmAcceleration, "dRPM", float, "%.3f" entry = massAirFlowValue,"airMass", float, "%.3f" entry = pedalPosition, "pedal", float, "%.3f" entry = triggerErrorsCounter, "trg err",int, "%d" entry = curIdlePosition, "idle position", float, "%.3f" entry = pulseWidth, "fuel: pulse", float, "%.3f" entry = baseFuel, "fuel: base", float, "%.2f" entry = fuelPidCorrection,"fuel: pid", float, "%.2f" entry = veValue, @@GAUGE_NAME_FUEL_VR@@, float, "%.3f" entry = injectorDutyCycle,@@GAUGE_NAME_FUEL_INJ_DUTY@@,float,"%.3f" entry = coilDutyCycle, @@GAUGE_NAME_DWELL_DUTY@@, float,"%.3f" entry = engineLoadAccelExtra, @@GAUGE_NAME_FUEL_EL_EXTRA@@,float, "%.3f" entry = engineLoadDelta, "fuel: load change",float, "%.3f" entry = deltaTps, "fuel: TPS change",float, "%.3f" entry = tpsAccelFuel, @@GAUGE_NAME_FUEL_TPS_EXTRA@@, float, "%.3f" entry = wallFuelCorrection,"fuel: wall corr ms", float, "%.3f" entry = wallFuelAmount, "fuel: wall amount", float, "%.3f" entry = baroCorrection, "baroCorrection",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" ; is there a way to log parameter? entry = debugMode, "debugMode",int,"%d" ; Alternator_PID: alternator duty cycle ; DBG_TPS_ACCEL: from TPS entry = debugFloatField1, "debug f1",float,"%.4f" ; Alternator_PID: current integration term ; DBG_TPS_ACCEL: to TPS entry = debugFloatField2, "debug f2",float,"%.4f" ; Alternator_PID: previous error ; DBG_TPS_ACCEL: tps<>tps table value entry = debugFloatField3, "debug f3",float,"%.4f" ; Alternator_PID: I setting ; DBG_TPS_ACCEL: extra fuel entry = debugFloatField4, "debug f4",float,"%.4f" ; Alternator_PID: D setting entry = debugFloatField5, "debug f5",float,"%.4f" ; Alternator_PID: dTerm entry = debugFloatField6, "debug f6",float,"%.4f" entry = debugFloatField7, "debug f7",float,"%.4f" ; Alternator_PID: P setting entry = debugIntField1, "debug i1",int,"%d" ; Alternator_PID: offset setting entry = debugIntField2, "debug i2",int,"%d" ; Alternator_PID: PID reset counter entry = debugIntField3, "debug i3",int,"%d" entry = engineMode, "mode",int,"%d" entry = warningCounter, @@GAUGE_NAME_WARNING_COUNTER@@,int,"%d" entry = lastErrorCode, @@GAUGE_NAME_WARNING_LAST@@,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" ; tpsADC = U16, "ADC", ; alignmet = U16, "al", ; atmPres = F32, "pres", ; crankingFuel = F32, "ms", ; tCharge = F32, "T", ; sparkDwell = F32, "MAP", ; warmUpEnrich = F32, "%", [Menu] menu = "Engine" subMenu = engineChars, "Base Engine Settings" subMenu = triggerConfiguration, "Trigger Configuration" subMenu = std_separator subMenu = injectionSettings, "Injection Settings" subMenu = ignitionSettings, "Ignition Settings" subMenu = std_separator subMenu = analogInputs, "Analog inputs" subMenu = cltSensor, "CLT Sensor Settings" subMenu = iatSensor, "IAT Sensor Settings" subMenu = auxTempSensor1Sensor, "AuxTemp1 Sensor Settings" subMenu = auxTempSensor2Sensor, "AuxTemp2 Sensor Settings" subMenu = mapSettings, "MAP Sensor Settings" subMenu = mafDecodingCurve, "MAF Sensor Settings" subMenu = egoSettings, "EGO Sensor Settings" subMenu = egtInputs, "EGT inputs" subMenu = energySystems, "Battery and Alternator Settings" subMenu = auxPidDialog, "Aux PID" subMenu = speedSensor, "Speed Sensor Settings" subMenu = tachSettings, "Tachometer output" subMenu = std_separator subMenu = fanSetting, "Fan Settings" subMenu = idleSettings, "Idle Settings" subMenu = mainRealay, "Main Relay Settings" subMenu = fuelPump, "Fuel Pump Settings" subMenu = malfunction, "MIL Settings" subMenu = hipFunction, "hip9011 Settings (knock decoder)" subMenu = cj125Function, "CJ125 Settings (wbo decoder)" subMenu = spiFunction, "SPI Settings" subMenu = etbDialog, "Electronic Thtottle Body (alpha)" menu = "Tuning" subMenu = generalSettings, "General" subMenu = monitoringSettings, "rusEfi Console Settings" subMenu = std_separator subMenu = crankingDialog, "Cranking" subMenu = crankingCltCurve, "Cranking Coolant Temp Multiplier" subMenu = crankingTpsCurve, "Cranking TPS Multiplier" subMenu = crankingDurationCurve, "Cranking Duration Multiplier" subMenu = std_separator subMenu = warmupFuelDialog, "Warmup fuel closed-loop" subMenu = cltFuelCorrCurve, "Warmup fuel manual Multiplier", 0, {useWarmupPidAfr == 0} subMenu = warmupTargetAfrCurve, "Warmup fuel auto correction AFR target", 0, {useWarmupPidAfr == 1} subMenu = cltIdleCurve, "Warmup IAC position manual Multiplier" subMenu = cltTimingCorrCurve, "Warmup timing correction" subMenu = std_separator subMenu = fuelTableTbl, "Fuel Table", 0, {fuelAlgorithm != 3} subMenu = veTableTbl, "VE Table", 0, {fuelAlgorithm == 3} subMenu = afrTableTbl, "Target AFR Table", 0, {fuelAlgorithm == 3} subMenu = iatFuelCorrCurve, "Intake air temperature fuel Multiplier" subMenu = injPhaseTableTbl, "Injection Phase" subMenu = mapAccelTaper, "Engine Load Acceleration Enrichment Taper" subMenu = std_separator subMenu = fuelClosedLoopDialog, "Fuel closed-loop correction" subMenu = AccelEnrich, "Accel/Decel Enrichment/Enleanment" subMenu = tpsTpsAccelTbl, "TPS/TPS acceleration Multiplier" subMenu = std_separator subMenu = ignitionTableTbl, "Ignition Table" subMenu = ignitionIatCorrTableTbl, "Ignition Intake Air Temp correction" subMenu = baroCorrTbl, "Baro Correction", 0, {fuelAlgorithm == 3} subMenu = std_separator subMenu = std_realtime, "&Realtime Display", 0 subMenu = tChargeSettings, "tCharge Settings" menu = "3D Map Tuning" ; subMenu = std_realtime, "Realtime Display" ; subMenu = std_warmup, "Warmup Wizard" subMenu = fuelTableMap, "Fuel Table", 0, {fuelAlgorithm != 3} subMenu = veTableMap, "VE Table", 0, {fuelAlgorithm == 3} subMenu = afrTableMap, "Target AFR Table", 0, {fuelAlgorithm == 3} subMenu = injPhaseTableMap, "Injection Phase" subMenu = ignitionTableMap, "Ignition Table" subMenu = ignitionIatCorrTableMap, "Ignition Intake Air Temp correction" menu = "Racing Features" subMenu = smLaunchControl, "Launch Control" subMenu = std_separator menu = "Board" subMenu = fsioInputsDialog, "FSIO inputs" 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 = std_separator subMenu = connection, "Connection" subMenu = joystickPanel, "Joystick" subMenu = std_separator subMenu = ioTest, "I-O Test" subMenu = ecuStimulator, "ECU stimulator" subMenu = allPins, "Full pinout" [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_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" [UserDefined] dialog = tChargeSettings, "tChart Settings" field = "MinRpm MinTps", tChargeMinRpmMinTps field = "MinRpm MaxTps", tChargeMinRpmMaxTps field = "MaxRpm MinTps", tChargeMaxRpmMinTps field = "MaxRpm MaxTps", tChargeMaxRpmMaxTps dialog = baseInjection, "Injection" field = "Enabled", isInjectionEnabled field = "Mode", injectionMode, {isInjectionEnabled == 1} field = "#Batch injection with individual wiring" field = "Two wire batch", twoWireBatchInjection, {isInjectionEnabled == 1 && injectionMode == 2} dialog = baseIgnition, "Ignition" 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 = "Fixed Timinig", fixedTiming, {isIgnitionEnabled == 1 && timingMode == 1} ; Engine->Base Engine Settings dialog = engineChars, "Base Engine Settings" ; field = "Engine Preset", engineType field = "Number of Cylinders", cylindersCount field = "Engine Displacement", displacement field = "debug fields", debugMode field = "" field = "Firing Order", firingOrder panel = baseInjection panel = baseIgnition ; Engine->Trigger configuration dialog = triggerConfiguration_settings, "Settings Trigger" field = "Trigger type", trigger_type field = "Operation mode", operationMode 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 = "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 = "!ECU reboot needed to apply pin assignment" field = "#Cam is primary if you have cam sensor" field = "Primary input channel", triggerInputPins1 field = "Secondary channel", triggerInputPins2, { trigger_type != 0 && trigger_type != 8 && trigger_type != 9 && trigger_type != 18 && trigger_type != 20} field = "Cam Sync/VVT input", camInput 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 = "NB2 from temp", nb2ratioFrom field = "NB2 to temp", nb2ratioTo field = "nbVvtIndex", nbVvtIndex field = "Trigger error LED", triggerErrorPin field = "Trigger error LED mode", triggerErrorPinMode field = "print sync details to console", isPrintTriggerSynchDetails dialog = triggerConfiguration panel = triggerConfiguration_settings, North panel = triggerConfiguration_IO, South ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis field = "Injector Flow", injector_flow field = "phase offset", extraInjectionOffset dialog = injIO, "Injector Output", yAxis field = "!ECU reboot needed to apply these settings" field = "injection Pin Mode", injectionPinMode field = "Injection Pin 1", injectionPins1 field = "Injection Pin 2", injectionPins2, {cylindersCount > 1} field = "Injection Pin 3", injectionPins3, {cylindersCount > 2} field = "Injection Pin 4", injectionPins4, {cylindersCount > 3} field = "Injection Pin 5 ", injectionPins5, {cylindersCount > 4} field = "Injection Pin 6 ", injectionPins6, {cylindersCount > 5} field = "Injection Pin 7 ", injectionPins7, {cylindersCount > 6} field = "Injection Pin 8 ", injectionPins8, {cylindersCount > 7} field = "Injection Pin 9 ", injectionPins9, {cylindersCount > 8} field = "Injection Pin 10 ", injectionPins10, {cylindersCount > 9} field = "Injection Pin 11 ", injectionPins11, {cylindersCount > 10} field = "Injection Pin 12 ", injectionPins12, {cylindersCount > 11} dialog = injectorSetting, "", yAxis panel = injChars, North panel = injIO, East dialog = injectionSettings, "", xAxis panel = injectorSetting, West panel = injectorsDeadTime, East dialog = ignitionCylExtra, "Ignition Cyliner Extra" 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} ; Engine->Ignition Settings dialog = ignitionOutputs, "Ignition Outputs" field = "Ignition Pin Mode", ignitionPinMode field = "Ignition Pin 1", ignitionPins1 field = "Ignition Pin 2", ignitionPins2, {(ignitionMode != 0 && cylindersCount > 1) && (ignitionMode !=2 || twoWireBatchIgnition == 1 @@ignitionPin2logic@@)} field = "Ignition Pin 3", ignitionPins3, {(ignitionMode != 0 && cylindersCount > 2) && (ignitionMode !=2 || twoWireBatchIgnition == 1 @@ignitionPin3logic@@)} field = "Ignition Pin 4", ignitionPins4, {(ignitionMode != 0 && cylindersCount > 3) && (ignitionMode !=2 || twoWireBatchIgnition == 1 @@ignitionPin4logic@@)} field = "Ignition Pin 5", ignitionPins5, {(ignitionMode != 0 && cylindersCount > 4) && (ignitionMode !=2 || twoWireBatchIgnition == 1 @@ignitionPin5logic@@)} field = "Ignition Pin 6", ignitionPins6, {(ignitionMode != 0 && cylindersCount > 5) && (ignitionMode !=2 || twoWireBatchIgnition == 1 @@ignitionPin6logic@@)} field = "Ignition Pin 7", ignitionPins7, {(ignitionMode != 0 && cylindersCount > 6) && (ignitionMode !=2 || twoWireBatchIgnition == 1 @@ignitionPin7logic@@)} field = "Ignition Pin 8", ignitionPins8, {(ignitionMode != 0 && cylindersCount > 7) && (ignitionMode !=2 || twoWireBatchIgnition == 1 @@ignitionPin8logic@@)} field = "Ignition Pin 9", ignitionPins9, {(ignitionMode != 0 && cylindersCount > 8) && (ignitionMode !=2 || twoWireBatchIgnition == 1 @@ignitionPin8logic@@)} field = "Ignition Pin 10", ignitionPins10, {(ignitionMode != 0 && cylindersCount > 9) && (ignitionMode !=2 || twoWireBatchIgnition == 1 @@ignitionPin8logic@@)} field = "Ignition Pin 11", ignitionPins11, {(ignitionMode != 0 && cylindersCount > 10) && (ignitionMode !=2 || twoWireBatchIgnition == 1 @@ignitionPin8logic@@)} field = "Ignition Pin 12", ignitionPins12, {(ignitionMode != 0 && cylindersCount > 11) && (ignitionMode !=2 || twoWireBatchIgnition == 1 @@ignitionPin8logic@@)} field = "This is useful to have tachometer working while converting from distributor" field = "Dizzy out Pin", dizzySparkOutputPin field = "Dizzy out Pin Mode", dizzySparkOutputPinMode dialog = ignitionSettings, "", xAxis panel = ignitionOutputs, West panel = dwellCorrection, Center panel = ignitionCylExtra, East ; Engine->Aux1 Thermistor Settings dialog = auxTempSensor1_thermistor, "aux1 Thermistor Settings" field = "!Here is three pairs of thermistor temperature and his resistance." field = "!Typical temperatures is -40°C, 0°C and 100°C" field = "" field = "Lowest temperature", auxTempSensor1_tempC_1 field = "Resistance @ LT", auxTempSensor1_resistance_1 field = "" field = "Middle temperature", auxTempSensor1_tempC_2 field = "Resistance @ MT", auxTempSensor1_resistance_2 field = "" field = "Highest temperature", auxTempSensor1_tempC_3 field = "Resistance @ HT", auxTempSensor1_resistance_3 dialog = auxTempSensor1Sensor_IO, "auxTempSensor1 Sensor I/O" field = "auxTempSensor1 ADC input", auxTempSensor1_adcChannel field = "Bias Resistor Value", auxTempSensor1_bias_resistor dialog = auxTempSensor1Sensor, "", yAxis panel = auxTempSensor1_thermistor, North panel = auxTempSensor1Sensor_IO, South ; Engine->Aux2 Thermistor Settings dialog = auxTempSensor2_thermistor, "aux1 Thermistor Settings" field = "!Here is three pairs of thermistor temperature and his resistance." field = "!Typical temperatures is -40°C, 0°C and 100°C" field = "" field = "Lowest temperature", auxTempSensor2_tempC_1 field = "Resistance @ LT", auxTempSensor2_resistance_1 field = "" field = "Middle temperature", auxTempSensor2_tempC_2 field = "Resistance @ MT", auxTempSensor2_resistance_2 field = "" field = "Highest temperature", auxTempSensor2_tempC_3 field = "Resistance @ HT", auxTempSensor2_resistance_3 dialog = auxTempSensor2Sensor_IO, "auxTempSensor2 Sensor I/O" field = "auxTempSensor2 ADC input", auxTempSensor2_adcChannel field = "Bias Resistor Value", auxTempSensor2_bias_resistor dialog = auxTempSensor2Sensor, "", yAxis panel = auxTempSensor2_thermistor, North panel = auxTempSensor2Sensor_IO, South dialog = allPins1 field = "MAP ADC input", map_sensor_hwChannel field = "frequencyReportingMapInputPin", frequencyReportingMapInputPin field = "CLT ADC input", clt_adcChannel field = "IAT ADC input", iat_adcChannel field = "vBatt ADC input", vbattAdcChannel field = "TPS ADC input", tpsAdcChannel field = "MAF ADC input", mafAdcChannel field = "AFR ADC input", afr_hwChannel field = "fuelLevelSensor", fuelLevelSensor field = "Baro ADC input", baroSensor_hwChannel field = "pedal Position Channel", pedalPositionChannel field = "Primary input channel", triggerInputPins1 field = "Secondary channel", triggerInputPins2 field = "Cam Sync/VVT input", camInput field = "Vehicle Speed Input pin", vehicleSpeedSensorInputPin field = "clutchDownPin", clutchDownPin field = "clutchUpPin", clutchUpPin field = "brakePedalPin", brakePedalPin dialog = allPins2 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 Step", idle_stepperStepPin field = "Idle Stepper Enable", stepperEnablePin field = "Fuel Pump Pin", fuelPumpPin field = "ETB Dir #1", etbDirectionPin1 field = "ETB Dir #2", etbDirectionPin2 field = "ETB Control #1", etbControlPin1 field = "ETB Control #2", etbControlPin2 field = "SD CS Pin", sdCardCsPin field = "Check Engine Pin", malfunctionIndicatorPin field = "Aux Pin #1", auxPidPins1 field = "Aux Pin #2", auxPidPins2 field = "Aux Pin #3", auxPidPins3 field = "Aux Pin #4", auxPidPins4 dialog = allPins3 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 = "Ignition Pin 1", ignitionPins1 field = "Ignition Pin 2", ignitionPins2 field = "Ignition Pin 3", ignitionPins3 field = "Ignition Pin 4", ignitionPins4 field = "Ignition Pin 5", ignitionPins5 field = "Ignition Pin 6", ignitionPins6 field = "Ignition Pin 7", ignitionPins7 field = "Ignition Pin 8", ignitionPins8 field = "Ignition Pin 9", ignitionPins9 field = "Ignition Pin 10", ignitionPins10 field = "Ignition Pin 11", ignitionPins11 field = "Ignition Pin 12", ignitionPins12 dialog = allPins4 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 dialog = allPins1_2, "", xAxis panel = allPins1 panel = allPins2 dialog = allPins3_4, "", xAxis panel = allPins3 panel = allPins4 dialog = allPins, "All Pins", xAxis panel = allPins1_2 panel = allPins3_4 ; Engine->CLT Thermistor Settings dialog = clt_thermistor, "CLT Thermistor Settings" field = "!Here is three pairs of thermistor temperature and his resistance." field = "!Typical temperatures is -40°C, 0°C and 100°C" field = "" field = "Lowest temperature", clt_tempC_1 field = "Resistance @ LT", clt_resistance_1 field = "" field = "Middle temperature", clt_tempC_2 field = "Resistance @ MT", clt_resistance_2 field = "" field = "Highest temperature", clt_tempC_3 field = "Resistance @ HT", clt_resistance_3 dialog = cltSensor_IO, "CLT Sensor I/O" field = "CLT ADC input", clt_adcChannel field = "Bias Resistor Value", clt_bias_resistor dialog = cltSensor, "", yAxis panel = clt_thermistor, North panel = cltSensor_IO, South ; Engine->IAT Thermistor Settings dialog = iat_thermistor, "IAT Thermistor Settings" field = "!Here is three pairs of thermistor temperature and his resistance." field = "!Typical temperatures is -40°C, 0°C and 100°C" field = "" field = "Lowest temperature", iat_tempC_1 field = "Resistance @ LT", iat_resistance_1 field = "" field = "Middle temperature", iat_tempC_2 field = "Resistance @ MT", iat_resistance_2 field = "" field = "Highest temperature", iat_tempC_3 field = "Resistance @ HT", iat_resistance_3 dialog = iatSensor_IO, "IAT Sensor I/O" field = "IAT ADC input", iat_adcChannel field = "Bias Resistor Value", iat_bias_resistor dialog = iatSensor, "", yAxis panel = iat_thermistor, North panel = iatSensor_IO, South ; Engine->MAP Sensor Settings dialog = mapSensorVDlg, "Voltage Sensor Settings", xAxis field = "MAP ADC input", map_sensor_hwChannel, {hasFrequencyReportingMapSensor == 0} field = "Map type", map_sensor_type, {hasFrequencyReportingMapSensor == 0} field = "MAP value low point", map_sensor_lowValue, { map_sensor_type == 0 && hasFrequencyReportingMapSensor == 0} field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_type == 0 && hasFrequencyReportingMapSensor == 0} field = "MAP value high point", map_sensor_highValue, { map_sensor_type == 0 && hasFrequencyReportingMapSensor == 0} field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_type == 0 && hasFrequencyReportingMapSensor == 0} dialog = mapSensorFDlg, "Frequency Sensor Settings", xAxis field = "pin", frequencyReportingMapInputPin, {hasFrequencyReportingMapSensor == 1} field = "0 kPa freq", mapFrequency0Kpa, {hasFrequencyReportingMapSensor == 1} field = "100 kpa freq", mapFrequency100Kpa, {hasFrequencyReportingMapSensor == 1} dialog = mapCurves, "", border panel = map_samplingAngleCurve, West panel = map_samplingWindowCurve, East dialog = mapSwitch, "MAP input type" field = "frequency-based MAP", hasFrequencyReportingMapSensor dialog = mapVandF, "V and F" panel = mapSensorVDlg, North panel = mapSensorFDlg, South dialog = mapSwitchAndSettings, "Switch and Settings" field = "!ECU reboot needed to apply pin assignment" panel = mapSwitch, North panel = mapVandF, South dialog = mapSettings, "MAP Sensor Settings", border panel = mapCurves, North panel = mapSwitchAndSettings, South ; Engine->EGO Sensor Settings dialog = egoSettings_sensor, "EGO Sensor Settings" 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 = "AFR ADC input", afr_hwChannel field = "O2 heater pin", o2heaterPin dialog = egoSettings, "", yAxis panel = egoSettings_sensor, North panel = egoSettings_IO, South ; 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", idle_stepperStepPin, useStepperIdle field = "Idle Stepper Dir", idle_stepperDirectionPin, useStepperIdle field = "Idle Stepper Enable", stepperEnablePin, useStepperIdle field = "Idle Stepper Enable mode", stepperEnablePinMode, useStepperIdle field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle dialog = idleType, "Type idle valve", border panel = idleSolenoid, West panel = idleStepper, East dialog = idleSettings, "", yAxis field = "Manual mode", idleMode field = "Cranking Extra", crankingIdleAdjustment field = "Auto target", targetIdleRpm, { idleMode == 0} field = "idle P", idleRpmPid_pFactor field = "idle I", idleRpmPid_iFactor field = "idle D", idleRpmPid_dFactor field = "idle offset", idleRpmPid_offset slider = "Manual Idle Position", manIdlePosition, horizontal field = "" field = "use stepper", useStepperIdle panel = idleType ; Engine->Fan Settings dialog = fanSetting, "Fan Settings" field = "Fan On Temperature", fanOnTemperature field = "Fan Off Temperature", fanOffTemperature field = "" field = "!ECU reboot needed to apply these settings" field = "Fan Pin Mode", fanPinMode field = "Fan Pin", fanPin ; Engine->Main Relay Settings dialog = mainRealay, "Main Relay Settings" field = "!ECU reboot needed to apply these settings" field = "Main Relay Mode", mainRelayPinMode field = "Main Relay Pin", mainRelayPin ; Engine->Fuel Pump Settings dialog = fuelPump, "Fuel Pump Settings" field = "!ECU reboot needed to apply these settings" field = "Fuel Pump Pin Mode", fuelPumpPinMode field = "Fuel Pump Pin", fuelPumpPin ; Engine->MIL Settings dialog = malfunction, "Check Engine Settings" field = "!ECU reboot needed to apply these settings" field = "Check Engine Pin Mode", malfunctionIndicatorPinMode field = "Check Engine Pin", malfunctionIndicatorPin 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 = "Band Freq override", knockBandCustom, {isHip9011Enabled == 1} field = "SPI device", hip9011SpiDevice, {isHip9011Enabled == 1} field = "SPI1sck", spi1SckMode, {isHip9011Enabled == 1} field = "SPI1mosi", spi1MosiMode, {isHip9011Enabled == 1} field = "SPI1miso", spi1MisoMode, {isHip9011Enabled == 1} field = "SPI2sck", spi2SckMode, {isHip9011Enabled == 1} field = "SPI2mosi", spi2MosiMode, {isHip9011Enabled == 1} field = "SPI2miso", spi2MisoMode, {isHip9011Enabled == 1} field = "SPI3sck", spi3SckMode, {isHip9011Enabled == 1} field = "SPI3mosi", spi3MosiMode, {isHip9011Enabled == 1} field = "SPI3miso", spi3MisoMode, {isHip9011Enabled == 1} panel = knockThresholdCurve ; Engine->cj125 Settings dialog = cj125Function, "CJ125 Settings (wbo decoder)" field = "Enabled", isCJ125Enabled field = "!ECU reboot needed to apply these settings" field = "ChipSelect pin", cj125CsPin, {isCJ125Enabled == 1} field = "ChipSelect mode", cj125CsPinMode, {isCJ125Enabled == 1} field = "SPI device", cj125SpiDevice field = "UA input", cj125ua, {isCJ125Enabled == 1} field = "UR input", cj125ur, {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 = "SPI1 MISO", spi1misoPin, {is_enabled_spi_1 == 1} field = "SPI1 SCK", spi1sckPin, {is_enabled_spi_1 == 1} field = "SPI2 enable", is_enabled_spi_2 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 enable", is_enabled_spi_3 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} dialog = fuelClosedLoopDialog, "Fuel closed-loop correction" 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} dialog = auxPidDialog, "Aux PID" field = "Enabled", activateAuxPid1 field = "FSIO pin #1", auxPidPins1 field = "PWM Frequency", auxPidFrequency1 field = "verbose", isVerboseAuxPid1 field = "#target based on FSIO map#1" field = "control period", auxPidDT1, {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", aux1PidMin field = "Max", aux1PidMax 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 = "Verbose", isVerboseAlternator, {isAlternatorControlEnabled == 1} field = "control period", alternatorDT, {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", alternatorPidMin field = "Max", alternatorPidMax field = "#% duty = Pterm + Iterm + Dterm + offset%" dialog = warmupFuelDialog, "Warmup fuel closed-loop", yAxis field = "use automatic Pid Afr control", useWarmupPidAfr field = "warmup temperature Threshold", warmupAfrThreshold field = "wa offset", warmupAfrPid_offset field = "wa P factor", warmupAfrPid_pFactor field = "wa I factor", warmupAfrPid_iFactor field = "wa D factor", warmupAfrPid_dFactor field = "#correction = Pterm + Iterm + Dterm + offset" dialog = energySystems, "Battery and Alternator Settings", yAxis panel = batteryDialog panel = alternator ; Engine->Speed Sensor dialog = speedSensor, "Speed Sensor Settings" field = "Input pin", vehicleSpeedSensorInputPin field = "revolution to speed mult", vehicleSpeedCoef ; Engine->Other inputs dialog = analogInputs, "Analog inputs" field = "!ECU reboot needed to apply these settings" field = "TPS ADC input", tpsAdcChannel field = "TPS low value detection threshold", tpsErrorDetectionTooLow field = "TPS high value detection threshold", tpsErrorDetectionTooHigh field = "!todo: move MAF channel to maf curve dialog" field = "MAF ADC input", mafAdcChannel field = "Baro ADC input", baroSensor_hwChannel 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", tachPulseDuractionMs ; Board->Connection dialog = tsPort, "TunerStudio Port" field = "tunerStudioSerialSpeed", tunerStudioSerialSpeed field = "Use PC10/PC11 serial?", useSerialPort field = "startConsoleInBinaryMode", startConsoleInBinaryMode dialog = canBus, "CAN Bus" field = "Can Read Enabled", canReadEnabled field = "Can Write Enabled", canWriteEnabled ; field = "Can Nbc Type", canNbcType field = "Can Sleep Period", canSleepPeriod field = "TX pin", canTxPin field = "RX pin", canRxPin dialog = sdCard, "SD Card Logger" field = "SdCard", isSdCardEnabled field = "CS Pin", sdCardCsPin field = "SPI", sdCardSpiDevice field = "log format", logFormat field = "Mass Storage", storageMode 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 = connectRight, "", yAxis panel = tsPort panel = canBus panel = sdCard panel = gpsReceiver dialog = connection, "", border panel = lcdScreen, East panel = connectRight, West 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 ; Tuning->General dialog = generalSettings, "General" field = "RPM Hard Limit", rpmHardLimit field = "Boost Cut Pressure", boostCutPressure field = "" field = "Fuel Algorithm", fuelAlgorithm field = "" field = "#System hack's" field = "Global fuel correction", globalFuelCorrection field = "Ignition Math Logic @", ignMathCalculateAtIndex field = "MAP Averaging Logic @", mapAveragingSchedulingAtIndex field = "comm status pin", communicationPin field = "running status", runningPin dialog = crankingFuel, "Fuel" field = "Injection Mode", crankingInjectionMode field = "Base Fuel Pulse Width", cranking_baseFuel dialog = crankingIgnition, "Ignition" field = "Advance", crankingTimingAngle field = "Use fixed Dwell?", useConstantDwellDuringCranking field = "Fixed Dwell", ignitionDwellForCrankingMs, {useConstantDwellDuringCranking == 1} field = "Charge Angle", crankingChargeAngle, {useConstantDwellDuringCranking == 0} dialog = postCrankingEnrichment, "Post-cranking short-time fuel enrichment" field = "Target temperature", postCrankingTargetClt field = "Post-Cranking factor", postCrankingFactor field = "Duraction", postCrankingDurationSec ; Tuning->Cranking dialog = crankingDialog, "Cranking" field = "Cranking RPM limit", cranking_rpm panel = crankingFuel panel = crankingIgnition field = "Cranking IAC Extra", crankingIdleAdjustment panel = postCrankingEnrichment field = "" field = "" field = "enable Cylinder Cleanup", isCylinderCleanupEnabled dialog = EngineLoadAccelPanel, "Engine Load" field = "Length", engineLoadAccelLength field = "Accel Threshold", engineLoadAccelEnrichmentThreshold field = "Accel Multiplier", engineLoadAccelEnrichmentMultiplier field = "Decel Threshold", engineLoadDecelEnleanmentThreshold field = "Decel Multiplier", engineLoadDecelEnleanmentMultiplier dialog = TpsAccelPanel, "TPS" field = "Length", tpsAccelLength field = "Accel Threshold", tpsAccelEnrichmentThreshold field = "Decel Threshold", tpsDecelEnleanmentThreshold ; field = "Decel Multiplier", tpsDecelEnleanmentMultiplier ; Tuning->AccelEnrichment dialog = AccelEnrich, "Accel/Decel Enrichment" panel = EngineLoadAccelPanel panel = TpsAccelPanel field = "sucked off wall coefficient", suckedOffCoef field = "added to wall coef", addedToWallCoef ; Flex Logic dialog = fsioIO, "Outputs" field = "output #1", fsioPins1 field = "output #2", fsioPins2 field = "output #3", fsioPins3 field = "output #4", fsioPins4 field = "output #5", fsioPins5 field = "output #6", fsioPins6 field = "output #7", fsioPins7 field = "output #8", fsioPins8 field = "output #9", fsioPins9 field = "output #10", fsioPins10 field = "output #11", fsioPins11 field = "output #12", fsioPins12 field = "output #13", fsioPins13 field = "output #14", fsioPins14 field = "output #15", fsioPins15 field = "output #16", fsioPins16 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 = fsioInputsDialog, "FSIO inputs" field = "ADC #1", fsioAdc1 field = "ADC #2", fsioAdc2 field = "ADC #3", fsioAdc3 field = "ADC #4", fsioAdc4 dialog = etbDialog, "Electronic Thtottle Body (alpha)" field = "pedal Position Channel", pedalPositionChannel field = "Pedal min", pedalPositionMin field = "Pedal max", pedalPositionMax field = "PWM Frequency", etbFreq field = "Dir #1", etbDirectionPin1 field = "Dir #2", etbDirectionPin2 field = "Control #1", etbControlPin1 field = "Control #2", etbControlPin2 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 ; bench test dialog = ioTest, "I-O Test", border panel = testSpark, West panel = testInjectors, Center panel = testMisc, East ; 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 #2", triggerSimulatorPins2 field = "trigger stimulator pin #3", triggerSimulatorPins3 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" 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