From 255623335fcaddf1234e07df6b9ee38e0fcf4d64 Mon Sep 17 00:00:00 2001 From: GitHub gen-configs Action Date: Tue, 19 Mar 2024 20:10:50 +0000 Subject: [PATCH] Auto-generated configs and docs --- .../tunerstudio/generated/fome_hellen128.ini | 8356 +++++++++++++++++ 1 file changed, 8356 insertions(+) create mode 100644 firmware/tunerstudio/generated/fome_hellen128.ini diff --git a/firmware/tunerstudio/generated/fome_hellen128.ini b/firmware/tunerstudio/generated/fome_hellen128.ini new file mode 100644 index 0000000000..3dc05ae16d --- /dev/null +++ b/firmware/tunerstudio/generated/fome_hellen128.ini @@ -0,0 +1,8356 @@ +; This is a TunerStudio project for the FOME.tech engine management system +; +; This file has been generated by invoking gen_config.bat. +; The input files are +; rusefi.input the common template +; rusefi_config.txt the project specific file +; +; In TunerStudio some fields have little question mark on the left of the name for additional field tips. +; Those tips are defined in ../integration/rusefi_config.txt +; +; For example +; +; float bias_resistor;Pull-up resistor value on your board;"Ohm" +; here 'bias_resistor' is internal field name and the text between semicolons is what produces the tooltip +; Note that '+' sign is required after first semicolon for tooltop to appear in TunerStudio +; +; +; field = "# blue text" +; field = "! red text" +; field = "normal text" +; +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI (FOME) master.2024.03.19.hellen128.39894794" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI (FOME) master.2024.03.19.hellen128.39894794" ; signature is expected to be 7 or more characters. + + ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C + useLegacyFTempUnits = false + ignoreMissingBitOptions = true + + ; Optimize comms for fast rusEFI ECUs + noCommReadDelay = true; + defaultRuntimeRecordPerSec = 100; + maxUnusedRuntimeRange = 1000; + + ; Set default IP/port to our IP/port + defaultIpAddress = 192.168.10.1; + defaultIpPort = 29000; + +[Constants] +; new packet serial format with CRC + messageEnvelopeFormat = msEnvelope_1.0 + + endianness = little + nPages = 1 + + pageIdentifier = "\x00\x00" + pageReadCommand = "R%2o%2c" + burnCommand = "B" + pageActivate = "P" + pageValueWrite = "W%2o%v" + pageChunkWrite = "C%2o%2c%v" + crc32CheckCommand = "k%2o%2c" + retrieveConfigError = "e" + +;communication settings + pageActivationDelay = 0 ; 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 = 0 + blockReadTimeout = 3000; Milliseconds general timeout + + + blockingFactor = 750 ; max chunk size +;end communication settings + + ; name = bits, type, offset, bits + ; name = array, type, offset, shape, units, scale, translate, lo, hi, digits + ; name = scalar, type, offset, units, scale, translate, lo, hi, digits + +; CONFIG_DEFINITION_START +pageSize = 22668 +page = 1 +engineType = bits, S32, 0, [0:6], 0="DEFAULT_FRANKENSO",24="BMW_M73_M",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",35="CAMARO_4",65="CITROEN_TU3JP",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",58="ETB_BENCH_ENGINE",13="ET_UNUSED_13",15="ET_UNUSED_15",17="ET_UNUSED_17",20="ET_UNUSED_20",21="ET_UNUSED_21",33="ET_UNUSED_33",43="ET_UNUSED_43",57="ET_UNUSED_57",61="ET_UNUSED_61",66="ET_UNUSED_66",92="ET_UNUSED_92",93="ET_UNUSED_93",97="ET_UNUSED_97",98="ET_UNUSED_98",3="FORD_ASPIRE_1996",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",47="FRANKENSO_MAZDA_MIATA_2003",56="FRANKENSO_MAZDA_MIATA_NA8",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",8="GY6_139QMB",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",75="HELLEN_134_BMW",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",73="HELLEN_55_BMW",74="HELLEN_88_BMW",34="HELLEN_NA6",10="HELLEN_NA8_96",80="HELLEN_NA94",83="HELLEN_NB1",94="HELLEN_NB1_36",69="HELLEN_NB2",86="HELLEN_NB2_36",60="L9779_BENCH_ENGINE",55="MAZDA_MIATA_2003_BOARD_TEST",54="MAZDA_MIATA_2003_NA_RAIL",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",16="MITSU_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",12="POLYGONUS_MIATA_MSM",4="POLYGONUS_MIATA_NA6",11="POLYGONUS_MIATA_NB1",67="POLYGONUS_MIATA_NB2",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",9="PROTEUS_E65_6H_MAN_IN_THE_MIDDLE",27="PROTEUS_GM_LS_4",6="PROTEUS_HARLEY",90="PROTEUS_HONDA_K",91="PROTEUS_HONDA_OBD2A",25="PROTEUS_LUA_DEMO",42="PROTEUS_QC_TEST_BOARD",39="PROTEUS_VW_B6",29="SACHS",70="SUBARUEG33_DEFAULTS",22="SUBARU_2003_WRX",100="TEST_100",101="TEST_101",102="TEST_102",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",59="TLE8888_BENCH_ENGINE",44="TOYOTA_2JZ_GTE_VVTi",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 +launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 +rpmHardLimit = scalar, U16, 8, "rpm", 1, 0, 0, 20000, 0 +engineSnifferRpmThreshold = scalar, U16, 10, "RPM", 1, 0, 0, 30000, 0 +multisparkMaxRpm = scalar, U08, 12, "rpm", 50.0, 0, 0, 3000, 0 +maxAcRpm = scalar, U08, 13, "rpm", 50.0, 0, 0, 10000, 0 +maxAcTps = scalar, U08, 14, "%", 1, 0, 0, 100, 0 +maxAcClt = scalar, U08, 15, "deg C", 1, 0, 0, 150, 0 +multisparkMaxSparkingAngle = scalar, U08, 16, "deg", 1, 0, 0, 60, 0 +multisparkMaxExtraSparkCount = scalar, U08, 17, "count", 1, 0, 1, 5, 0 +ignitionMode = bits, U08, 18, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" +canNbcType = bits, U08, 19, [0:4], "None", "FIAT", "VAG", "MAZDA RX8", "BMW", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "type 13", "type 14" +injector_flow = scalar, F32, 20, "", 1, 0, 0, 99999, 2 +injector_battLagCorrBins = array, U16, 24, [8], "volts", 0.01, 0, 0, 20, 2 +injector_battLagCorr = array, U16, 40, [8], "ms", 0.01, 0, 0, 50, 2 +injectorSecondary_flow = scalar, F32, 56, "", 1, 0, 0, 99999, 2 +injectorSecondary_battLagCorrBins = array, U16, 60, [8], "volts", 0.01, 0, 0, 20, 2 +injectorSecondary_battLagCorr = array, U16, 76, [8], "ms", 0.01, 0, 0, 50, 2 +isForcedInduction = bits, U32, 92, [0:0], "false", "true" +useFordRedundantTps = bits, U32, 92, [1:1], "false", "true" +lambdaProtectionEnable = bits, U32, 92, [2:2], "false", "true" +overrideTriggerGaps = bits, U32, 92, [3:3], "false", "true" +enableFan1WithAc = bits, U32, 92, [4:4], "false", "true" +enableFan2WithAc = bits, U32, 92, [5:5], "false", "true" +disableFan1WhenStopped = bits, U32, 92, [6:6], "false", "true" +disableFan2WhenStopped = bits, U32, 92, [7:7], "false", "true" +enableTrailingSparks = bits, U32, 92, [8:8], "false", "true" +etb_use_two_wires = bits, U32, 92, [9:9], "false", "true" +isDoubleSolenoidIdle = bits, U32, 92, [10:10], "false", "true" +enableStagedInjection = bits, U32, 92, [11:11], "false", "true" +useTLE8888_cranking_hack = bits, U32, 92, [12:12], "false", "true" +kickStartCranking = bits, U32, 92, [13:13], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 92, [14:14], "false", "true" +launchControlEnabled = bits, U32, 92, [15:15], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 92, [16:16], "with filter", "without filter" +antiLagEnabled = bits, U32, 92, [17:17], "false", "true" +useRunningMathForCranking = bits, U32, 92, [18:18], "Fixed", "Fuel Map" +useTLE8888_stepper = bits, U32, 92, [19:19], "false", "true" +usescriptTableForCanSniffingFiltering = bits, U32, 92, [20:20], "false", "true" +verboseCan = bits, U32, 92, [21:21], "Do not print", "Print all" +artificialTestMisfire = bits, U32, 92, [22:22], "No thank you", "Danger Mode" +useFordRedundantPps = bits, U32, 92, [23:23], "false", "true" +cltSensorPulldown = bits, U32, 92, [24:24], "false", "true" +iatSensorPulldown = bits, U32, 92, [25:25], "false", "true" +allowIdenticalPps = bits, U32, 92, [26:26], "false", "true" +is_enabled_spi_5 = bits, U32, 92, [27:27], "false", "true" +is_enabled_spi_6 = bits, U32, 92, [28:28], "false", "true" +tpsMin = scalar, S16, 96, "ADC", 1, 0, 0, 1023, 0 +tpsMax = scalar, S16, 98, "ADC", 1, 0, 0, 1023, 0 +tpsErrorDetectionTooLow = scalar, S16, 100, "%", 1, 0, -10, 0, 0 +tpsErrorDetectionTooHigh = scalar, S16, 102, "%", 1, 0, 100, 110, 0 +cranking_baseFuel = scalar, F32, 104, "mg", 1, 0, 0, 500, 1 +cranking_rpm = scalar, S16, 108, "RPM", 1, 0, 0, 3000, 0 +ignitionDwellForCrankingMs = scalar, F32, 112, "ms", 1, 0, 0, 200, 1 +etbRevLimitStart = scalar, U16, 116, "rpm", 1, 0, 0, 15000, 0 +etbRevLimitRange = scalar, U16, 118, "rpm", 1, 0, 0, 2000, 0 +map_samplingAngleBins = array, F32, 120, [8], "", 1, 0, 0, 18000, 2 +map_samplingAngle = array, F32, 152, [8], "deg", 1, 0, -720, 720, 2 +map_samplingWindowBins = array, F32, 184, [8], "", 1, 0, 0, 18000, 2 +map_samplingWindow = array, F32, 216, [8], "deg", 1, 0, -720, 720, 2 +map_sensor_lowValue = scalar, F32, 248, "kpa", 1, 0, -400, 800, 2 +map_sensor_highValue = scalar, F32, 252, "kpa", 1, 0, -400, 800, 2 +map_sensor_type = bits, U08, 256, [0:4], "Custom", "DENSO183", "MPX4250", "HONDA3BAR", "NEON_2003", "22012AA090", "GM 3 Bar", "MPX4100", "Toyota 89420-02010", "MPX4250A", "Bosch 2.5", "Mazda1Bar", "GM 2 Bar", "GM 1 Bar", "MPXH6400" +map_sensor_hwChannel = bits, U08, 257, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +clt_tempC_1 = scalar, S32, 260, "*C", 0.01, 0, -40, 200, 1 +clt_tempC_2 = scalar, S32, 264, "*C", 0.01, 0, -40, 200, 1 +clt_tempC_3 = scalar, S32, 268, "*C", 0.01, 0, -40, 200, 1 +clt_resistance_1 = scalar, U32, 272, "Ohm", 0.01, 0, 0, 200000, 1 +clt_resistance_2 = scalar, U32, 276, "Ohm", 0.01, 0, 0, 200000, 1 +clt_resistance_3 = scalar, U32, 280, "Ohm", 0.01, 0, 0, 200000, 1 +clt_bias_resistor = scalar, U32, 284, "Ohm", 0.1, 0, 0, 200000, 1 +clt_adcChannel = bits, U08, 288, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +iat_tempC_1 = scalar, S32, 292, "*C", 0.01, 0, -40, 200, 1 +iat_tempC_2 = scalar, S32, 296, "*C", 0.01, 0, -40, 200, 1 +iat_tempC_3 = scalar, S32, 300, "*C", 0.01, 0, -40, 200, 1 +iat_resistance_1 = scalar, U32, 304, "Ohm", 0.01, 0, 0, 200000, 1 +iat_resistance_2 = scalar, U32, 308, "Ohm", 0.01, 0, 0, 200000, 1 +iat_resistance_3 = scalar, U32, 312, "Ohm", 0.01, 0, 0, 200000, 1 +iat_bias_resistor = scalar, U32, 316, "Ohm", 0.1, 0, 0, 200000, 1 +iat_adcChannel = bits, U08, 320, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +launchTimingRetard = scalar, S32, 324, "deg", 1, 0, -180, 180, 2 +knockBandCustom = scalar, F32, 328, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, U16, 332, "L", 0.001, 0, 0, 65, 3 +triggerSimulatorRpm = scalar, U16, 334, "RPM", 1, 0, 0, 30000, 0 +cylindersCount = scalar, U32, 336, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 340, [0:5], "One Cylinder", "1-3-4-2", "1-2-4-3", "1-3-2-4", "1-5-3-6-2-4", "1-8-4-3-6-5-7-2", "1-2-4-5-3", "1-4-2-5-3-6", "1-2", "1-2-3-4-5-6", "1-2-3", "1-8-7-2-6-5-4-3", "1-5-4-2-6-3-7-8", "1-6-3-2-5-4", "1-10-9-4-3-6-5-8-7_2", "1-7-5-11-3-9-6-12-2-8-4-10", "1-7-4-10-2-8-6-12-3-9-5-11", "1-4-3-2", "1-12-5-8-3-10-6-7-2-11-4-9", "1-2-7-8-4-5-6-3", "1-3-7-2-6-5-4-8", "1-2-3-4-5-6-7-8-9", "INVALID", "1-2-3-4-5-6-7-8-9-10-11-12", "1-3-2", "1-2-3-4-5-6-7-8", "1-5-4-8-6-3-7-2", "1-4-3-6-2-5", "1-8-7-3-6-5-4-2", "1-6-2-4-3-5", "1-6-5-4-3-2", "1-4-5-2-3-6", "fo32", "fo33", "fo34", "fo35", "fo36", "fo37" +vvtBumpAmount = scalar, U08, 341, "deg", 1, 0, -30, 30, 0 +benchTestOnTime = scalar, U16, 342, "ms", 0.01, 0, 0, 500, 2 +cylinderBore = scalar, F32, 344, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 348, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" +ALSMaxTPS = scalar, U08, 349, "%", 1, 0, 0, 10, 0 +binarySerialTxPin = bits, U16, 350, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +binarySerialRxPin = bits, U16, 352, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +crankingInjectionMode = bits, U08, 354, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 355, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 356, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 358, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 359, "", 1, 0, 0, 250, 0 +timingMode = bits, U08, 360, [0:0], "dynamic", "fixed" +mafAdcChannel = bits, U08, 361, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +benchTestCount = scalar, U16, 362, "", 1, 0, 0, 10000, 0 +crankingTimingAngle = scalar, F32, 364, "deg", 1, 0, -30, 30, 0 +gapTrackingLengthOverride = scalar, S08, 368, "count", 1, 0, 1, 18, 0 +maxIdleVss = scalar, U08, 369, "kph", 1, 0, 0, 100, 0 +minOilPressureAfterStart = scalar, U16, 370, "kPa", 1, 0, 0, 1000, 0 +fixedModeTiming = scalar, F32, 372, "RPM", 1, 0, 0, 3000, 0 +globalTriggerAngleOffset = scalar, F32, 376, "deg btdc", 1, 0, -720, 720, 0 +analogInputDividerCoefficient = scalar, F32, 380, "coef", 1, 0, 0.01, 10, 2 +vbattDividerCoeff = scalar, F32, 384, "coef", 1, 0, 0.01, 99, 2 +fanOnTemperature = scalar, U08, 388, "deg C", 1, 0, 0, 150, 0 +fanOffTemperature = scalar, U08, 389, "deg C", 1, 0, 0, 150, 0 +acrPin = bits, U16, 390, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +driveWheelRevPerKm = scalar, F32, 392, "revs/km", 1, 0, 100, 1000, 1 +canSleepPeriodMs = scalar, S32, 396, "ms", 1, 0, 0, 1000, 2 +byFirmwareVersion = scalar, S32, 400, "index", 1, 0, 0, 300, 0 +tps1_1AdcChannel = bits, U08, 404, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +vbattAdcChannel = bits, U08, 405, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +fuelLevelSensor = bits, U08, 406, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +tps2_1AdcChannel = bits, U08, 407, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +idle_derivativeFilterLoss = scalar, F32, 408, "x", 1, 0, -1000000, 1000000, 4 +trailingSparkAngle = scalar, S32, 412, "angle", 1, 0, 0, 720, 0 +trigger_type = bits, U32, 416, [0:6], "custom toothed wheel", "Ford Aspire", "Dodge Neon 1995", "Miata NA", "Mitsubishi Mess 4", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Mitsubishi 4G93 11", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "12 tooth crank", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "INVALID", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "INVALID", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "INVALID", "TriTach", "GM 60/2/2/2", "Skoda Favorit", "Barra 3+1 Cam", "Kawa KX450F", "Nissan VQ35", "INVALID", "Nissan VQ30", "Nissan QR25", "Mitsubishi 3A92", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "INVALID", "INVALID", "GM 24x 3 degree", "trg75" +trigger_customTotalToothCount = scalar, S32, 420, "number", 1, 0, 1, 300, 0 +trigger_customSkippedToothCount = scalar, S32, 424, "number", 1, 0, 0, 300, 0 +airByRpmTaper = scalar, F32, 428, "%", 1, 0, 0, 50, 1 +boostControlSafeDutyCycle = scalar, U08, 432, "%", 1, 0, 0, 100, 0 +throttlePedalPositionAdcChannel = bits, U08, 433, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +tle6240_csPinMode = bits, U08, 434, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acrRevolutions = scalar, U08, 435, "", 1, 0, 0, 10, 0 +globalFuelCorrection = scalar, F32, 436, "coef", 1, 0, 0, 1000, 2 +adcVcc = scalar, F32, 440, "volts", 1, 0, 0, 6, 3 +mapCamDetectionAnglePosition = scalar, F32, 444, "Deg", 1, 0, 0, 360, 0 +camInputs1 = bits, U16, 448, [0:7], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +camInputs2 = bits, U16, 450, [0:7], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +camInputs3 = bits, U16, 452, [0:7], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +camInputs4 = bits, U16, 454, [0:7], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +afr_hwChannel = bits, U08, 456, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +afr_hwChannel2 = bits, U08, 457, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +afr_v1 = scalar, U16, 458, "volts", 0.001, 0, 0, 10, 3 +afr_value1 = scalar, U16, 460, "AFR", 0.001, 0, 0, 50, 2 +afr_v2 = scalar, U16, 462, "volts", 0.001, 0, 0, 10, 3 +afr_value2 = scalar, U16, 464, "AFR", 0.001, 0, 0, 50, 2 +tle6240_cs = bits, U16, 468, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +throttlePedalUpPin = bits, U16, 470, [0:7], 0="NONE",92="C40 - start button",9="P30_IN_AUX4",3="P32_IN_O2S2",2="P36_IN_O2S",4="P40_IN_MAP3",39="P41_IN_AUX3" +baroSensor_lowValue = scalar, F32, 472, "kpa", 1, 0, -400, 800, 2 +baroSensor_highValue = scalar, F32, 476, "kpa", 1, 0, -400, 800, 2 +baroSensor_type = bits, U08, 480, [0:4], "Custom", "DENSO183", "MPX4250", "HONDA3BAR", "NEON_2003", "22012AA090", "GM 3 Bar", "MPX4100", "Toyota 89420-02010", "MPX4250A", "Bosch 2.5", "Mazda1Bar", "GM 2 Bar", "GM 1 Bar", "MPXH6400" +baroSensor_hwChannel = bits, U08, 481, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +idle_solenoidFrequency = scalar, S32, 484, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 488, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +idle_stepperDirectionPin = bits, U16, 490, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +idle_stepperStepPin = bits, U16, 492, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +idle_solenoidPinMode = bits, U08, 494, [0:1], "default", "default inverted", "open collector", "open collector inverted" +manIdlePosition = scalar, F32, 496, "%", 1, 0, 0, 100, 0 +knockRetardAggression = scalar, U08, 500, "%", 0.1, 0, 0, 20, 1 +knockRetardReapplyRate = scalar, U08, 501, "deg/s", 0.1, 0, 0, 10, 1 +engineSyncCam = bits, S08, 502, [0:1], "Intake First Bank", "Exhaust First Bank", "Intake Second Bank", "Exhaust Second Bank" +vssFilterReciprocal = scalar, U08, 503, "", 1, 0, 2, 200, 0 +vssGearRatio = scalar, U16, 504, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 506, "count", 1, 0, 1, 100, 0 +idleVeOverrideMode = bits, U08, 507, [0:1], "None", "MAP", "TPS" +l9779_cs = bits, U16, 508, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +o2heaterPin = bits, U16, 510, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPins1 = bits, U16, 512, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPins2 = bits, U16, 514, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPins3 = bits, U16, 516, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPins4 = bits, U16, 518, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPins5 = bits, U16, 520, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPins6 = bits, U16, 522, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPins7 = bits, U16, 524, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPins8 = bits, U16, 526, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPins9 = bits, U16, 528, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPins10 = bits, U16, 530, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPins11 = bits, U16, 532, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPins12 = bits, U16, 534, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPinsStage21 = bits, U16, 536, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPinsStage22 = bits, U16, 538, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPinsStage23 = bits, U16, 540, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPinsStage24 = bits, U16, 542, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPinsStage25 = bits, U16, 544, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPinsStage26 = bits, U16, 546, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPinsStage27 = bits, U16, 548, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPinsStage28 = bits, U16, 550, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPinsStage29 = bits, U16, 552, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPinsStage210 = bits, U16, 554, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPinsStage211 = bits, U16, 556, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPinsStage212 = bits, U16, 558, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +ignitionPins1 = bits, U16, 560, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +ignitionPins2 = bits, U16, 562, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +ignitionPins3 = bits, U16, 564, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +ignitionPins4 = bits, U16, 566, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +ignitionPins5 = bits, U16, 568, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +ignitionPins6 = bits, U16, 570, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +ignitionPins7 = bits, U16, 572, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +ignitionPins8 = bits, U16, 574, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +ignitionPins9 = bits, U16, 576, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +ignitionPins10 = bits, U16, 578, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +ignitionPins11 = bits, U16, 580, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +ignitionPins12 = bits, U16, 582, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +injectionPinMode = bits, U08, 584, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 585, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 586, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +fuelPumpPinMode = bits, U08, 588, [0:1], "default", "default inverted", "open collector", "open collector inverted" +throttlePedalPositionSecondAdcChannel = bits, U08, 589, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +malfunctionIndicatorPin = bits, U16, 590, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +malfunctionIndicatorPinMode = bits, U08, 592, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 593, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 594, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +clutchDownPin = bits, U16, 596, [0:7], 0="NONE",92="C40 - start button",9="P30_IN_AUX4",3="P32_IN_O2S2",2="P36_IN_O2S",4="P40_IN_MAP3",39="P41_IN_AUX3" +alternatorControlPin = bits, U16, 598, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +alternatorControlPinMode = bits, U08, 600, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 601, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +electronicThrottlePin1Mode = bits, U08, 602, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 603, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6" +debugTriggerSync = bits, U16, 604, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33972_cs = bits, U16, 606, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33972_csPinMode = bits, U08, 608, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 609, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +tps1_2AdcChannel = bits, U08, 610, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +tps2_2AdcChannel = bits, U08, 611, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +idle_antiwindupFreq = scalar, F32, 612, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 616, [0:7], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +triggerInputPins2 = bits, U16, 618, [0:7], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +mc33_t_min_boost = scalar, U16, 620, "us", 1, 0, 0, 10000, 0 +tachOutputPin = bits, U16, 622, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +tachOutputPinMode = bits, U08, 624, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 625, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +mainRelayPin = bits, U16, 626, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +sdCardCsPin = bits, U16, 628, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +canTxPin = bits, U16, 630, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +canRxPin = bits, U16, 632, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +throttlePedalUpPinMode = bits, U08, 634, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +acIdleExtraOffset = scalar, U08, 635, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 636, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = bits, U16, 638, [0:7], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +tcuInputSpeedSensorTeeth = scalar, U08, 640, "", 1, 0, 0, 100, 0 +mainRelayPinMode = bits, U08, 641, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionMin = scalar, U16, 642, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 644, "mv", 1, 0, 0, 5000, 0 +secondSolenoidPin = bits, U16, 646, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +tunerStudioSerialSpeed = scalar, U32, 648, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 652, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 656, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +triggerSimulatorPins2 = bits, U16, 658, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +fordInjectorSmallPulseSlope = scalar, U16, 660, "", 0.001, 0, 0, 65, 3 +lambdaProtectionMinRpm = scalar, U08, 662, "RPM", 100.0, 0, 0, 25000, 0 +lambdaProtectionMinLoad = scalar, U08, 663, "%", 10.0, 0, 0, 1000, 0 +is_enabled_spi_1 = bits, U32, 664, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 664, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 664, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 664, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 664, [4:4], "11 bit", "29 bit" +unused644b5 = bits, U32, 664, [5:5], "false", "true" +useStepperIdle = bits, U32, 664, [6:6], "false", "true" +enabledStep1Limiter = bits, U32, 664, [7:7], "false", "true" +verboseTLE8888 = bits, U32, 664, [8:8], "false", "true" +enableVerboseCanTx = bits, U32, 664, [9:9], "false", "true" +etb1configured = bits, U32, 664, [10:10], "false", "true" +etb2configured = bits, U32, 664, [11:11], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 664, [12:12], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 664, [13:13], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 664, [14:14], "false", "true" +coastingFuelCutEnabled = bits, U32, 664, [15:15], "false", "true" +useIacTableForCoasting = bits, U32, 664, [16:16], "false", "true" +useIdleTimingPidControl = bits, U32, 664, [17:17], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 664, [18:18], "false", "true" +is_enabled_spi_4 = bits, U32, 664, [19:19], "false", "true" +pauseEtbControl = bits, U32, 664, [20:20], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 664, [21:21], "false", "true" +enableAemXSeries = bits, U32, 664, [22:22], "false", "true" +logicAnalyzerPins1 = bits, U16, 668, [0:7], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +logicAnalyzerPins2 = bits, U16, 670, [0:7], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +logicAnalyzerPins3 = bits, U16, 672, [0:7], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +logicAnalyzerPins4 = bits, U16, 674, [0:7], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +verboseCanBaseAddress = scalar, U32, 676, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 680, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 681, "kPa", 1, 0, 0, 255, 0 +acFanPin = bits, U16, 682, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +acFanPinMode = bits, U08, 684, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 685, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6" +vehicleWeight = scalar, U16, 686, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 688, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 690, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 692, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +lps25BaroSensorSda = bits, U16, 694, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +vehicleSpeedSensorInputPin = bits, U16, 696, [0:7], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +clutchUpPin = bits, U16, 698, [0:7], 0="NONE",92="C40 - start button",9="P30_IN_AUX4",3="P32_IN_O2S2",2="P36_IN_O2S",4="P40_IN_MAP3",39="P41_IN_AUX3" +injectorNonlinearMode = bits, U08, 700, [0:1], "None", "Polynomial", "Ford (dual slope)" +clutchUpPinMode = bits, U08, 701, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +max31855_cs1 = bits, U16, 702, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +max31855_cs2 = bits, U16, 704, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +max31855_cs3 = bits, U16, 706, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +max31855_cs4 = bits, U16, 708, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +max31855_cs5 = bits, U16, 710, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +max31855_cs6 = bits, U16, 712, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +max31855_cs7 = bits, U16, 714, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +max31855_cs8 = bits, U16, 716, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +flexSensorPin = bits, U16, 718, [0:7], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +test557pin = bits, U16, 720, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +stepperDirectionPinMode = bits, U08, 722, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 723, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6" +stoichRatioSecondary = scalar, U08, 724, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 725, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 726, "hz", 1, 0, 1, 250, 0 +debugMapAveraging = bits, U16, 728, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +starterRelayDisablePin = bits, U16, 730, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +starterRelayDisablePinMode = bits, U08, 732, [0:1], "default", "default inverted", "open collector", "open collector inverted" +imuType = bits, U08, 733, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4" +startStopButtonPin = bits, U16, 734, [0:7], 0="NONE",92="C40 - start button",9="P30_IN_AUX4",3="P32_IN_O2S2",2="P36_IN_O2S",4="P40_IN_MAP3",39="P41_IN_AUX3" +mapMinBufferLength = scalar, S32, 736, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 740, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 742, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 744, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 746, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 748, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 750, "Seconds", 1, 0, 0, 30, 0 +lambdaProtectionMinTps = scalar, U08, 752, "%", 1, 0, 0, 100, 0 +lambdaProtectionTimeout = scalar, U08, 753, "s", 0.1, 0, 0, 10, 1 +lambdaProtectionRestoreRpm = scalar, U08, 754, "RPM", 100.0, 0, 0, 25000, 0 +acRelayPinMode = bits, U08, 755, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 756, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +unused754 = scalar, U08, 758, "", 1, 0, 0, 100, 0 +drv8860spiDevice = bits, U08, 759, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6" +scriptSetting1 = scalar, F32, 760, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 764, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 768, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 772, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 776, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 780, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 784, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 788, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 792, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +spi1misoPin = bits, U16, 794, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +spi1sckPin = bits, U16, 796, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +spi2mosiPin = bits, U16, 798, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +spi2misoPin = bits, U16, 800, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +spi2sckPin = bits, U16, 802, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +spi3mosiPin = bits, U16, 804, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +spi3misoPin = bits, U16, 806, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +spi3sckPin = bits, U16, 808, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +consoleUartDevice = bits, U08, 810, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 811, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1" +clutchUpPinInverted = bits, U32, 812, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 812, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 812, [2:2], "false", "true" +multisparkEnable = bits, U32, 812, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 812, [4:4], "false", "true" +enableCanVss = bits, U32, 812, [5:5], "false", "true" +enableInnovateLC2 = bits, U32, 812, [6:6], "false", "true" +unused808b7 = bits, U32, 812, [7:7], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 812, [8:8], "false", "true" +enableSoftwareKnock = bits, U32, 812, [9:9], "false", "true" +verboseVVTDecoding = bits, U32, 812, [10:10], "false", "true" +invertCamVVTSignal = bits, U32, 812, [11:11], "false", "true" +alphaNUseIat = bits, U32, 812, [12:12], "false", "true" +knockBankCyl1 = bits, U32, 812, [13:13], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 812, [14:14], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 812, [15:15], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 812, [16:16], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 812, [17:17], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 812, [18:18], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 812, [19:19], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 812, [20:20], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 812, [21:21], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 812, [22:22], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 812, [23:23], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 812, [24:24], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 812, [25:25], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 812, [26:26], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 812, [27:27], "false", "true" +verboseCan2 = bits, U32, 812, [28:28], "Do not print", "Print all" +etbIo1_directionPin1 = bits, U16, 816, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +etbIo1_directionPin2 = bits, U16, 818, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +etbIo1_controlPin = bits, U16, 820, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +etbIo1_disablePin = bits, U16, 822, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +etbIo2_directionPin1 = bits, U16, 824, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +etbIo2_directionPin2 = bits, U16, 826, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +etbIo2_controlPin = bits, U16, 828, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +etbIo2_disablePin = bits, U16, 830, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +boostControlPin = bits, U16, 832, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +boostControlPinMode = bits, U08, 834, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostType = bits, U08, 835, [0:0], "Open Loop", "Open + Closed Loop" +ALSActivatePin = bits, U16, 836, [0:7], 0="NONE",92="C40 - start button",9="P30_IN_AUX4",3="P32_IN_O2S2",2="P36_IN_O2S",4="P40_IN_MAP3",39="P41_IN_AUX3" +launchActivatePin = bits, U16, 838, [0:7], 0="NONE",92="C40 - start button",9="P30_IN_AUX4",3="P32_IN_O2S2",2="P36_IN_O2S",4="P40_IN_MAP3",39="P41_IN_AUX3" +boostPid_pFactor = scalar, F32, 840, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 844, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 848, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 852, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 854, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 856, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 858, "", 1, 0, -30000, 30000, 0 +boostPwmFrequency = scalar, S32, 860, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 864, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)" +antiLagActivationMode = bits, S08, 865, [0:0], "Switch Input", "Always Active" +mc33816_flag0 = bits, U16, 866, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +launchSpeedThreshold = scalar, S32, 868, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 872, "RPM", 1, 0, 0, 8000, 0 +launchFuelAdded = scalar, S32, 876, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 880, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 884, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 888, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 892, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 896, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 900, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 901, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 902, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 903, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 904, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 905, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 906, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 907, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 908, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 909, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 910, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 912, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 913, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 914, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 916, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 917, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 918, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 920, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 921, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 922, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 924, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +stepperDcIo1_directionPin2 = bits, U16, 926, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +stepperDcIo1_controlPin = bits, U16, 928, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +stepperDcIo1_disablePin = bits, U16, 930, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +stepperDcIo2_directionPin1 = bits, U16, 932, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +stepperDcIo2_directionPin2 = bits, U16, 934, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +stepperDcIo2_controlPin = bits, U16, 936, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +stepperDcIo2_disablePin = bits, U16, 938, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +engineMake = string, ASCII, 940, 32 +engineCode = string, ASCII, 972, 32 +vehicleName = string, ASCII, 1004, 32 +tcu_solenoid1 = bits, U16, 1036, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +tcu_solenoid2 = bits, U16, 1038, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +tcu_solenoid3 = bits, U16, 1040, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +tcu_solenoid4 = bits, U16, 1042, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +tcu_solenoid5 = bits, U16, 1044, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +tcu_solenoid6 = bits, U16, 1046, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +etbFunctions1 = bits, U08, 1048, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +etbFunctions2 = bits, U08, 1049, [0:1], "None", "Throttle 1", "Throttle 2", "Wastegate" +drv8860_cs = bits, U16, 1050, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +drv8860_csPinMode = bits, U08, 1052, [0:1], "default", "default inverted", "open collector", "open collector inverted" +idleMode = bits, U08, 1053, [0:0], "Open Loop + Closed Loop", "Open Loop" +drv8860_miso = bits, U16, 1054, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +luaOutputPins1 = bits, U16, 1056, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +luaOutputPins2 = bits, U16, 1058, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +luaOutputPins3 = bits, U16, 1060, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +luaOutputPins4 = bits, U16, 1062, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +luaOutputPins5 = bits, U16, 1064, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +luaOutputPins6 = bits, U16, 1066, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +luaOutputPins7 = bits, U16, 1068, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +luaOutputPins8 = bits, U16, 1070, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +vvtOffsets1 = scalar, S16, 1072, "value", 0.1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, S16, 1074, "value", 0.1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, S16, 1076, "value", 0.1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, S16, 1078, "value", 0.1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1080, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1086, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1092, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +vrThreshold2_rpmBins = array, U08, 1096, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1102, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_pin = bits, U16, 1108, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +gpPwmNote1 = string, ASCII, 1112, 16 +gpPwmNote2 = string, ASCII, 1128, 16 +gpPwmNote3 = string, ASCII, 1144, 16 +gpPwmNote4 = string, ASCII, 1160, 16 +tps2SecondaryMin = scalar, U16, 1176, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1178, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1180, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1180, [1:1], "false", "true" +unused1192b2 = bits, U32, 1180, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1180, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1180, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1180, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1180, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1180, [7:7], "false", "true" +canReadEnabled = bits, U32, 1180, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1180, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1180, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1180, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1180, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1180, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1180, [14:14], "false", "true" +invertSecondaryTriggerSignal = bits, U32, 1180, [15:15], "false", "true" +cutFuelOnHardLimit = bits, U32, 1180, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1180, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1180, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1180, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1180, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1180, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1180, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1180, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1180, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1180, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1180, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1180, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1180, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1180, [29:29], "false", "true" +twoStroke = bits, U32, 1180, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1180, [31:31], "On crankshaft", "On camshaft" +acSwitch = bits, U16, 1184, [0:7], 0="NONE",92="C40 - start button",9="P30_IN_AUX4",3="P32_IN_O2S2",2="P36_IN_O2S",4="P40_IN_MAP3",39="P41_IN_AUX3" +vRefAdcChannel = bits, U08, 1186, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +etbNeutralPosition = scalar, U08, 1187, "%", 1, 0, 0, 100, 0 +isInjectionEnabled = bits, U32, 1188, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1188, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1188, [2:2], "false", "true" +complexWallModel = bits, U32, 1188, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1188, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1188, [5:5], "false", "true" +useCrankingIdleTaperTableSetting = bits, U32, 1188, [6:6], "false", "true" +overrideCrankingIacSetting = bits, U32, 1188, [7:7], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1188, [8:8], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1188, [9:9], "false", "true" +useSeparateVeForIdle = bits, U32, 1188, [10:10], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1188, [11:11], "false", "true" +isManualSpinningMode = bits, U32, 1188, [12:12], "false", "true" +unused1200b12 = bits, U32, 1188, [13:13], "false", "true" +neverInstantRpm = bits, U32, 1188, [14:14], "false", "true" +unused1200b14 = bits, U32, 1188, [15:15], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1188, [16:16], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1188, [17:17], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1188, [18:18], "false", "true" +flexCranking = bits, U32, 1188, [19:19], "false", "true" +useIacPidMultTable = bits, U32, 1188, [20:20], "false", "true" +isBoostControlEnabled = bits, U32, 1188, [21:21], "false", "true" +launchSmoothRetard = bits, U32, 1188, [22:22], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1188, [23:23], "false", "true" +useCltBasedRpmLimit = bits, U32, 1188, [24:24], "no", "yes" +forceO2Heating = bits, U32, 1188, [25:25], "no", "yes" +invertVvtControlIntake = bits, U32, 1188, [26:26], "advance", "retard" +invertVvtControlExhaust = bits, U32, 1188, [27:27], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1188, [28:28], "false", "true" +sdTriggerLog = bits, U32, 1188, [29:29], "normal", "trigger" +ALSActivateInverted = bits, U32, 1188, [30:30], "false", "true" +engineChartSize = scalar, U32, 1192, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1196, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1200, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +camInputsDebug2 = bits, U16, 1202, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +camInputsDebug3 = bits, U16, 1204, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +camInputsDebug4 = bits, U16, 1206, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +acIdleRpmBump = scalar, S16, 1208, "RPM", 1, 0, 0, 1000, 0 +warningPeriod = scalar, S16, 1210, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1212, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1216, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1220, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1224, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1228, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1232, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1236, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1240, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1244, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1248, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1252, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1256, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1258, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1260, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1262, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1264, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1268, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1272, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1276, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1278, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1280, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1282, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1284, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +triggerInputDebugPins2 = bits, U16, 1286, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +airTaperRpmRange = scalar, S16, 1288, "RPM", 1, 0, 0, 1500, 0 +turboSpeedSensorInputPin = bits, U16, 1290, [0:7], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +tps2Min = scalar, S16, 1292, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1294, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1296, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +startStopButtonMode = bits, U08, 1298, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tachPulsePerRev = scalar, U08, 1299, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1300, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1304, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1308, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1310, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1312, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1316, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1320, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1324, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1326, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1328, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1330, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1332, "Fraction", 1, 0, 0, 1, 2 +auxValves1 = bits, U16, 1336, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +auxValves2 = bits, U16, 1338, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +tcuUpshiftButtonPin = bits, U16, 1340, [0:7], 0="NONE",92="C40 - start button",9="P30_IN_AUX4",3="P32_IN_O2S2",2="P36_IN_O2S",4="P40_IN_MAP3",39="P41_IN_AUX3" +tcuDownshiftButtonPin = bits, U16, 1342, [0:7], 0="NONE",92="C40 - start button",9="P30_IN_AUX4",3="P32_IN_O2S2",2="P36_IN_O2S",4="P40_IN_MAP3",39="P41_IN_AUX3" +throttlePedalUpVoltage = scalar, F32, 1344, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1348, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1352, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1354, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1356, "Volts", 1, 0, 0, 30, 1 +unused1372 = scalar, U32, 1360, "", 1, 0, 0, 100, 0 +afterCrankingIACtaperDuration = scalar, S16, 1364, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1366, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1368, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +auxSerialRxPin = bits, U16, 1370, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +LIS302DLCsPin = bits, U16, 1372, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +tpsAccelLookback = scalar, U08, 1374, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1375, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1376, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1377, "sec", 0.1, 0, 0, 10, 1 +ignTestOnTime = scalar, U08, 1378, "ms", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1380, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = bits, U16, 1384, [0:7], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +auxSpeedSensorInputPin2 = bits, U16, 1386, [0:7], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +totalGearsCount = scalar, U08, 1388, "", 1, 0, 1, 8, 0 +injectionTimingMode = bits, U08, 1389, [0:1], "End of injection", "Start of injection", "Center of injection" +debugMode = bits, U08, 1390, [0:5], "INVALID", "TPS acceleration enrichment", "INVALID", "Stepper Idle Control", "Engine Load accl enrich", "Trigger Counters", "Soft Spark Cut", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "SD card", "sr5", "Knock", "INVALID", "Electronic Throttle", "Executor", "Bench Test / TS commands", "INVALID", "Analog inputs #1", "INSTANT_RPM", "INVALID", "Status", "INVALID", "INVALID", "MAP", "Metrics", "INVALID", "Ion Sense", "TLE8888", "Analog inputs #2", "Dwell Metric", "INVALID", "INVALID", "Boost Control", "INVALID", "INVALID", "ETB Autotune", "Composite Log", "INVALID", "INVALID", "INVALID", "Dyno_View", "Logic_Analyzer", "INVALID", "TCU", "Lua" +fan1ExtraIdle = scalar, U08, 1391, "%", 1, 0, 0, 100, 0 +uartConsoleSerialSpeed = scalar, U32, 1392, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1396, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1400, "coeff", 1, 0, 0, 200, 2 +auxSerialSpeed = scalar, U32, 1404, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1408, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1412, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1416, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +veOverrideMode = bits, U08, 1417, [0:1], "None", "MAP", "TPS" +can2BaudRate = bits, U08, 1418, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps" +afrOverrideMode = bits, U08, 1419, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +mc33_hpfp_i_peak = scalar, U08, 1420, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1421, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1422, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1423, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1424, [0:0], "false", "true" +canOpenBLT = bits, U32, 1424, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1424, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1424, [3:3], "volumetric flow", "mass flow" +benchTestOffTime = scalar, U08, 1428, "ms", 5.0, 0, 0, 2000, 0 +lambdaProtectionRestoreTps = scalar, U08, 1429, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1430, "%", 10.0, 0, 0, 1000, 0 +launchActivatePinMode = bits, U08, 1431, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +can2TxPin = bits, U16, 1432, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +can2RxPin = bits, U16, 1434, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +starterControlPinMode = bits, U08, 1436, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1437, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +ignOverrideMode = bits, U08, 1438, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %" +injectorPressureType = bits, U08, 1439, [0:0], "Low", "High" +hpfpValvePin = bits, U16, 1440, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +hpfpValvePinMode = bits, U08, 1442, [0:1], "default", "default inverted", "open collector", "open collector inverted" +accelerometerSpiDevice = bits, U08, 1443, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6" +boostCutPressure = scalar, F32, 1444, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1448, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1464, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1480, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1484, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1488, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1492, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1496, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +vvtPins2 = bits, U16, 1498, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +vvtPins3 = bits, U16, 1500, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +vvtPins4 = bits, U16, 1502, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +crankingIACposition = scalar, S32, 1504, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1508, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1512, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1516, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1520, "", 1, 0, 0, 3, 4 +vvtOutputFrequency = scalar, U16, 1524, "Hz", 1, 0, 0, 3000, 0 +minimumIgnitionTiming = scalar, S08, 1526, "deg BTDC", 1, 0, -90, 90, 0 +maximumIgnitionTiming = scalar, S08, 1527, "deg BTDC", 1, 0, -90, 90, 0 +alternatorPwmFrequency = scalar, S32, 1528, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1532, [0:5], "Inactive", "Single Tooth", "Toyota 3 Tooth", "Miata NB2", "INVALID", "Bosch Quick Start", "4/1", "ST 170", "Ford Barra 3+1", "Nissan VQ", "Honda K Intake", "Nissan MR18", "Mitsu 3A92", "VTwin by MAP", "Mitsu 6G75", "Mazda Skyactiv", "Honda K Exhaust", "Mitsubishi 4G92/93/94", "Mitsubishi 4G63" +vvtMode2 = bits, U08, 1533, [0:5], "Inactive", "Single Tooth", "Toyota 3 Tooth", "Miata NB2", "INVALID", "Bosch Quick Start", "4/1", "ST 170", "Ford Barra 3+1", "Nissan VQ", "Honda K Intake", "Nissan MR18", "Mitsu 3A92", "VTwin by MAP", "Mitsu 6G75", "Mazda Skyactiv", "Honda K Exhaust", "Mitsubishi 4G92/93/94", "Mitsubishi 4G63" +fan2ExtraIdle = scalar, U08, 1534, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1535, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1536, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +auxAnalogInputs2 = bits, U08, 1537, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +auxAnalogInputs3 = bits, U08, 1538, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +auxAnalogInputs4 = bits, U08, 1539, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +auxAnalogInputs5 = bits, U08, 1540, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +auxAnalogInputs6 = bits, U08, 1541, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +auxAnalogInputs7 = bits, U08, 1542, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +auxAnalogInputs8 = bits, U08, 1543, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +trailingCoilPins1 = bits, U16, 1544, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +trailingCoilPins2 = bits, U16, 1546, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +trailingCoilPins3 = bits, U16, 1548, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +trailingCoilPins4 = bits, U16, 1550, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +trailingCoilPins5 = bits, U16, 1552, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +trailingCoilPins6 = bits, U16, 1554, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +trailingCoilPins7 = bits, U16, 1556, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +trailingCoilPins8 = bits, U16, 1558, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +trailingCoilPins9 = bits, U16, 1560, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +trailingCoilPins10 = bits, U16, 1562, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +trailingCoilPins11 = bits, U16, 1564, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +trailingCoilPins12 = bits, U16, 1566, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +tle8888mode = bits, U08, 1568, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +LIS302DLCsPinMode = bits, U08, 1569, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1570, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure" +fan2PinMode = bits, U08, 1571, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1572, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = scalar, F32, 1576, "mult", 1, 0, 1, 3, 2 +postCrankingDurationSec = scalar, F32, 1580, "seconds", 1, 0, 0, 30, 0 +auxTempSensor1_tempC_1 = scalar, S32, 1584, "*C", 0.01, 0, -40, 200, 1 +auxTempSensor1_tempC_2 = scalar, S32, 1588, "*C", 0.01, 0, -40, 200, 1 +auxTempSensor1_tempC_3 = scalar, S32, 1592, "*C", 0.01, 0, -40, 200, 1 +auxTempSensor1_resistance_1 = scalar, U32, 1596, "Ohm", 0.01, 0, 0, 200000, 1 +auxTempSensor1_resistance_2 = scalar, U32, 1600, "Ohm", 0.01, 0, 0, 200000, 1 +auxTempSensor1_resistance_3 = scalar, U32, 1604, "Ohm", 0.01, 0, 0, 200000, 1 +auxTempSensor1_bias_resistor = scalar, U32, 1608, "Ohm", 0.1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 1612, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +auxTempSensor2_tempC_1 = scalar, S32, 1616, "*C", 0.01, 0, -40, 200, 1 +auxTempSensor2_tempC_2 = scalar, S32, 1620, "*C", 0.01, 0, -40, 200, 1 +auxTempSensor2_tempC_3 = scalar, S32, 1624, "*C", 0.01, 0, -40, 200, 1 +auxTempSensor2_resistance_1 = scalar, U32, 1628, "Ohm", 0.01, 0, 0, 200000, 1 +auxTempSensor2_resistance_2 = scalar, U32, 1632, "Ohm", 0.01, 0, 0, 200000, 1 +auxTempSensor2_resistance_3 = scalar, U32, 1636, "Ohm", 0.01, 0, 0, 200000, 1 +auxTempSensor2_bias_resistor = scalar, U32, 1640, "Ohm", 0.1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 1644, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +knockSamplingDuration = scalar, S16, 1648, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 1650, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 1652, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 1656, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 1660, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 1664, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 1666, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 1668, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 1670, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 1672, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step" +stepperMinDutyCycle = scalar, U08, 1673, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 1674, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 1675, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6" +timing_offset_cylinder1 = scalar, F32, 1676, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 1680, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 1684, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 1688, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 1692, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 1696, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 1700, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 1704, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 1708, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 1712, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 1716, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 1720, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 1724, "seconds", 1, 0, 0, 60, 1 +unused1800 = array, U08, 1728, [9], "", 1, 0, 0, 100, 0 +stepperEnablePinMode = bits, U08, 1737, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 1738, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mc33816_driven = bits, U16, 1740, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +brakePedalPin = bits, U16, 1742, [0:7], 0="NONE",92="C40 - start button",9="P30_IN_AUX4",3="P32_IN_O2S2",2="P36_IN_O2S",4="P40_IN_MAP3",39="P41_IN_AUX3" +brakePedalPinMode = bits, U08, 1744, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tChargeMode = bits, U08, 1745, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table" +tcuUpshiftButtonPinMode = bits, U08, 1746, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tcuDownshiftButtonPinMode = bits, U08, 1747, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +auxPid1_pFactor = scalar, F32, 1748, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 1752, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 1756, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 1760, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 1762, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 1764, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 1766, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 1768, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 1772, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 1776, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 1780, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 1782, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 1784, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 1786, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 1788, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 1792, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 1796, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 1800, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 1804, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 1808, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 1812, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 1816, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 1820, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 1828, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +oilPressure_v1 = scalar, F32, 1832, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 1836, "kPa", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 1840, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 1844, "kPa", 1, 0, 0, 1000000, 2 +fan2Pin = bits, U16, 1848, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +fan2OnTemperature = scalar, U08, 1850, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 1851, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 1852, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +tle8888_cs = bits, U16, 1854, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +tle8888_csPinMode = bits, U08, 1856, [0:1], "default", "default inverted", "open collector", "open collector inverted" +canVssNbcType = bits, U08, 1858, [0:1], "BMW_e46", "W202", "BMW E8x/E9x MK60e5" +mc33816_cs = bits, U16, 1860, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +auxFrequencyFilter = scalar, F32, 1864, "hz", 1, 0, 0, 100, 1 +vvtControlMinRpm = scalar, S16, 1868, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 1870, [0:7], 0="NONE",5="C24 - PPS1",38="C25 - PPS2",35="E23 - MAP",36="E29 - Coolant Temp",6="E31 - TPS1",18="E34 - TPS2",19="E37 - Crank Input",8="E40 - IN_CAM",37="E45 - IAT",34="E47 - MAF" +launchFuelAdderPercent = scalar, S08, 1872, "%", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 1873, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 1874, "", 1, 0, 0, 32000, 0 +coastingFuelCutRpmHigh = scalar, S16, 1876, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 1878, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 1880, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 1882, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 1884, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 1886, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 1888, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +highPressureFuel_v1 = scalar, F32, 1892, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 1896, "kPa", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 1900, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 1904, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 1908, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +lowPressureFuel_v1 = scalar, F32, 1912, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 1916, "kPa", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 1920, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 1924, "kPa", 1, 0, 0, 1000000, 2 +scriptCurveName1 = string, ASCII, 1928, 16 +scriptCurveName2 = string, ASCII, 1944, 16 +scriptCurveName3 = string, ASCII, 1960, 16 +scriptCurveName4 = string, ASCII, 1976, 16 +scriptCurveName5 = string, ASCII, 1992, 16 +scriptCurveName6 = string, ASCII, 2008, 16 +scriptTableName1 = string, ASCII, 2024, 16 +scriptTableName2 = string, ASCII, 2040, 16 +scriptTableName3 = string, ASCII, 2056, 16 +scriptTableName4 = string, ASCII, 2072, 16 +scriptSettingName1 = string, ASCII, 2088, 16 +scriptSettingName2 = string, ASCII, 2104, 16 +scriptSettingName3 = string, ASCII, 2120, 16 +scriptSettingName4 = string, ASCII, 2136, 16 +scriptSettingName5 = string, ASCII, 2152, 16 +scriptSettingName6 = string, ASCII, 2168, 16 +scriptSettingName7 = string, ASCII, 2184, 16 +scriptSettingName8 = string, ASCII, 2200, 16 +tChargeAirCoefMin = scalar, F32, 2216, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2220, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2224, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2228, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2232, "deg/sec", 1, 0, 0, 100, 1 +etb_iTermMin = scalar, S16, 2236, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2238, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2240, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2244, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2248, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2252, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2254, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2256, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2258, "", 1, 0, -30000, 30000, 0 +etbRocExpAverageLength = scalar, S16, 2260, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2262, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2264, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2268, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6" +mc33816spiDevice = bits, U08, 2269, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6" +idlerpmpid_iTermMin = scalar, S16, 2270, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2272, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6" +stoichRatioPrimary = scalar, U08, 2273, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2274, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2276, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2280, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2281, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2282, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2283, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2284, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2285, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2286, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2287, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2288, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2289, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2290, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2291, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2292, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2300, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2301, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2302, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2303, "RPM", 50.0, 0, 0, 12000, 0 +gppwm1_pin = bits, U16, 2304, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +gppwm1_dutyIfError = scalar, U08, 2306, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2308, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2310, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2311, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2312, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure" +gppwm1_rpmAxis = bits, U08, 2313, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure" +gppwm1_loadBins = array, S16, 2314, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm1_rpmBins = array, S16, 2330, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2346, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2412, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +gppwm2_dutyIfError = scalar, U08, 2414, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2416, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2418, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2419, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2420, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure" +gppwm2_rpmAxis = bits, U08, 2421, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure" +gppwm2_loadBins = array, S16, 2422, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm2_rpmBins = array, S16, 2438, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2454, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2520, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +gppwm3_dutyIfError = scalar, U08, 2522, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2524, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2526, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2527, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2528, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure" +gppwm3_rpmAxis = bits, U08, 2529, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure" +gppwm3_loadBins = array, S16, 2530, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm3_rpmBins = array, S16, 2546, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 2562, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 2628, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +gppwm4_dutyIfError = scalar, U08, 2630, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 2632, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 2634, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 2635, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 2636, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure" +gppwm4_rpmAxis = bits, U08, 2637, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure" +gppwm4_loadBins = array, S16, 2638, [8], "load", 0.1, 0, -1000, 1000, 1 +gppwm4_rpmBins = array, S16, 2654, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 2670, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 2736, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 2738, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 2740, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 2742, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 2744, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 2746, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 2748, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 2750, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 2752, "us", 1, 0, 0, 10000, 0 +tcu_solenoid_mode1 = bits, U08, 2754, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 2755, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 2756, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 2757, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 2758, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 2759, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerGapOverrideFrom1 = scalar, U16, 2760, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, U16, 2762, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, U16, 2764, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, U16, 2766, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, U16, 2768, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, U16, 2770, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, U16, 2772, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, U16, 2774, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, U16, 2776, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, U16, 2778, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, U16, 2780, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, U16, 2782, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, U16, 2784, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, U16, 2786, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, U16, 2788, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, U16, 2790, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, U16, 2792, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, U16, 2794, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, U16, 2796, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, U16, 2798, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, U16, 2800, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, U16, 2802, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, U16, 2804, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, U16, 2806, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, U16, 2808, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, U16, 2810, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, U16, 2812, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, U16, 2814, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, U16, 2816, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, U16, 2818, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, U16, 2820, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, U16, 2822, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, U16, 2824, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, U16, 2826, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, U16, 2828, "ratio", 0.001, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, U16, 2830, "ratio", 0.001, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 2832, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 2833, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 2834, "sec", 0.1, 0, 0, 10, 1 +acSwitchMode = bits, U08, 2835, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +fordInjectorSmallPulseBreakPoint = scalar, U16, 2836, "mg", 0.001, 0, 0, 65, 3 +etbJamIntegratorLimit = scalar, U08, 2838, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 2839, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 2840, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2" +hpfpPeakPos = scalar, U08, 2841, "deg", 1, 0, 0, 255, 0 +hpfpMinAngle = scalar, U08, 2842, "deg", 1, 0, 0, 255, 0 +vinNumber = string, ASCII, 2843, 17 +hpfpPumpVolume = scalar, U16, 2860, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 2862, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 2863, "", 1, 0, 0, 255, 0 +hpfpPidP = scalar, U16, 2864, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 2866, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 2868, "kPa/s", 1, 0, 0, 65000, 0 +stepper_raw_output1 = bits, U16, 2870, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +stepper_raw_output2 = bits, U16, 2872, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +stepper_raw_output3 = bits, U16, 2874, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +stepper_raw_output4 = bits, U16, 2876, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +gearRatio1 = scalar, U16, 2878, "ratio", 0.01, 0, 0, 10, 2 +gearRatio2 = scalar, U16, 2880, "ratio", 0.01, 0, 0, 10, 2 +gearRatio3 = scalar, U16, 2882, "ratio", 0.01, 0, 0, 10, 2 +gearRatio4 = scalar, U16, 2884, "ratio", 0.01, 0, 0, 10, 2 +gearRatio5 = scalar, U16, 2886, "ratio", 0.01, 0, 0, 10, 2 +gearRatio6 = scalar, U16, 2888, "ratio", 0.01, 0, 0, 10, 2 +gearRatio7 = scalar, U16, 2890, "ratio", 0.01, 0, 0, 10, 2 +gearRatio8 = scalar, U16, 2892, "ratio", 0.01, 0, 0, 10, 2 +vvtActivationDelayMs = scalar, U16, 2894, "ms", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 2896, [0:1], "None", "Button Shift" +transmissionControllerMode = bits, U08, 2897, [0:1], "None", "Simple Transmission", "GM 4L6X" +acrDisablePhase = scalar, U16, 2898, "deg", 1, 0, 0, 720, 0 +auxLinear1_hwChannel = bits, U08, 2900, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +auxLinear1_v1 = scalar, F32, 2904, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 2908, "kPa", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 2912, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 2916, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 2920, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +auxLinear2_v1 = scalar, F32, 2924, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 2928, "kPa", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 2932, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 2936, "kPa", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 2940, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +tcu_tcc_onoff_solenoid_mode = bits, U08, 2942, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_mode = bits, U08, 2943, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 2944, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 2946, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 2948, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +tcu_pc_solenoid_pin_mode = bits, U08, 2950, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_pin_mode = bits, U08, 2951, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 2952, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 2954, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +tcu_32_solenoid_freq = scalar, U16, 2956, "Hz", 1, 0, 0, 3000, 0 +acrPin2 = bits, U16, 2958, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +etbMinimumPosition = scalar, F32, 2960, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 2964, "", 1, 0, 0, 20000, 0 +sentEtbType = bits, S08, 2966, [0:1], "None", "GM type 1", "Ford type 1" +fuelPressureSensorMode = bits, U08, 2967, [0:1], "Absolute", "Gauge", "Differential", "INVALID" +luaDigitalInputPins1 = bits, U16, 2968, [0:7], 0="NONE",92="C40 - start button",9="P30_IN_AUX4",3="P32_IN_O2S2",2="P36_IN_O2S",4="P40_IN_MAP3",39="P41_IN_AUX3" +luaDigitalInputPins2 = bits, U16, 2970, [0:7], 0="NONE",92="C40 - start button",9="P30_IN_AUX4",3="P32_IN_O2S2",2="P36_IN_O2S",4="P40_IN_MAP3",39="P41_IN_AUX3" +luaDigitalInputPins3 = bits, U16, 2972, [0:7], 0="NONE",92="C40 - start button",9="P30_IN_AUX4",3="P32_IN_O2S2",2="P36_IN_O2S",4="P40_IN_MAP3",39="P41_IN_AUX3" +luaDigitalInputPins4 = bits, U16, 2974, [0:7], 0="NONE",92="C40 - start button",9="P30_IN_AUX4",3="P32_IN_O2S2",2="P36_IN_O2S",4="P40_IN_MAP3",39="P41_IN_AUX3" +luaDigitalInputPins5 = bits, U16, 2976, [0:7], 0="NONE",92="C40 - start button",9="P30_IN_AUX4",3="P32_IN_O2S2",2="P36_IN_O2S",4="P40_IN_MAP3",39="P41_IN_AUX3" +luaDigitalInputPins6 = bits, U16, 2978, [0:7], 0="NONE",92="C40 - start button",9="P30_IN_AUX4",3="P32_IN_O2S2",2="P36_IN_O2S",4="P40_IN_MAP3",39="P41_IN_AUX3" +luaDigitalInputPins7 = bits, U16, 2980, [0:7], 0="NONE",92="C40 - start button",9="P30_IN_AUX4",3="P32_IN_O2S2",2="P36_IN_O2S",4="P40_IN_MAP3",39="P41_IN_AUX3" +luaDigitalInputPins8 = bits, U16, 2982, [0:7], 0="NONE",92="C40 - start button",9="P30_IN_AUX4",3="P32_IN_O2S2",2="P36_IN_O2S",4="P40_IN_MAP3",39="P41_IN_AUX3" +ALSMinRPM = scalar, S16, 2984, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 2986, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 2988, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 2990, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 2991, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 2992, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 2993, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 2994, "%", 1, 0, 0, 100, 0 +instantRpmRange = scalar, U08, 2995, "deg", 1, 0, 0, 250, 0 +ALSIdleAdd = scalar, S32, 2996, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 3000, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, S32, 3004, "", 1, 0, 0.1, 2, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 3008, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 3009, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +tpsSecondaryMaximum = scalar, U08, 3010, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 3011, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 3012, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes2 = bits, U08, 3013, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes3 = bits, U08, 3014, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes4 = bits, U08, 3015, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes5 = bits, U08, 3016, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes6 = bits, U08, 3017, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes7 = bits, U08, 3018, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +luaDigitalInputPinModes8 = bits, U08, 3019, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" +rpmHardLimitHyst = scalar, U08, 3020, "RPM", 10.0, 0, 0, 2500, 0 +ignTestCount = scalar, U08, 3021, "", 1, 0, 0, 50, 0 +ignTestOffTime = scalar, U08, 3022, "ms", 5.0, 0, 0, 2000, 0 +canVssScaling = scalar, U16, 3024, "ratio", 1.0E-4, 0, 0.5, 1.5, 4 +oilTempSensor_tempC_1 = scalar, S32, 3028, "*C", 0.01, 0, -40, 200, 1 +oilTempSensor_tempC_2 = scalar, S32, 3032, "*C", 0.01, 0, -40, 200, 1 +oilTempSensor_tempC_3 = scalar, S32, 3036, "*C", 0.01, 0, -40, 200, 1 +oilTempSensor_resistance_1 = scalar, U32, 3040, "Ohm", 0.01, 0, 0, 200000, 1 +oilTempSensor_resistance_2 = scalar, U32, 3044, "Ohm", 0.01, 0, 0, 200000, 1 +oilTempSensor_resistance_3 = scalar, U32, 3048, "Ohm", 0.01, 0, 0, 200000, 1 +oilTempSensor_bias_resistor = scalar, U32, 3052, "Ohm", 0.1, 0, 0, 200000, 1 +oilTempSensor_adcChannel = bits, U08, 3056, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +fuelTempSensor_tempC_1 = scalar, S32, 3060, "*C", 0.01, 0, -40, 200, 1 +fuelTempSensor_tempC_2 = scalar, S32, 3064, "*C", 0.01, 0, -40, 200, 1 +fuelTempSensor_tempC_3 = scalar, S32, 3068, "*C", 0.01, 0, -40, 200, 1 +fuelTempSensor_resistance_1 = scalar, U32, 3072, "Ohm", 0.01, 0, 0, 200000, 1 +fuelTempSensor_resistance_2 = scalar, U32, 3076, "Ohm", 0.01, 0, 0, 200000, 1 +fuelTempSensor_resistance_3 = scalar, U32, 3080, "Ohm", 0.01, 0, 0, 200000, 1 +fuelTempSensor_bias_resistor = scalar, U32, 3084, "Ohm", 0.1, 0, 0, 200000, 1 +fuelTempSensor_adcChannel = bits, U08, 3088, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +ambientTempSensor_tempC_1 = scalar, S32, 3092, "*C", 0.01, 0, -40, 200, 1 +ambientTempSensor_tempC_2 = scalar, S32, 3096, "*C", 0.01, 0, -40, 200, 1 +ambientTempSensor_tempC_3 = scalar, S32, 3100, "*C", 0.01, 0, -40, 200, 1 +ambientTempSensor_resistance_1 = scalar, U32, 3104, "Ohm", 0.01, 0, 0, 200000, 1 +ambientTempSensor_resistance_2 = scalar, U32, 3108, "Ohm", 0.01, 0, 0, 200000, 1 +ambientTempSensor_resistance_3 = scalar, U32, 3112, "Ohm", 0.01, 0, 0, 200000, 1 +ambientTempSensor_bias_resistor = scalar, U32, 3116, "Ohm", 0.1, 0, 0, 200000, 1 +ambientTempSensor_adcChannel = bits, U08, 3120, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +compressorDischargeTemperature_tempC_1 = scalar, S32, 3124, "*C", 0.01, 0, -40, 200, 1 +compressorDischargeTemperature_tempC_2 = scalar, S32, 3128, "*C", 0.01, 0, -40, 200, 1 +compressorDischargeTemperature_tempC_3 = scalar, S32, 3132, "*C", 0.01, 0, -40, 200, 1 +compressorDischargeTemperature_resistance_1 = scalar, U32, 3136, "Ohm", 0.01, 0, 0, 200000, 1 +compressorDischargeTemperature_resistance_2 = scalar, U32, 3140, "Ohm", 0.01, 0, 0, 200000, 1 +compressorDischargeTemperature_resistance_3 = scalar, U32, 3144, "Ohm", 0.01, 0, 0, 200000, 1 +compressorDischargeTemperature_bias_resistor = scalar, U32, 3148, "Ohm", 0.1, 0, 0, 200000, 1 +compressorDischargeTemperature_adcChannel = bits, U08, 3152, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +throttleInletPressureChannel = bits, U08, 3156, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +compressorDischargePressureChannel = bits, U08, 3157, [0:5], 0="NONE",6="Battery Sense",4="C24 - PPS1",15="C25 - PPS2",12="E23 - MAP",13="E29 - Coolant Temp",5="E31 - TPS1",9="E34 - TPS2",10="E37 - Crank Input",7="E40 - IN_CAM",14="E45 - IAT",11="E47 - MAF",8="P30_IN_AUX4",2="P32_IN_O2S2",1="P36_IN_O2S",3="P40_IN_MAP3",16="P41_IN_AUX3" +maxInjectorDutyInstant = scalar, U08, 3158, "%", 1, 0, 50, 200, 0 +maxInjectorDutySustained = scalar, U08, 3159, "%", 1, 0, 50, 120, 0 +maxInjectorDutySustainedTimeout = scalar, U08, 3160, "sec", 0.1, 0, 0, 5, 1 +speedometerOutputPin = bits, U16, 3162, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" +speedometerPulsePerKm = scalar, U16, 3164, "", 1, 0, 0, 65000, 0 +spi4mosiPin = bits, U16, 3166, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +spi4misoPin = bits, U16, 3168, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +spi4sckPin = bits, U16, 3170, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +spi5mosiPin = bits, U16, 3172, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +spi5misoPin = bits, U16, 3174, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +spi5sckPin = bits, U16, 3176, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +spi6mosiPin = bits, U16, 3178, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +spi6misoPin = bits, U16, 3180, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +spi6sckPin = bits, U16, 3182, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +mainUnusedEnd = array, U08, 3184, [237], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, U08, 3424, [8], "target TPS position", 0.5, 0, 0, 100, 1 +etbBiasValues = array, S16, 3432, [8], "ETB duty cycle bias", 0.1, 0, -100, 100, 1 +iacPidMultTable = array, U08, 3448, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 3512, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 3520, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 3528, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 3544, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 3560, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 3576, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 3592, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 3624, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, S16, 3656, [16], "x", 0.1, 0, -3270, 3270, 2 +scriptCurve1 = array, S16, 3688, [16], "y", 0.1, 0, -3270, 3270, 2 +scriptCurve2Bins = array, S16, 3720, [16], "x", 0.1, 0, -3270, 3270, 2 +scriptCurve2 = array, S16, 3752, [16], "y", 0.1, 0, -3270, 3270, 2 +scriptCurve3Bins = array, S16, 3784, [8], "x", 0.1, 0, -3270, 3270, 2 +scriptCurve3 = array, S16, 3800, [8], "y", 0.1, 0, -3270, 3270, 2 +scriptCurve4Bins = array, S16, 3816, [8], "x", 0.1, 0, -3270, 3270, 2 +scriptCurve4 = array, S16, 3832, [8], "y", 0.1, 0, -3270, 3270, 2 +scriptCurve5Bins = array, S16, 3848, [8], "x", 0.1, 0, -3270, 3270, 2 +scriptCurve5 = array, S16, 3864, [8], "y", 0.1, 0, -3270, 3270, 2 +scriptCurve6Bins = array, S16, 3880, [8], "x", 0.1, 0, -3270, 3270, 2 +scriptCurve6 = array, S16, 3896, [8], "y", 0.1, 0, -3270, 3270, 2 +baroCorrPressureBins = array, U16, 3912, [4], "kPa", 0.1, 0, 0, 200, 1 +baroCorrRpmBins = array, U16, 3920, [4], "RPM", 1, 0, 0, 65000, 0 +baroCorrTable = array, U16, 3928, [4x4], "ratio", 0.001, 0, 0, 2, 3 +crankingTpsCoef = array, F32, 3960, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 3992, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 4024, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 4032, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 4040, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 4056, [16], "%", 0.5, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 4072, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 4136, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 4144, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 4208, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 4216, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 4280, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 4288, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 4296, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 4328, [8], "%", 1, 0, 0, 500, 2 +cltCrankingTaperCorrBins = array, S08, 4360, [8], "C", 1, 0, -100, 120, 2 +cltCrankingTaperCorr = array, U08, 4368, [8], "%", 0.02, 0, 0, 5, 2 +idleAdvanceBins = array, U08, 4376, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 4384, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 4416, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 4420, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 4424, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 4456, 8000 +cltFuelCorrBins = array, F32, 12456, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 12520, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 12584, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 12648, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 12712, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 12744, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 12776, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 12808, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 12840, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 12904, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 12968, [256], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 13992, [256], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 15016, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 15080, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 15088, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 15096, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 15608, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 15640, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 15672, [6x10], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 15732, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 16244, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 16276, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 16308, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 16372, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 16388, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 16404, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 16468, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 16484, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 16500, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 17012, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 17044, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 17076, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 17588, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 17620, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 17652, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 17652, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 17908, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 17940, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 17972, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 18228, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 18260, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, S16, 18292, [8x8], "value", 0.01, 0, -327, 327, 2 +scriptTable1LoadBins = array, S16, 18420, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 18436, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, S16, 18452, [8x8], "value", 0.01, 0, -327, 327, 2 +scriptTable2LoadBins = array, S16, 18580, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 18596, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, S16, 18612, [8x8], "value", 0.01, 0, -327, 327, 2 +scriptTable3LoadBins = array, S16, 18740, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 18756, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, S16, 18772, [8x8], "value", 0.01, 0, -327, 327, 2 +scriptTable4LoadBins = array, S16, 18900, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 18916, [8], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 18932, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 18940, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 18948, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 18964, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 18980, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 18996, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 19012, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 19028, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 19044, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 19060, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 19076, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 19092, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 19108, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 19124, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 19140, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 19148, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 19156, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 19172, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 19188, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 19204, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 19220, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 19236, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 19252, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 19268, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 19284, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 19300, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 19316, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 19332, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 19348, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 19364, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 19372, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 19380, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 19388, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 19396, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 19404, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 19412, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 19420, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 19428, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 19436, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 19444, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 19452, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 19460, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 19468, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 19476, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 19484, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 19492, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 19500, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 19508, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 19544, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 19550, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 19556, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 19592, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 19598, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 19604, [4x4], "deg", 0.1, 0, -720, 720, 1 +alsIgnRetardLoadBins = array, U16, 19636, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 19644, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 19652, [4x4], "percent", 0.1, 0, 0, 500, 1 +alsFuelAdjustmentLoadBins = array, U16, 19684, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 19692, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 19700, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 19828, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 19844, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 19860, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure" +ignBlends1_yAxisOverride = bits, U08, 19861, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure" +ignBlends1_blendBins = array, S16, 19862, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 19878, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 19888, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 20016, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 20032, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 20048, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure" +ignBlends2_yAxisOverride = bits, U08, 20049, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure" +ignBlends2_blendBins = array, S16, 20050, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 20066, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 20076, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 20204, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 20220, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 20236, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure" +ignBlends3_yAxisOverride = bits, U08, 20237, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure" +ignBlends3_blendBins = array, S16, 20238, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 20254, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 20264, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 20392, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 20408, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 20424, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure" +ignBlends4_yAxisOverride = bits, U08, 20425, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure" +ignBlends4_blendBins = array, S16, 20426, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 20442, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 20452, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 20580, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 20596, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 20612, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure" +veBlends1_yAxisOverride = bits, U08, 20613, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure" +veBlends1_blendBins = array, S16, 20614, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 20630, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 20640, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 20768, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 20784, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 20800, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure" +veBlends2_yAxisOverride = bits, U08, 20801, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure" +veBlends2_blendBins = array, S16, 20802, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 20818, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 20828, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 20956, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 20972, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 20988, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure" +veBlends3_yAxisOverride = bits, U08, 20989, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure" +veBlends3_blendBins = array, S16, 20990, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 21006, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 21016, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 21144, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 21160, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 21176, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure" +veBlends4_yAxisOverride = bits, U08, 21177, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure" +veBlends4_blendBins = array, S16, 21178, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 21194, [8], "%", 0.5, 0, 0, 100, 1 +throttleEstimateEffectiveAreaBins = array, U16, 21204, [12], "%", 0.1, 0, 0, 100, 1 +throttleEstimateEffectiveAreaValues = array, U16, 21228, [12], "g/s", 0.1, 0, 0, 6500, 1 +boostOpenLoopBlends1_table = array, S16, 21252, [8x8], "", 0.1, 0, -100, 100, 1 +boostOpenLoopBlends1_loadBins = array, U16, 21380, [8], "Load", 1, 0, 0, 1000, 0 +boostOpenLoopBlends1_rpmBins = array, U16, 21396, [8], "RPM", 1, 0, 0, 18000, 0 +boostOpenLoopBlends1_blendParameter = bits, U08, 21412, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure" +boostOpenLoopBlends1_yAxisOverride = bits, U08, 21413, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure" +boostOpenLoopBlends1_blendBins = array, S16, 21414, [8], "", 0.1, 0, -1000, 1000, 1 +boostOpenLoopBlends1_blendValues = array, U08, 21430, [8], "%", 0.5, 0, 0, 100, 1 +boostOpenLoopBlends2_table = array, S16, 21440, [8x8], "", 0.1, 0, -100, 100, 1 +boostOpenLoopBlends2_loadBins = array, U16, 21568, [8], "Load", 1, 0, 0, 1000, 0 +boostOpenLoopBlends2_rpmBins = array, U16, 21584, [8], "RPM", 1, 0, 0, 18000, 0 +boostOpenLoopBlends2_blendParameter = bits, U08, 21600, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure" +boostOpenLoopBlends2_yAxisOverride = bits, U08, 21601, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure" +boostOpenLoopBlends2_blendBins = array, S16, 21602, [8], "", 0.1, 0, -1000, 1000, 1 +boostOpenLoopBlends2_blendValues = array, U08, 21618, [8], "%", 0.5, 0, 0, 100, 1 +boostClosedLoopBlends1_table = array, S16, 21628, [8x8], "", 0.1, 0, -100, 100, 1 +boostClosedLoopBlends1_loadBins = array, U16, 21756, [8], "Load", 1, 0, 0, 1000, 0 +boostClosedLoopBlends1_rpmBins = array, U16, 21772, [8], "RPM", 1, 0, 0, 18000, 0 +boostClosedLoopBlends1_blendParameter = bits, U08, 21788, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure" +boostClosedLoopBlends1_yAxisOverride = bits, U08, 21789, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure" +boostClosedLoopBlends1_blendBins = array, S16, 21790, [8], "", 0.1, 0, -1000, 1000, 1 +boostClosedLoopBlends1_blendValues = array, U08, 21806, [8], "%", 0.5, 0, 0, 100, 1 +boostClosedLoopBlends2_table = array, S16, 21816, [8x8], "", 0.1, 0, -100, 100, 1 +boostClosedLoopBlends2_loadBins = array, U16, 21944, [8], "Load", 1, 0, 0, 1000, 0 +boostClosedLoopBlends2_rpmBins = array, U16, 21960, [8], "RPM", 1, 0, 0, 18000, 0 +boostClosedLoopBlends2_blendParameter = bits, U08, 21976, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure" +boostClosedLoopBlends2_yAxisOverride = bits, U08, 21977, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure" +boostClosedLoopBlends2_blendBins = array, S16, 21978, [8], "", 0.1, 0, -1000, 1000, 1 +boostClosedLoopBlends2_blendValues = array, U08, 21994, [8], "%", 0.5, 0, 0, 100, 1 +lambdaMaxDeviationTable = array, U08, 22004, [4x4], "lambda", 0.01, 0, 0, 1, 2 +lambdaMaxDeviationLoadBins = array, U16, 22020, [4], "", 1, 0, 0, 1000, 0 +lambdaMaxDeviationRpmBins = array, U16, 22028, [4], "RPM", 1, 0, 0, 18000, 0 +injectorStagingTable = array, U08, 22036, [6x6], "%", 1, 0, 0, 90, 0 +injectorStagingLoadBins = array, U16, 22072, [6], "", 1, 0, 0, 1000, 0 +injectorStagingRpmBins = array, U16, 22084, [6], "RPM", 1, 0, 0, 18000, 0 +wwCltBins = array, S08, 22096, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 22104, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 22112, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 22120, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 22128, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 22136, [8], "", 0.01, 0, 0, 2.5, 2 +hpfpLobeProfileQuantityBins = array, U08, 22144, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 22160, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 22176, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 22184, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 22200, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 22400, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 22420, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 22430, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 22530, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 22550, [10], "RPM", 50.0, 0, 0, 12500, 0 +knockNoiseRpmBins = array, U16, 22560, [16], "RPM", 1, 0, 0, 30000, 0 +knockBaseNoise = array, S08, 22592, [16], "dB", 0.5, 0, -50, 10, 1 +tpsTspCorrValuesBins = array, U08, 22608, [4], "RPM", 50.0, 0, 0, 17500, 0 +tpsTspCorrValues = array, U08, 22612, [4], "multiplier", 0.02, 0, 0, 5, 2 +cltRevLimitRpmBins = array, S08, 22616, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 22620, [4], "RPM", 1, 0, 0, 20000, 0 +fuelLevelBins = array, U16, 22628, [8], "volt", 0.001, 0, 0, 5, 3 +fuelLevelValues = array, U08, 22644, [8], "%", 1, 0, 0, 100, 0 +dwellVoltageCorrVoltBins = array, U08, 22652, [8], "volts", 0.1, 0, 0, 20, 1 +dwellVoltageCorrValues = array, U08, 22660, [8], "multiplier", 0.02, 0, 0, 5, 2 +; total TS size = 22668 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + ignitionMode = "Single coil = distributor\nIndividual coils = one coil per cylinder (COP, coil-near-plug), requires sequential mode\nWasted spark = Fires pairs of cylinders together, either one coil per pair of cylinders or one coil per cylinder\nTwo distributors = A pair of distributors, found on some BMW, Toyota and other engines" + injector_flow = "This is your injector flow at the fuel pressure used in the vehicle. cc/min" + injector_battLagCorr = "ms delay between injector open and close dead times" + injectorSecondary_flow = "This is your injector flow at the fuel pressure used in the vehicle. cc/min" + injectorSecondary_battLagCorr = "ms delay between injector open and close dead times" + isForcedInduction = "Does the vehicle have a turbo or supercharger?" + useFordRedundantTps = "On some Ford and Toyota vehicles one of the throttle sensors is not linear on the full range, i.e. in the specific range of the positions we effectively have only one sensor." + enableFan1WithAc = "Turn on this fan when AC is on." + enableFan2WithAc = "Turn on this fan when AC is on." + disableFan1WhenStopped = "Inhibit operation of this fan while the engine is not running." + disableFan2WhenStopped = "Inhibit operation of this fan while the engine is not running." + enableTrailingSparks = "Enable secondary spark outputs that fire after the primary (rotaries, twin plug engines)." + etb_use_two_wires = "TLE7209 uses two-wire mode. TLE9201 and VNH2SP30 do NOT use two wire mode." + isDoubleSolenoidIdle = "Subaru/BMW style where default valve position is somewhere in the middle. First solenoid opens it more while second can close it more than default position." + useSeparateIdleTablesForCrankingTaper = "This uses separate ignition timing and VE tables not only for idle conditions, also during the postcranking-to-idle taper transition (See also afterCrankingIACtaperDuration)." + doNotFilterTriggerEdgeNoise = "Detect double trigger edges" + useRunningMathForCranking = "For cranking either use the specified fixed base fuel mass, or use the normal running math (VE table)." + verboseCan = "Print incoming and outgoing first bus CAN messages in FOME console" + artificialTestMisfire = "Experimental setting that will cause a misfire\nDO NOT ENABLE." + useFordRedundantPps = "On some Ford and Toyota vehicles one of the pedal sensors is not linear on the full range, i.e. in the specific range of the positions we effectively have only one sensor." + tpsMin = "Closed throttle, 1 volt = 200 units" + tpsMax = "Full throttle, 1 volt = 200 units" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm." + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override\nRequires power cycling to effect" + displacement = "Engine displacement in litres" + cylindersCount = "Number of cylinder the engine has." + benchTestOnTime = "Duration of each test pulse" + cylinderBore = "Cylinder diameter in mm." + fuelAlgorithm = "This setting controls which fuel quantity control algorithm is used.\nAlpha-N means drive by TPS commonly only used for NA engines\nSpeed Density requires MAP sensor and is the default choice for may installs\nMAF air charge is a cylinder filling based method that uses a mass air flow sensor." + crankingInjectionMode = "This is the injection strategy during engine start. See Fuel/Injection settings for more detail. It is suggested to use "Simultaneous"." + injectionMode = "This is where the fuel injection type is defined: "Simultaneous" means all injectors will fire together at once. "Sequential" fires the injectors on a per cylinder basis, which requires individually wired injectors. "Batched" will fire the injectors in groups. If your injectors are individually wired you will also need to enable "Two wire batch emulation"." + boostControlMinRpm = "Minimum RPM to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases." + boostControlMinTps = "Minimum TPS to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases." + boostControlMinMap = "Minimum MAP to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases." + timingMode = "Dynamic uses the timing map to decide the ignition timing, Static timing fixes the timing to the value set below (only use for checking static timing with a timing light)." + benchTestCount = "How many test bench pulses do you want" + crankingTimingAngle = "Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines.\nThere is tapering towards running timing advance" + gapTrackingLengthOverride = "How many consecutive gap rations have to match expected ranges for sync to happen" + maxIdleVss = "Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed)." + minOilPressureAfterStart = "Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting." + fixedModeTiming = "This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing\nThis mode is useful when adjusting distributor location." + globalTriggerAngleOffset = "Angle between Top Dead Center (TDC) and the first trigger event.\nPositive value in case of synchnization point before TDC and negative in case of synchnization point after TDC\n.Knowing this angle allows us to control timing and other angles in reference to TDC." + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body, first sensor" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" + airByRpmTaper = "Extra air taper amount" + boostControlSafeDutyCycle = "Duty cycle to use in case of a sensor failure. This duty cycle should produce the minimum possible amount of boost. This duty is also used in case any of the minimum RPM/TPS/MAP conditions are not met." + throttlePedalPositionAdcChannel = "Throttle pedal position first channel" + camInputs1 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts. 1" + camInputs2 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts. 2" + camInputs3 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts. 3" + camInputs4 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts. 4" + throttlePedalUpPin = "Throttle Pedal not pressed switch - used on some older vehicles like early Mazda Miata" + baroSensor_lowValue = "kPa value at low volts" + baroSensor_highValue = "kPa value at high volts" + manIdlePosition = "Value between 0 and 100 used in Manual mode" + knockRetardAggression = "Ignition timing to remove when a knock event occurs." + knockRetardReapplyRate = "After a knock event, reapply timing at this rate." + engineSyncCam = "Select which cam is used for engine sync. Other cams will be used only for VVT measurement, but not engine sync." + vssFilterReciprocal = "Set this so your vehicle speed signal is responsive, but not noisy. Larger value give smoother but slower response." + vssGearRatio = "Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0." + vssToothCount = "Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft." + idleVeOverrideMode = "Override the Y axis (load) value used for only the Idle VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + o2heaterPin = "On-off O2 sensor heater control. 'ON' if engine is running, 'OFF' if stopped or cranking." + injectionPins1 = "injectionPins 1" + injectionPins2 = "injectionPins 2" + injectionPins3 = "injectionPins 3" + injectionPins4 = "injectionPins 4" + injectionPins5 = "injectionPins 5" + injectionPins6 = "injectionPins 6" + injectionPins7 = "injectionPins 7" + injectionPins8 = "injectionPins 8" + injectionPins9 = "injectionPins 9" + injectionPins10 = "injectionPins 10" + injectionPins11 = "injectionPins 11" + injectionPins12 = "injectionPins 12" + injectionPinsStage21 = "injectionPinsStage2 1" + injectionPinsStage22 = "injectionPinsStage2 2" + injectionPinsStage23 = "injectionPinsStage2 3" + injectionPinsStage24 = "injectionPinsStage2 4" + injectionPinsStage25 = "injectionPinsStage2 5" + injectionPinsStage26 = "injectionPinsStage2 6" + injectionPinsStage27 = "injectionPinsStage2 7" + injectionPinsStage28 = "injectionPinsStage2 8" + injectionPinsStage29 = "injectionPinsStage2 9" + injectionPinsStage210 = "injectionPinsStage2 10" + injectionPinsStage211 = "injectionPinsStage2 11" + injectionPinsStage212 = "injectionPinsStage2 12" + ignitionPins1 = "ignitionPins 1" + ignitionPins2 = "ignitionPins 2" + ignitionPins3 = "ignitionPins 3" + ignitionPins4 = "ignitionPins 4" + ignitionPins5 = "ignitionPins 5" + ignitionPins6 = "ignitionPins 6" + ignitionPins7 = "ignitionPins 7" + ignitionPins8 = "ignitionPins 8" + ignitionPins9 = "ignitionPins 9" + ignitionPins10 = "ignitionPins 10" + ignitionPins11 = "ignitionPins 11" + ignitionPins12 = "ignitionPins 12" + throttlePedalPositionSecondAdcChannel = "Throttle pedal, secondary channel." + malfunctionIndicatorPin = "Check engine light, also malfunction indicator light. Always blinks once on boot." + clutchDownPin = "Some cars have a switch to indicate that clutch pedal is all the way down" + auxFastSensor1_adcChannel = "Useful in Research&Development phase" + tps1_2AdcChannel = "First throttle body, second sensor." + tps2_2AdcChannel = "Second throttle body, second sensor." + idle_antiwindupFreq = "0.1 is a good default value" + triggerInputPins1 = "triggerInputPins 1" + triggerInputPins2 = "triggerInputPins 2" + mc33_t_min_boost = "Minimum allowed time for the boost phase. If the boost target current is reached before this time elapses, it is assumed that the injector has failed short circuit." + canTxPin = "set_can_tx_pin X" + canRxPin = "set_can_rx_pin X" + acIdleExtraOffset = "Additional idle % while A/C is active" + finalGearRatio = "Ratio between the wheels and your transmission output." + wastegatePositionMin = "Voltage when the wastegate is closed.\nYou probably don't have one of these!" + wastegatePositionMax = "Voltage when the wastegate is fully open.\nYou probably don't have one of these!\n1 volt = 1000 units" + secondSolenoidPin = "Some Subaru and some Mazda use double-solenoid idle air valve" + tunerStudioSerialSpeed = "Secondary TTL channel baud rate" + compressionRatio = "Just for reference really, not taken into account by any logic at this point" + triggerSimulatorPins1 = "Generate a synthetic trigger signal for an external ECU 1" + triggerSimulatorPins2 = "Generate a synthetic trigger signal for an external ECU 2" + isSdCardEnabled = "enable sd/disable sd" + rusefiVerbose29b = "Use 11 bit (standard) or 29 bit (extended) IDs for FOME verbose CAN format." + useStepperIdle = "This setting should only be used if you have a stepper motor idle valve and a stepper motor driver installed." + enableVerboseCanTx = "CAN broadcast using custom FOME protocol\nenable can_broadcast/disable can_broadcast" + measureMapOnlyInOneCylinder = "Useful for individual intakes" + isFasterEngineSpinUpEnabled = "If enabled, try to fire the engine before a full engine cycle has been completed using RPM estimated from the last 90 degrees of engine rotation. As soon as the trigger syncs plus 90 degrees rotation, fuel and ignition events will occur. If disabled, worst case may require up to 4 full crank rotations before any events are scheduled." + coastingFuelCutEnabled = "This setting disables fuel injection while the engine is in overrun, this is useful as a fuel saving measure and to prevent back firing." + useIacTableForCoasting = "Override the IAC position during overrun conditions to help reduce engine breaking, this can be helpful for large engines in light weight cars or engines that have trouble returning to idle." + disableEtbWhenEngineStopped = "Allows disabling the ETB when the engine is stopped. You may not like the power draw or PWM noise from the motor, so this lets you turn it off until it's necessary." + pauseEtbControl = "Disable the electronic throttle motor and DC idle motor for testing.\nThis mode is for testing ETB/DC idle position sensors, etc without actually driving the throttle." + enableAemXSeries = "AEM X-Series or rusEFI Wideband" + logicAnalyzerPins1 = "logicAnalyzerPins 1" + logicAnalyzerPins2 = "logicAnalyzerPins 2" + logicAnalyzerPins3 = "logicAnalyzerPins 3" + logicAnalyzerPins4 = "logicAnalyzerPins 4" + mc33_hvolt = "Boost Voltage" + minimumBoostClosedLoopMap = "Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost." + acFanPin = "Optional Radiator Fan used with A/C" + idlePidRpmUpperLimit = "How far above idle speed do we consider idling?\nFor example, if target = 800, this param = 200, then anything below 1000 RPM is considered idle." + applyNonlinearBelowPulse = "Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment." + clutchUpPin = "Some vehicles have a switch to indicate that clutch pedal is all the way up" + max31855_cs1 = "max31855_cs 1" + max31855_cs2 = "max31855_cs 2" + max31855_cs3 = "max31855_cs 3" + max31855_cs4 = "max31855_cs 4" + max31855_cs5 = "max31855_cs 5" + max31855_cs6 = "max31855_cs 6" + max31855_cs7 = "max31855_cs 7" + max31855_cs8 = "max31855_cs 8" + flexSensorPin = "Continental/GM flex fuel sensor, 50-150hz type" + stoichRatioSecondary = "Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0" + etbMaximumPosition = "Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open." + sdCardLogFrequency = "Rate the ECU will log to the SD card, in hz (log lines per second)." + starterRelayDisablePinMode = "On some vehicles we can disable starter once engine is already running" + mapMinBufferLength = "This many MAP samples are used to estimate the current MAP. This many samples are considered, and the minimum taken. Recommended value is 1 for single-throttle engines, and your number of cylinders for individual throttle bodies." + idlePidDeactivationTpsThreshold = "Below this throttle position, the engine is considered idling. If you have an electronic throttle, this checks accelerator pedal position instead of throttle position, and should be set to 1-2%." + startCrankingDuration = "Maximum time to crank starter when start/stop button is pressed" + lambdaProtectionTimeout = "Only respond once lambda is out of range for this period of time. Use to avoid transients triggering lambda protection when not needed" + scriptSetting1 = "scriptSetting 1" + scriptSetting2 = "scriptSetting 2" + scriptSetting3 = "scriptSetting 3" + scriptSetting4 = "scriptSetting 4" + scriptSetting5 = "scriptSetting 5" + scriptSetting6 = "scriptSetting 6" + scriptSetting7 = "scriptSetting 7" + scriptSetting8 = "scriptSetting 8" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + alphaNUseIat = "In Alpha-N mode, compensate for air temperature." + useRawOutputToDriveIdleStepper = "If enabled we use four Push-Pull outputs to directly drive stepper idle air valve coilss" + verboseCan2 = "Print incoming and outgoing second bus CAN messages in FOME console" + etbIo1_controlPin = "Acts as EN pin in two-wire mode" + etbIo2_controlPin = "Acts as EN pin in two-wire mode" + boostControlPin = "Wastegate control Solenoid" + boostPid_offset = "Linear addition to PID logic" + boostPid_periodMs = "PID dTime" + boostPid_minValue = "Output Min Duty Cycle" + boostPid_maxValue = "Output Max Duty Cycle" + launchSpeedThreshold = "Disabled above this speed" + launchTimingRpmRange = "Range from Launch RPM for Timing Retard to activate" + launchFuelAdded = "Extra Fuel Added" + launchBoostDuty = "Duty Cycle for the Boost Solenoid" + hardCutRpmRange = "Range from Launch RPM to activate Hard Cut" + stft_maxIdleRegionRpm = "Below this RPM, the idle region is active" + stft_maxOverrunLoad = "Below this engine load, the overrun region is active" + stft_minPowerLoad = "Above this engine load, the power region is active" + stft_deadband = "When close to correct AFR, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required." + stft_minClt = "Below this temperature, correction is disabled." + stft_minAfr = "Below this AFR, correction is paused" + stft_maxAfr = "Above this AFR, correction is paused" + stft_startupDelay = "Delay after starting the engine before beginning closed loop correction." + stft_cellCfgs1_timeConstant = "Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 5.0 means it will try to make most of the correction within 5 seconds, and a value of 1.0 will try to correct within 1 second." + stft_cellCfgs2_timeConstant = "Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 5.0 means it will try to make most of the correction within 5 seconds, and a value of 1.0 will try to correct within 1 second." + stft_cellCfgs3_timeConstant = "Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 5.0 means it will try to make most of the correction within 5 seconds, and a value of 1.0 will try to correct within 1 second." + stft_cellCfgs4_timeConstant = "Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 5.0 means it will try to make most of the correction within 5 seconds, and a value of 1.0 will try to correct within 1 second." + stepperDcIo1_controlPin = "Acts as EN pin in two-wire mode" + stepperDcIo2_controlPin = "Acts as EN pin in two-wire mode" + engineMake = "For example, BMW, GM or Chevrolet" + engineCode = "For example, LS1 or NB2" + vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles." + tcu_solenoid1 = "tcu_solenoid 1" + tcu_solenoid2 = "tcu_solenoid 2" + tcu_solenoid3 = "tcu_solenoid 3" + tcu_solenoid4 = "tcu_solenoid 4" + tcu_solenoid5 = "tcu_solenoid 5" + tcu_solenoid6 = "tcu_solenoid 6" + etbFunctions1 = "etbFunctions 1" + etbFunctions2 = "etbFunctions 2" + luaOutputPins1 = "luaOutputPins 1" + luaOutputPins2 = "luaOutputPins 2" + luaOutputPins3 = "luaOutputPins 3" + luaOutputPins4 = "luaOutputPins 4" + luaOutputPins5 = "luaOutputPins 5" + luaOutputPins6 = "luaOutputPins 6" + luaOutputPins7 = "luaOutputPins 7" + luaOutputPins8 = "luaOutputPins 8" + vvtOffsets1 = "Angle between cam sensor and VVT zero position 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + silentTriggerError = "Sometimes we have a performance issue while printing error" + canReadEnabled = "enable can_read/disable can_read" + canWriteEnabled = "enable can_write/disable can_write" + tachPulseDurationAsDutyCycle = "Treat milliseconds value as duty cycle value, i.e. 0.5ms would become 50%" + isAlternatorControlEnabled = "This enables smart alternator control and activates the extra alternator settings." + invertPrimaryTriggerSignal = "Invert the signal from the primary trigger sensor." + invertSecondaryTriggerSignal = "Invert the signal from the secondary trigger sensor." + cutSparkOnHardLimit = "Be careful enabling this: some engines are known to self-disassemble their valvetrain with a spark cut. Fuel cut is much safer." + launchSparkCutEnable = "This is the Cut Mode normally used" + skippedWheelOnCam = "Where is your primary skipped wheel located?" + acSwitch = "A/C button input" + etbNeutralPosition = "Expected neutral position" + isCylinderCleanupEnabled = "When enabled if TPS is held above 95% no fuel is injected while cranking to clear excess fuel from the cylinders." + complexWallModel = "Should we use tables to vary tau/beta based on CLT/MAP, or just with fixed values?" + useCrankingIdleTaperTableSetting = "If enabled, use separate temperature multiplier table for cranking taper duration." + overrideCrankingIacSetting = "If enabled, use separate temperature multiplier table for cranking idle position.\nIf disabled, use normal running multiplier table applied to the cranking base position." + useSeparateAdvanceForIdle = "This activates a separate ignition timing table for idle conditions, this can help idle stability by using ignition retard and advance either side of the desired idle speed. Extra retard at low idle speeds will prevent stalling and extra advance at high idle speeds can help reduce engine power and slow the idle speed." + useSeparateVeForIdle = "This activates a separate fuel table for Idle, this allows fine tuning of the idle fuelling." + verboseTriggerSynchDetails = "Verbose info in console below engineSnifferRpmThreshold\nenable trigger_details" + isManualSpinningMode = "Usually if we have no trigger events that means engine is stopped\nUnless we are troubleshooting and spinning the engine by hand - this case a longer\ndelay is needed" + useSeparateAdvanceForCranking = "In Constant mode, timing is automatically tapered to running as RPM increases.\nIn Table mode, the "Cranking ignition advance" table is used directly." + useAdvanceCorrectionsForCranking = "This enables the various ignition corrections during cranking (IAT, CLT, FSIO and PID idle).\nYou probably don't need this." + flexCranking = "Enable a second cranking table to use for E100 flex fuel, interpolating between the two based on flex fuel sensor." + useIacPidMultTable = "This flag allows to use a special 'PID Multiplier' table (0.0-1.0) to compensate for nonlinear nature of IAC-RPM controller" + launchSmoothRetard = "Interpolates the Ignition Retard from 0 to 100% within the RPM Range" + isPhaseSyncRequiredForIgnition = "Some engines are OK running semi-random sequential while other engine require phase synchronization" + useCltBasedRpmLimit = "If enabled, use a curve for RPM limit (based on coolant temperature) instead of a constant value." + forceO2Heating = "If enabled, don't wait for engine start to heat O2 sensors. WARNING: this will reduce the life of your sensor, as condensation in the exhaust from a cold start can crack the sensing element." + invertVvtControlIntake = "If increased VVT duty cycle increases the indicated VVT angle, set this to 'advance'. If it decreases, set this to 'retard'. Most intake cams use 'advance', and most exhaust cams use 'retard'." + invertVvtControlExhaust = "If increased VVT duty cycle increases the indicated VVT angle, set this to 'advance'. If it decreases, set this to 'retard'. Most intake cams use 'advance', and most exhaust cams use 'retard'." + sdTriggerLog = "'Trigger' mode will write a high speed log of trigger events (warning: uses lots of space!). 'Normal' mode will write a standard MLG of sensors, engine function, etc. similar to the one captured in TunerStudio." + camInputsDebug1 = "camInputsDebug 1" + camInputsDebug2 = "camInputsDebug 2" + camInputsDebug3 = "camInputsDebug 3" + camInputsDebug4 = "camInputsDebug 4" + acIdleRpmBump = "Extra idle target speed when A/C is enabled. Some cars need the extra speed to keep the AC efficient while idling." + noAccelAfterHardLimitPeriodSecs = "TODO: finish this #413" + mapAveragingSchedulingAtIndex = "At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback." + tachPulseDuractionMs = "Duration in ms or duty cycle depending on selected mode" + wwaeTau = "Length of time the deposited wall fuel takes to dissipate after the start of acceleration." + alternatorControl_offset = "Linear addition to PID logic" + alternatorControl_periodMs = "PID dTime" + alternatorControl_minValue = "Output Min Duty Cycle" + alternatorControl_maxValue = "Output Max Duty Cycle" + etb_offset = "Linear addition to PID logic" + etb_periodMs = "PID dTime" + etb_minValue = "Output Min Duty Cycle" + etb_maxValue = "Output Max Duty Cycle" + triggerInputDebugPins1 = "triggerInputDebugPins 1" + triggerInputDebugPins2 = "triggerInputDebugPins 2" + airTaperRpmRange = "RPM range above upper limit for extra air taper" + mapErrorDetectionTooLow = "kPa value which is too low to be true" + mapErrorDetectionTooHigh = "kPa value which is too high to be true" + multisparkSparkDuration = "How long to wait for the spark to fire before recharging the coil for another spark." + multisparkDwell = "This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table." + idleRpmPid_offset = "Linear addition to PID logic" + idleRpmPid_periodMs = "PID dTime" + idleRpmPid_minValue = "Output Min Duty Cycle" + idleRpmPid_maxValue = "Output Max Duty Cycle" + wwaeBeta = "0 = No fuel settling on port walls 1 = All the fuel settling on port walls setting this to 0 disables the wall wetting enrichment." + auxValves1 = "auxValves 1" + auxValves2 = "auxValves 2" + throttlePedalWOTVoltage = "Pedal in the floor" + startUpFuelPumpDuration = "on IGN voltage detection turn fuel pump on to build fuel pressure" + idlePidRpmDeadZone = "If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation" + targetVBatt = "This is the target battery voltage the alternator PID control will attempt to maintain" + afterCrankingIACtaperDuration = "This is the duration in cycles that the IAC will take to reach its normal idle position, it can be used to hold the idle higher for a few seconds after cranking to improve startup." + iacByTpsTaper = "Extra IAC, in percent between 0 and 100, tapered between zero and idle deactivation TPS value" + auxSerialTxPin = "Auxiliary sensor serial, not to be confused with secondary calibration serial" + auxSerialRxPin = "Auxiliary sensor serial, not to be confused with secondary calibration serial" + tpsAccelLookback = "How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs." + coastingFuelCutVssLow = "Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears." + coastingFuelCutVssHigh = "Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears." + noFuelTrimAfterDfcoTime = "Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut." + ignTestOnTime = "Duration of each test pulse" + tpsAccelEnrichmentThreshold = "Maximum change delta of TPS percentage over the 'length'. Actual TPS change has to be above this value in order for TPS/TPS acceleration to kick in." + auxSpeedSensorInputPin1 = "auxSpeedSensorInputPin 1" + auxSpeedSensorInputPin2 = "auxSpeedSensorInputPin 2" + injectionTimingMode = "Sets what part of injection's is controlled by the injection phase table." + debugMode = "See https://wiki.fome.tech/r/debugmode" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + uartConsoleSerialSpeed = "Band rate for primary TTL" + tpsDecelEnleanmentThreshold = "For decel we simply multiply delta of TPS and tFor decel we do not use table?!" + tpsDecelEnleanmentMultiplier = "Magic multiplier, we multiply delta of TPS and get fuel squirt duration" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + benchTestOffTime = "Time between bench test pulses" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output solenoid pin for this cam 1" + vvtPins2 = "VVT output solenoid pin for this cam 2" + vvtPins3 = "VVT output solenoid pin for this cam 3" + vvtPins4 = "VVT output solenoid pin for this cam 4" + crankingIACposition = "This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling." + minimumIgnitionTiming = "Minimim timing advance allowed. No spark on any cylinder will ever fire after this angle BTDC. For example, setting -10 here means no spark ever fires later than 10 deg ATDC. Note that this only concerns the primary spark: any trailing sparks or multispark may violate this constraint." + maximumIgnitionTiming = "Maximum timing advance allowed. No spark on any cylinder will ever fire before this angle BTDC. For example, setting 45 here means no spark ever fires earlier than 45 deg BTDC" + vvtMode1 = "vvtMode 1" + vvtMode2 = "vvtMode 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start" + postCrankingDurationSec = "Time over which to taper out after start enrichment" + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder timing correction 1" + timing_offset_cylinder2 = "per-cylinder timing correction 2" + timing_offset_cylinder3 = "per-cylinder timing correction 3" + timing_offset_cylinder4 = "per-cylinder timing correction 4" + timing_offset_cylinder5 = "per-cylinder timing correction 5" + timing_offset_cylinder6 = "per-cylinder timing correction 6" + timing_offset_cylinder7 = "per-cylinder timing correction 7" + timing_offset_cylinder8 = "per-cylinder timing correction 8" + timing_offset_cylinder9 = "per-cylinder timing correction 9" + timing_offset_cylinder10 = "per-cylinder timing correction 10" + timing_offset_cylinder11 = "per-cylinder timing correction 11" + timing_offset_cylinder12 = "per-cylinder timing correction 12" + mc33816_rstb = "ResetB" + brakePedalPin = "Brake pedal switch" + auxPid1_offset = "Linear addition to PID logic" + auxPid1_periodMs = "PID dTime" + auxPid1_minValue = "Output Min Duty Cycle" + auxPid1_maxValue = "Output Max Duty Cycle" + auxPid2_offset = "Linear addition to PID logic" + auxPid2_periodMs = "PID dTime" + auxPid2_minValue = "Output Min Duty Cycle" + auxPid2_maxValue = "Output Max Duty Cycle" + injectorCorrectionPolynomial1 = "injectorCorrectionPolynomial 1" + injectorCorrectionPolynomial2 = "injectorCorrectionPolynomial 2" + injectorCorrectionPolynomial3 = "injectorCorrectionPolynomial 3" + injectorCorrectionPolynomial4 = "injectorCorrectionPolynomial 4" + injectorCorrectionPolynomial5 = "injectorCorrectionPolynomial 5" + injectorCorrectionPolynomial6 = "injectorCorrectionPolynomial 6" + injectorCorrectionPolynomial7 = "injectorCorrectionPolynomial 7" + injectorCorrectionPolynomial8 = "injectorCorrectionPolynomial 8" + fan2OnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fan2OffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + sentInputPins1 = "sentInputPins 1" + etbJamTimeout = "Time required to detect a stuck throttle." + etbExpAverageLength = "By the way ETB PID runs at 500hz, length in 1/500 of second here." + coastingFuelCutRpmHigh = "This sets the RPM above which fuel cut is active." + coastingFuelCutRpmLow = "This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle" + coastingFuelCutTps = "Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position." + coastingFuelCutClt = "Fuel cutoff is disabled when the engine is cold." + pidExtraForLowRpm = "Increases PID reaction for RPM , 50, , true + + filter = VBatt, "VBatt", VBatt < , 12, , true + + filter = minTps, "Minimum TPS", TPSValue, < , 1, , true + + +; +; in order to add new TunerStudio data point you need to change one of *.txt files mentioned in LiveData.yaml +; +[OutputChannels] + + ochGetCommand = "O%2o%2c" + +; see TS_OUTPUT_SIZE in console source code + ochBlockSize = 1384 + +; +; see TunerStudioOutputChannels struct +; + +sd_present = bits, U32, 0, [0:0] +sd_logging_internal = bits, U32, 0, [1:1] +triggerScopeReady = bits, U32, 0, [2:2] +antilagTriggered = bits, U32, 0, [3:3] +isFanOn = bits, U32, 0, [4:4] +isO2HeaterOn = bits, U32, 0, [5:5] +checkEngine = bits, U32, 0, [6:6] +needBurn = bits, U32, 0, [7:7] +sd_msd = bits, U32, 0, [8:8] +isFan2On = bits, U32, 0, [9:9] +acrActive = bits, U32, 0, [10:10] +toothLogReady = bits, U32, 0, [11:11] +isTpsError = bits, U32, 0, [12:12] +isCltError = bits, U32, 0, [13:13] +isMapError = bits, U32, 0, [14:14] +isIatError = bits, U32, 0, [15:15] +isTriggerError = bits, U32, 0, [16:16] +hasCriticalError = bits, U32, 0, [17:17] +isWarnNow = bits, U32, 0, [18:18] +isPedalError = bits, U32, 0, [19:19] +launchTriggered = bits, U32, 0, [20:20] +isTps2Error = bits, U32, 0, [21:21] +injectorFault = bits, U32, 0, [22:22] +ignitionFault = bits, U32, 0, [23:23] +isMainRelayOn = bits, U32, 0, [24:24] +isUsbConnected = bits, U32, 0, [25:25] +dfcoActive = bits, U32, 0, [26:26] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, S16, 6, "RPM acceleration", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +vehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +VBatt = scalar, U16, 36, "V", 0.001, 0 +oilPressure = scalar, U16, 38, "kPa", 0.03333333333333333, 0 +vvtPositionB1I = scalar, S16, 40, "deg", 0.02, 0 +actualLastInjection = scalar, U16, 42, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 44, "%", 0.5, 0 +veValue = scalar, U08, 45, "ratio", 0.5, 0 +injectionOffset = scalar, S16, 46, "deg", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 48, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 50, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 52, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 54, "", 1, 0 +canReadCounter = scalar, U16, 56, "", 1, 0 +tpsAccelFuel = scalar, S16, 58, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 60, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 62, "", 1, 0 +currentInjectionMode = scalar, U08, 63, "", 1, 0 +coilDutyCycle = scalar, U16, 64, "%", 0.01, 0 +etbTarget = scalar, S16, 66, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 68, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 70, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 72, "grams", 1, 0 +fuelFlowRate = scalar, U16, 74, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 76, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 78, "crc16", 1, 0 +seconds = scalar, U32, 80, "sec", 1, 0 +engineMode = scalar, U32, 84, "em", 1, 0 +firmwareVersion = scalar, U32, 88, "version_f", 1, 0 +rawWastegatePosition = scalar, S16, 92, "V", 0.001, 0 +accelerationLat = scalar, S16, 94, "G", 0.001, 0 +accelerationLon = scalar, S16, 96, "G", 0.001, 0 +detectedGear = scalar, U08, 98, "", 1, 0 +maxTriggerReentrant = scalar, U08, 99, "", 1, 0 +rawLowFuelPressure = scalar, S16, 100, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 102, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 104, "kpa", 0.03333333333333333, 0 +highFuelPressure = scalar, S16, 106, "bar", 0.1, 0 +rawPpsSecondary = scalar, S16, 108, "V", 0.001, 0 +tcuDesiredGear = scalar, S08, 110, "gear", 1, 0 +flexPercent = scalar, U08, 111, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 112, "%", 0.01, 0 +calibrationValue = scalar, F32, 116, "", 1, 0 +calibrationMode = scalar, U08, 120, "", 1, 0 +idleStepperTargetPosition = scalar, U08, 121, "", 1, 0 +tsConfigVersion = scalar, U32, 124, "", 1, 0 +totalTriggerErrorCounter = scalar, U32, 128, "counter", 1, 0 +orderingErrorCounter = scalar, U32, 132, "", 1, 0 +warningCounter = scalar, U16, 136, "count", 1, 0 +lastErrorCode = scalar, U16, 138, "error", 1, 0 +recentErrorCode1 = scalar, U16, 140, "error", 1, 0 +recentErrorCode2 = scalar, U16, 142, "error", 1, 0 +recentErrorCode3 = scalar, U16, 144, "error", 1, 0 +recentErrorCode4 = scalar, U16, 146, "error", 1, 0 +recentErrorCode5 = scalar, U16, 148, "error", 1, 0 +recentErrorCode6 = scalar, U16, 150, "error", 1, 0 +recentErrorCode7 = scalar, U16, 152, "error", 1, 0 +recentErrorCode8 = scalar, U16, 154, "error", 1, 0 +debugFloatField1 = scalar, F32, 156, "val", 1, 0 +debugFloatField2 = scalar, F32, 160, "val", 1, 0 +debugFloatField3 = scalar, F32, 164, "val", 1, 0 +debugFloatField4 = scalar, F32, 168, "val", 1, 0 +debugFloatField5 = scalar, F32, 172, "val", 1, 0 +debugFloatField6 = scalar, F32, 176, "val", 1, 0 +debugFloatField7 = scalar, F32, 180, "val", 1, 0 +debugIntField1 = scalar, U32, 184, "val", 1, 0 +debugIntField2 = scalar, U32, 188, "val", 1, 0 +debugIntField3 = scalar, U32, 192, "val", 1, 0 +debugIntField4 = scalar, S16, 196, "val", 1, 0 +debugIntField5 = scalar, S16, 198, "val", 1, 0 +egt1 = scalar, U16, 200, "deg C", 1, 0 +egt2 = scalar, U16, 202, "deg C", 1, 0 +egt3 = scalar, U16, 204, "deg C", 1, 0 +egt4 = scalar, U16, 206, "deg C", 1, 0 +egt5 = scalar, U16, 208, "deg C", 1, 0 +egt6 = scalar, U16, 210, "deg C", 1, 0 +egt7 = scalar, U16, 212, "deg C", 1, 0 +egt8 = scalar, U16, 214, "deg C", 1, 0 +rawTps1Primary = scalar, S16, 216, "V", 0.001, 0 +rawPpsPrimary = scalar, S16, 218, "V", 0.001, 0 +rawClt = scalar, S16, 220, "V", 0.001, 0 +rawIat = scalar, S16, 222, "V", 0.001, 0 +rawOilPressure = scalar, S16, 224, "V", 0.001, 0 +fuelClosedLoopBinIdx = scalar, U08, 226, "", 1, 0 +tcuCurrentGear = scalar, S08, 227, "gear", 1, 0 +AFRValue = scalar, U16, 228, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 230, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 232, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 234, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 236, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 238, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 240, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 242, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 244, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 246, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 248, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 250, "V", 0.001, 0 +accelerationVert = scalar, S16, 252, "G", 0.001, 0 +gyroYaw = scalar, S16, 254, "deg/sec", 0.001, 0 +vvtTargets1 = scalar, S08, 256, "deg", 1, 0 +vvtTargets2 = scalar, S08, 257, "deg", 1, 0 +vvtTargets3 = scalar, S08, 258, "deg", 1, 0 +vvtTargets4 = scalar, S08, 259, "deg", 1, 0 +turboSpeed = scalar, U16, 260, "hz", 1, 0 +ignitionAdvanceCyl1 = scalar, S16, 262, "deg", 0.02, 0 +ignitionAdvanceCyl2 = scalar, S16, 264, "deg", 0.02, 0 +ignitionAdvanceCyl3 = scalar, S16, 266, "deg", 0.02, 0 +ignitionAdvanceCyl4 = scalar, S16, 268, "deg", 0.02, 0 +ignitionAdvanceCyl5 = scalar, S16, 270, "deg", 0.02, 0 +ignitionAdvanceCyl6 = scalar, S16, 272, "deg", 0.02, 0 +ignitionAdvanceCyl7 = scalar, S16, 274, "deg", 0.02, 0 +ignitionAdvanceCyl8 = scalar, S16, 276, "deg", 0.02, 0 +ignitionAdvanceCyl9 = scalar, S16, 278, "deg", 0.02, 0 +ignitionAdvanceCyl10 = scalar, S16, 280, "deg", 0.02, 0 +ignitionAdvanceCyl11 = scalar, S16, 282, "deg", 0.02, 0 +ignitionAdvanceCyl12 = scalar, S16, 284, "deg", 0.02, 0 +tps1Split = scalar, S16, 286, "%", 0.01, 0 +tps2Split = scalar, S16, 288, "%", 0.01, 0 +tps12Split = scalar, S16, 290, "%", 0.01, 0 +accPedalSplit = scalar, S16, 292, "%", 0.01, 0 +sparkCutReason = scalar, S08, 294, "code", 1, 0 +fuelCutReason = scalar, S08, 295, "code", 1, 0 +mafEstimate = scalar, U16, 296, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 298, "rpm", 1, 0 +rawMap = scalar, U16, 300, "V", 0.001, 0 +rawAfr = scalar, U16, 302, "V", 0.001, 0 +calibrationValue2 = scalar, F32, 304, "", 1, 0 +luaInvocationCounter = scalar, U32, 308, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 312, "nt", 1, 0 +tcu_currentRange = scalar, U08, 316, "", 1, 0 +tcRatio = scalar, U16, 318, "value", 0.01, 0 +lastShiftTime = scalar, F32, 320, "", 1, 0 +vssEdgeCounter = scalar, U32, 324, "", 1, 0 +issEdgeCounter = scalar, U32, 328, "", 1, 0 +auxLinear1 = scalar, F32, 332, "", 1, 0 +auxLinear2 = scalar, F32, 336, "", 1, 0 +fallbackMap = scalar, U16, 340, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 342, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 344, "us", 1, 0 +canWriteOk = scalar, U16, 346, "", 1, 0 +canWriteNotOk = scalar, U16, 348, "", 1, 0 +triggerPrimaryFall = scalar, U32, 352, "", 1, 0 +triggerPrimaryRise = scalar, U32, 356, "", 1, 0 +triggerSecondaryFall = scalar, U32, 360, "", 1, 0 +triggerSecondaryRise = scalar, U32, 364, "", 1, 0 +triggerVvtFall = scalar, U32, 368, "", 1, 0 +triggerVvtRise = scalar, U32, 372, "", 1, 0 +starterState = scalar, U08, 376, "", 1, 0 +starterRelayDisable = scalar, U08, 377, "", 1, 0 +multiSparkCounter = scalar, U08, 378, "", 1, 0 +extiOverflowCount = scalar, U08, 379, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 380, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 384, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 386, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 388, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 390, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 392, "", 1, 0 +idleStatus_pTerm = scalar, F32, 396, "", 1, 0 +idleStatus_iTerm = scalar, S16, 400, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 402, "", 0.01, 0 +idleStatus_output = scalar, S16, 404, "", 0.01, 0 +idleStatus_error = scalar, S16, 406, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 408, "", 1, 0 +etbStatus_pTerm = scalar, F32, 412, "", 1, 0 +etbStatus_iTerm = scalar, S16, 416, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 418, "", 0.01, 0 +etbStatus_output = scalar, S16, 420, "", 0.01, 0 +etbStatus_error = scalar, S16, 422, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 424, "", 1, 0 +boostStatus_pTerm = scalar, F32, 428, "", 1, 0 +boostStatus_iTerm = scalar, S16, 432, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 434, "", 0.01, 0 +boostStatus_output = scalar, S16, 436, "", 0.01, 0 +boostStatus_error = scalar, S16, 438, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 440, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 444, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 448, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 450, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 452, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 454, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 456, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 460, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 464, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 466, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 468, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 470, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 472, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 476, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 480, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 482, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 484, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 486, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 488, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 492, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 496, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 498, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 500, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 502, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 504, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 508, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 512, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 514, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 516, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 518, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 520, "", 1, 0 +auxSpeed1 = scalar, U16, 524, "s", 1, 0 +auxSpeed2 = scalar, U16, 526, "s", 1, 0 +ISSValue = scalar, U16, 528, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 530, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 532, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 534, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 536, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 538, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 540, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 542, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 544, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 546, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 547, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 548, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 549, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 550, "", 1, 0 +gppwmXAxis2 = scalar, S16, 552, "", 1, 0 +gppwmXAxis3 = scalar, S16, 554, "", 1, 0 +gppwmXAxis4 = scalar, S16, 556, "", 1, 0 +gppwmYAxis1 = scalar, S16, 558, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 560, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 562, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 564, "", 0.1, 0 +rawBattery = scalar, S16, 566, "V", 0.001, 0 +ignBlendParameter1 = scalar, S16, 568, "", 0.1, 0 +ignBlendParameter2 = scalar, S16, 570, "", 0.1, 0 +ignBlendParameter3 = scalar, S16, 572, "", 0.1, 0 +ignBlendParameter4 = scalar, S16, 574, "", 0.1, 0 +ignBlendBias1 = scalar, U08, 576, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 577, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 578, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 579, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 580, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 582, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 584, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 586, "deg", 0.01, 0 +veBlendParameter1 = scalar, S16, 588, "", 0.1, 0 +veBlendParameter2 = scalar, S16, 590, "", 0.1, 0 +veBlendParameter3 = scalar, S16, 592, "", 0.1, 0 +veBlendParameter4 = scalar, S16, 594, "", 0.1, 0 +veBlendBias1 = scalar, U08, 596, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 597, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 598, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 599, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 600, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 602, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 604, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 606, "%", 0.01, 0 +boostOpenLoopBlendParameter1 = scalar, S16, 608, "", 0.1, 0 +boostOpenLoopBlendParameter2 = scalar, S16, 610, "", 0.1, 0 +boostOpenLoopBlendBias1 = scalar, U08, 612, "%", 0.5, 0 +boostOpenLoopBlendBias2 = scalar, U08, 613, "%", 0.5, 0 +boostOpenLoopBlendOutput1 = scalar, S08, 614, "%", 1, 0 +boostOpenLoopBlendOutput2 = scalar, S08, 615, "%", 1, 0 +boostClosedLoopBlendParameter1 = scalar, S16, 616, "", 0.1, 0 +boostClosedLoopBlendParameter2 = scalar, S16, 618, "", 0.1, 0 +boostClosedLoopBlendBias1 = scalar, U08, 620, "%", 0.5, 0 +boostClosedLoopBlendBias2 = scalar, U08, 621, "%", 0.5, 0 +boostClosedLoopBlendOutput1 = scalar, S16, 622, "%", 0.1, 0 +boostClosedLoopBlendOutput2 = scalar, S16, 624, "%", 0.1, 0 +coilState1 = bits, U32, 628, [0:0] +coilState2 = bits, U32, 628, [1:1] +coilState3 = bits, U32, 628, [2:2] +coilState4 = bits, U32, 628, [3:3] +coilState5 = bits, U32, 628, [4:4] +coilState6 = bits, U32, 628, [5:5] +coilState7 = bits, U32, 628, [6:6] +coilState8 = bits, U32, 628, [7:7] +coilState9 = bits, U32, 628, [8:8] +coilState10 = bits, U32, 628, [9:9] +coilState11 = bits, U32, 628, [10:10] +coilState12 = bits, U32, 628, [11:11] +injectorState1 = bits, U32, 628, [12:12] +injectorState2 = bits, U32, 628, [13:13] +injectorState3 = bits, U32, 628, [14:14] +injectorState4 = bits, U32, 628, [15:15] +injectorState5 = bits, U32, 628, [16:16] +injectorState6 = bits, U32, 628, [17:17] +injectorState7 = bits, U32, 628, [18:18] +injectorState8 = bits, U32, 628, [19:19] +injectorState9 = bits, U32, 628, [20:20] +injectorState10 = bits, U32, 628, [21:21] +injectorState11 = bits, U32, 628, [22:22] +injectorState12 = bits, U32, 628, [23:23] +outputRequestPeriod = scalar, U32, 632, "", 1, 0 +mapFast = scalar, F32, 636, "", 1, 0 +luaGauges1 = scalar, F32, 640, "value", 1, 0 +luaGauges2 = scalar, F32, 644, "value", 1, 0 +rawMaf2 = scalar, U16, 648, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 650, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 652, "", 1, 0 +Gego = scalar, U16, 654, "%", 0.01, 0 +testBenchIter = scalar, U16, 656, "count", 1, 0 +oilTemp = scalar, S16, 658, "deg C", 0.01, 0 +fuelTemp = scalar, S16, 660, "deg C", 0.01, 0 +ambientTemp = scalar, S16, 662, "deg C", 0.01, 0 +compressorDischargeTemp = scalar, S16, 664, "deg C", 0.01, 0 +compressorDischargePressure = scalar, U16, 666, "kPa", 0.03333333333333333, 0 +throttleInletPressure = scalar, U16, 668, "kPa", 0.03333333333333333, 0 +ignitionOnTime = scalar, U16, 670, "sec", 1, 0 +engineRunTime = scalar, U16, 672, "sec", 1, 0 +distanceTraveled = scalar, U16, 674, "km", 0.1, 0 +afrGasolineScale = scalar, U16, 676, "AFR", 0.001, 0 +afr2GasolineScale = scalar, U16, 678, "AFR", 0.001, 0 +actualLastInjectionStage2 = scalar, U16, 680, "ms", 0.0033333333333333335, 0 +injectorDutyCycleStage2 = scalar, U08, 682, "%", 0.5, 0 +unusedAtTheEnd1 = scalar, U08, 683, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 684, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 685, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 686, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 687, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 688, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 689, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 690, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 691, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 692, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 693, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 694, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 695, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 696, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 697, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 698, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 699, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 700, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 701, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 702, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 703, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 704, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 705, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 706, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd89 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd90 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd91 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd92 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd93 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd94 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd95 = scalar, U08, 777, "", 1, 0 +unusedAtTheEnd96 = scalar, U08, 778, "", 1, 0 +unusedAtTheEnd97 = scalar, U08, 779, "", 1, 0 +unusedAtTheEnd98 = scalar, U08, 780, "", 1, 0 +unusedAtTheEnd99 = scalar, U08, 781, "", 1, 0 +unusedAtTheEnd100 = scalar, U08, 782, "", 1, 0 +unusedAtTheEnd101 = scalar, U08, 783, "", 1, 0 +unusedAtTheEnd102 = scalar, U08, 784, "", 1, 0 +unusedAtTheEnd103 = scalar, U08, 785, "", 1, 0 +unusedAtTheEnd104 = scalar, U08, 786, "", 1, 0 +unusedAtTheEnd105 = scalar, U08, 787, "", 1, 0 +unusedAtTheEnd106 = scalar, U08, 788, "", 1, 0 +unusedAtTheEnd107 = scalar, U08, 789, "", 1, 0 +unusedAtTheEnd108 = scalar, U08, 790, "", 1, 0 +unusedAtTheEnd109 = scalar, U08, 791, "", 1, 0 +unusedAtTheEnd110 = scalar, U08, 792, "", 1, 0 +unusedAtTheEnd111 = scalar, U08, 793, "", 1, 0 +unusedAtTheEnd112 = scalar, U08, 794, "", 1, 0 +unusedAtTheEnd113 = scalar, U08, 795, "", 1, 0 +unusedAtTheEnd114 = scalar, U08, 796, "", 1, 0 +unusedAtTheEnd115 = scalar, U08, 797, "", 1, 0 +unusedAtTheEnd116 = scalar, U08, 798, "", 1, 0 +unusedAtTheEnd117 = scalar, U08, 799, "", 1, 0 +; total TS size = 800 +totalFuelCorrection = scalar, F32, 800, "mult", 1, 0 +running_postCrankingFuelCorrection = scalar, F32, 804, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 808, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 812, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 816, "secs", 1, 0 +running_baseFuel = scalar, U16, 820, "mg", 0.01, 0 +running_fuel = scalar, U16, 822, "mg", 0.01, 0 +afrTableYAxis = scalar, U16, 824, "%", 0.01, 0 +targetLambda = scalar, U16, 826, "", 1.0E-4, 0 +targetAFR = scalar, U16, 828, "ratio", 0.001, 0 +stoichiometricRatio = scalar, U16, 830, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 832, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 836, "g", 1, 0 +normalizedCylinderFilling = scalar, F32, 840, "%", 1, 0 +; total TS size = 844 +baseDwell = scalar, F32, 844, "ms", 1, 0 +sparkDwell = scalar, F32, 848, "ms", 1, 0 +dwellAngle = scalar, F32, 852, "deg", 1, 0 +cltTimingCorrection = scalar, S16, 856, "deg", 0.01, 0 +timingIatCorrection = scalar, S16, 858, "deg", 0.01, 0 +timingPidCorrection = scalar, S16, 860, "deg", 0.01, 0 +dwellVoltageCorrection = scalar, F32, 864, "", 1, 0 +luaTimingAdd = scalar, F32, 868, "deg", 1, 0 +luaTimingMult = scalar, F32, 872, "deg", 1, 0 +; total TS size = 876 +m_knockLevel = scalar, F32, 876, "Volts", 1, 0 +m_knockCyl1 = scalar, S08, 880, "dBv", 1, 0 +m_knockCyl2 = scalar, S08, 881, "dBv", 1, 0 +m_knockCyl3 = scalar, S08, 882, "dBv", 1, 0 +m_knockCyl4 = scalar, S08, 883, "dBv", 1, 0 +m_knockCyl5 = scalar, S08, 884, "dBv", 1, 0 +m_knockCyl6 = scalar, S08, 885, "dBv", 1, 0 +m_knockCyl7 = scalar, S08, 886, "dBv", 1, 0 +m_knockCyl8 = scalar, S08, 887, "dBv", 1, 0 +m_knockCyl9 = scalar, S08, 888, "dBv", 1, 0 +m_knockCyl10 = scalar, S08, 889, "dBv", 1, 0 +m_knockCyl11 = scalar, S08, 890, "dBv", 1, 0 +m_knockCyl12 = scalar, S08, 891, "dBv", 1, 0 +m_knockRetard = scalar, F32, 892, "deg", 1, 0 +m_knockThreshold = scalar, F32, 896, "", 1, 0 +m_knockCount = scalar, U32, 900, "", 1, 0 +m_maximumRetard = scalar, F32, 904, "", 1, 0 +; total TS size = 908 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 +; total TS size = 944 +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 +; total TS size = 964 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5, 0 +boostOutput = scalar, S16, 970, "percent", 0.01, 0 +luaTargetMult = scalar, F32, 972, "v", 1, 0 +openLoopPart = scalar, F32, 976, "v", 1, 0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1, 0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5, 0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333, 0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 +; total TS size = 1000 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] +; total TS size = 1012 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1204, "", 1, 0 +triggerStateIndex = scalar, U08, 1208, "", 1, 0 +vvtCounter = scalar, U08, 1209, "", 1, 0 +vvtStateIndex = scalar, U08, 1210, "", 1, 0 +; total TS size = 1212 +camResyncCounter = scalar, U08, 1212, "", 1, 0 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 +; total TS size = 1228 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isIdleCoasting = bits, U32, 1252, [13:13] +isIdleClosedLoop = bits, U32, 1252, [14:14] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1, 0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1, 0 +m_wastegatePosition = scalar, F32, 1288, "per", 1, 0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1, 0 +etbDutyAverage = scalar, F32, 1316, "per", 1, 0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1, 0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1, 0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 +; total TS size = 1340 +dcOutput0 = scalar, F32, 1340, "per", 1, 0 +isEnabled0_int = scalar, U08, 1344, "per", 1, 0 +isEnabled0 = bits, U32, 1348, [0:0] +; total TS size = 1352 +value0 = scalar, U16, 1352, "value", 1, 0 +value1 = scalar, U16, 1354, "value", 1, 0 +errorRate = scalar, F32, 1356, "ratio", 1, 0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 +; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 +lambdaCurrentlyGood = bits, U32, 1376, [0:0] +lambdaMonitorCut = bits, U32, 1376, [1:1] +lambdaTimeSinceGood = scalar, U16, 1380, "sec", 0.01, 0 +; total TS size = 1384 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + wbo0_hasFault = { enableAemXSeries && (faultCode >= 3) } + +[PcVariables] + tuneCrcPcVariable = continuousChannelValue, tuneCrc16 + + wueAfrTargetOffset = array, S16, [ 16], ":1", 0.1, 0.0, -3.0, 3.0, 1; + wueAnalRecommend = array, U08, [ 16], "%", 1.00, 0.0, 100, 255.00, 0 + + gearCountArray = array, S08, [10], "Gear", 1, 0, -1, { 10 - 2 }, 0, noMsqSave + solenoidCountArray = array, U08, [6], "Solenoid", 1, 0, 1, 6, 0, noMsqSave + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "Unk", "Unk", "failed to heat", "overheat", "underheat", "no supply" + + injModeList = bits, U08, [0:3], "Simultaneous", "Sequential", "Batch", "Single Point" + ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" + +; ClearReason + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" + +; TpsState + etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" + +[ConstantsExtensions] + ; defaultValue is used to provide TunerStudio with a value to use in the case of + ; the constant not yet being initialized. This is primarily important if the + ; constant is used as a variable in the ini. + ; defaultValue = constantName, value; + defaultValue = wueAfrTargetOffset, -1.5 -1.4 -1.15 -0.95 -0.775 -0.65 -0.5625 -0.5 -0.4375 -0.375 -0.3125 -0.25 -0.1875 -0.125 -0.0625 0 + + ; this magic is best described in output_channels.txt search for 'maintainConstantValue' + ; TPS 1 Primary + maintainConstantValue = tpsMax, { (calibrationMode == 1 ) ? calibrationValue : tpsMax } + maintainConstantValue = tpsMin, { (calibrationMode == 2 ) ? calibrationValue : tpsMin } + + ; TPS 1 Secondary + maintainConstantValue = tps1SecondaryMax, { (calibrationMode == 6 ) ? calibrationValue : tps1SecondaryMax } + maintainConstantValue = tps1SecondaryMin, { (calibrationMode == 7 ) ? calibrationValue : tps1SecondaryMin } + + ; TPS 2 Primary + maintainConstantValue = tps2Max, { (calibrationMode == 8 ) ? calibrationValue : tps2Max } + maintainConstantValue = tps2Min, { (calibrationMode == 9 ) ? calibrationValue : tps2Min } + + ; TPS 2 Secondary + maintainConstantValue = tps2SecondaryMax, { (calibrationMode == 10 ) ? calibrationValue : tps2SecondaryMax } + maintainConstantValue = tps2SecondaryMin, { (calibrationMode == 11 ) ? calibrationValue : tps2SecondaryMin } + + ; ETB Auto Gain Calibration + maintainConstantValue = etb_pFactor, { (calibrationMode == 3 ) ? calibrationValue : etb_pFactor } + maintainConstantValue = etb_iFactor, { (calibrationMode == 4 ) ? calibrationValue : etb_iFactor } + maintainConstantValue = etb_dFactor, { (calibrationMode == 5 ) ? calibrationValue : etb_dFactor } + + maintainConstantValue = throttlePedalUpVoltage, { (calibrationMode == 12 ) ? calibrationValue : throttlePedalUpVoltage } + maintainConstantValue = throttlePedalSecondaryUpVoltage, { (calibrationMode == 12 ) ? calibrationValue2 : throttlePedalSecondaryUpVoltage } + + maintainConstantValue = throttlePedalWOTVoltage, { (calibrationMode == 13 ) ? calibrationValue : throttlePedalWOTVoltage } + maintainConstantValue = throttlePedalSecondaryWOTVoltage, { (calibrationMode == 13 ) ? calibrationValue2 : throttlePedalSecondaryWOTVoltage } + + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = vvtOutputFrequency + requiresPowerCycle = vvtPins1 + requiresPowerCycle = vvtPins2 + requiresPowerCycle = vvtPins3 + requiresPowerCycle = vvtPins4 + + requiresPowerCycle = auxAnalogInputs1 + requiresPowerCycle = auxAnalogInputs2 + requiresPowerCycle = auxAnalogInputs3 + requiresPowerCycle = auxAnalogInputs4 + requiresPowerCycle = auxAnalogInputs5 + requiresPowerCycle = auxAnalogInputs6 + requiresPowerCycle = auxAnalogInputs7 + requiresPowerCycle = auxAnalogInputs8 + + requiresPowerCycle = knockBandCustom + + defaultValue = gearCountArray, -1 0 1 2 3 4 5 6 7 8 + readOnly = gearCountArray + defaultValue = solenoidCountArray, 1 2 3 4 5 6 7 8 + readOnly = solenoidCountArray + + +[CurveEditor] +; xAxis = leftValue, rightValue, step +; yAxis = bottomValue, topValue, step + + curve = knockThresholdCurve, "Engine knock threshold RPM based" + columnLabel = "RPM", "Threshold" + xAxis = 0, 8000, 9 + yAxis = 0, 8, 10 + xBins = knockNoiseRpmBins, RPMValue + yBins = knockBaseNoise + gauge = RPMGauge + + curve = scriptCurve1, "Script Curve #1" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -155, 150, 10 + xBins = scriptCurve1Bins + yBins = scriptCurve1 + showTextValues = true + + curve = scriptCurve2, "Script Curve #2" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -150, 150, 10 + xBins = scriptCurve2Bins + yBins = scriptCurve2 + showTextValues = true + + curve = scriptCurve3, "Script Curve #3" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -5, 5, 10 + xBins = scriptCurve3Bins + yBins = scriptCurve3 + showTextValues = true + + curve = scriptCurve4, "Script Curve #4" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -5, 5, 10 + xBins = scriptCurve4Bins + yBins = scriptCurve4 + showTextValues = true + + curve = scriptCurve5, "Script Curve #5" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -5, 5, 10 + xBins = scriptCurve5Bins + yBins = scriptCurve5 + showTextValues = true + + curve = scriptCurve6, "Script Curve #6" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -5, 5, 10 + xBins = scriptCurve6Bins + yBins = scriptCurve6 + showTextValues = true + + curve = dwellCorrection, "Dwell time base" + columnLabel = "RPM", "Dwell" + xAxis = 0, 8000, 9 + yAxis = 0, 8, 9 + xBins = sparkDwellRpmBins, RPMValue + yBins = sparkDwellValues + gauge = RPMGauge + + curve = dwellVoltageCorrection, "Dwell voltage correction" + columnLabel = "Battery Volts", "Multiplier" + xAxis = 6, 16, 11 + yAxis = 0, 3, 7 + xBins = dwellVoltageCorrVoltBins, VBatt + yBins = dwellVoltageCorrValues + gauge = VBattGauge + + curve = tpsTspRpmCorrection, "TPS/TPS AE RPM Correction" + columnLabel = "RPM", "Multiplier" + xAxis = 0, 8000, 9 + yAxis = 0, 3, 7 + xBins = tpsTspCorrValuesBins, RPMValue + yBins = tpsTspCorrValues + gauge = RPMGauge + + curve = primingPulse, "Priming pulse fuel mass" + columnLabel = "Coolant", "Prime Pulse" + xAxis = -40, 120, 9 + yAxis = 0, 1000, 9 + xBins = primeBins, coolant + yBins = primeValues + gauge = CLTGauge + + curve = map_samplingAngleCurve, "MAP Sampling Start Angle" + columnLabel = "RPM", "Angle" + xAxis = 0, 8000, 9 + yAxis = 0, 180, 10 + xBins = map_samplingAngleBins, RPMValue + yBins = map_samplingAngle + gauge = MAPGauge + + curve = map_samplingWindowCurve, "MAP Sampling Duration" + columnLabel = "RPM", "Window" + xAxis = 0, 8000, 9 + yAxis = 0, 180, 10 + xBins = map_samplingWindowBins, RPMValue + yBins = map_samplingWindow + gauge = MAPGauge + + curve = injectorsDeadTime, "Injector dead time" + columnLabel = "Battery", "Dead Time" + xAxis = 6, 16, 11 + yAxis = 0, 8, 9 + xBins = injector_battLagCorrBins, VBatt + yBins = injector_battLagCorr + gauge = VBattGauge + + curve = injectorsSecondaryDeadTime, "Secondary injector dead time" + columnLabel = "Battery", "Dead Time" + xAxis = 6, 16, 11 + yAxis = 0, 8, 9 + xBins = injectorSecondary_battLagCorrBins, VBatt + yBins = injectorSecondary_battLagCorr + gauge = VBattGauge + + curve = vrThresholdCurve1, "VR 1 Threshold" + columnLabel = "RPM", "Voltage" + xAxis = 0, 8000, 9 + yAxis = 0, 2.5, 6 + xBins = vrThreshold1_rpmBins, RPMValue + yBins = vrThreshold1_values + + curve = vrThresholdCurve2, "VR 2 Threshold" + columnLabel = "RPM", "Voltage" + xAxis = 0, 8000, 9 + yAxis = 0, 2.5, 6 + xBins = vrThreshold2_rpmBins, RPMValue + yBins = vrThreshold2_values + + curve = mafDecodingCurve, "MAF sensor" + columnLabel = "Voltage", "kg/hour" + xAxis = -1, 6, 10 + yAxis = -30, 1300, 10 + xBins = mafDecodingBins, rawMaf + yBins = mafDecoding + gauge = rawMafGauge + + curve = iatFuelCorrCurve, "Intake air temperature fuel Multiplier" + topicHelp = "iatFuelCorrCurveHelp" + columnLabel = "Air Temp", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 2, 11 + xBins = iatFuelCorrBins, intake + yBins = iatFuelCorr + gauge = IATGauge + + curve = cltTimingCorrCurve, "Warmup timing correction" + columnLabel = "Coolant", "Extra" + xAxis = -40, 120, 9 + yAxis = 0, 20, 9 + xBins = cltTimingBins, coolant + yBins = cltTimingExtra + gauge = CLTGauge + + curve = cltFuelCorrCurve, "Warmup fuel manual Multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltFuelCorrBins, coolant + yBins = cltFuelCorr + gauge = CLTGauge + + curve = crankingCltCurve, "Cranking Coolant Temperature Multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = crankingFuelBins, coolant + yBins = crankingFuelCoef + gauge = CLTGauge + + curve = crankingCltCurveE100, "Cranking Coolant Temperature Multiplier (Flex Fuel E85)" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = crankingFuelBins, coolant + yBins = crankingFuelCoefE100 + gauge = CLTGauge + + curve = cltRevLimitCurve, "" + columnLabel = "Coolant", "RPM Limit" + xAxis = -40, 120, 9 + yAxis = 0, 8000, 9 + xBins = cltRevLimitRpmBins, coolant + yBins = cltRevLimitRpm + gauge = CLTGauge + + curve = etbTpsBiasCurve, "Electronic TB Bias Curve" + columnLabel = "TPS", "duty bias" + xAxis = 0, 50, 11 + yAxis = -40, 40, 9 + xBins = etbBiasBins, TPSValue + yBins = etbBiasValues + gauge = TPSGauge + + curve = crankingTpsCurve, "Cranking TPS Multiplier" + columnLabel = "TPS", "Multiplier" + xAxis = 0, 100, 11 + yAxis = 0, 3, 10 + xBins = crankingTpsBins, TPSValue + yBins = crankingTpsCoef + gauge = TPSGauge + + curve = crankingDurationCurve, "Cranking Duration Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = cltCrankingTaperDurationCurve, "Cranking taper duration multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingTaperCorrBins, coolant + yBins = cltCrankingTaperCorr + gauge = CLTGauge + + curve = cltIdleRPMCurve, "Idle Target RPM" + columnLabel = "Coolant", "RPM" + xAxis = -40, 120, 9 + yAxis = 0, 2400, 13 + xBins = cltIdleRpmBins, coolant + yBins = cltIdleRpm, RPMValue + gauge = CLTGauge + + curve = idleAdvanceCurve, "Idle Advance Angle" + columnLabel = "RPM", "degrees" + xAxis = 0, 2400, 13 + yAxis = -100, 100, 11 + xBins = idleAdvanceBins, RPMValue + yBins = idleAdvance + gauge = RPMGauge + + curve = crankingAdvanceCurve, "Cranking Advance Angle" + columnLabel = "RPM", "degrees" + xAxis = 0, 1200, 13 + yAxis = -30, 30, 11 + xBins = crankingAdvanceBins, RPMValue + yBins = crankingAdvance + gauge = RPMGauge + + curve = fuelLevelCurve, "Fuel Level" + columnLabel = "Voltage", "%" + xAxis = 0, 5, 6 + yAxis = 0, 100, 11 + xBins = fuelLevelBins + yBins = fuelLevelValues + gauge = fuelTankLevelGauge + + curve = wueAfrTargetOffsetCurve, "AFR Target Temperature Adjustment" + columnLabel = "Coolant", "AFR Offset" + xAxis = -40, 200, 9 + yAxis = -3, 1, 5 + xBins = cltFuelCorrBins, coolant + yBins = wueAfrTargetOffset + gauge = cltGauge + + curve = wueAnalyzer_warmup_curve, "Warmup Enrichment" + columnLabel = "Coolant", "Current WUE", "Coolant", "Corrected" + xAxis = -40, 200, 9 + yAxis = 90, 500, 6 + xBins = cltFuelCorrBins, coolant + yBins = cltFuelCorr + yBins = wueAnalRecommend + + lineLabel = "Warmup Correction" + lineLabel = "Recommended WUE" + + curve = hpfpLobeProfileCurve, "HPFP Lobe Profile" + columnLabel = "% pump volume", "angle" + xAxis = 0, 100, 11 + yAxis = 0, 240, 13 + xBins = hpfpLobeProfileQuantityBins + yBins = hpfpLobeProfileAngle + + curve = hpfpDeadtimeCurve, "HPFP Valve Deadtime" + columnLabel = "volts", "ms" + xAxis = 5, 15, 11 + yAxis = 0, 5, 6 + xBins = hpfpDeadtimeVoltsBins + yBins = hpfpDeadtimeMS + + curve = wwTauCltCurve, "Evap time vs. CLT" + columnLabel = "coolant", "seconds" + xAxis = -40, 120, 9 + yAxis = 0, 2, 9 + xBins = wwCltBins, coolant + yBins = wwTauCltValues + gauge = CLTGauge + + curve = wwTauMapCurve, "Evap time vs. MAP" + columnLabel = "MAP", "mult" + xAxis = 0, 100, 5 + yAxis = 0, 2, 9 + xBins = wwMapBins, MAPValue + yBins = wwTauMapValues + gauge = MAPGauge + + curve = wwBetaCltCurve, "Impact fraction vs. CLT" + columnLabel = "coolant", "fraction" + xAxis = -40, 120, 9 + yAxis = 0, 2, 9 + xBins = wwCltBins, coolant + yBins = wwBetaCltValues + gauge = CLTGauge + + curve = wwBetaMapCurve, "Impact fraction vs. MAP" + columnLabel = "MAP", "mult" + xAxis = 0, 100, 5 + yAxis = 0, 2, 9 + xBins = wwMapBins, MAPValue + yBins = wwBetaMapValues + gauge = MAPGauge + + curve = tchargeCurve, "Charge temperature estimation coefficient" + columnLabel = "flow", "coefficient" + xAxis = 0, 500, 6 + yAxis = 0, 100, 5 + xBins = tchargeBins, mafEstimate + yBins = tchargeValues + gauge = tChargeGauge + + curve = tccLockCurve, "TCC Lock Curve" + columnLabel = "TPS", "Lock Speed", "Unlock Speed" + xAxis = 0, 100, 10 + yAxis = 0, 100, 10 + xBins = tcu_tccTpsBins, TPSValue + yBins = tcu_tccLockSpeed + yBins = tcu_tccUnlockSpeed + gauge = TPSGauge + + curve = pcPerGearCurve, "Transmission Line Pressure Control" + columnLabel = "Airmass", "" + xAxis = 0, 5, 10 + yAxis = 0, 100, 10 + xBins = tcu_pcAirmassBins, chargeAirMass + yBins = tcu_pcValsR + yBins = tcu_pcValsN + yBins = tcu_pcVals1 + yBins = tcu_pcVals2 + yBins = tcu_pcVals3 + yBins = tcu_pcVals4 + lineLabel = "R%" + lineLabel = "N%" + lineLabel = "1%" + lineLabel = "2%" + lineLabel = "3%" + lineLabel = "4%" + +curve = pcPerShiftCurve, "Transmission Line Pressure Control - Shift" + columnLabel = "Airmass", "" + xAxis = 0, 5, 10 + yAxis = 0, 100, 10 + xBins = tcu_pcAirmassBins, chargeAirMass + yBins = tcu_pcVals12 + yBins = tcu_pcVals23 + yBins = tcu_pcVals34 + yBins = tcu_pcVals21 + yBins = tcu_pcVals32 + yBins = tcu_pcVals43 + lineLabel = "1->2%" + lineLabel = "2->3%" + lineLabel = "3->4%" + lineLabel = "2->1%" + lineLabel = "3->2%" + lineLabel = "4->3%" + +curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" + columnLabel = "Speed", "%" + xAxis = 0, 200, 20 + yAxis = 0, 100, 10 + xBins = tcu_32SpeedBins, vehicleSpeedKph + yBins = tcu_32Vals + + curve = ignAdder1Bias, "Ignition adder 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends1_blendBins, ignBlendParameter1 + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlendParameter2 + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlendParameter3 + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlendParameter4 + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlendParameter1 + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlendParameter2 + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlendParameter3 + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlendParameter4 + yBins = veBlends4_blendValues + + curve = boostOpenLoopBlend1Bias, "Boost open loop blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = boostOpenLoopBlends1_blendBins, boostOpenLoopBlendParameter1 + yBins = boostOpenLoopBlends1_blendValues + + curve = boostOpenLoopBlend2Bias, "Boost open loop blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = boostOpenLoopBlends2_blendBins, boostOpenLoopBlendParameter2 + yBins = boostOpenLoopBlends2_blendValues + + curve = boostClosedLoopBlend1Bias, "Boost Closed loop blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = boostClosedLoopBlends1_blendBins, boostClosedLoopBlendParameter1 + yBins = boostClosedLoopBlends1_blendValues + + curve = boostClosedLoopBlend2Bias, "Boost Closed loop blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = boostClosedLoopBlends2_blendBins, boostClosedLoopBlendParameter2 + yBins = boostClosedLoopBlends2_blendValues + + curve = throttleEffectiveArea, "Throttle effective area" + columnLabel = "TPS", "normalized flow" + xAxis = 0, 100, 11 + yAxis = 0, 2, 5 + xBins = throttleEstimateEffectiveAreaBins, TPSValue + yBins = throttleEstimateEffectiveAreaValues + gauge = TPSGauge + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + xBins = alsIgnRetardrpmBins, RPMValue + yBins = alsIgnRetardLoadBins, TPSValue + zBins = ALSTimingRetardTable + gridHeight = 4.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = FuelAdderTableALS, FuelAdderALS, "Fuel adjustment", 1 + xBins = alsFuelAdjustmentrpmBins, RPMValue + yBins = alsFuelAdjustmentLoadBins, TPSValue + zBins = ALSFuelAdjustment + gridHeight = 4.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = baroCorrTbl, baroCorrMap, "Baro Correction", 1 + 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 + xBins = ignitionRpmBins, RPMValue + yBins = ignitionLoadBins, ignitionLoad + zBins = ignitionTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = ignAdder1Table, ignAdder1Map, "Ignition adder 1", 1 + xBins = ignBlends1_rpmBins, RPMValue + yBins = ignBlends1_loadBins, ignitionLoad + zBins = ignBlends1_table + gridOrient = 250, 0, 340 + + table = ignAdder2Table, ignAdder2Map, "Ignition adder 2", 1 + xBins = ignBlends2_rpmBins, RPMValue + yBins = ignBlends2_loadBins, ignitionLoad + zBins = ignBlends2_table + gridOrient = 250, 0, 340 + + table = ignAdder3Table, ignAdder3Map, "Ignition adder 3", 1 + xBins = ignBlends3_rpmBins, RPMValue + yBins = ignBlends3_loadBins, ignitionLoad + zBins = ignBlends3_table + gridOrient = 250, 0, 340 + + table = ignAdder4Table, ignAdder4Map, "Ignition adder 4", 1 + xBins = ignBlends4_rpmBins, RPMValue + yBins = ignBlends4_loadBins, ignitionLoad + zBins = ignBlends4_table + gridOrient = 250, 0, 340 + + table = veBlend1Table, veBlend1Map, "VE blend 1", 1 + xBins = veBlends1_rpmBins, RPMValue + yBins = veBlends1_loadBins, fuelingLoad + zBins = veBlends1_table + gridOrient = 250, 0, 340 + + table = veBlend2Table, veBlend2Map, "VE blend 2", 1 + xBins = veBlends2_rpmBins, RPMValue + yBins = veBlends2_loadBins, fuelingLoad + zBins = veBlends2_table + gridOrient = 250, 0, 340 + + table = veBlend3Table, veBlend3Map, "VE blend 3", 1 + xBins = veBlends3_rpmBins, RPMValue + yBins = veBlends3_loadBins, fuelingLoad + zBins = veBlends3_table + gridOrient = 250, 0, 340 + + table = veBlend4Table, veBlend4Map, "VE blend 4", 1 + xBins = veBlends4_rpmBins, RPMValue + yBins = veBlends4_loadBins, fuelingLoad + zBins = veBlends4_table + gridOrient = 250, 0, 340 + + table = boostOpenBlend1Table, boostOpenBlend1Map, "Boost open loop blend 1", 1 + xBins = boostOpenLoopBlends1_rpmBins, RPMValue + yBins = boostOpenLoopBlends1_loadBins, TPSValue + zBins = boostOpenLoopBlends1_table + gridOrient = 250, 0, 340 + + table = boostOpenBlend2Table, boostOpenBlend2Map, "Boost open loop blend 2", 1 + xBins = boostOpenLoopBlends2_rpmBins, RPMValue + yBins = boostOpenLoopBlends2_loadBins, TPSValue + zBins = boostOpenLoopBlends2_table + gridOrient = 250, 0, 340 + + table = boostClosedBlend1Table, boostClosedBlend1Map, "Boost closed loop blend 1", 1 + xBins = boostClosedLoopBlends1_rpmBins, RPMValue + yBins = boostClosedLoopBlends1_loadBins, TPSValue + zBins = boostClosedLoopBlends1_table + gridOrient = 250, 0, 340 + + table = boostClosedBlend2Table, boostClosedBlend2Map, "Boost closed loop blend 2", 1 + xBins = boostClosedLoopBlends2_rpmBins, RPMValue + yBins = boostClosedLoopBlends2_loadBins, TPSValue + zBins = boostClosedLoopBlends2_table + gridOrient = 250, 0, 340 + + table = ignitionIatCorrTableTbl, ignitionIatCorrTableMap, "Ignition Intake Air Temp correction", 1 + xBins = ignitionIatCorrTempBins, intake + yBins = ignitionIatCorrLoadBins, ignitionLoad + 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 + xyLabels = "RPM", "load" + xBins = veRpmBins, RPMValue + yBins = veLoadBins, veTableYAxis + zBins = veTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = idleVeTableTbl, idleVeTable, "Idle VE" + xyLabels = "RPM", "load" + xBins = idleVeRpmBins, RPMValue + yBins = idleVeLoadBins, veTableYAxis + zBins = idleVeTable + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl1, fuelTrimMap1, "Fuel trim cyl 1", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims1_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl2, fuelTrimMap2, "Fuel trim cyl 2", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims2_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl3, fuelTrimMap3, "Fuel trim cyl 3", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims3_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl4, fuelTrimMap4, "Fuel trim cyl 4", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims4_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl5, fuelTrimMap5, "Fuel trim cyl 5", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims5_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl6, fuelTrimMap6, "Fuel trim cyl 6", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims6_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl7, fuelTrimMap7, "Fuel trim cyl 7", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims7_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl8, fuelTrimMap8, "Fuel trim cyl 8", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims8_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl9, fuelTrimMap9, "Fuel trim cyl 9", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims9_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl10, fuelTrimMap10, "Fuel trim cyl 10", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims10_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl11, fuelTrimMap11, "Fuel trim cyl 11", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims11_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl12, fuelTrimMap12, "Fuel trim cyl 12", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims12_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = ignTrimTbl1, ignTrimMap1, "Ign trim cyl 1", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims1_table + + table = ignTrimTbl2, ignTrimMap2, "Ign trim cyl 2", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims2_table + + table = ignTrimTbl3, ignTrimMap3, "Ign trim cyl 3", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims3_table + + table = ignTrimTbl4, ignTrimMap4, "Ign trim cyl 4", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims4_table + + table = ignTrimTbl5, ignTrimMap5, "Ign trim cyl 5", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims5_table + + table = ignTrimTbl6, ignTrimMap6, "Ign trim cyl 6", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims6_table + + table = ignTrimTbl7, ignTrimMap7, "Ign trim cyl 7", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims7_table + + table = ignTrimTbl8, ignTrimMap8, "Ign trim cyl 8", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims8_table + + table = ignTrimTbl9, ignTrimMap9, "Ign trim cyl 9", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims9_table + + table = ignTrimTbl10, ignTrimMap10, "Ign trim cyl 10", 1 + xBins = ignTrimRpmBins, RPMValue + yBins = ignTrimLoadBins, ignitionLoad + zBins = ignTrims10_table + + table = ignTrimTbl11, ignTrimMap11, "Ign trim cyl 11", 1 + xBins = ignTrimRpmBins, RPMValue + yBins = ignTrimLoadBins, ignitionLoad + zBins = ignTrims11_table + + table = ignTrimTbl12, ignTrimMap12, "Ign trim cyl 12", 1 + xBins = ignTrimRpmBins, RPMValue + yBins = ignTrimLoadBins, ignitionLoad + zBins = ignTrims12_table + + table = mapEstimateTableTbl, mapEstimateTableMap, "MAP Estimate", 1 + xBins = mapEstimateRpmBins, RPMValue + yBins = mapEstimateTpsBins, TPSValue + zBins = mapEstimateTable + + table = injPhaseTableTbl, injPhaseTableMap, "Injection Phase", 1 + topicHelp = "fuelHelp" + xBins = injPhaseRpmBins, RPMValue + yBins = injPhaseLoadBins, fuelingLoad + zBins = injectionPhase +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(Later)", "(Sooner)" + + table = pedalToTpsTbl, pedalToTpsMap, "ETB Pedal to TPS", 1 + xBins = pedalToTpsRpmBins, RPMValue + yBins = pedalToTpsPedalBins, throttlePedalPosition + zBins = pedalToTpsTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(Later)", "(Sooner)" + + table = throttle2TrimTbl, throttle2TrimMap, "ETB #2 Trim", 1 + xBins = throttle2TrimRpmBins, RPMValue + yBins = throttle2TrimTpsBins, TPSValue + zBins = throttle2TrimTable + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + + table = maxKnockRetardTbl, maxKnockRetardMap, "Max knock retard", 1 + xBins = maxKnockRetardRpmBins, RPMValue + yBins = maxKnockRetardLoadBins, ignitionLoad + zBins = maxKnockRetardTable + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + +#if LAMBDA + table = lambdaTableTbl, lambdaTableMap, "Target Lambda Table", 1 +#else + table = afrTableTbl, afrTableMap, "Target AFR Table", 1 +#endif + xBins = lambdaRpmBins, RPMValue + yBins = lambdaLoadBins, afrTableYAxis + zBins = lambdaTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 + xyLabels = "RPM", "" + xBins = lambdaMaxDeviationRpmBins, RPMValue + yBins = lambdaMaxDeviationLoadBins, afrTableYAxis + zBins = lambdaMaxDeviationTable + + table = iacPidMultTbl, iacPidMultMap, "IAC PID Multiplier Table", 1 + xBins = iacPidMultRpmBins, RPMValue + yBins = iacPidMultLoadBins, fuelingLoad + zBins = iacPidMultTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(Later)", "(Sooner)" + + table = gppwm1Tbl, gppwm1Map, "GP#1", 1 + xyLabels = "RPM", "" + xBins = gppwm1_rpmBins, gppwmXAxis1 + yBins = gppwm1_loadBins, gppwmYAxis1 + zBins = gppwm1_table + + table = gppwm2Tbl, gppwm2Map, "GP#2", 1 + xyLabels = "RPM", "" + xBins = gppwm2_rpmBins, gppwmXAxis2 + yBins = gppwm2_loadBins, gppwmYAxis2 + zBins = gppwm2_table + + table = gppwm3Tbl, gppwm3Map, "GP#3", 1 + xyLabels = "RPM", "" + xBins = gppwm3_rpmBins, gppwmXAxis3 + yBins = gppwm3_loadBins, gppwmYAxis3 + zBins = gppwm3_table + + table = gppwm4Tbl, gppwm4Map, "GP#4", 1 + xyLabels = "RPM", "" + xBins = gppwm4_rpmBins, gppwmXAxis4 + yBins = gppwm4_loadBins, gppwmYAxis4 + zBins = gppwm4_table + + table = stagedInjectionTbl, stagedInjectionMap, "Staged Injection %", 1 + xyLabels = "RPM", "" + xBins = injectorStagingRpmBins, RPMValue + yBins = injectorStagingLoadBins, fuelingLoad + zBins = injectorStagingTable + + table = tcuSolenoidTableTbl, tcuSolenoidTableMap, "Solenoids Active By Gear", 1 + xBins = solenoidCountArray, tcuCurrentGear + yBins = gearCountArray, tcuCurrentGear + zBins = tcuSolenoidTable + xyLabels = "Solenoid", "Gear" + + table = hpfpTargetTable, hpfpTargetTableId, "HPFP Target Fuel Pressure", 1 + xBins = hpfpTargetRpmBins, RPMValue + yBins = hpfpTargetLoadBins, veTableYAxis + zBins = hpfpTarget + + table = hpfpCompensationTable, hpfpCompensationTableId, "HPFP Pump Compensation Factor", 1 + xBins = hpfpCompensationRpmBins, RPMValue + yBins = hpfpCompensationLoadBins, running_fuel + zBins = hpfpCompensation + + +[GaugeConfigurations] +gaugeCategory = "Fuel: math" + totalFuelCorrectionGauge = totalFuelCorrection,"Fuel: Total correction", "mult", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + running_timeSinceCrankingInSecsGauge = running_timeSinceCrankingInSecs,"running_ timeSinceCrankingInSecs", "secs", 0.0,600000.0, 0.0,600000.0, 0.0,600000.0, 0,0 + targetLambdaGauge = targetLambda,"Fuel: target lambda", "", 0.5,1.5, 0.5,1.5, 0.5,1.5, 2,2 + targetAFRGauge = targetAFR,"Fuel: target AFR", "ratio", 10.0,20.0, 10.0,20.0, 10.0,20.0, 2,2 + +gaugeCategory = "Boost Control" + luaTargetAddGauge = luaTargetAdd,"Boost: Lua target add", "v", -100.0,100.0, -100.0,100.0, -100.0,100.0, 1,1 + boostOutputGauge = boostOutput,"Boost: Output", "percent", -100.0,100.0, -100.0,100.0, -100.0,100.0, 2,2 + luaTargetMultGauge = luaTargetMult,"Boost: Lua target mult", "v", -100.0,100.0, -100.0,100.0, -100.0,100.0, 1,1 + openLoopPartGauge = openLoopPart,"Boost: Open loop", "v", -100.0,100.0, -100.0,100.0, -100.0,100.0, 1,1 + luaOpenLoopAddGauge = luaOpenLoopAdd,"Boost: Lua open loop add", "v", -100.0,100.0, -100.0,100.0, -100.0,100.0, 1,1 + boostControllerClosedLoopPartGauge = boostControllerClosedLoopPart,"Boost: Closed loop", "%", -50.0,50.0, -50.0,50.0, -50.0,50.0, 1,1 + boostControlTargetGauge = boostControlTarget,"Boost: Target", "kPa", 0.0,300.0, 0.0,300.0, 0.0,300.0, 1,1 + boostStatus_pTermGauge = boostStatus_pTerm,"Boost PID pTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + boostStatus_iTermGauge = boostStatus_iTerm,"Boost PID iTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + boostStatus_dTermGauge = boostStatus_dTerm,"Boost PID dTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + boostStatus_outputGauge = boostStatus_output,"Boost PID output", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + boostStatus_errorGauge = boostStatus_error,"Boost PID error", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + boostStatus_resetCounterGauge = boostStatus_resetCounter,"Boost PID resetCounter", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 0,0 + +gaugeCategory = "ETB more" + idlePositionGauge = idlePosition,"ETB: idlePosition", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 + luaAdjustmentGauge = luaAdjustment,"ETB: luaAdjustment", "per", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + m_wastegatePositionGauge = m_wastegatePosition,"DC: wastegatePosition", "per", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + etbDutyRateOfChangeGauge = etbDutyRateOfChange,"ETB duty rate of change", "per", -0.0,20.0, -0.0,20.0, -0.0,20.0, 2,2 + etbDutyAverageGauge = etbDutyAverage,"ETB average duty", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 + etbTpsErrorCounterGauge = etbTpsErrorCounter,"ETB TPS error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 + etbPpsErrorCounterGauge = etbPpsErrorCounter,"ETB pedal error counter", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 + dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 + isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 + value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 + value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 + errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallGauge = triggerPrimaryFall,"triggerPrimaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryRiseGauge = triggerPrimaryRise,"triggerPrimaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryFallGauge = triggerSecondaryFall,"triggerSecondaryFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerSecondaryRiseGauge = triggerSecondaryRise,"triggerSecondaryRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtFallGauge = triggerVvtFall,"triggerVvtFall", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerVvtRiseGauge = triggerVvtRise,"triggerVvtRise", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + currentEnginePhaseGauge = currentEngineDecodedPhase, "Engine Phase", "deg", 0, 720, 0, 0, 720, 720, 0, 0 + +gaugeCategory = Test Bench + testBenchIterGauge = testBenchIter, "Test Bench Iterations", "count", 0, {benchTestCount}, 0, 0, {benchTestCount}, {benchTestCount}, 0, 0 + testIgnIterGauge = testBenchIter, "Ignition Test Iterations", "count", 0, {ignTestCount}, 0, 0, {ignTestCount}, {ignTestCount}, 0, 0 + +gaugeCategory = LUA + luaInvocationCounterGauge = luaInvocationCounter,"luaInvocationCounter", "count", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + luaLastCycleDurationGauge = luaLastCycleDuration,"luaLastCycleDuration", "nt", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + luaGauges1gauge = luaGauges1, "Lua Gauge 1", "lua", 0, 30000, 0, 0, 30000, 30000, 0, 3 + luaGauges2gauge = luaGauges2, "Lua Gauge 2", "lua", 0, 30000, 0, 0, 30000, 30000, 0, 3 + +gaugeCategory = Alternator Control + alternatorStatus_pTermGauge = alternatorStatus_pTerm,"Alternator PID pTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + alternatorStatus_iTermGauge = alternatorStatus_iTerm,"Alternator PID iTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + alternatorStatus_dTermGauge = alternatorStatus_dTerm,"Alternator PID dTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + alternatorStatus_outputGauge = alternatorStatus_output,"Alternator PID output", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + alternatorStatus_errorGauge = alternatorStatus_error,"Alternator PID error", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + alternatorStatus_resetCounterGauge = alternatorStatus_resetCounter,"Alternator PID resetCounter", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 0,0 + +gaugeCategory = Idle + idleAirValvePositionGauge = currentIdlePosition, "Idle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + idleStatus_pTermGauge = idleStatus_pTerm,"Idle PID pTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + idleStatus_iTermGauge = idleStatus_iTerm,"Idle PID iTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + idleStatus_dTermGauge = idleStatus_dTerm,"Idle PID dTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + idleStatus_outputGauge = idleStatus_output,"Idle PID output", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + idleStatus_errorGauge = idleStatus_error,"Idle PID error", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + idleStatus_resetCounterGauge = idleStatus_resetCounter,"Idle PID resetCounter", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 0,0 + targetRpmGauge = targetRpm, "Idle: Target RPM","RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + +gaugeCategory = ETB PID + etbStatus_pTermGauge = etbStatus_pTerm,"ETB 1 PID pTerm", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + etbStatus_iTermGauge = etbStatus_iTerm,"ETB 1 PID iTerm", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + etbStatus_dTermGauge = etbStatus_dTerm,"ETB 1 PID dTerm", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + etbStatus_outputGauge = etbStatus_output,"ETB 1 PID output", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + etbStatus_errorGauge = etbStatus_error,"ETB 1 PID error", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + etbStatus_resetCounterGauge = etbStatus_resetCounter,"ETB 1 PID resetCounter", "", 0,100.0, 0,100.0, 0,100.0, 0,0 + + wgStatus_pTermGauge = wastegateDcStatus_pTerm,"WG PID pTerm", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + wgStatus_iTermGauge = wastegateDcStatus_iTerm,"WG PID iTerm", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + wgStatus_dTermGauge = wastegateDcStatus_dTerm,"WG PID dTerm", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + wgStatus_outputGauge = wastegateDcStatus_output,"WG PID output", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + wgStatus_errorGauge = wastegateDcStatus_error,"WG PID error", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + wgStatus_resetCounterGauge = wastegateDcStatus_resetCounter,"WG PID resetCounter", "", 0,100.0, 0,100.0, 0,100.0, 0,0 + +gaugeCategory = CAN + canReadCounterGauge = canReadCounter,"canReadCounter", "", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + canWriteOkGauge = canWriteOk,"canWriteOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + canWriteNotOkGauge = canWriteNotOk,"canWriteNotOk", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + +gaugeCategory = GDI + di_nextStartGauge = di_nextStart,"DI: next start", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0 + m_requested_pumpGauge = m_requested_pump,"DI: Pump Angle", "deg", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + fuel_requested_percentGauge = fuel_requested_percent,"DI: fuel_requested_percent", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0 + fuel_requested_percent_piGauge = fuel_requested_percent_pi,"DI: fuel_requested_percent_pi", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0 + ;todo see comment in HpfpQuantity class definition + ;m_I_sum_percentGauge = m_I_sum_percent,"DI: m_I_sum_percent", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0 + ;m_pressureTarget_kPaGauge = m_pressureTarget_kPa,"DI: m_pressureTarget_kPa", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0 + highFuelPressureGauge = highFuelPressure, "Fuel pressure (high)", "bar", 0, 200, 0, 0, 200, 200, 1, 0 + +gaugeCategory = ECU Status + warningCounterGauge = warningCounter, "Warning: counter", "", 0, 100, 0, 0, 100, 100, 0, 0 + lastErrorCodeGauge = lastErrorCode, "Last error", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode1Gauge = recentErrorCode1, "Error#1", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode2Gauge = recentErrorCode2, "Error#2", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode3Gauge = recentErrorCode3, "Error#3", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode4Gauge = recentErrorCode4, "Error#4", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode5Gauge = recentErrorCode5, "Error#5", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode6Gauge = recentErrorCode6, "Error#6", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode7Gauge = recentErrorCode7, "Error#7", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode8Gauge = recentErrorCode8, "Error#8", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + firmwareVersionGauge = firmwareVersion , "ECU Software Version", "%", 0, 100, 0, 0, 100, 100, 0, 0 + timeSecondsGauge = seconds, "Uptime", "sec", 0, 100, 0, 0, 100, 100, 0, 0 + tuneCrc16Gauge = tuneCrc16, "Tune CRC16", "", 0, 64000, 0, 0, 64000, 64000, 0, 0 + +gaugeCategory = Debug + debugF1Gauge = debugFloatField1, {bitStringValue( debugFieldF1List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 4, 4 + debugF2Gauge = debugFloatField2, {bitStringValue( debugFieldF2List, debugMode )}, "", -100, 100, 0, 0, 100, 100, 4, 4 + debugF3Gauge = debugFloatField3, {bitStringValue( debugFieldF3List, debugMode )}, "", -100, 100, 0, 0, 100, 100, 4, 4 + debugF4Gauge = debugFloatField4, {bitStringValue( debugFieldF4List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 4, 4 + debugF5Gauge = debugFloatField5, {bitStringValue( debugFieldF5List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 4, 4 + debugF6Gauge = debugFloatField6, {bitStringValue( debugFieldF6List, debugMode )}, "", -100, 100, 0, 0, 100, 100, 4, 4 + debugF7Gauge = debugFloatField7, {bitStringValue( debugFieldF7List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 4, 4 + debugI1Gauge = debugIntField1, {bitStringValue( debugFieldI1List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 + debugI2Gauge = debugIntField2, {bitStringValue( debugFieldI2List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 + debugI3Gauge = debugIntField3, {bitStringValue( debugFieldI3List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 + debugI4Gauge = debugIntField4, {bitStringValue( debugFieldI4List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 + debugI5Gauge = debugIntField5, {bitStringValue( debugFieldI5List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 + +gaugeCategory = Sensors - Basic + RPMGauge = RPMValue, "RPM - engine speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + CLTGauge = coolant, "Coolant temp", "C", -40, 140, -15, 1, 95, 110, 1, 1 + IATGauge = intake, "Intake air temp", "C", -40, 140, -15, 1, 95, 110, 1, 1 + afr1Gauge = AFRValue, "Air/Fuel Ratio", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + afr2Gauge = AFRValue2, "Air/Fuel Ratio 2", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + afrGasScale1Gauge = afrGasolineScale, "Air/Fuel Ratio (Gas Scale)", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + afrGasScale2Gauge = afr2GasolineScale, "Air/Fuel Ratio 2 (Gas Scale)", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + lambda1Gauge = lambdaValue, "Lambda", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + lambda2Gauge = lambdaValue2, "Lambda 2", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + VBattGauge = VBatt, "Battery", "V", 8, 21, 9, 10, 17, 19, 1, 1 + MAPGauge = MAPValue, "MAP", "kPa", 0, 300, 10, 10, 200, 200, 0, 0 + massAirFlowValueGa = mafMeasured, "MAF", "kg/h", 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 + turboSpeedGauge = turboSpeed, "Turbocharger Speed", "hz", 0, 200, 0, 1, 3, 4, 1, 1 + baroPressureGauge = baroPressure, "Barometric pressure", "kPa", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + OilTempGauge = oilTemp, "Oil Temperature", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + fuelTankLevelGauge = fuelTankLevel,"Fuel level", "%", 0, 100, 10, 20, 100, 100, 1, 1 + AuxL1Gauge = auxLinear1, "Aux linear #1", "", -100, 100, -100, -100, 100, 100, 2, 2 + AuxL2Gauge = auxLinear2, "Aux linear #2", "", -100, 100, -100, -100, 100, 100, 2, 2 + +gaugeCategory = Sensors - Extra 2 + accelerationLatGauge = accelerationLat, "Accel: Lateral", "acc", -2, 2, -2, -1, 1, 2, 3, 1 + accelerationLonGauge = accelerationLon, "Accel: Longitudinal", "acc", -2, 2, -2, -1, 1, 2, 3, 1 + accelerationVertGauge = accelerationVert, "Accel: Vertical", "acc", 0, 1.5, 0.5, 0.6, 1.4, 1.5, 3, 1 + gyroYawGauge = gyroYaw, "Gyro: Yaw rate", "acc", -100, 100, -100, -100, 100, 100, 3, 1 + egt1Gauge = egt1, "EGT#1", "C", 0, 2000 + egt2Gauge = egt2, "EGT#2", "C", 0, 2000 + rpmAccelerationGa = rpmAcceleration, "rpm delta", "RPM/s", -2000, 2000, -2000, 2000, -2000, 2000, 0, 0 + wastegatePosGauge = wastegatePositionSensor, "Wastegate position sensor", "%", 0, 100, 0, 0, 100, 100, 1, 1 + auxSpeed1Gauge = auxSpeed1, "Aux Freq Input1", "hz", 0, 30000, 0, 0, 30000, 30000, 0, 0 + +gaugeCategory = VVT + vvtPositionB1IGauge = vvtPositionB1I, "VVT: bank 1 intake", "deg", -60, 60, -60, -60, 60, 60, 1, 1 + vvtPositionB1EGauge = vvtPositionB1E, "VVT: bank 1 exhaust", "deg", -60, 60, -60, -60, 60, 60, 1, 1 + vvtPositionB2IGauge = vvtPositionB2I, "VVT: bank 2 intake", "deg", -60, 60, -60, -60, 60, 60, 1, 1 + vvtPositionB2EGauge = vvtPositionB2E, "VVT: bank 2 exhaust", "deg", -60, 60, -60, -60, 60, 60, 1, 1 + vvtTargets1Gauge = vvtTargets1, "VVT: bank 1 intake target", "deg", -60, 60, -60, -60, 60, 60, 0, 0 + vvtTargets2Gauge = vvtTargets2, "VVT: bank 1 exhaust target", "deg", -60, 60, -60, -60, 60, 60, 0, 0 + vvtTargets3Gauge = vvtTargets3, "VVT: bank 2 intake target", "deg", -60, 60, -60, -60, 60, 60, 0, 0 + vvtTargets4Gauge = vvtTargets4, "VVT: bank 2 exhaust target", "deg", -60, 60, -60, -60, 60, 60, 0, 0 + vvtOutput1Gauge = vvtStatus1_output, "vvt: output 1", "", 00, 100, -60, -60, 60, 60, 0, 0 + vvtOutput2Gauge = vvtStatus2_output, "vvt: output 2", "", 00, 100, -60, -60, 60, 60, 0, 0 + vvtOutput3Gauge = vvtStatus3_output, "vvt: output 3", "", 00, 100, -60, -60, 60, 60, 0, 0 + vvtOutput4Gauge = vvtStatus4_output, "vvt: output 4", "", 00, 100, -60, -60, 60, 60, 0, 0 + +gaugeCategory = Ignition + sparkCutReasonGauge = sparkCutReason, "Ign: Cut code", "code", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + ignadvGauge = ignitionAdvance, "Ign: Timing", "degrees", -100, 100, -999, -999, 999, 999, 1, 1 + dwellGauge = sparkDwell, "Ign: Dwell", "mSec", 0, 10, 0.5, 1.0, 6.0, 8.0, 1, 1 + coilDutyCycleGauge = coilDutyCycle, "Ign: Coil duty cycle", "%", 0, 110, 0, 0, 90, 100, 1, 1 + ignitionLoadGauge = ignitionLoad, "Ign: Load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + baseDwellGauge = baseDwell,"baseDwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 + dwellAngleGauge = dwellAngle,"Ign: Dwell angle", "deg", 0.0,120.0, 0.0,120.0, 0.0,120.0, 1,1 + cltTimingCorrectionGauge = cltTimingCorrection,"Ign: CLT correction", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 + timingIatCorrectionGauge = timingIatCorrection,"Ign: IAT correction", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 + timingPidCorrectionGauge = timingPidCorrection,"Ign: Idle timing adjustment", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 + luaTimingAddGauge = luaTimingAdd,"Ign: Lua timing add", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 + luaTimingMultGauge = luaTimingMult,"Ign: Lua timing mult", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 + +gaugeCategory = Acceleration Enrichment + deltaTpsGauge = deltaTps, "AE: TPS change", "", 0, 120, 10, 10, 100, 100, 1, 1 + tpsAccelFuelGauge = tpsAccelFuel,"AE: TPS enrich", "ms", 0, 120, 10, 10, 100, 100, 1, 1 + wallFuelAmountGauge = wallFuelAmount, "AE: wall amount", "mg", 0, 100, 0, 0, 100, 100, 0, 0 + wallFuelCorrectionGauge = wallFuelCorrection, "AE: wall correction extra", "mg", -20, 20, -100, -100, 100, 100, 1, 1 + +gaugeCategory = Fueling + ;Name Var Title Units Lo Hi LoD LoW HiW HiD vd ld + fuelCutReasonGauge = fuelCutReason,"Fuel Cut Code", "code", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + tChargeGauge = sd_tCharge, "Fuel: Estimated charge temperature", "C", -40, 140, -15, 1, 95, 110, 1, 1 + baroCorrectionGauge = baroCorrection,"Fuel: Barometric pressure mult", "ratio", 0.5, 1.5, 0.6, 0.7, 1.3, 1.4, 1, 1 + crankingFuelGauge = crankingFuel_fuel, "Fuel: cranking", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + iatCorrectionGauge = running_intakeTemperatureCoefficient, "Fuel: IAT correction", "mult", 0, 3, 0, 0, 3, 3, 2, 2 + cltCorrectionGauge = running_coolantTemperatureCoefficient, "Fuel: CLT correction", "mult", 0, 3, 0, 0, 3, 3, 2, 2 + injectorDutyCycleGauge=injectorDutyCycle, "Fuel: injector duty cycle","%", 0, 120, 10, 10, 100, 100, 1, 1 + injectorDutyCycleStg2Gauge=injectorDutyCycleStage2, "Fuel: injector duty cycle stage 2","%", 0, 120, 10, 10, 100, 100, 1, 1 + actualLastInjectionGauge = actualLastInjection, "Fuel: Last inj pulse width", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + actualLastInjectionStg2Gauge = actualLastInjectionStage2, "Fuel: Last inj pulse width stg 2", "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 = m_deadtime, "Fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = running_fuel, "Fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = running_baseFuel, "Fuel: base cycle mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "Fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "Fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "Fuel: Load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "Fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "Fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB: position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB: position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB: Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 3, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "TCU: Desired Gear", "gear", -1, 10, -1, -1, 10, 10, 0, 0 + currentGearGauge = tcuCurrentGear, "Current Gear", "gear", -1, 10, -1, -1, 10, 10, 0, 0 + detectedGearGauge = detectedGear, "Detected Gear", "gear", 0, 8, 0, 0, 8, 8, 0, 0 + speedToRpmRatioGauge = speedToRpmRatio, "Gearbox Ratio", "", 0, 100, 0, 0, 100, 100, 4, 4 + ISSGauge = ISSValue, "TCU: Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "TCU: Torque Converter Ratio", "", 0, 100, 0, 0, 100, 100, 4, 4 + shiftTimeGauge = lastShiftTime, "Last Shift Time", "S", 0, 2, 0, 0, 2, 2, 4, 4 + +gaugeCategory = Knock + knock1Gauge = m_knockCyl1, "Knock Cyl 1", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock2Gauge = m_knockCyl2, "Knock Cyl 2", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock3Gauge = m_knockCyl3, "Knock Cyl 3", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock4Gauge = m_knockCyl4, "Knock Cyl 4", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock5Gauge = m_knockCyl5, "Knock Cyl 5", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock6Gauge = m_knockCyl6, "Knock Cyl 6", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock7Gauge = m_knockCyl7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock8Gauge = m_knockCyl8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock9Gauge = m_knockCyl9, "Knock Cyl 9", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock10Gauge = m_knockCyl10, "Knock Cyl 10", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock11Gauge = m_knockCyl11, "Knock Cyl 11", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock12Gauge = m_knockCyl12, "Knock Cyl 12", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knockLevelGauge = m_knockLevel,"Knock level", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knockRetardGauge = m_knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = m_knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = ignadvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; todo: do we want to drop this line since we have "config error" feature thing below? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode)}, white, black, yellow, black + + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { isAboveAccelThreshold }, "No TPS accel", "TPS accel active", white, black, yellow, black + ; error codes + indicator = { isTpsError }, "TPS OK", "TPS error", white, black, red, black + + ; Line 3 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isTps2Error }, "TPS 2 OK", "TPS 2 error", white, black, red, black + indicator = { isPedalError }, "Pedal OK", "Pedal error", white, black, red, black + indicator = { isCltError }, "CLT OK", "CLT error", white, black, red, black + indicator = { isIatError }, "IAT OK", "IAT error", white, black, red, black + ; not implemented + ; indicator = { ind_map_error}, "map", "map error", white, black, red, black + indicator = { sd_present }, "No SD card", "SD card present", white, black, green, black + indicator = { sd_logging_internal }, "No SD logging", "SD logging", white, black, green, black + indicator = { sd_msd }, "No SD USB", "SD USB", white, black, green, black + indicator = { etbRevLimitActive }, "No ETB RPM Limit", "ETB RPM Limit", white, black, yellow, black + + indicator = { wbo0_hasFault }, { WBO0: bitStringValue(wboFaultCodeList, faultCode)}, { WBO0: bitStringValue(wboFaultCodeList, faultCode)}, white, black, red, black + + ; TODO https://github.com/FOME-Tech/fome-fw/issues/85 not sure why these indicators don't work + ; indicator = { isInjectionEnabled && fuelCutReason == 0 }, { Inj: bitStringValue(injModeList, currentInjectionMode) }, { Inj: bitStringValue(injModeList, currentInjectionMode) }, white, black, white, black + ; indicator = { isIgnitionEnabled && sparkCutReason == 0 }, { Ign: bitStringValue(ignModeList, currentIgnitionMode) }, { Ign: bitStringValue(ignModeList, currentIgnitionMode) }, white, black, white, black + +; looks like TS would append four system indicators below: Data Logging, ???, Not Connected, Protocol Error + +[KeyActions] + showPanel = spi, spiFunction + showPanel = con, connection + +; +; this section defines how we log output channels +; see [OutputChannels] +; +[Datalog] + ; Channel Label Type Format + entry = time, "Time", float, "%.3f" +entry = sd_present, "SD: Present", int, "%d" +entry = sd_logging_internal, "SD: Logging", int, "%d" +entry = triggerScopeReady, "triggerScopeReady", int, "%d" +entry = antilagTriggered, "antilagTriggered", int, "%d" +entry = isFanOn, "Radiator Fan", int, "%d" +entry = isO2HeaterOn, "isO2HeaterOn", int, "%d" +entry = checkEngine, "checkEngine", int, "%d" +entry = needBurn, "needBurn", int, "%d" +entry = sd_msd, "SD: MSD", int, "%d" +entry = isFan2On, "Radiator Fan 2", int, "%d" +entry = acrActive, "Harley ACR: Active", int, "%d" +entry = toothLogReady, "Tooth Logger Ready", int, "%d" +entry = isTpsError, "Error: TPS", int, "%d" +entry = isCltError, "Error: CLT", int, "%d" +entry = isMapError, "Error: MAP", int, "%d" +entry = isIatError, "Error: IAT", int, "%d" +entry = isTriggerError, "Error: Trigger", int, "%d" +entry = hasCriticalError, "Error: Active", int, "%d" +entry = isWarnNow, "Warning: Active", int, "%d" +entry = isPedalError, "Error: Pedal", int, "%d" +entry = launchTriggered, "Launch Control Triggered", int, "%d" +entry = isTps2Error, "Error: TPS2", int, "%d" +entry = injectorFault, "Injector Fault", int, "%d" +entry = ignitionFault, "Ignition Fault", int, "%d" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = dfcoActive, "dfcoActive", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = vehicleSpeedKph, "Vehicle Speed", int, "%d" +entry = internalMcuTemperature, "ECU temperature", int, "%d" +entry = coolant, "CLT", float, "%.3f" +entry = intake, "IAT", float, "%.3f" +entry = auxTemp1, "auxTemp1", float, "%.3f" +entry = auxTemp2, "auxTemp2", float, "%.3f" +entry = TPSValue, "TPS", float, "%.3f" +entry = throttlePedalPosition, "Throttle pedal position", float, "%.3f" +entry = tpsADC, "tpsADC", int, "%d" +entry = rawMaf, "rawMaf", float, "%.3f" +entry = mafMeasured, "MAF", float, "%.3f" +entry = MAPValue, "MAP", float, "%.3f" +entry = baroPressure, "baroPressure", float, "%.3f" +entry = lambdaValue, "Lambda", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" +entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" +entry = veValue, "Fuel: VE", float, "%.3f" +entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" +entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" +entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" +entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" +entry = revolutionCounterSinceStart, "revolutionCounterSinceStart", int, "%d" +entry = canReadCounter, "CAN: Rx", int, "%d" +entry = tpsAccelFuel, "Fuel: TPS AE add fuel ms", float, "%.3f" +entry = ignitionAdvance, "Ign: Timing Base", float, "%.3f" +entry = currentIgnitionMode, "Ign: Mode", int, "%d" +entry = currentInjectionMode, "Fuel: Injection mode", int, "%d" +entry = coilDutyCycle, "Ign: Coil duty cycle", float, "%.3f" +entry = etbTarget, "ETB Target", float, "%.3f" +entry = etb1DutyCycle, "ETB: Duty", float, "%.3f" +entry = fuelTankLevel, "Fuel level", float, "%.3f" +entry = totalFuelConsumption, "Fuel: Total consumed", int, "%d" +entry = fuelFlowRate, "Fuel: Flow rate", float, "%.3f" +entry = TPS2Value, "TPS2", float, "%.3f" +entry = tuneCrc16, "Tune CRC16", int, "%d" +entry = seconds, "Uptime", int, "%d" +entry = engineMode, "Engine Mode", int, "%d" +entry = firmwareVersion, "firmware", int, "%d" +entry = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationLat, "Accel: Lateral", float, "%.3f" +entry = accelerationLon, "Accel: Longitudinal", float, "%.3f" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", int, "%d" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = rawPpsSecondary, "rawPpsSecondary", float, "%.3f" +entry = tcuDesiredGear, "TCU: Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleStepperTargetPosition, "Idle: Stepper target position", int, "%d" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = totalTriggerErrorCounter, "Trigger Error Counter", int, "%d" +entry = orderingErrorCounter, "orderingErrorCounter", int, "%d" +entry = warningCounter, "Warning: counter", int, "%d" +entry = lastErrorCode, "Warning: last", int, "%d" +entry = recentErrorCode1, "recentErrorCode 1", int, "%d" +entry = recentErrorCode2, "recentErrorCode 2", int, "%d" +entry = recentErrorCode3, "recentErrorCode 3", int, "%d" +entry = recentErrorCode4, "recentErrorCode 4", int, "%d" +entry = recentErrorCode5, "recentErrorCode 5", int, "%d" +entry = recentErrorCode6, "recentErrorCode 6", int, "%d" +entry = recentErrorCode7, "recentErrorCode 7", int, "%d" +entry = recentErrorCode8, "recentErrorCode 8", int, "%d" +entry = debugFloatField1, "debugFloatField1", float, "%.3f" +entry = debugFloatField2, "debugFloatField2", float, "%.3f" +entry = debugFloatField3, "debugFloatField3", float, "%.3f" +entry = debugFloatField4, "debugFloatField4", float, "%.3f" +entry = debugFloatField5, "debugFloatField5", float, "%.3f" +entry = debugFloatField6, "debugFloatField6", float, "%.3f" +entry = debugFloatField7, "debugFloatField7", float, "%.3f" +entry = debugIntField1, "debugIntField1", int, "%d" +entry = debugIntField2, "debugIntField2", int, "%d" +entry = debugIntField3, "debugIntField3", int, "%d" +entry = debugIntField4, "debugIntField4", int, "%d" +entry = debugIntField5, "debugIntField5", int, "%d" +entry = egt1, "EGT 1", int, "%d" +entry = egt2, "EGT 2", int, "%d" +entry = egt3, "EGT 3", int, "%d" +entry = egt4, "EGT 4", int, "%d" +entry = egt5, "EGT 5", int, "%d" +entry = egt6, "EGT 6", int, "%d" +entry = egt7, "EGT 7", int, "%d" +entry = egt8, "EGT 8", int, "%d" +entry = rawTps1Primary, "rawTps1Primary", float, "%.3f" +entry = rawPpsPrimary, "rawPpsPrimary", float, "%.3f" +entry = rawClt, "rawClt", float, "%.3f" +entry = rawIat, "rawIat", float, "%.3f" +entry = rawOilPressure, "rawOilPressure", float, "%.3f" +entry = fuelClosedLoopBinIdx, "fuelClosedLoopBinIdx", int, "%d" +entry = tcuCurrentGear, "Current Gear", int, "%d" +entry = AFRValue, "Air/Fuel Ratio", float, "%.3f" +entry = VssAcceleration, "Vss Accel", float, "%.3f" +entry = lambdaValue2, "Lambda 2", float, "%.3f" +entry = AFRValue2, "Air/Fuel Ratio 2", float, "%.3f" +entry = vvtPositionB1E, "VVT: bank 1 exhaust", float, "%.3f" +entry = vvtPositionB2I, "VVT: bank 2 intake", float, "%.3f" +entry = vvtPositionB2E, "VVT: bank 2 exhaust", float, "%.3f" +entry = fuelPidCorrection1, "Fuel: Trim bank 1", float, "%.3f" +entry = fuelPidCorrection2, "Fuel: Trim bank 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = accelerationVert, "Accel: Vertical", float, "%.3f" +entry = gyroYaw, "Gyro: Yaw rate", float, "%.3f" +entry = vvtTargets1, "vvtTargets 1", int, "%d" +entry = vvtTargets2, "vvtTargets 2", int, "%d" +entry = vvtTargets3, "vvtTargets 3", int, "%d" +entry = vvtTargets4, "vvtTargets 4", int, "%d" +entry = turboSpeed, "Turbocharger Speed", int, "%d" +entry = ignitionAdvanceCyl1, "Ign: Timing Cyl 1", float, "%.3f" +entry = ignitionAdvanceCyl2, "Ign: Timing Cyl 2", float, "%.3f" +entry = ignitionAdvanceCyl3, "Ign: Timing Cyl 3", float, "%.3f" +entry = ignitionAdvanceCyl4, "Ign: Timing Cyl 4", float, "%.3f" +entry = ignitionAdvanceCyl5, "Ign: Timing Cyl 5", float, "%.3f" +entry = ignitionAdvanceCyl6, "Ign: Timing Cyl 6", float, "%.3f" +entry = ignitionAdvanceCyl7, "Ign: Timing Cyl 7", float, "%.3f" +entry = ignitionAdvanceCyl8, "Ign: Timing Cyl 8", float, "%.3f" +entry = ignitionAdvanceCyl9, "Ign: Timing Cyl 9", float, "%.3f" +entry = ignitionAdvanceCyl10, "Ign: Timing Cyl 10", float, "%.3f" +entry = ignitionAdvanceCyl11, "Ign: Timing Cyl 11", float, "%.3f" +entry = ignitionAdvanceCyl12, "Ign: Timing Cyl 12", float, "%.3f" +entry = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Ign: Cut Code", int, "%d" +entry = fuelCutReason, "Fuel: Cut Code", int, "%d" +entry = mafEstimate, "Air: Flow estimate", float, "%.3f" +entry = instantRpm, "instantRpm", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = luaInvocationCounter, "Lua: Tick counter", int, "%d" +entry = luaLastCycleDuration, "Lua: Last tick duration", int, "%d" +entry = tcu_currentRange, "TCU: Current Range", int, "%d" +entry = tcRatio, "TCU: Torque Converter Ratio", float, "%.3f" +entry = lastShiftTime, "lastShiftTime", float, "%.3f" +entry = vssEdgeCounter, "vssEdgeCounter", int, "%d" +entry = issEdgeCounter, "issEdgeCounter", int, "%d" +entry = auxLinear1, "Aux linear #1", float, "%.3f" +entry = auxLinear2, "Aux linear #2", float, "%.3f" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "CAN: Tx OK", int, "%d" +entry = canWriteNotOk, "CAN: Tx err", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "Ign: Multispark count", int, "%d" +entry = extiOverflowCount, "extiOverflowCount", int, "%d" +entry = alternatorStatus_pTerm, "alternatorStatus_pTerm", float, "%.3f" +entry = alternatorStatus_iTerm, "alternatorStatus_iTerm", float, "%.3f" +entry = alternatorStatus_dTerm, "alternatorStatus_dTerm", float, "%.3f" +entry = alternatorStatus_output, "alternatorStatus_output", float, "%.3f" +entry = alternatorStatus_error, "alternatorStatus_error", float, "%.3f" +entry = alternatorStatus_resetCounter, "alternatorStatus_resetCounter", int, "%d" +entry = idleStatus_pTerm, "idleStatus_pTerm", float, "%.3f" +entry = idleStatus_iTerm, "idleStatus_iTerm", float, "%.3f" +entry = idleStatus_dTerm, "idleStatus_dTerm", float, "%.3f" +entry = idleStatus_output, "idleStatus_output", float, "%.3f" +entry = idleStatus_error, "idleStatus_error", float, "%.3f" +entry = idleStatus_resetCounter, "idleStatus_resetCounter", int, "%d" +entry = etbStatus_pTerm, "etbStatus_pTerm", float, "%.3f" +entry = etbStatus_iTerm, "etbStatus_iTerm", float, "%.3f" +entry = etbStatus_dTerm, "etbStatus_dTerm", float, "%.3f" +entry = etbStatus_output, "etbStatus_output", float, "%.3f" +entry = etbStatus_error, "etbStatus_error", float, "%.3f" +entry = etbStatus_resetCounter, "etbStatus_resetCounter", int, "%d" +entry = boostStatus_pTerm, "boostStatus_pTerm", float, "%.3f" +entry = boostStatus_iTerm, "boostStatus_iTerm", float, "%.3f" +entry = boostStatus_dTerm, "boostStatus_dTerm", float, "%.3f" +entry = boostStatus_output, "boostStatus_output", float, "%.3f" +entry = boostStatus_error, "boostStatus_error", float, "%.3f" +entry = boostStatus_resetCounter, "boostStatus_resetCounter", int, "%d" +entry = wastegateDcStatus_pTerm, "wastegateDcStatus_pTerm", float, "%.3f" +entry = wastegateDcStatus_iTerm, "wastegateDcStatus_iTerm", float, "%.3f" +entry = wastegateDcStatus_dTerm, "wastegateDcStatus_dTerm", float, "%.3f" +entry = wastegateDcStatus_output, "wastegateDcStatus_output", float, "%.3f" +entry = wastegateDcStatus_error, "wastegateDcStatus_error", float, "%.3f" +entry = wastegateDcStatus_resetCounter, "wastegateDcStatus_resetCounter", int, "%d" +entry = auxSpeed1, "Aux speed 1", int, "%d" +entry = auxSpeed2, "Aux speed 2", int, "%d" +entry = ISSValue, "TCU: Input Shaft Speed", int, "%d" +entry = rawAnalogInput1, "rawAnalogInput 1", float, "%.3f" +entry = rawAnalogInput2, "rawAnalogInput 2", float, "%.3f" +entry = rawAnalogInput3, "rawAnalogInput 3", float, "%.3f" +entry = rawAnalogInput4, "rawAnalogInput 4", float, "%.3f" +entry = rawAnalogInput5, "rawAnalogInput 5", float, "%.3f" +entry = rawAnalogInput6, "rawAnalogInput 6", float, "%.3f" +entry = rawAnalogInput7, "rawAnalogInput 7", float, "%.3f" +entry = rawAnalogInput8, "rawAnalogInput 8", float, "%.3f" +entry = gppwmOutput1, "GPPWM Output 1", float, "%.3f" +entry = gppwmOutput2, "GPPWM Output 2", float, "%.3f" +entry = gppwmOutput3, "GPPWM Output 3", float, "%.3f" +entry = gppwmOutput4, "GPPWM Output 4", float, "%.3f" +entry = gppwmXAxis1, "gppwmXAxis 1", int, "%d" +entry = gppwmXAxis2, "gppwmXAxis 2", int, "%d" +entry = gppwmXAxis3, "gppwmXAxis 3", int, "%d" +entry = gppwmXAxis4, "gppwmXAxis 4", int, "%d" +entry = gppwmYAxis1, "gppwmYAxis 1", float, "%.3f" +entry = gppwmYAxis2, "gppwmYAxis 2", float, "%.3f" +entry = gppwmYAxis3, "gppwmYAxis 3", float, "%.3f" +entry = gppwmYAxis4, "gppwmYAxis 4", float, "%.3f" +entry = rawBattery, "rawBattery", float, "%.3f" +entry = ignBlendParameter1, "ignBlendParameter 1", float, "%.3f" +entry = ignBlendParameter2, "ignBlendParameter 2", float, "%.3f" +entry = ignBlendParameter3, "ignBlendParameter 3", float, "%.3f" +entry = ignBlendParameter4, "ignBlendParameter 4", float, "%.3f" +entry = ignBlendBias1, "ignBlendBias 1", float, "%.3f" +entry = ignBlendBias2, "ignBlendBias 2", float, "%.3f" +entry = ignBlendBias3, "ignBlendBias 3", float, "%.3f" +entry = ignBlendBias4, "ignBlendBias 4", float, "%.3f" +entry = ignBlendOutput1, "ignBlendOutput 1", float, "%.3f" +entry = ignBlendOutput2, "ignBlendOutput 2", float, "%.3f" +entry = ignBlendOutput3, "ignBlendOutput 3", float, "%.3f" +entry = ignBlendOutput4, "ignBlendOutput 4", float, "%.3f" +entry = veBlendParameter1, "veBlendParameter 1", float, "%.3f" +entry = veBlendParameter2, "veBlendParameter 2", float, "%.3f" +entry = veBlendParameter3, "veBlendParameter 3", float, "%.3f" +entry = veBlendParameter4, "veBlendParameter 4", float, "%.3f" +entry = veBlendBias1, "veBlendBias 1", float, "%.3f" +entry = veBlendBias2, "veBlendBias 2", float, "%.3f" +entry = veBlendBias3, "veBlendBias 3", float, "%.3f" +entry = veBlendBias4, "veBlendBias 4", float, "%.3f" +entry = veBlendOutput1, "veBlendOutput 1", float, "%.3f" +entry = veBlendOutput2, "veBlendOutput 2", float, "%.3f" +entry = veBlendOutput3, "veBlendOutput 3", float, "%.3f" +entry = veBlendOutput4, "veBlendOutput 4", float, "%.3f" +entry = boostOpenLoopBlendParameter1, "boostOpenLoopBlendParameter 1", float, "%.3f" +entry = boostOpenLoopBlendParameter2, "boostOpenLoopBlendParameter 2", float, "%.3f" +entry = boostOpenLoopBlendBias1, "boostOpenLoopBlendBias 1", float, "%.3f" +entry = boostOpenLoopBlendBias2, "boostOpenLoopBlendBias 2", float, "%.3f" +entry = boostOpenLoopBlendOutput1, "boostOpenLoopBlendOutput 1", int, "%d" +entry = boostOpenLoopBlendOutput2, "boostOpenLoopBlendOutput 2", int, "%d" +entry = boostClosedLoopBlendParameter1, "boostClosedLoopBlendParameter 1", float, "%.3f" +entry = boostClosedLoopBlendParameter2, "boostClosedLoopBlendParameter 2", float, "%.3f" +entry = boostClosedLoopBlendBias1, "boostClosedLoopBlendBias 1", float, "%.3f" +entry = boostClosedLoopBlendBias2, "boostClosedLoopBlendBias 2", float, "%.3f" +entry = boostClosedLoopBlendOutput1, "boostClosedLoopBlendOutput 1", float, "%.3f" +entry = boostClosedLoopBlendOutput2, "boostClosedLoopBlendOutput 2", float, "%.3f" +entry = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "Lua: Gauge 1", float, "%.3f" +entry = luaGauges2, "Lua: Gauge 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = Gego, "Gego", float, "%.3f" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = oilTemp, "oilTemp", float, "%.3f" +entry = fuelTemp, "fuelTemp", float, "%.3f" +entry = ambientTemp, "ambientTemp", float, "%.3f" +entry = compressorDischargeTemp, "compressorDischargeTemp", float, "%.3f" +entry = compressorDischargePressure, "compressorDischargePressure", float, "%.3f" +entry = throttleInletPressure, "throttleInletPressure", float, "%.3f" +entry = ignitionOnTime, "ignitionOnTime", int, "%d" +entry = engineRunTime, "engineRunTime", int, "%d" +entry = distanceTraveled, "distanceTraveled", float, "%.3f" +entry = afrGasolineScale, "Air/Fuel Ratio (Gas Scale)", float, "%.3f" +entry = afr2GasolineScale, "Air/Fuel Ratio 2 (Gas Scale)", float, "%.3f" +entry = actualLastInjectionStage2, "Fuel: Last inj pulse width stg 2", float, "%.3f" +entry = injectorDutyCycleStage2, "Fuel: injector duty cycle stage 2", float, "%.3f" +entry = totalFuelCorrection, "Fuel: Total correction", float, "%.3f" +entry = running_postCrankingFuelCorrection, "Fuel: Post cranking mult", float, "%.3f" +entry = running_intakeTemperatureCoefficient, "Fuel: IAT correction", float, "%.3f" +entry = running_coolantTemperatureCoefficient, "Fuel: CLT correction", float, "%.3f" +entry = running_timeSinceCrankingInSecs, "running_timeSinceCrankingInSecs", float, "%.3f" +entry = running_baseFuel, "Fuel: base cycle mass", float, "%.3f" +entry = running_fuel, "Fuel: running", float, "%.3f" +entry = afrTableYAxis, "afrTableYAxis", float, "%.3f" +entry = targetLambda, "Fuel: target lambda", float, "%.3f" +entry = targetAFR, "Fuel: target AFR", float, "%.3f" +entry = stoichiometricRatio, "Fuel: Stoich ratio", float, "%.3f" +entry = sdTcharge_coff, "sdTcharge_coff", float, "%.3f" +entry = sdAirMassInOneCylinder, "Air: Cylinder airmass", float, "%.3f" +entry = normalizedCylinderFilling, "Air: Normalized cyl filling", float, "%.3f" +entry = baseDwell, "baseDwell", float, "%.3f" +entry = sparkDwell, "Ign: Dwell", float, "%.3f" +entry = dwellAngle, "ignition dwell duration", float, "%.3f" +entry = cltTimingCorrection, "Ign: CLT correction", float, "%.3f" +entry = timingIatCorrection, "Ign: IAT correction", float, "%.3f" +entry = timingPidCorrection, "Idle: Timing adjustment", float, "%.3f" +entry = dwellVoltageCorrection, "Ign: Dwell voltage correction", float, "%.3f" +entry = luaTimingAdd, "Ign: Lua timing add", float, "%.3f" +entry = luaTimingMult, "Ign: Lua timing mult", float, "%.3f" +entry = m_knockLevel, "Knock: Current level", float, "%.3f" +entry = m_knockCyl1, "Knock: Cyl 1", int, "%d" +entry = m_knockCyl2, "Knock: Cyl 2", int, "%d" +entry = m_knockCyl3, "Knock: Cyl 3", int, "%d" +entry = m_knockCyl4, "Knock: Cyl 4", int, "%d" +entry = m_knockCyl5, "Knock: Cyl 5", int, "%d" +entry = m_knockCyl6, "Knock: Cyl 6", int, "%d" +entry = m_knockCyl7, "Knock: Cyl 7", int, "%d" +entry = m_knockCyl8, "Knock: Cyl 8", int, "%d" +entry = m_knockCyl9, "Knock: Cyl 9", int, "%d" +entry = m_knockCyl10, "Knock: Cyl 10", int, "%d" +entry = m_knockCyl11, "Knock: Cyl 11", int, "%d" +entry = m_knockCyl12, "Knock: Cyl 12", int, "%d" +entry = m_knockRetard, "Knock: Retard", float, "%.3f" +entry = m_knockThreshold, "Knock: Threshold", float, "%.3f" +entry = m_knockCount, "Knock: Count", int, "%d" +entry = m_maximumRetard, "Knock: Max retard", float, "%.3f" +entry = m_requested_pump, "HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = nextLobe, "nextLobe", float, "%.3f" +entry = di_nextStart, "DI: next start", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" +entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" +entry = combinedConditions, "combinedConditions", int, "%d" +entry = launchActivatePinState, "launchActivatePinState", int, "%d" +entry = isLaunchCondition, "isLaunchCondition", int, "%d" +entry = isSwitchActivated, "isSwitchActivated", int, "%d" +entry = isClutchActivated, "isClutchActivated", int, "%d" +entry = isValidInputPin, "isValidInputPin", int, "%d" +entry = activateSwitchCondition, "activateSwitchCondition", int, "%d" +entry = rpmCondition, "rpmCondition", int, "%d" +entry = speedCondition, "speedCondition", int, "%d" +entry = tpsCondition, "tpsCondition", int, "%d" +entry = isAntilagCondition, "isAntilagCondition", int, "%d" +entry = ALSMinRPMCondition, "ALSMinRPMCondition", int, "%d" +entry = ALSMaxRPMCondition, "ALSMaxRPMCondition", int, "%d" +entry = ALSMinCLTCondition, "ALSMinCLTCondition", int, "%d" +entry = ALSMaxCLTCondition, "ALSMaxCLTCondition", int, "%d" +entry = ALSMaxThrottleIntentCondition, "ALSMaxThrottleIntentCondition", int, "%d" +entry = isALSSwitchActivated, "isALSSwitchActivated", int, "%d" +entry = ALSActivatePinState, "ALSActivatePinState", int, "%d" +entry = ALSSwitchCondition, "ALSSwitchCondition", int, "%d" +entry = ALSTimerCondition, "ALSTimerCondition", int, "%d" +entry = fuelALSCorrection, "fuelALSCorrection", float, "%.3f" +entry = timingALSCorrection, "timingALSCorrection", float, "%.3f" +entry = isTpsInvalid, "isTpsInvalid", int, "%d" +entry = m_shouldResetPid, "m_shouldResetPid", int, "%d" +entry = isBelowClosedLoopThreshold, "isBelowClosedLoopThreshold", int, "%d" +entry = isNotClosedLoop, "isNotClosedLoop", int, "%d" +entry = isZeroRpm, "isZeroRpm", int, "%d" +entry = hasInitBoost, "hasInitBoost", int, "%d" +entry = rpmTooLow, "rpmTooLow", int, "%d" +entry = tpsTooLow, "tpsTooLow", int, "%d" +entry = mapTooLow, "mapTooLow", int, "%d" +entry = luaTargetAdd, "Boost: Lua target add", float, "%.3f" +entry = boostOutput, "Boost: Output", float, "%.3f" +entry = luaTargetMult, "Boost: Lua target mult", float, "%.3f" +entry = openLoopPart, "Boost: Open loop", float, "%.3f" +entry = luaOpenLoopAdd, "Boost: Lua open loop add", float, "%.3f" +entry = boostControllerClosedLoopPart, "Boost: Closed loop", float, "%.3f" +entry = boostControlTarget, "Boost: Target", float, "%.3f" +entry = acButtonState, "AC switch", int, "%d" +entry = m_acEnabled, "AC enabled", int, "%d" +entry = engineTooSlow, "AC engine too slow", int, "%d" +entry = engineTooFast, "AC engine too fast", int, "%d" +entry = noClt, "AC no CLT", int, "%d" +entry = engineTooHot, "AC engine too hot", int, "%d" +entry = tpsTooHigh, "AC tps too high", int, "%d" +entry = isDisabledByLua, "AC disabled by Lua", int, "%d" +entry = acCompressorState, "AC compressor on", int, "%d" +entry = latest_usage_ac_control, "AC latest activity", int, "%d" +entry = acSwitchLastChangeTimeMs, "acSwitchLastChangeTimeMs", int, "%d" +entry = cranking, "cranking", int, "%d" +entry = notRunning, "notRunning", int, "%d" +entry = disabledWhileEngineStopped, "disabledWhileEngineStopped", int, "%d" +entry = brokenClt, "brokenClt", int, "%d" +entry = enabledForAc, "enabledForAc", int, "%d" +entry = hot, "hot", int, "%d" +entry = cold, "cold", int, "%d" +entry = isPrime, "isPrime", int, "%d" +entry = engineTurnedRecently, "engineTurnedRecently", int, "%d" +entry = isFuelPumpOn, "isFuelPumpOn", int, "%d" +entry = ignitionOn, "ignitionOn", int, "%d" +entry = isBenchTest, "isBenchTest", int, "%d" +entry = hasIgnitionVoltage, "hasIgnitionVoltage", int, "%d" +entry = mainRelayState, "mainRelayState", int, "%d" +entry = delayedShutoffRequested, "delayedShutoffRequested", int, "%d" +entry = lua_fuelAdd, "Lua: Fuel add", float, "%.3f" +entry = lua_fuelMult, "Lua: Fuel mult", float, "%.3f" +entry = lua_clutchUpState, "lua_clutchUpState", int, "%d" +entry = lua_brakePedalState, "lua_brakePedalState", int, "%d" +entry = lua_acRequestState, "lua_acRequestState", int, "%d" +entry = lua_luaDisableEtb, "lua_luaDisableEtb", int, "%d" +entry = lua_luaIgnCut, "lua_luaIgnCut", int, "%d" +entry = sd_tCharge, "Air: Charge temperature estimate", float, "%.3f" +entry = sd_tChargeK, "Air: Charge temperature estimate K", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Fuel: cranking CLT mult", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "Fuel: cranking TPS mult", float, "%.3f" +entry = crankingFuel_durationCoefficient, "Fuel: cranking duration mult", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Cranking cycle mass", float, "%.3f" +entry = baroCorrection, "Fuel: Barometric pressure mult", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "Clutch: up", int, "%d" +entry = clutchDownState, "Clutch: down", int, "%d" +entry = brakePedalState, "Brake switch", int, "%d" +entry = startStopState, "startStopState", int, "%d" +entry = startStopStateToggleCounter, "startStopStateToggleCounter", int, "%d" +entry = egtValue1, "egtValue1", float, "%.3f" +entry = egtValue2, "egtValue2", float, "%.3f" +entry = desiredRpmLimit, "User-defined RPM hard limit", int, "%d" +entry = fuelInjectionCounter, "Fuel: Injection counter", int, "%d" +entry = sparkCounter, "Ign: Spark counter", int, "%d" +entry = fuelingLoad, "Fuel: Load", float, "%.3f" +entry = ignitionLoad, "Ign: Load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "Fuel: TPS AE from", float, "%.3f" +entry = tpsTo, "Fuel: TPS AE to", float, "%.3f" +entry = deltaTps, "Fuel: TPS AE change", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "Fuel: TPS AE Active", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Accel: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Accel: below threshold", int, "%d" +entry = tooShort, "Accel: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "vvtCamCounter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "triggerToothAngleError", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = crankSynchronizationCounter, "Crank sync counter", int, "%d" +entry = vvtSyncGapRatio, "vvtSyncGapRatio", float, "%.3f" +entry = triggerSyncGapRatio, "Trigger Sync Latest Ratio", float, "%.3f" +entry = triggerStateIndex, "triggerStateIndex", int, "%d" +entry = vvtCounter, "vvtCounter", int, "%d" +entry = vvtStateIndex, "vvtStateIndex", int, "%d" +entry = camResyncCounter, "camResyncCounter", int, "%d" +entry = m_hasSynchronizedPhase, "m_hasSynchronizedPhase", int, "%d" +entry = wallFuelCorrection, "fuel wallwetting injection time", float, "%.3f" +entry = wallFuel, "Fuel on the wall", float, "%.3f" +entry = idleState, "idleState", int, "%d" +entry = currentIdlePosition, "Idle: Position", float, "%.3f" +entry = baseIdlePosition, "Idle: Open loop", float, "%.3f" +entry = idleClosedLoop, "Idle: Closed loop", float, "%.3f" +entry = iacByTpsTaper, "Idle: iacByTpsTaper portion", float, "%.3f" +entry = throttlePedalUpState, "Idle: throttlePedalUpState", int, "%d" +entry = mightResetPid, "Idle: mightResetPid", int, "%d" +entry = shouldResetPid, "Idle: shouldResetPid", int, "%d" +entry = wasResetPid, "Idle: wasResetPid", int, "%d" +entry = mustResetPid, "Idle: mustResetPid", int, "%d" +entry = isCranking, "Idle: cranking", int, "%d" +entry = isIacTableForCoasting, "isIacTableForCoasting", int, "%d" +entry = notIdling, "notIdling", int, "%d" +entry = needReset, "Idle: reset", int, "%d" +entry = isInDeadZone, "Idle: dead zone", int, "%d" +entry = isBlipping, "isBlipping", int, "%d" +entry = looksLikeRunning, "looksLikeRunning", int, "%d" +entry = looksLikeCoasting, "looksLikeCoasting", int, "%d" +entry = looksLikeCrankToIdle, "looksLikeCrankToIdle", int, "%d" +entry = isIdleCoasting, "Idle: coasting", int, "%d" +entry = isIdleClosedLoop, "Idle: Closed loop active", int, "%d" +entry = idleTarget, "Idle: Target RPM", int, "%d" +entry = targetRpmByClt, "Idle: Target RPM base", int, "%d" +entry = targetRpmAcBump, "Idle: Target A/C bump", int, "%d" +entry = iacByRpmTaper, "Idle: iacByRpmTaper portion", float, "%.3f" +entry = luaAdd, "Idle: Lua Adder", float, "%.3f" +entry = idlePosition, "ETB: idlePosition", float, "%.3f" +entry = trim, "ETB: trim", float, "%.3f" +entry = luaAdjustment, "ETB: luaAdjustment", float, "%.3f" +entry = m_wastegatePosition, "DC: wastegatePosition", float, "%.3f" +entry = etbFeedForward, "etbFeedForward", float, "%.3f" +entry = etbIntegralError, "etbIntegralError", float, "%.3f" +entry = etbCurrentTarget, "etbCurrentTarget", float, "%.3f" +entry = etbCurrentAdjustedTarget, "etbCurrentAdjustedTarget", float, "%.3f" +entry = etbRevLimitActive, "etbRevLimitActive", int, "%d" +entry = jamDetected, "jamDetected", int, "%d" +entry = etbDutyRateOfChange, "ETB duty rate of change", float, "%.3f" +entry = etbDutyAverage, "ETB average duty", float, "%.3f" +entry = etbTpsErrorCounter, "ETB TPS error counter", int, "%d" +entry = etbPpsErrorCounter, "ETB pedal error counter", int, "%d" +entry = etbErrorCode, "etbErrorCode", int, "%d" +entry = jamTimer, "ETB jam timer", float, "%.3f" +entry = faultCode, "WBO: Fault code", int, "%d" +entry = heaterDuty, "WBO: Heater duty", int, "%d" +entry = pumpDuty, "WBO: Pump duty", int, "%d" +entry = tempC, "WBO: Temperature", int, "%d" +entry = nernstVoltage, "WBO: Nernst Voltage", float, "%.3f" +entry = esr, "WBO: ESR", int, "%d" +entry = dcOutput0, "DC: output0", float, "%.3f" +entry = isEnabled0_int, "DC: en0", int, "%d" +entry = isEnabled0, "isEnabled0", int, "%d" +entry = value0, "ETB: SENT value0", int, "%d" +entry = value1, "ETB: SENT value1", int, "%d" +entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" +entry = lambdaCurrentlyGood, "lambdaCurrentlyGood", int, "%d" +entry = lambdaMonitorCut, "lambdaMonitorCut", int, "%d" +entry = lambdaTimeSinceGood, "lambdaTimeSinceGood", float, "%.3f" + + +[Menu] + +menuDialog = main +; see #1653 +; menu = "Data Logging" +; subMenu = std_ms3SdConsole, "Browse / Import SD Card" + + menu = "&Base &Engine" + subMenu = engineChars, "Base engine" + subMenu = limitsAndFallback, "Limits and fallbacks" + subMenu = triggerConfiguration, "Trigger" + subMenu = trigger_advanced, "Advanced Trigger" + subMenu = std_separator + subMenu = energySystems, "Battery and alternator" + subMenu = std_separator + + # Digital outputs + subMenu = outputsDialog, "Outputs" + subMenu = acSettings, "Air Conditioning" + + menu = "Fuel" + # basic + subMenu = injectorConfig, "Injection configuration" + subMenu = injectorPins, "Injection hardware", 0, {isInjectionEnabled == 1} + subMenu = injTest, "Injector test", 0, {isInjectionEnabled} + subMenu = cylinderBankSelect, "Cylinder bank selection", 0, {isInjectionEnabled == 1} + subMenu = injectorNonlinear, "Injector small-pulse correction", 0, {isInjectionEnabled == 1} + + subMenu = stagedInjection, "Staged injection", 0, {isInjectionEnabled} + subMenu = stagedInjectionOutputs, "Staged injection outputs", 0, {isInjectionEnabled && enableStagedInjection} + subMenu = stagedInjectionTbl, "Staged injection % table", 0, {isInjectionEnabled && enableStagedInjection} + + groupMenu = "Cylinder fuel trims" + groupChildMenu = fuelTrimTbl1, "Fuel trim cyl 1" + groupChildMenu = fuelTrimTbl2, "Fuel trim cyl 2" + groupChildMenu = fuelTrimTbl3, "Fuel trim cyl 3" + groupChildMenu = fuelTrimTbl4, "Fuel trim cyl 4" + groupChildMenu = fuelTrimTbl5, "Fuel trim cyl 5" + groupChildMenu = fuelTrimTbl6, "Fuel trim cyl 6" + groupChildMenu = fuelTrimTbl7, "Fuel trim cyl 7" + groupChildMenu = fuelTrimTbl8, "Fuel trim cyl 8" + groupChildMenu = fuelTrimTbl9, "Fuel trim cyl 9" + groupChildMenu = fuelTrimTbl10, "Fuel trim cyl 10" + groupChildMenu = fuelTrimTbl11, "Fuel trim cyl 11" + groupChildMenu = fuelTrimTbl12, "Fuel trim cyl 12" + + subMenu = std_separator + + # Air mass model + subMenu = veTableDialog, "VE", 0, {isInjectionEnabled == 1} + + groupMenu = "VE blend tables" + groupChildMenu = veBlend1Cfg, "VE blend 1 bias", 0, {isInjectionEnabled} + groupChildMenu = veBlend1Table, "VE blend table 1", 0, { isInjectionEnabled && veBlends1_blendParameter != 0 } + groupChildMenu = veBlend2Cfg, "VE blend 2 bias", 0, {isInjectionEnabled} + groupChildMenu = veBlend2Table, "VE blend table 2", 0, { isInjectionEnabled && veBlends2_blendParameter != 0 } + groupChildMenu = veBlend3Cfg, "VE blend 3 bias", 0, {isInjectionEnabled} + groupChildMenu = veBlend3Table, "VE blend table 3", 0, { isInjectionEnabled && veBlends3_blendParameter != 0 } + groupChildMenu = veBlend4Cfg, "VE blend 4 bias", 0, {isInjectionEnabled} + groupChildMenu = veBlend4Table, "VE blend table 4", 0, { isInjectionEnabled && veBlends4_blendParameter != 0 } + + subMenu = tChargeSettings, "Charge temperature estimation", 0, {isInjectionEnabled == 1} + subMenu = baroCorrTbl, "Barometric pressure correction", 0, {isInjectionEnabled == 1 && fuelAlgorithm == 0} + subMenu = mapEstimateTableTbl, "MAP estimate table" + subMenu = std_separator + + # Fuel model +#if LAMBDA + subMenu = lambdaTableTbl, "Target lambda", 0, {isInjectionEnabled == 1} +#else + subMenu = afrTableTbl, "Target AFR", 0, {isInjectionEnabled == 1} +#endif + subMenu = cltFuelCorrCurve, "CLT multiplier", 0, {isInjectionEnabled == 1} + subMenu = iatFuelCorrCurve, "IAT multiplier", 0, {isInjectionEnabled == 1} + subMenu = fuelClosedLoopDialog, "Closed loop fuel correction", 0, {isInjectionEnabled == 1} + subMenu = coastingFuelCutControl, "Deceleration fuel cutoff (DFCO)", 0, {isInjectionEnabled == 1} + subMenu = std_separator + + # Injector model + subMenu = injPhaseTableTbl, "Injection phase", 0, {isInjectionEnabled == 1} + subMenu = std_separator + + # Accel enrichment + subMenu = AccelEnrich, "Acceleration enrichment", 0, {isInjectionEnabled == 1} + subMenu = tpsTpsAccelTbl, "TPS/TPS acceleration extra fuel", 0, {isInjectionEnabled == 1} + subMenu = tpsTspRpmCorrection, "TPS/TPS AE RPM correction", 0, {isInjectionEnabled == 1} + + groupMenu = "Wall wetting AE" + groupChildMenu = wwTauCurves, "Evap time", 0, { complexWallModel != 0 } + groupChildMenu = wwBetaCurves, "Impact fraction", 0, { complexWallModel != 0 } + + menu = "Ignition" + subMenu = ignitionSettings, "Ignition settings" + subMenu = ignTest, "Ignition coil test", 0, {isIgnitionEnabled} + subMenu = std_separator + + subMenu = ignitionTableTbl, "Ignition advance", 0, {isIgnitionEnabled} + subMenu = cltTimingCorrCurve, "Ign CLT correction", 0, {isIgnitionEnabled == 1} + subMenu = ignitionIatCorrTableTbl, "Ign IAT correction", 0, {isIgnitionEnabled == 1} + subMenu = std_separator + + subMenu = dwellSettings, "Dwell", 0, {isIgnitionEnabled == 1} + groupMenu = "Ignition blend tables" + groupChildMenu = ignAdder1Cfg, "Ignition blend 1 bias", 0, {isIgnitionEnabled} + groupChildMenu = ignAdder1Table, "Ignition blend table 1", 0, { isIgnitionEnabled && ignBlends1_blendParameter != 0 } + groupChildMenu = ignAdder2Cfg, "Ignition blend 2 bias", 0, {isIgnitionEnabled} + groupChildMenu = ignAdder2Table, "Ignition blend table 2", 0, { isIgnitionEnabled && ignBlends2_blendParameter != 0 } + groupChildMenu = ignAdder3Cfg, "Ignition blend 3 bias", 0, {isIgnitionEnabled} + groupChildMenu = ignAdder3Table, "Ignition blend table 3", 0, { isIgnitionEnabled && ignBlends3_blendParameter != 0 } + groupChildMenu = ignAdder4Cfg, "Ignition blend 4 bias", 0, {isIgnitionEnabled} + groupChildMenu = ignAdder4Table, "Ignition blend table 4", 0, { isIgnitionEnabled && ignBlends4_blendParameter != 0 } + groupMenu = "Cylinder ign trims" + groupChildMenu = ignTrimTbl1, "Ignition trim cyl 1" + groupChildMenu = ignTrimTbl2, "Ignition trim cyl 2" + groupChildMenu = ignTrimTbl3, "Ignition trim cyl 3" + groupChildMenu = ignTrimTbl4, "Ignition trim cyl 4" + groupChildMenu = ignTrimTbl5, "Ignition trim cyl 5" + groupChildMenu = ignTrimTbl6, "Ignition trim cyl 6" + groupChildMenu = ignTrimTbl7, "Ignition trim cyl 7" + groupChildMenu = ignTrimTbl8, "Ignition trim cyl 8" + groupChildMenu = ignTrimTbl9, "Ignition trim cyl 9" + groupChildMenu = ignTrimTbl10, "Ignition trim cyl 10" + groupChildMenu = ignTrimTbl11, "Ignition trim cyl 11" + groupChildMenu = ignTrimTbl12, "Ignition trim cyl 12" + subMenu = std_separator + + subMenu = multisparkSettings, "Multispark", 0, {isIgnitionEnabled == 1} + + menu = "&Cranking" + subMenu = crankingDialog, "Cranking settings" + subMenu = postCrankingEnrichment, "After-start enrichment" + subMenu = primingFuelPulsePanel, "Priming pulse" + subMenu = std_separator + + subMenu = crankingCltCurve, "Fuel CLT multiplier" + subMenu = crankingCltCurveE100, "Fuel CLT multiplier (Flex Fuel E85)", 0, { flexSensorPin != 0 && flexCranking } + subMenu = crankingDurationCurve, "Fuel duration multiplier" + subMenu = crankingTpsCurve, "Fuel TPS multiplier" + subMenu = std_separator + + subMenu = crankingAdvanceCurve, "Cranking ignition advance", 0, {useSeparateAdvanceForCranking == 1} + subMenu = std_separator + + subMenu = cltCrankingCurve, "Cranking IAC CLT multiplier", 0, {overrideCrankingIacSetting == 1} + subMenu = cltCrankingTaperDurationCurve, "Cranking taper duration multiplier", 0, {useCrankingIdleTaperTableSetting == 1} + + menu = "&Idle" + subMenu = idleSettings, "Idle settings" + subMenu = idlehw, "Idle hardware" + subMenu = std_separator + subMenu = cltIdleRPMCurve, "Target RPM" + subMenu = cltIdleCurve, "CLT multiplier" + subMenu = std_separator + subMenu = idleTimingPidCorrDialog, "Closed-loop idle timing" + subMenu = iacPidMultTbl, "IAC PID multiplier", 0, {idleMode == 0 && useIacPidMultTable == 1} + subMenu = iacCoastingCurve, "Coasting IAC position", 0, {useIacTableForCoasting == 1} + subMenu = std_separator + subMenu = idleVeTableTbl, "Idle VE", 0, {useSeparateVeForIdle == 1} + subMenu = idleAdvanceCurve, "Ignition advance", 0, {useSeparateAdvanceForIdle == 1} + + menu = "&Advanced" + subMenu = smLaunchControl, "Launch Control" + subMenu = ignitionCylExtra, "Cylinder offsets", 0 + + subMenu = std_separator + subMenu = boostDialog, "Boost control" + subMenu = boostOpenLoopDialog, "Boost control open loop", { isBoostControlEnabled } + subMenu = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + + groupMenu = "Boost blend tables" + groupChildMenu = boostOpenBlend1Cfg, "Open loop 1 bias", { isBoostControlEnabled } + groupChildMenu = boostOpenBlend1Table, "Open loop 1 adder", { isBoostControlEnabled && boostOpenLoopBlends1_blendParameter != 0 } + groupChildMenu = boostOpenBlend2Cfg, "Open loop 2 bias", { isBoostControlEnabled } + groupChildMenu = boostOpenBlend2Table, "Open loop 2 adder", { isBoostControlEnabled && boostOpenLoopBlends2_blendParameter != 0 } + groupChildMenu = boostClosedBlend1Cfg, "Closed loop 1 bias", { isBoostControlEnabled && boostType == 1 } + groupChildMenu = boostClosedBlend2Table, "Closed loop 1 adder", { isBoostControlEnabled && boostType == 1 && boostClosedLoopBlends1_blendParameter != 0 } + groupChildMenu = boostClosedBlend2Cfg, "Closed loop 2 bias", { isBoostControlEnabled && boostType == 1 } + groupChildMenu = boostClosedBlend2Table, "Closed loop 2 adder", { isBoostControlEnabled && boostType == 1 && boostClosedLoopBlends2_blendParameter != 0 } + + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 3 || etbFunctions2 == 3 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Aux Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Aux Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + +# users are confused by TCU dialogs. open question how to repackage as pre-alpha +# subMenu = std_separator +# subMenu = tcuControls, "Transmission Settings" +# subMenu = gearControls, "Gear Selection Settings" +# subMenu = inputSpeedSensor, "Input Speed Sensor" +# subMenu = tcuSolenoidTableTbl, "Shift Solenoids" +# subMenu = tccCurves, "TCC Lock/Unlock Speed" +# subMenu = pcPerGearDialog, "Line Pressure Per Gear" +# subMenu = pcPerShiftDialog, "Line Pressure Per Shift" +# subMenu = 32Dialog, "3-2 Shift Solenoid Percent by Speed" + + menu = "&Sensors" + # 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 != 0 } + subMenu = std_separator + + # O2 sensor(s) + subMenu = egoSettings, "EGO sensor" + subMenu = widebandConfig, "rusEFI Wideband Controller", 0, { canReadEnabled && canWriteEnabled } + subMenu = std_separator + + # Misc sensors + subMenu = vrThreshold, "VR Sensor Threshold" + subMenu = speedSensor, "Vehicle speed sensor" + subMenu = oilPressureSensor, "Oil pressure" + subMenu = oilTempSensor, "Oil temp sensor" + subMenu = fuelPressureSensor, "Fuel pressure" + subMenu = fuelTempSensor, "Fuel temp sensor" + subMenu = fuelLevelDialog, "Fuel level sensor" + subMenu = ambientTempSensor, "Ambient temp sensor" + subMenu = compressorDischargeTemperature, "Compressor discharge temp" + subMenu = wastegateIdlePos, "Wastegate and idle position sensors" + subMenu = std_separator + + subMenu = auxLinearSensors, "Aux Sensors" + subMenu = otherSensorInputs, "Misc sensors" + + menu = "&Controller" + subMenu = ecuStimulator, "ECU stimulator" + subMenu = ioTest, "Bench test" + subMenu = injTest, "Injector test", 0, {isInjectionEnabled} + subMenu = ignTest, "Ignition coil test", 0, {isIgnitionEnabled} + subMenu = engineTypeDialog, "Popular vehicles" + subMenu = std_separator + + subMenu = spiFunction, "SPI" + subMenu = monitoringSettings, "FOME console" + subMenu = std_separator + + subMenu = canBusMain, "CAN Bus Communication" + subMenu = sdCard, "SD Card Logger" + subMenu = connection, "Connection" + subMenu = tle8888, "TLE8888" + + subMenu = allPins1, "Full pinout 1/3" + subMenu = allPins2, "Full pinout 2/3" + subMenu = allPins3_1_and_2 "Full pinout 3/3" + subMenu = std_separator + + + # EXPERIMENTAL FEATURES + subMenu = mc33Dialog, "PT2001 control" + subMenu = hpfpCamDialog, "HPFP Cam Configuration" + subMenu = hpfpPumpDialog, "HPFP Pump Configuration", {hpfpCamLobes != 0} + subMenu = hpfpTargetTable, "HPFP Target Pressure", {hpfpCamLobes != 0} + subMenu = hpfpCompensationTable, "HPFP Pump Compensation", {hpfpCamLobes != 0} + subMenu = std_separator + subMenu = fancyHardwareDialog, "Fancy Hardware" + subMenu = std_separator + + subMenu = softwareKnock, "Software knock" + subMenu = maxKnockRetardTbl, "Max knock retard" + + ; TODO: move lambdaProtection to the fuel menu once ready + ; https://github.com/FOME-Tech/fome-fw/issues/75 + subMenu = lambdaProtection, "Lambda Protection", 0, { isInjectionEnabled } + subMenu = std_separator + + subMenu = parkingLot, "Experimental/Broken" + subMenu = antiLagDialog, "Anti-Lag ALS" + subMenu = rotaryDialog, "Rotary" + subMenu = throttleEffectiveArea, "Throttle effective area" + + menu = "Help" + subMenu = helpGeneral, "FOME Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_controlDialog, "fan_control" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_stateDialog, "trigger_state" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttleDialog, "electronic_throttle" + subMenu = wideband_stateDialog, "wideband_state" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" + subMenu = lambda_monitorDialog, "lambda_monitor" + + + +[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 = "Z\x00\x12\x00\x01" +cmd_test_spk2 = "Z\x00\x12\x00\x02" +cmd_test_spk3 = "Z\x00\x12\x00\x03" +cmd_test_spk4 = "Z\x00\x12\x00\x04" +cmd_test_spk5 = "Z\x00\x12\x00\x05" +cmd_test_spk6 = "Z\x00\x12\x00\x06" +cmd_test_spk7 = "Z\x00\x12\x00\x07" +cmd_test_spk8 = "Z\x00\x12\x00\x08" +cmd_test_spk9 = "Z\x00\x12\x00\x09" +cmd_test_spk10 = "Z\x00\x12\x00\x0a" +cmd_test_spk11 = "Z\x00\x12\x00\x0b" +cmd_test_spk12 = "Z\x00\x12\x00\x0c" + +cmd_test_lua1 = "Z\x00\x20\x00\x01" +cmd_test_lua2 = "Z\x00\x20\x00\x02" +cmd_test_lua3 = "Z\x00\x20\x00\x03" +cmd_test_lua4 = "Z\x00\x20\x00\x04" +cmd_test_lua5 = "Z\x00\x20\x00\x05" +cmd_test_lua6 = "Z\x00\x20\x00\x06" +cmd_test_lua7 = "Z\x00\x20\x00\x07" +cmd_test_lua8 = "Z\x00\x20\x00\x08" + +cmd_test_inj1 = "Z\x00\x13\x00\x01" +cmd_test_inj2 = "Z\x00\x13\x00\x02" +cmd_test_inj3 = "Z\x00\x13\x00\x03" +cmd_test_inj4 = "Z\x00\x13\x00\x04" +cmd_test_inj5 = "Z\x00\x13\x00\x05" +cmd_test_inj6 = "Z\x00\x13\x00\x06" +cmd_test_inj7 = "Z\x00\x13\x00\x07" +cmd_test_inj8 = "Z\x00\x13\x00\x08" +cmd_test_inj9 = "Z\x00\x13\x00\x09" +cmd_test_inj10 = "Z\x00\x13\x00\x0a" +cmd_test_inj11 = "Z\x00\x13\x00\x0b" +cmd_test_inj12 = "Z\x00\x13\x00\x0c" + +cmd_test_cancel = "Z\x00\x16\x00\x0e" + +cmd_fuel_pump_on = "Z\x00\x16\x00\x0f" +cmd_fuel_pump_off = "Z\x00\x16\x00\x10" + +cmd_bump_vvt_target_1 = "Z\x00\x16\x00\x11" +cmd_bump_vvt_target_2 = "Z\x00\x16\x00\x12" +cmd_bump_vvt_target_3 = "Z\x00\x16\x00\x13" +cmd_bump_vvt_target_4 = "Z\x00\x16\x00\x14" + +cmd_test_sol1 = "Z\x00\x19\x00\x01" +cmd_test_sol2 = "Z\x00\x19\x00\x02" +cmd_test_sol3 = "Z\x00\x19\x00\x03" +cmd_test_sol4 = "Z\x00\x19\x00\x04" +cmd_test_sol5 = "Z\x00\x19\x00\x05" +cmd_test_sol6 = "Z\x00\x19\x00\x06" + +cmd_test_main_relay = "Z\x00\x16\x00\x00" +cmd_test_starter_relay = "Z\x00\x16\x00\x01" +cmd_test_starter_disable_relay = "Z\x00\x16\x00\x02" +cmd_test_ac_relay = "Z\x00\x16\x00\x05" +cmd_test_fan_1 = "Z\x00\x16\x00\x03" +cmd_test_fan_2 = "Z\x00\x16\x00\x04" +cmd_test_check_engine_light = "Z\x00\x16\x00\x06" +cmd_test_idle_valve = "Z\x00\x16\x00\x07" +cmd_test_second_idle_valve = "Z\x00\x16\x00\x0d" +cmd_test_hpfp_valve = "Z\x00\x16\x00\x08" + +cmd_calibrate_tps_1_closed = "Z\x00\x14\x00\x02" +cmd_calibrate_tps_1_wot = "Z\x00\x14\x00\x03" +cmd_calibrate_tps_2_closed = "Z\x00\x14\x00\x04" +cmd_calibrate_tps_2_wot = "Z\x00\x14\x00\x05" +cmd_calibrate_pedal_up = "Z\x00\x14\x00\x06" +cmd_calibrate_pedal_down = "Z\x00\x14\x00\x07" +cmd_tle8888_init = "Z\x00\x14\x00\x08" +cmd_write_config = "Z\x00\x14\x00\x0A" +cmd_etb_autotune = "Z\x00\x14\x00\x0C" +cmd_enable_self_stim = "Z\x00\x14\x00\x0D" +cmd_etb_auto_calibrate = "Z\x00\x14\x00\x0E" +cmd_disable_self_stim = "Z\x00\x14\x00\x0F" +cmd_etb_autotune_stop = "Z\x00\x14\x00\x10" +cmd_etb_auto_calibrate_2 = "Z\x00\x14\x00\x11" +cmd_wideband_firmare_update = "Z\x00\x14\x00\x12" +cmd_enable_ext_stim = "Z\x00\x14\x00\x13" +cmd_burn_without_flash = "Z\x00\x14\x00\x15" + +cmd_set_wideband_idx_0 = "Z\x00\x15\x00\x00" +cmd_set_wideband_idx_1 = "Z\x00\x15\x00\x01" + +cmd_stop_engine = "Z\x00\x79\x00\x00" + +; reboot ECU +cmd_reset_controller = "Z\x00\xbb\x00\x00" +; jump to DFU mode +cmd_dfu = "Z\x00\xba\x00\x00" +; jump to OpenBLT bootloader +cmd_openblt = "Z\x00\xbc\x00\x00" + +; See 'executeTSCommand' in firmware source code + + +cmd_set_engine_type_microRusEFI_VW_B6 = "Z\x00\x1e\x00\x3e" +cmd_set_engine_type_microRusEFI_MRE_BODY_CONTROL = "Z\x00\x1e\x00\x17" + +cmd_set_engine_type_MRE_SUBARU_EJ18 = "Z\x00\x1e\x00\x25" + +cmd_set_engine_type_MRE_M111 = "Z\x00\x1e\x00\x44" + +cmd_set_engine_type_hellen_NA6 = "Z\x00\x1e\x00\x22" +cmd_set_engine_type_hellen_NA94 = "Z\x00\x1e\x00\x50" + +cmd_set_engine_type_hellen_NB1_36 = "Z\x00\x1e\x00\x5e" +cmd_set_engine_type_hellen_NB2_36 = "Z\x00\x1e\x00\x56" + +cmd_set_engine_type_hellen_nissan_121_4 = "Z\x00\x1e\x00\x54" +cmd_set_engine_type_hellen_nissan_121_6 = "Z\x00\x1e\x00\x48" +cmd_set_engine_type_hellen_nissan_121_8 = "Z\x00\x1e\x00\x55" + +cmd_set_engine_type_hellen_121_vag_4 = "Z\x00\x1e\x00\x47" +cmd_set_engine_type_hellen_121_vag_5 = "Z\x00\x1e\x00\x4d" +cmd_set_engine_type_hellen_121_vag_v6 = "Z\x00\x1e\x00\x4e" +cmd_set_engine_type_hellen_121_vag_vr6 = "Z\x00\x1e\x00\x4f" +cmd_set_engine_type_hellen_121_vag_8 = "Z\x00\x1e\x00\x51" + +cmd_set_engine_type_hellen_128_merc_4 = "Z\x00\x1e\x00\x24" +cmd_set_engine_type_hellen_128_merc_6 = "Z\x00\x1e\x00\x58" +cmd_set_engine_type_hellen_128_merc_8 = "Z\x00\x1e\x00\x59" + +cmd_set_engine_type_hellen_couple_bk1 = "Z\x00\x1e\x00\x52" +cmd_set_engine_type_hellen_couple_bk2 = "Z\x00\x1e\x00\x5f" + +; MIATA_NA6_MAP = 41 +cmd_set_engine_type_Frankenso_Miata_NA6_MAP = "Z\x00\x1e\x00\x29" +; MAZDA_MIATA_2003 = 47 +cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x1e\x00\x2f" + +cmd_set_engine_type_Proteus_M73 = "Z\x00\x1e\x00\x3f" +cmd_set_engine_type_PROTEUS_VW_B6 = "Z\x00\x1e\x00\x27" +cmd_set_engine_type_PROTEUS_GM_LS_4 = "Z\x00\x1e\x00\x1b" +cmd_set_engine_type_PROTEUS_HONDA_K = "Z\x00\x1e\x00\x5a" +cmd_set_engine_type_PROTEUS_HONDA_OBD2A = "Z\x00\x1e\x00\x5b" +cmd_set_engine_type_Proteus_Miata_TCU = "Z\x00\x1e\x00\x01" +cmd_set_engine_type_PROTEUS_LUA_DEMO = "Z\x00\x1e\x00\x19" +cmd_set_engine_type_PROTEUS_HARLEY = "Z\x00\x1e\x00\x06" +cmd_set_engine_type_POLYGONUS_MIATA_NA6 = "Z\x00\x1e\x00\x04" +cmd_set_engine_type_POLYGONUS_MIATA_NB1 = "Z\x00\x1e\x00\x0b" +cmd_set_engine_type_POLYGONUS_MIATA_NB2 = "Z\x00\x1e\x00\x43" +cmd_set_engine_type_POLYGONUS_MIATA_MSM = "Z\x00\x1e\x00\x0c" + + +; ETB_BENCH_ENGINE = 58 +cmd_set_engine_type_etb_test = "Z\x00\x1e\x00\x3A" +; ETB_BENCH_ENGINE = 59 +cmd_set_engine_type_8888_test = "Z\x00\x1e\x00\x3B" +cmd_set_engine_type_default = "Z\x00\x1f\x00\x00" + +[UserDefined] + +dialog = fuel_computerDialog, "fuel_computer" + liveGraph = fuel_computer_1_Graph, "Graph", South + graphLine = totalFuelCorrection + graphLine = running_postCrankingFuelCorrection + graphLine = running_intakeTemperatureCoefficient + graphLine = running_coolantTemperatureCoefficient + liveGraph = fuel_computer_2_Graph, "Graph", South + graphLine = running_timeSinceCrankingInSecs + graphLine = running_baseFuel + graphLine = running_fuel + graphLine = afrTableYAxis + liveGraph = fuel_computer_3_Graph, "Graph", South + graphLine = targetLambda + graphLine = targetAFR + graphLine = stoichiometricRatio + graphLine = sdTcharge_coff + liveGraph = fuel_computer_4_Graph, "Graph", South + graphLine = sdAirMassInOneCylinder + graphLine = normalizedCylinderFilling + + +dialog = ignition_stateDialog, "ignition_state" + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockLevel + graphLine = m_knockCyl1 + graphLine = m_knockCyl2 + graphLine = m_knockCyl3 + liveGraph = knock_controller_2_Graph, "Graph", South + graphLine = m_knockCyl4 + graphLine = m_knockCyl5 + graphLine = m_knockCyl6 + graphLine = m_knockCyl7 + liveGraph = knock_controller_3_Graph, "Graph", South + graphLine = m_knockCyl8 + graphLine = m_knockCyl9 + graphLine = m_knockCyl10 + graphLine = m_knockCyl11 + liveGraph = knock_controller_4_Graph, "Graph", South + graphLine = m_knockCyl12 + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + liveGraph = knock_controller_5_Graph, "Graph", South + graphLine = m_maximumRetard + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = nextLobe + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {acButtonState}, "acButtonState No", "acButtonState Yes" + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_controlIndicatorPanel, 2 + indicator = {cranking}, "cranking No", "cranking Yes" + indicator = {notRunning}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot}, "hot No", "hot Yes" + indicator = {cold}, "cold No", "cold Yes" + +dialog = fan_controlDialog, "fan_control" + panel = fan_controlIndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {clutchDownState}, "clutchDownState No", "clutchDownState Yes" + indicator = {brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {startStopState}, "startStopState No", "startStopState Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = baroCorrection + graphLine = hellenBoardId + graphLine = startStopStateToggleCounter + graphLine = egtValue1 + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = egtValue2 + graphLine = desiredRpmLimit + graphLine = fuelInjectionCounter + graphLine = sparkCounter + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = fuelingLoad + graphLine = ignitionLoad + graphLine = veTableYAxis + +indicatorPanel = tps_accel_stateIndicatorPanel, 2 + indicator = {isAboveAccelThreshold}, "isAboveAccelThreshold No", "isAboveAccelThreshold Yes" + indicator = {isBelowDecelThreshold}, "isBelowDecelThreshold No", "isBelowDecelThreshold Yes" + indicator = {isTimeToResetAccumulator}, "isTimeToResetAccumulator No", "isTimeToResetAccumulator Yes" + indicator = {isFractionalEnrichment}, "isFractionalEnrichment No", "isFractionalEnrichment Yes" + indicator = {belowEpsilon}, "belowEpsilon No", "belowEpsilon Yes" + indicator = {tooShort}, "tooShort No", "tooShort Yes" + +dialog = tps_accel_stateDialog, "tps_accel_state" + panel = tps_accel_stateIndicatorPanel + liveGraph = tps_accel_state_1_Graph, "Graph", South + graphLine = tpsFrom + graphLine = tpsTo + graphLine = deltaTps + graphLine = extraFuel + liveGraph = tps_accel_state_2_Graph, "Graph", South + graphLine = valueFromTable + graphLine = fractionalInjFuel + graphLine = accumulatedValue + graphLine = maxExtraPerCycle + liveGraph = tps_accel_state_3_Graph, "Graph", South + graphLine = maxExtraPerPeriod + graphLine = maxInjectedPerPeriod + graphLine = cycleCnt + + +dialog = trigger_centralDialog, "trigger_central" + liveGraph = trigger_central_1_Graph, "Graph", South + graphLine = hwEventCounters1 + graphLine = hwEventCounters2 + graphLine = hwEventCounters3 + graphLine = hwEventCounters4 + liveGraph = trigger_central_2_Graph, "Graph", South + graphLine = hwEventCounters5 + graphLine = hwEventCounters6 + graphLine = vvtCamCounter + graphLine = mapVvt_MAP_AT_SPECIAL_POINT + liveGraph = trigger_central_3_Graph, "Graph", South + graphLine = mapVvt_MAP_AT_DIFF + graphLine = mapVvt_MAP_AT_CYCLE_COUNT + graphLine = mapVvt_map_peak + graphLine = currentEngineDecodedPhase + liveGraph = trigger_central_4_Graph, "Graph", South + graphLine = triggerToothAngleError + graphLine = triggerIgnoredToothCount + + +dialog = trigger_stateDialog, "trigger_state" + liveGraph = trigger_state_1_Graph, "Graph", South + graphLine = crankSynchronizationCounter + graphLine = vvtSyncGapRatio + graphLine = triggerSyncGapRatio + graphLine = triggerStateIndex + liveGraph = trigger_state_2_Graph, "Graph", South + graphLine = vvtCounter + graphLine = vvtStateIndex + +indicatorPanel = trigger_state_primaryIndicatorPanel, 2 + indicator = {m_hasSynchronizedPhase}, "m_hasSynchronizedPhase No", "m_hasSynchronizedPhase Yes" + +dialog = trigger_state_primaryDialog, "trigger_state_primary" + panel = trigger_state_primaryIndicatorPanel + liveGraph = trigger_state_primary_1_Graph, "Graph", South + graphLine = camResyncCounter + + +dialog = wall_fuel_stateDialog, "wall_fuel_state" + liveGraph = wall_fuel_state_1_Graph, "Graph", South + graphLine = wallFuelCorrection + graphLine = wallFuel + +indicatorPanel = idle_stateIndicatorPanel, 2 + indicator = {mightResetPid}, "mightResetPid No", "mightResetPid Yes" + indicator = {shouldResetPid}, "shouldResetPid No", "shouldResetPid Yes" + indicator = {wasResetPid}, "wasResetPid No", "wasResetPid Yes" + indicator = {mustResetPid}, "mustResetPid No", "mustResetPid Yes" + indicator = {isCranking}, "isCranking No", "isCranking Yes" + indicator = {isIacTableForCoasting}, "isIacTableForCoasting No", "isIacTableForCoasting Yes" + indicator = {notIdling}, "notIdling No", "notIdling Yes" + indicator = {needReset}, "needReset No", "needReset Yes" + indicator = {isInDeadZone}, "isInDeadZone No", "isInDeadZone Yes" + indicator = {isBlipping}, "isBlipping No", "isBlipping Yes" + indicator = {looksLikeRunning}, "looksLikeRunning No", "looksLikeRunning Yes" + indicator = {looksLikeCoasting}, "looksLikeCoasting No", "looksLikeCoasting Yes" + indicator = {looksLikeCrankToIdle}, "looksLikeCrankToIdle No", "looksLikeCrankToIdle Yes" + indicator = {isIdleCoasting}, "isIdleCoasting No", "isIdleCoasting Yes" + indicator = {isIdleClosedLoop}, "isIdleClosedLoop No", "isIdleClosedLoop Yes" + +dialog = idle_stateDialog, "idle_state" + panel = idle_stateIndicatorPanel + liveGraph = idle_state_1_Graph, "Graph", South + graphLine = idleState + graphLine = currentIdlePosition + graphLine = baseIdlePosition + graphLine = idleClosedLoop + liveGraph = idle_state_2_Graph, "Graph", South + graphLine = iacByTpsTaper + graphLine = throttlePedalUpState + graphLine = idleTarget + graphLine = targetRpmByClt + liveGraph = idle_state_3_Graph, "Graph", South + graphLine = targetRpmAcBump + graphLine = iacByRpmTaper + graphLine = luaAdd + +indicatorPanel = electronic_throttleIndicatorPanel, 2 + indicator = {etbRevLimitActive}, "etbRevLimitActive No", "etbRevLimitActive Yes" + indicator = {jamDetected}, "jamDetected No", "jamDetected Yes" + +dialog = electronic_throttleDialog, "electronic_throttle" + panel = electronic_throttleIndicatorPanel + liveGraph = electronic_throttle_1_Graph, "Graph", South + graphLine = idlePosition + graphLine = trim + graphLine = luaAdjustment + graphLine = m_wastegatePosition + liveGraph = electronic_throttle_2_Graph, "Graph", South + graphLine = etbFeedForward + graphLine = etbIntegralError + graphLine = etbCurrentTarget + graphLine = etbCurrentAdjustedTarget + liveGraph = electronic_throttle_3_Graph, "Graph", South + graphLine = etbDutyRateOfChange + graphLine = etbDutyAverage + graphLine = etbTpsErrorCounter + graphLine = etbPpsErrorCounter + liveGraph = electronic_throttle_4_Graph, "Graph", South + graphLine = etbErrorCode + graphLine = jamTimer + + +dialog = wideband_stateDialog, "wideband_state" + liveGraph = wideband_state_1_Graph, "Graph", South + graphLine = faultCode + graphLine = heaterDuty + graphLine = pumpDuty + graphLine = tempC + liveGraph = wideband_state_2_Graph, "Graph", South + graphLine = nernstVoltage + graphLine = esr + +indicatorPanel = dc_motorsIndicatorPanel, 2 + indicator = {isEnabled0}, "isEnabled0 No", "isEnabled0 Yes" + +dialog = dc_motorsDialog, "dc_motors" + panel = dc_motorsIndicatorPanel + liveGraph = dc_motors_1_Graph, "Graph", South + graphLine = dcOutput0 + graphLine = isEnabled0_int + + +dialog = sent_stateDialog, "sent_state" + liveGraph = sent_state_1_Graph, "Graph", South + graphLine = value0 + graphLine = value1 + graphLine = errorRate + +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + +indicatorPanel = lambda_monitorIndicatorPanel, 2 + indicator = {lambdaCurrentlyGood}, "lambdaCurrentlyGood No", "lambdaCurrentlyGood Yes" + indicator = {lambdaMonitorCut}, "lambdaMonitorCut No", "lambdaMonitorCut Yes" + +dialog = lambda_monitorDialog, "lambda_monitor" + panel = lambda_monitorIndicatorPanel + liveGraph = lambda_monitor_1_Graph, "Graph", South + graphLine = lambdaTimeSinceGood + + + + dialog = scriptTable1TblSettings, "", yAxis + field = "Name", scriptTableName1 + panel = scriptTable1Tbl + + dialog = scriptTable2TblSettings, "", yAxis + field = "Name", scriptTableName2 + panel = scriptTable2Tbl + + dialog = scriptTable3TblSettings, "", yAxis + field = "Name", scriptTableName3 + panel = scriptTable3Tbl + + dialog = scriptTable4TblSettings, "", yAxis + field = "Name", scriptTableName4 + panel = scriptTable4Tbl + + dialog = scriptCurve1Settings, "", yAxis + field = "Name", scriptCurveName1 + panel = scriptCurve1 + + dialog = scriptCurve2Settings, "", yAxis + field = "Name", scriptCurveName2 + panel = scriptCurve2 + + dialog = scriptCurve3Settings, "", yAxis + field = "Name", scriptCurveName3 + panel = scriptCurve3 + + dialog = scriptCurve4Settings, "", yAxis + field = "Name", scriptCurveName4 + panel = scriptCurve4 + + dialog = scriptCurve5Settings, "", yAxis + field = "Name", scriptCurveName5 + panel = scriptCurve5 + + dialog = scriptCurve6Settings, "", yAxis + field = "Name", scriptCurveName6 + panel = scriptCurve6 + + dialog = tChargeRpmTpsSettings, "RPM+TPS mode" + field = "We use these coefficients to approximate air/fuel charge" + field = "temperature based on CLT and IAT, depending on RPM and TPM" + field = "Low RPM/Low TPS", tChargeMinRpmMinTps + field = "Low RPM/High TPS", tChargeMinRpmMaxTps + field = "High RPM/Low TPS", tChargeMaxRpmMinTps + field = "High RPM/High TPS", tChargeMaxRpmMaxTps + + dialog = tChargeGeneralSettings, "" + field = "Mode", tChargeMode + field = "#These two parameters limit the estimate's rate of change" + field = "Increase rate limit", tChargeAirIncrLimit + field = "Decrease rate limit", tChargeAirDecrLimit + field = "" + + dialog = tChargeAirInterpSettings, "Airflow interpolation mode" + field = "Low flow coefficient", tChargeAirCoefMin + field = "High flow coefficient", tChargeAirCoefMax + field = "Max air flow", tChargeAirFlowMax + + dialog = tChargeSettings, "Charge temperature estimation" + panel = tChargeGeneralSettings + panel = tChargeRpmTpsSettings, { tChargeMode == 0} + panel = tChargeAirInterpSettings, { tChargeMode == 1} + panel = tchargeCurve, { tChargeMode == 2 } + + dialog = baseInjection, "Injection" + field = "Enabled", isInjectionEnabled + field = "Mode", injectionMode, {isInjectionEnabled == 1} + field = "#Batch injection with individual wiring" + field = "Alpha-N uses IAT density correction", alphaNUseIat, { fuelAlgorithm == 2 } + field = "Override VE table load axis", veOverrideMode, { isInjectionEnabled } + field = "Override AFR table load axis", afrOverrideMode, { isInjectionEnabled } + field = "Injection phase control mode", injectionTimingMode, { isInjectionEnabled } + + dialog = ignitionOutputs, "Ignition Outputs" + field = "Ignition Pin 1", ignitionPins1, { isIgnitionEnabled == 1 } + field = "Ignition Pin 2", ignitionPins2, { isIgnitionEnabled == 1 && cylindersCount >= 2 } + field = "Ignition Pin 3", ignitionPins3, { isIgnitionEnabled == 1 && cylindersCount >= 3 } + field = "Ignition Pin 4", ignitionPins4, { isIgnitionEnabled == 1 && cylindersCount >= 4 } + field = "Ignition Pin 5", ignitionPins5, { isIgnitionEnabled == 1 && cylindersCount >= 5 } + field = "Ignition Pin 6", ignitionPins6, { isIgnitionEnabled == 1 && cylindersCount >= 6 } + field = "Ignition Pin 7", ignitionPins7, { isIgnitionEnabled == 1 && cylindersCount >= 7 } + field = "Ignition Pin 8", ignitionPins8, { isIgnitionEnabled == 1 && cylindersCount >= 8 } + field = "Ignition Pin 9", ignitionPins9, { isIgnitionEnabled == 1 && cylindersCount >= 9 } + field = "Ignition Pin 10", ignitionPins10, { isIgnitionEnabled == 1 && cylindersCount >= 10 } + field = "Ignition Pin 11", ignitionPins11, { isIgnitionEnabled == 1 && cylindersCount >= 11 } + field = "Ignition Pin 12", ignitionPins12, { isIgnitionEnabled == 1 && cylindersCount >= 12 } + + dialog = ignitionBasic, "" + field = "Enabled", isIgnitionEnabled + field = "Mode", ignitionMode, {isIgnitionEnabled} + field = "Maximum timing advance", maximumIgnitionTiming, {isIgnitionEnabled} + field = "Minimum timing advance", minimumIgnitionTiming, {isIgnitionEnabled} + field = "Override ignition table load axis", ignOverrideMode, {isIgnitionEnabled} + field = "#Use fixed timing while validating with a timing gun" + field = "Timing Mode", timingMode, {isIgnitionEnabled} + field = "Fixed Timing", fixedTiming, {isIgnitionEnabled == 1 && timingMode == 1} + + dialog = ignitionSettings, "", xAxis + panel = ignitionBasic + panel = ignitionOutputs + + dialog = baseEngineConfig, "Engine Configuration" +; field = "Engine preset", engineType + field = "Number of cylinders", cylindersCount + field = "Displacement", displacement + field = "Firing order", firingOrder + field = "Vehicle weight", vehicleWeight + + dialog = engineMetadata, "Engine Metadata" + field = "#These metadata are used by https://tunes.fome.tech" + field = "Engine Make", engineMake + field = "Manufacturer Engine Code", engineCode + field = "Vehicle Name", vehicleName + field = "Compression Ratio", compressionRatio + field = "Forced Induction?", isForcedInduction + + dialog = trigger_primary, "Primary Trigger" + topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Engine type", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Primary trigger location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Invert Primary", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) }, { triggerInputPins2 == 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "!!! PLEASE UNSELECT !!!" triggerInputPins2, 1, { triggerInputPins2 != 0 && !(triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Invert Secondary", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 11 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 28 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://wiki.fome.tech/r/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" + field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } + field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } + field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } + field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } + field = "Invert cam inputs", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is an advanced feature for debugging trigger synchronization" + field = "Override trigger gaps", overrideTriggerGaps + field = "Count", gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "Gap #1 from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "Gap #1 to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Gap #2 from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #2 to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Debug Trigger Sync", debugTriggerSync + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary + panel = trigger_cams + +; Engine->Injection Settings + dialog = injChars, "Injector Settings", yAxis + field = "Injector flow(cc/min)", injector_flow, {isInjectionEnabled}, {!injectorFlowAsMassFlow} + field = "Injector flow(g/s)", injector_flow, {isInjectionEnabled}, {injectorFlowAsMassFlow} + field = "Injector flow units", injectorFlowAsMassFlow, {isInjectionEnabled} + field = "Fuel rail pressure sensor", injectorPressureType, { isInjectionEnabled && (highPressureFuel_hwChannel || lowPressureFuel_hwChannel) } + field = "Injector flow compensation mode", injectorCompensationMode, { isInjectionEnabled } + field = "Injector reference pressure", fuelReferencePressure, { isInjectionEnabled && injectorCompensationMode != 0 } + + dialog = fuelParams, "Fuel characteristics", yAxis + field = "Stoichiometric ratio", stoichRatioPrimary, {isInjectionEnabled} + field = "E100 stoichiometric ratio", stoichRatioSecondary, {isInjectionEnabled && flexSensorPin != 0 } + + dialog = injectorPins, "Injector Outputs", yAxis + field = "Use only first half of outputs for batch mode" + field = "Injection Output 1", injectionPins1, {isInjectionEnabled == 1} + field = "Injection Output 2", injectionPins2, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 1} + field = "Injection Output 3", injectionPins3, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 2} + field = "Injection Output 4", injectionPins4, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 3} + field = "Injection Output 5 ", injectionPins5, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 4} + field = "Injection Output 6 ", injectionPins6, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 5} + field = "Injection Output 7 ", injectionPins7, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 6} + field = "Injection Output 8 ", injectionPins8, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 7} + field = "Injection Output 9 ", injectionPins9, {isInjectionEnabled == 1 && cylindersCount > 8} + field = "Injection Output 10 ", injectionPins10, {isInjectionEnabled == 1 && cylindersCount > 9} + field = "Injection Output 11 ", injectionPins11, {isInjectionEnabled == 1 && cylindersCount > 10} + field = "Injection Output 12 ", injectionPins12, {isInjectionEnabled == 1 && cylindersCount > 11} + + dialog = cylinderBankSelect, "Cylinder Banks", yAxis + field = "Cylinder 1", cylinderBankSelect1, {isInjectionEnabled == 1} + field = "Cylinder 2", cylinderBankSelect2, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 1} + field = "Cylinder 3", cylinderBankSelect3, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 2} + field = "Cylinder 4", cylinderBankSelect4, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 3} + field = "Cylinder 5 ", cylinderBankSelect5, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 4} + field = "Cylinder 6 ", cylinderBankSelect6, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 5} + field = "Cylinder 7 ", cylinderBankSelect7, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 6} + field = "Cylinder 8 ", cylinderBankSelect8, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 7} + field = "Cylinder 9 ", cylinderBankSelect9, {isInjectionEnabled == 1 && cylindersCount > 8} + field = "Cylinder 10 ", cylinderBankSelect10, {isInjectionEnabled == 1 && cylindersCount > 9} + field = "Cylinder 11 ", cylinderBankSelect11, {isInjectionEnabled == 1 && cylindersCount > 10} + field = "Cylinder 12 ", cylinderBankSelect12, {isInjectionEnabled == 1 && cylindersCount > 11} + + dialog = injectorNonlinearPolynomial, "Polynomial Adder", yAxis + field = "Add nonlinearity below pulse", applyNonlinearBelowPulse + field = "constant", injectorCorrectionPolynomial1 + field = "x^1", injectorCorrectionPolynomial2 + field = "x^2", injectorCorrectionPolynomial3 + field = "x^3", injectorCorrectionPolynomial4 + field = "x^4", injectorCorrectionPolynomial5 + field = "x^5", injectorCorrectionPolynomial6 + field = "x^6", injectorCorrectionPolynomial7 + field = "x^7", injectorCorrectionPolynomial8 + + dialog = injectorNonlinearFord, "Ford-model Small Pulse Correction", yAxis + field = "Small pulse slope (ALOSL, g/s)", fordInjectorSmallPulseSlope + field = "Set this to 'mass flow'", injectorFlowAsMassFlow + field = "Large pulse slope (AHISL, g/s)", injector_flow + field = "Small pulse breakpoint (FUEL_BKPT)", fordInjectorSmallPulseBreakPoint + + dialog = injectorNonlinear + field = "Small pulse correction mode", injectorNonlinearMode + panel = injectorNonlinearPolynomial, {1}, { injectorNonlinearMode == 1 } + panel = injectorNonlinearFord, {1}, { injectorNonlinearMode == 2 } + + dialog = testLuaOut, "Lua Out Test" + commandButton = "Lua Out #1", cmd_test_lua1 + commandButton = "Lua Out #2", cmd_test_lua2 + commandButton = "Lua Out #3", cmd_test_lua3 + commandButton = "Lua Out #4", cmd_test_lua4 + commandButton = "Lua Out #5", cmd_test_lua5 + commandButton = "Lua Out #6", cmd_test_lua6 + commandButton = "Lua Out #7", cmd_test_lua7 + commandButton = "Lua Out #8", cmd_test_lua8 + commandButton = "Abort test", cmd_test_cancel + + dialog = testSolenoids, "TCU Solenoid Test" + commandButton = "Solenoid #1", cmd_test_sol1 + commandButton = "Solenoid #2", cmd_test_sol2 + commandButton = "Solenoid #3", cmd_test_sol3 + commandButton = "Solenoid #4", cmd_test_sol4 + commandButton = "Solenoid #5", cmd_test_sol5 + commandButton = "Solenoid #6", cmd_test_sol6 + commandButton = "Abort test", cmd_test_cancel + + dialog = testOther + field = "Count", benchTestCount + field = "On Time", benchTestOnTime + field = "Off Time", benchTestOffTime + panel = testSolenoids + + dialog = injectorConfig, "", yAxis + topicHelp = "fuelHelp" + panel = baseInjection + panel = injChars + panel = fuelParams + panel = injectorsDeadTime, {isInjectionEnabled} + + dialog = ignitionCylExtra, "Cylinder offsets" + field = "Offset angle for each cylinder if you have an odd fire" + field = "engine, like a v-twin or some V6/V10 engines" + field = "#Positive numbers retard, negative numbers advance" + field = "Offset cyl 1", timing_offset_cylinder1 + field = "Offset cyl 2", timing_offset_cylinder2, {cylindersCount > 1} + field = "Offset cyl 3", timing_offset_cylinder3, {cylindersCount > 2} + field = "Offset cyl 4", timing_offset_cylinder4, {cylindersCount > 3} + field = "Offset cyl 5", timing_offset_cylinder5, {cylindersCount > 4} + field = "Offset cyl 6", timing_offset_cylinder6, {cylindersCount > 5} + field = "Offset cyl 7", timing_offset_cylinder7, {cylindersCount > 6} + field = "Offset cyl 8", timing_offset_cylinder8, {cylindersCount > 7} + field = "Offset cyl 9", timing_offset_cylinder9, {cylindersCount > 8} + field = "Offset cyl 10", timing_offset_cylinder10, {cylindersCount > 9} + field = "Offset cyl 11", timing_offset_cylinder11, {cylindersCount > 10} + field = "Offset cyl 12", timing_offset_cylinder12, {cylindersCount > 11} + + dialog = stagedInjectionOutputs, "", yAxis + field = "Injection Stage 2 Output 1", injectionPinsStage21, {isInjectionEnabled && enableStagedInjection} + field = "Injection Stage 2 Output 2", injectionPinsStage22, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 1} + field = "Injection Stage 2 Output 3", injectionPinsStage23, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 2} + field = "Injection Stage 2 Output 4", injectionPinsStage24, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 3} + field = "Injection Stage 2 Output 5 ", injectionPinsStage25, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 4} + field = "Injection Stage 2 Output 6 ", injectionPinsStage26, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 5} + field = "Injection Stage 2 Output 7 ", injectionPinsStage27, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 6} + field = "Injection Stage 2 Output 8 ", injectionPinsStage28, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 7} + field = "Injection Stage 2 Output 9 ", injectionPinsStage29, {isInjectionEnabled && enableStagedInjection && cylindersCount > 8} + field = "Injection Stage 2 Output 10 ", injectionPinsStage210, {isInjectionEnabled && enableStagedInjection && cylindersCount > 9} + field = "Injection Stage 2 Output 11 ", injectionPinsStage211, {isInjectionEnabled && enableStagedInjection && cylindersCount > 10} + field = "Injection Stage 2 Output 12 ", injectionPinsStage212, {isInjectionEnabled && enableStagedInjection && cylindersCount > 11} + + dialog = stagedInjection, "", yAxis + field = "Enable", enableStagedInjection, {isInjectionEnabled} + field = "" + field = "Secondary injector flow(cc/min)", injectorSecondary_flow, {isInjectionEnabled && enableStagedInjection}, {!injectorFlowAsMassFlow} + field = "Secondary injector flow(g/s)", injectorSecondary_flow, {isInjectionEnabled && enableStagedInjection}, {injectorFlowAsMassFlow} + field = "" + panel = injectorsSecondaryDeadTime, {isInjectionEnabled && enableStagedInjection} + + dialog = multisparkDwellParams, "Delay & Dwell" + field = "Spark duration", multisparkSparkDuration, {multisparkEnable} + field = "Subsequent spark dwell", multisparkDwell, {multisparkEnable} + + dialog = multisparkMain, "Configuration" + field = "Maximum engine speed", multisparkMaxRpm, {multisparkEnable} + field = "Fire sparks for this angle duration" multisparkMaxSparkingAngle, {multisparkEnable} + field = "Maximum extra spark count" multisparkMaxExtraSparkCount, {multisparkEnable} + + dialog = multisparkSettings, "Multispark" + field = "#WARNING! These settings have the potential to overheat ignition components" + field = "#and cause other nasty misbehavior. Use with care, at your own risk!" + field = "#Not recommended for use on distributor or wasted spark ignition systems." + field = "Enable multiple sparks", multisparkEnable + panel = multisparkMain + panel = multisparkDwellParams + + dialog = ignAdder1Cfg, "Ignition adder 1 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the base ignition table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in 5.0 degrees of ignition timing added." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", ignBlends1_blendParameter + field = "Y axis override (set Zero for no override)", ignBlends1_yAxisOverride, {ignBlends1_blendParameter} + panel = ignAdder1Bias, {ignBlends1_blendParameter} + + dialog = ignAdder2Cfg, "Ignition adder 2 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the base ignition table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in 5.0 degrees of ignition timing added." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", ignBlends2_blendParameter + field = "Y axis override (set Zero for no override)", ignBlends2_yAxisOverride, {ignBlends2_blendParameter} + panel = ignAdder2Bias, {ignBlends2_blendParameter} + + dialog = ignAdder3Cfg, "Ignition adder 3 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the base ignition table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in 5.0 degrees of ignition timing added." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", ignBlends3_blendParameter + field = "Y axis override (set Zero for no override)", ignBlends3_yAxisOverride, {ignBlends3_blendParameter} + panel = ignAdder3Bias, {ignBlends3_blendParameter} + + dialog = ignAdder4Cfg, "Ignition adder 4 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the base ignition table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in 5.0 degrees of ignition timing added." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", ignBlends4_blendParameter + field = "Y axis override (set Zero for no override)", ignBlends4_yAxisOverride, {ignBlends4_blendParameter} + panel = ignAdder4Bias, {ignBlends4_blendParameter} + + dialog = veBlend1Cfg, "VE blend 1 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the VE table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0% added to the VE. Note that this doesn't add 5% VE," + field = "instead, it adds 5% to the current VE value, multiplying VE by 1.05." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", veBlends1_blendParameter + field = "Y axis override (set Zero for no override)", veBlends1_yAxisOverride, {veBlends1_blendParameter} + panel = veBlend1Bias, {veBlends1_blendParameter} + + dialog = veBlend2Cfg, "VE blend 2 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the VE table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0% added to the VE. Note that this doesn't add 5% VE," + field = "instead, it adds 5% to the current VE value, multiplying VE by 1.05." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", veBlends2_blendParameter + field = "Y axis override (set Zero for no override)", veBlends2_yAxisOverride, {veBlends2_blendParameter} + panel = veBlend2Bias, {veBlends2_blendParameter} + + dialog = veBlend3Cfg, "VE blend 3 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the VE table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0% added to the VE. Note that this doesn't add 5% VE," + field = "instead, it adds 5% to the current VE value, multiplying VE by 1.05." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", veBlends3_blendParameter + field = "Y axis override (set Zero for no override)", veBlends3_yAxisOverride, {veBlends3_blendParameter} + panel = veBlend3Bias, {veBlends3_blendParameter} + + dialog = veBlend4Cfg, "VE blend 4 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the VE table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0% added to the VE. Note that this doesn't add 5% VE," + field = "instead, it adds 5% to the current VE value, multiplying VE by 1.05." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", veBlends4_blendParameter + field = "Y axis override (set Zero for no override)", veBlends4_yAxisOverride, {veBlends4_blendParameter} + panel = veBlend4Bias, {veBlends4_blendParameter} + + dialog = boostOpenBlend1Cfg, "Boost open loop blend 1 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the open loop boost table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0 added to the boost open loop %." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", boostOpenLoopBlends1_blendParameter + field = "Y axis override (set Zero for no override)", boostOpenLoopBlends1_yAxisOverride, {boostOpenLoopBlends1_blendParameter} + panel = boostOpenLoopBlend1Bias, {boostOpenLoopBlends1_blendParameter} + + dialog = boostOpenBlend2Cfg, "Boost open loop blend 2 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the open loop boost table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0 added to the boost open loop %." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", boostOpenLoopBlends2_blendParameter + field = "Y axis override (set Zero for no override)", boostOpenLoopBlends2_yAxisOverride, {boostOpenLoopBlends2_blendParameter} + panel = boostOpenLoopBlend2Bias, {boostOpenLoopBlends2_blendParameter} + + dialog = boostClosedBlend1Cfg, "Boost closed loop blend 1 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the closed loop boost table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0 added to the boost closed loop %." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", boostClosedLoopBlends1_blendParameter + field = "Y axis override (set Zero for no override)", boostClosedLoopBlends1_yAxisOverride, {boostClosedLoopBlends1_blendParameter} + panel = boostClosedLoopBlend1Bias, {boostClosedLoopBlends1_blendParameter} + + dialog = boostClosedBlend2Cfg, "Boost closed loop blend 2 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the closed loop boost table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0 added to the boost closed loop %." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", boostClosedLoopBlends2_blendParameter + field = "Y axis override (set Zero for no override)", boostClosedLoopBlends2_yAxisOverride, {boostClosedLoopBlends2_blendParameter} + panel = boostClosedLoopBlend2Bias, {boostClosedLoopBlends2_blendParameter} + + dialog = dwellSettings, "", yAxis + panel = dwellCorrection + panel = dwellVoltageCorrection + + dialog = auxTempSensor1Sensor, "aux1 Thermistor Settings" + field = "Input channel", auxTempSensor1_adcChannel + field = "Pullup resistor", auxTempSensor1_bias_resistor, {auxTempSensor1_adcChannel != 0} + + field = "Lowest temperature", auxTempSensor1_tempC_1, {auxTempSensor1_adcChannel != 0} + field = "Resistance @ LT", auxTempSensor1_resistance_1, {auxTempSensor1_adcChannel != 0} + field = "" + field = "Middle temperature", auxTempSensor1_tempC_2, {auxTempSensor1_adcChannel != 0} + field = "Resistance @ MT", auxTempSensor1_resistance_2, {auxTempSensor1_adcChannel != 0} + field = "" + field = "Highest temperature", auxTempSensor1_tempC_3, {auxTempSensor1_adcChannel != 0} + field = "Resistance @ HT", auxTempSensor1_resistance_3, {auxTempSensor1_adcChannel != 0} + + dialog = auxTempSensor2Sensor, "aux2 Thermistor Settings" + field = "Input channel", auxTempSensor2_adcChannel + field = "Pullup resistor", auxTempSensor2_bias_resistor, {auxTempSensor2_adcChannel != 0} + + field = "Lowest temperature", auxTempSensor2_tempC_1, {auxTempSensor2_adcChannel != 0} + field = "Resistance @ LT", auxTempSensor2_resistance_1, {auxTempSensor2_adcChannel != 0} + field = "" + field = "Middle temperature", auxTempSensor2_tempC_2, {auxTempSensor2_adcChannel != 0} + field = "Resistance @ MT", auxTempSensor2_resistance_2, {auxTempSensor2_adcChannel != 0} + field = "" + field = "Highest temperature", auxTempSensor2_tempC_3, {auxTempSensor2_adcChannel != 0} + field = "Resistance @ HT", auxTempSensor2_resistance_3, {auxTempSensor2_adcChannel != 0} + + dialog = oilTempSensor, "Oil Temp Sensor Settings" + field = "Input channel", oilTempSensor_adcChannel + field = "Pullup resistor", oilTempSensor_bias_resistor, {oilTempSensor_adcChannel != 0} + + field = "Lowest temperature", oilTempSensor_tempC_1, {oilTempSensor_adcChannel != 0} + field = "Resistance @ LT", oilTempSensor_resistance_1, {oilTempSensor_adcChannel != 0} + field = "" + field = "Middle temperature", oilTempSensor_tempC_2, {oilTempSensor_adcChannel != 0} + field = "Resistance @ MT", oilTempSensor_resistance_2, {oilTempSensor_adcChannel != 0} + field = "" + field = "Highest temperature", oilTempSensor_tempC_3, {oilTempSensor_adcChannel != 0} + field = "Resistance @ HT", oilTempSensor_resistance_3, {oilTempSensor_adcChannel != 0} + + dialog = fuelTempSensor, "Fuel Temp Sensor Settings" + field = "Input channel", fuelTempSensor_adcChannel + field = "Pullup resistor", fuelTempSensor_bias_resistor, {fuelTempSensor_adcChannel != 0} + + field = "Lowest temperature", fuelTempSensor_tempC_1, {fuelTempSensor_adcChannel != 0} + field = "Resistance @ LT", fuelTempSensor_resistance_1, {fuelTempSensor_adcChannel != 0} + field = "" + field = "Middle temperature", fuelTempSensor_tempC_2, {fuelTempSensor_adcChannel != 0} + field = "Resistance @ MT", fuelTempSensor_resistance_2, {fuelTempSensor_adcChannel != 0} + field = "" + field = "Highest temperature", fuelTempSensor_tempC_3, {fuelTempSensor_adcChannel != 0} + field = "Resistance @ HT", fuelTempSensor_resistance_3, {fuelTempSensor_adcChannel != 0} + + dialog = ambientTempSensor, "Ambient Temp Sensor Settings" + field = "!Put this sensor before any turbocharger/supercharger" + field = "!near the air filter." + field = "Input channel", ambientTempSensor_adcChannel + field = "Pullup resistor", ambientTempSensor_bias_resistor, {ambientTempSensor_adcChannel != 0} + + field = "Lowest temperature", ambientTempSensor_tempC_1, {ambientTempSensor_adcChannel != 0} + field = "Resistance @ LT", ambientTempSensor_resistance_1, {ambientTempSensor_adcChannel != 0} + field = "" + field = "Middle temperature", ambientTempSensor_tempC_2, {ambientTempSensor_adcChannel != 0} + field = "Resistance @ MT", ambientTempSensor_resistance_2, {ambientTempSensor_adcChannel != 0} + field = "" + field = "Highest temperature", ambientTempSensor_tempC_3, {ambientTempSensor_adcChannel != 0} + field = "Resistance @ HT", ambientTempSensor_resistance_3, {ambientTempSensor_adcChannel != 0} + + dialog = compressorDischargeTemperature, "Compressor Discharge Temp Settings" + field = "!Put this sensor after the turbocharger/supercharger" + field = "!but before the intercooler." + field = "Input channel", compressorDischargeTemperature_adcChannel + field = "Pullup resistor", compressorDischargeTemperature_bias_resistor, {compressorDischargeTemperature_adcChannel != 0} + + field = "Lowest temperature", compressorDischargeTemperature_tempC_1, {compressorDischargeTemperature_adcChannel != 0} + field = "Resistance @ LT", compressorDischargeTemperature_resistance_1, {compressorDischargeTemperature_adcChannel != 0} + field = "" + field = "Middle temperature", compressorDischargeTemperature_tempC_2, {compressorDischargeTemperature_adcChannel != 0} + field = "Resistance @ MT", compressorDischargeTemperature_resistance_2, {compressorDischargeTemperature_adcChannel != 0} + field = "" + field = "Highest temperature", compressorDischargeTemperature_tempC_3, {compressorDischargeTemperature_adcChannel != 0} + field = "Resistance @ HT", compressorDischargeTemperature_resistance_3, {compressorDischargeTemperature_adcChannel != 0} + + dialog = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + + field = "Boost voltage", mc33_hvolt + + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake pedal switch", brakePedalPin + field = "Flex fuel sensor", flexSensorPin + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + field = "Throttle inlet pressure sensor", throttleInletPressureChannel + field = "Compressor discharge pressure sensor", compressorDischargePressureChannel + + dialog = fuelLevelDialog, "Fuel Level Sensor" + field = "Input channel", fuelLevelSensor + panel = fuelLevelCurve + +; +; allXXX sections allows a quick overview of used I/O in order to address conflicts mostly, not really to +; configure the features. +; + dialog = allPinsSensors, "Sensors" + field = "Throttle pedal Position Channel", throttlePedalPositionAdcChannel + field = "Throttle pedal Position #2", throttlePedalPositionSecondAdcChannel + field = "Primary input channel", triggerInputPins1 + field = "Secondary channel", triggerInputPins2 + field = "Cam Sync/VVT input", camInputs1 + field = "CLT ADC input", clt_adcChannel + field = "IAT ADC input", iat_adcChannel + field = "vBatt ADC input", vbattAdcChannel + field = "TPS1 ADC input", tps1_1AdcChannel + field = "TPS2 ADC input", tps2_1AdcChannel + field = "MAF ADC input", mafAdcChannel + field = "MAF 2 ADC input", maf2AdcChannel + field = "AFR ADC input", afr_hwChannel + field = "AFR 2 ADC input", afr_hwChannel2 + field = "Baro ADC input", baroSensor_hwChannel + field = "MAP ADC input", map_sensor_hwChannel + field = "Fuel Level input", fuelLevelSensor + field = "Vehicle Speed input", vehicleSpeedSensorInputPin + field = "Clutch Down input", clutchDownPin + field = "Clutch Up input", clutchUpPin + field = "Brake pedal input", brakePedalPin + field = "A/C Switch", acSwitch + field = "Aux Temperature #1", auxTempSensor1_adcChannel + field = "Aux Temperature #2", auxTempSensor2_adcChannel + field = "Aux Fast Analog", auxFastSensor1_adcChannel + + dialog = allTriggerDebug, "Trigger Debug" + field = "trigger 1 debug", triggerInputDebugPins1 + field = "trigger 2 debug", triggerInputDebugPins2 + field = "cam 1 debug", camInputsDebug1 + field = "cam 2 debug", camInputsDebug2 + field = "cam 3 debug", camInputsDebug3 + field = "cam 4 debug", camInputsDebug4 + + dialog = allPinsMC33, "MC33816" + field = "Chip Select", mc33816_cs + field = rstb, mc33816_rstb + field = flag0, mc33816_flag0 + field = mc33816_driven, mc33816_driven + field = mc33816spiDevice, mc33816spiDevice + field = hpfpValcePin, hpfpValvePin + + dialog = allPins1_1 + field = "trigger stimulator output #1", triggerSimulatorPins1 + field = "trigger stimulator output #2", triggerSimulatorPins2 + field = "tle6240_cs", tle6240_cs + field = "tle6240 SPI", tle6240spiDevice + + dialog = allPins1_2 + field = "Tachometer output", tachOutputPin + field = "O2 heater output", o2heaterPin + field = "Idle Solenoid Primary output", idle_solenoidPin + field = "Idle Solenoid Secondary output",secondSolenoidPin + field = "Idle Stepper Dir", idle_stepperDirectionPin + field = "Idle Stepper Step", idle_stepperStepPin + field = "Idle Stepper Enable", stepperEnablePin + field = "Fuel Pump output", fuelPumpPin + field = "SD CS Pin", sdCardCsPin + field = "MIL/Check Engine output", malfunctionIndicatorPin + field = "test557pin", test557pin + field = "Fan Pin", fanPin + field = "A/C Relay", acRelayPin + field = "Main Relay Pin", mainRelayPin + field = "Starter Relay Pin", starterRelayDisablePin + + dialog = allPins2_1 + field = "Injection Output 1", injectionPins1 + field = "Injection Output 2", injectionPins2 + field = "Injection Output 3", injectionPins3 + field = "Injection Output 4", injectionPins4 + field = "Injection Output 5 ", injectionPins5 + field = "Injection Output 6 ", injectionPins6 + field = "Injection Output 7 ", injectionPins7 + field = "Injection Output 8 ", injectionPins8 + field = "Injection Output 9 ", injectionPins9 + field = "Injection Output 10 ", injectionPins10 + field = "Injection Output 11 ", injectionPins11 + field = "Injection Output 12 ", injectionPins12 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + + + dialog = allPins2_2 + field = "Ignition Output 1", ignitionPins1 + field = "Ignition Output 2", ignitionPins2 + field = "Ignition Output 3", ignitionPins3 + field = "Ignition Output 4", ignitionPins4 + field = "Ignition Output 5", ignitionPins5 + field = "Ignition Output 6", ignitionPins6 + field = "Ignition Output 7", ignitionPins7 + field = "Ignition Output 8", ignitionPins8 + field = "Ignition Output 9", ignitionPins9 + field = "Ignition Output 10", ignitionPins10 + field = "Ignition Output 11", ignitionPins11 + field = "Ignition Output 12", ignitionPins12 + + dialog = allPins2_3 + field = "Debug Trigger Sync", debugTriggerSync + panel = allTriggerDebug + panel = allPinsMC33 + + dialog = allPins1_3 + field = "Aux ADC #1", auxAnalogInputs1 + field = "Aux ADC #2", auxAnalogInputs2 + field = "Aux ADC #3", auxAnalogInputs3 + field = "Aux ADC #4", auxAnalogInputs4 + field = "Aux ADC #5", auxAnalogInputs5 + field = "Aux ADC #6", auxAnalogInputs6 + field = "Aux ADC #7", auxAnalogInputs7 + field = "Aux ADC #8", auxAnalogInputs8 + field = "SPI1 MOSI", spi1mosiPin, { spi1mosiPin != 0 || is_enabled_spi_1 == 1} + field = "SPI1 MISO", spi1misoPin, { spi1misoPin != 0 || 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 = "LIS302DLCsPin", LIS302DLCsPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + + dialog = allPins3_1 + panel = allPinsSensors + + dialog = allPins3_2 + field = "VVT solenoid bank 1 intake", vvtPins1 + field = "VVT solenoid bank 1 exhaust", vvtPins2 + field = "VVT solenoid bank 2 intake", vvtPins3 + field = "VVT solenoid bank 2 exhaust", vvtPins4 + field = "Aux Valve #1", auxValves1 + field = "Aux Valve #2", auxValves2 + field = "TLE8888 Chip Select", tle8888_cs + field = "TLE 8888 spi", tle8888spiDevice + field = "L9779 Chip Select", l9779_cs + field = "AUX Serial TX", auxSerialTxPin + field = "AUX Serial RX", auxSerialRxPin + field = "Start/Stop Button", startStopButtonPin + field = "Upshift Pin", tcuUpshiftButtonPin + field = "Downshift Pin", tcuDownshiftButtonPin + + dialog = allPins3_1_and_2, "All IO 3/3", xAxis + panel = allPins3_1 + panel = allPins3_2 + + dialog = allPins1_1_and_2, "", xAxis + panel = allPins1_1 + panel = allPins1_2 + + dialog = allPins1, "All IO 1/3", xAxis + panel = allPins1_1_and_2 + panel = allPins1_3 + + dialog = allPins2_1_and_2, "", xAxis + panel = allPins2_1 + panel = allPins2_2 + + dialog = allPins2, "All IO 2/3", xAxis + panel = allPins2_1_and_2 + panel = allPins2_3 + + dialog = clt_thermistor, "CLT sensor" + field = "Input channel", clt_adcChannel + field = "Pullup resistor", clt_bias_resistor, {clt_adcChannel != 0} + + settingSelector = "Common CLT Sensors" + settingOption = "GM CLT", clt_tempC_1=0,clt_resistance_1=9240,clt_tempC_2=40,clt_resistance_2=1459,clt_tempC_3=100,clt_resistance_3=177,useLinearCltSensor=0 + settingOption = "Miata NA", clt_tempC_1=-20,clt_resistance_1=16150,clt_tempC_2=40,clt_resistance_2=1150,clt_tempC_3=80,clt_resistance_3=330,useLinearCltSensor=0 + settingOption = "Miata NB", clt_tempC_1=-10,clt_resistance_1=9000,clt_tempC_2=20,clt_resistance_2=2500,clt_tempC_3=80,clt_resistance_3=320,useLinearCltSensor=0 + settingOption = "Bosch Various", clt_tempC_1=0,clt_resistance_1=5896,clt_tempC_2=50,clt_resistance_2=834,clt_tempC_3=100,clt_resistance_3=187,useLinearCltSensor=0 + + field = "" + field = "Lowest temperature", clt_tempC_1, {clt_adcChannel != 0} + field = "Resistance @ LT", clt_resistance_1, {clt_adcChannel != 0} + field = "" + field = "Middle temperature", clt_tempC_2, {clt_adcChannel != 0} + field = "Resistance @ MT", clt_resistance_2, {clt_adcChannel != 0} + field = "" + field = "Highest temperature", clt_tempC_3, {clt_adcChannel != 0} + field = "Resistance @ HT", clt_resistance_3, {clt_adcChannel != 0} + field = "" + field = "Linear characteristic", useLinearCltSensor, {clt_adcChannel != 0} + + dialog = cltGauges + gauge = CLTGauge + gauge = rawCltGauge + + dialog = cltSensor, "CLT Sensor", border + panel = clt_thermistor, West + panel = cltGauges, East + + dialog = iat_thermistor, "IAT sensor" + field = "Input channel", iat_adcChannel + field = "Pullup resistor", iat_bias_resistor, {iat_adcChannel != 0} + + settingSelector = "Common IAT Sensors", {iat_adcChannel != 0} + settingOption = "GM IAT", iat_tempC_1=8.9,iat_resistance_1=7000,iat_tempC_2=30.6,iat_resistance_2=1930,iat_tempC_3=63.3,iat_resistance_3=560,useLinearIatSensor=0 + settingOption = "Miata NA/NB", iat_tempC_1=-20,iat_resistance_1=16150,iat_tempC_2=40,iat_resistance_2=1150,iat_tempC_3=80,iat_resistance_3=330,useLinearIatSensor=0 + settingOption = "Miata MSM IAT2", iat_tempC_1=0,iat_resistance_1=112000,iat_tempC_2=40,iat_resistance_2=17000,iat_tempC_3=60,iat_resistance_3=8000,useLinearIatSensor=0 + settingOption = "Bosch Various", iat_tempC_1=-10,iat_resistance_1=9397,iat_tempC_2=30,iat_resistance_2=1707,iat_tempC_3=70,iat_resistance_3=436,useLinearIatSensor=0 + + field = "" + field = "Lowest temperature", iat_tempC_1, {iat_adcChannel != 0} + field = "Resistance @ LT", iat_resistance_1, {iat_adcChannel != 0} + field = "" + field = "Middle temperature", iat_tempC_2, {iat_adcChannel != 0} + field = "Resistance @ MT", iat_resistance_2, {iat_adcChannel != 0} + field = "" + field = "Highest temperature", iat_tempC_3, {iat_adcChannel != 0} + field = "Resistance @ HT", iat_resistance_3, {iat_adcChannel != 0} + field = "" + field = "Linear characteristic", useLinearIatSensor, {iat_adcChannel != 0} + + dialog = iatGauges + gauge = IATGauge + gauge = rawIatGauge + + dialog = iatSensor, "IAT Sensor", border + panel = iat_thermistor, West + panel = iatGauges, East + + dialog = oilp_settings, "Oil Pressure Sensor" + field = "Oil Pressure ADC input", oilPressure_hwChannel + field = "low voltage", oilPressure_v1, {oilPressure_hwChannel != 0} + field = "low pressure", oilPressure_value1, {oilPressure_hwChannel != 0} + field = "high voltage", oilPressure_v2, {oilPressure_hwChannel != 0} + field = "high pressure", oilPressure_value2, {oilPressure_hwChannel != 0} + + dialog = oilPressureGauges + gauge = OilPressGauge + gauge = rawOilPressureGauge + + dialog = oilPressureSensor, "", border + panel = oilp_settings, West + panel = oilPressureGauges, East + + dialog = fuelp_settings, "Fuel Pressure Sensor" + field = "Fuel low pressure ADC input", lowPressureFuel_hwChannel + field = "low voltage", lowPressureFuel_v1, {lowPressureFuel_hwChannel != 0} + field = "low pressure", lowPressureFuel_value1, {lowPressureFuel_hwChannel != 0} + field = "high voltage", lowPressureFuel_v2, {lowPressureFuel_hwChannel != 0} + field = "high pressure", lowPressureFuel_value2, {lowPressureFuel_hwChannel != 0} + field = "sensor type", fuelPressureSensorMode, {lowPressureFuel_hwChannel != 0} + + field = "Fuel high pressure ADC input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "ADC input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "ADC input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP ADC input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro ADC input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0 || lps25BaroSensorScl != 0 } + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + field = "Use fixed baro corr from MAP", useFixedBaroCorrFromMap + + dialog = mapCurves, "MAP sampling", yAxis + field = "isMapAveragingEnabled", isMapAveragingEnabled + panel = map_samplingAngleCurve + panel = map_samplingWindowCurve + + dialog = mafSettings, "MAF sensor", yAxis + field = "MAF ADC input", mafAdcChannel + field = "MAF 2 ADC input", maf2AdcChannel + + dialog = egoSettings_sensor, "EGO sensor" + settingSelector = "Common O2 Controllers" + settingOption = "BSPX", afr_v1=0,afr_v2=5,afr_value1=9,afr_value2=19,egoValueShift=0 + settingOption = "Innovate", afr_v1=0,afr_v2=5,afr_value1=7.35,afr_value2=22.39,egoValueShift=0 + settingOption = "14Point7", afr_v1=0,afr_v2=5,afr_value1=9.996,afr_value2=19.992,egoValueShift=0 + settingOption = "PLX", afr_v1=0,afr_v2=5,afr_value1=10,afr_value2=20,egoValueShift=0 + + field = "Low voltage", afr_v1 + field = "Low AFR", afr_value1 + field = "High voltage", afr_v2 + field = "High AFR", afr_value2 + field = "Correction", egoValueShift + + dialog = egoSettings_IO1, "EGO Sensor 1 I/O" + field = "Input channel", afr_hwChannel + field = "Heater output", o2heaterPin + + dialog = egoSettings_IO2, "EGO Sensor 2 I/O" + field = "Input channel", afr_hwChannel2 + + dialog = egoSettings, "", yAxis + field = "Enable CAN Wideband", enableAemXSeries, { canReadEnabled } + field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } + panel = egoSettings_IO1 + panel = egoSettings_IO2, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + +; Engine->EGT inputs + dialog = egtInputs, "EGT inputs" + field = "SPI", max31855spiDevice + field = "CS #1", max31855_cs1 + field = "CS #2", max31855_cs2 + field = "CS #3", max31855_cs3 + field = "CS #4", max31855_cs4 + field = "CS #5", max31855_cs5 + field = "CS #6", max31855_cs6 + field = "CS #7", max31855_cs7 + field = "CS #8", max31855_cs8 + +; Engine->idle Settings + dialog = idleSolenoid, "Solenoid" + field = "Idle Solenoid Primary output", idle_solenoidPin, { idle_solenoidPin != 0 || !useStepperIdle } + field = "Idle Solenoid Secondary output", secondSolenoidPin, { idle_solenoidPin != 0 || (!useStepperIdle && isDoubleSolenoidIdle ) } + field = "Idle Solenoid output(s) Mode", idle_solenoidPinMode, !useStepperIdle + field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle + + dialog = etbHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", etbIo1_directionPin1 + field = "No1 Direction #2", etbIo1_directionPin2 + field = "No1 Control", etbIo1_controlPin + field = "No1 Disable", etbIo1_disablePin + + dialog = etbHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", etbIo2_directionPin1 + field = "No2 Direction #2", etbIo2_directionPin2 + field = "No2 Control", etbIo2_controlPin + field = "No2 Disable", etbIo2_disablePin + + dialog = etbHbridgeHardware, "ETB H-Bridge Hardware" + field = "Two-wire mode", etb_use_two_wires + panel = etbHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = etbHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C target adder", acIdleRpmBump + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Extra idle air if throttle pressed", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "Override Idle VE table load axis", idleVeOverrideMode, { useSeparateVeForIdle == 1 } + field = "Use idle tables for cranking taper", useSeparateIdleTablesForCrankingTaper + field = "Use coasting idle table", useIacTableForCoasting + + dialog = idleSettings, "", yAxis + field = "Idle control mode", idleMode + + field = "! Solenoid idle control is disabled at zero RPM" + +; gating applies both to open loop and closed loop! + panel = idleGating +; closed loop mode is an addition on top of open loop, so idleOpenLoop stays open even when closed loop is selected + panel = idleOpenLoop + panel = idlePidSettings, { idleMode == 0 } + panel = idleExtra + + dialog = idleTimingPidCorrDialog, "", yAxis + field = "" + field = "Enable closed loop idle ignition timing", useIdleTimingPidControl + field = "" + field = "#Gain is in degrees advance per rpm away from target" + field = "#A good starting point is 0.1 = 10 deg per 100 rpm" + field = "Proportional gain", idleTimingPid_pFactor, {useIdleTimingPidControl == 1} + field = "Derivative gain", idleTimingPid_dFactor, {useIdleTimingPidControl == 1} + field = "" + field = "Min adjustment (retard)", idleTimingPid_minValue, {useIdleTimingPidControl == 1} + field = "Max adjustment (advance)", idleTimingPid_maxValue, {useIdleTimingPidControl == 1} + field = "" + field = "#Use debug mode 'Timing' to view idle timing adjustment" + +; Engine->Fan Settings + dialog = fan1Settings, "Fan 1" + field = "Output", fanPin + field = "Output mode", fanPinMode + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C RPM adder", acIdleRpmBump + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + + dialog = startStopDialog, "Starter Control" + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = speedoSettings, "Speedometer output" + field = "Output", speedometerOutputPin + field = "Pulse per km", speedometerPulsePerKm, { speedometerOutputPin } + + dialog = outputsDialogLeft + panel = mainRelayDialog + panel = fuelPumpDialog + panel = tachSettings + panel = speedoSettings + panel = startStopDialog + panel = starterRelayDialog + panel = malfunctionDialog + + dialog = outputsDialog, "Outputs", border + panel = outputsDialogLeft, West + panel = fanSetting, Center + + dialog = softwareKnockCfg, "Sense" + field = "Enable", enableSoftwareKnock + field = "Cylinder Bore", cylinderBore + field = "Knock filter frequency", knockBandCustom, {enableSoftwareKnock} + field = "knockDetectionWindowStart",knockDetectionWindowStart, {enableSoftwareKnock} + field = "knockSamplingDuration", knockSamplingDuration, {enableSoftwareKnock} + + field = "" + field = "Select the nearest sensor for each cylinder" + field = "Cylinder 1", knockBankCyl1, {enableSoftwareKnock} + field = "Cylinder 2", knockBankCyl2, {enableSoftwareKnock && cylindersCount >= 2} + field = "Cylinder 3", knockBankCyl3, {enableSoftwareKnock && cylindersCount >= 3} + field = "Cylinder 4", knockBankCyl4, {enableSoftwareKnock && cylindersCount >= 4} + field = "Cylinder 5", knockBankCyl5, {enableSoftwareKnock && cylindersCount >= 5} + field = "Cylinder 6", knockBankCyl6, {enableSoftwareKnock && cylindersCount >= 6} + field = "Cylinder 7", knockBankCyl7, {enableSoftwareKnock && cylindersCount >= 7} + field = "Cylinder 8", knockBankCyl8, {enableSoftwareKnock && cylindersCount >= 8} + field = "Cylinder 9", knockBankCyl9, {enableSoftwareKnock && cylindersCount >= 9} + field = "Cylinder 10", knockBankCyl10, {enableSoftwareKnock && cylindersCount >= 10} + field = "Cylinder 11", knockBankCyl11, {enableSoftwareKnock && cylindersCount >= 11} + field = "Cylinder 12", knockBankCyl12, {enableSoftwareKnock && cylindersCount >= 12} + + dialog = softwareKnockResponseCfg, "Response" + field = knockRetardAggression, knockRetardAggression + field = knockRetardReapplyRate, knockRetardReapplyRate + + dialog = softwareKnockLeft, "" + panel = softwareKnockCfg + panel = softwareKnockResponseCfg + + dialog = softwareKnock, "Software Knock", border + panel = softwareKnockLeft, West + panel = knockThresholdCurve, Center + + 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} + + field = "SPI4 Enable", is_enabled_spi_4 + field = "SPI4 MOSI", spi4mosiPin, {is_enabled_spi_4 == 1} + field = "SPI4 MISO", spi4misoPin, {is_enabled_spi_4 == 1} + field = "SPI4 SCK", spi4sckPin, {is_enabled_spi_4 == 1} + + field = "SPI5 Enable", is_enabled_spi_5 + field = "SPI5 MOSI", spi5mosiPin, {is_enabled_spi_5 == 1} + field = "SPI5 MISO", spi5misoPin, {is_enabled_spi_5 == 1} + field = "SPI5 SCK", spi5sckPin, {is_enabled_spi_5 == 1} + + field = "SPI6 Enable", is_enabled_spi_6 + field = "SPI6 MOSI", spi6mosiPin, {is_enabled_spi_6 == 1} + field = "SPI6 MISO", spi6misoPin, {is_enabled_spi_6 == 1} + field = "SPI6 SCK", spi6sckPin, {is_enabled_spi_6 == 1} + field = "LIS302DLCsPin", LIS302DLCsPin + + dialog = stftPartitioning, "Region Configuration" + field = "Idle region RPM", stft_maxIdleRegionRpm + field = "Overrun region load", stft_maxOverrunLoad + field = "Power region load", stft_minPowerLoad + + dialog = stftPartitionSettingsMain, "Main Region", xAxis + field = "Time const", stft_cellCfgs4_timeConstant + field = "Max add", stft_cellCfgs4_maxAdd + field = "Max remove", stft_cellCfgs4_maxRemove + + dialog = stftPartitionSettingsIdle, "Idle Region", xAxis + field = "Time const", stft_cellCfgs1_timeConstant + field = "Max add", stft_cellCfgs1_maxAdd + field = "Max remove", stft_cellCfgs1_maxRemove + + dialog = stftPartitionSettingsPower, "Power Region", xAxis + field = "Time const", stft_cellCfgs3_timeConstant + field = "Max add", stft_cellCfgs3_maxAdd + field = "Max remove", stft_cellCfgs3_maxRemove + + dialog = stftPartitionSettingsOverrun, "Overrun Region", xAxis + field = "Time const", stft_cellCfgs2_timeConstant + field = "Max add", stft_cellCfgs2_maxAdd + field = "Max remove", stft_cellCfgs2_maxRemove + + dialog = fuelClosedLoopDialog, "Closed loop fuel correction" + field = "Enabled", fuelClosedLoopCorrectionEnabled + + field = "Startup delay" stft_startupDelay, {fuelClosedLoopCorrectionEnabled == 1} + field = "Minimum CLT for correction", stft_minClt, {fuelClosedLoopCorrectionEnabled == 1} + field = "Minimum AFR for correction", stft_minAfr, {fuelClosedLoopCorrectionEnabled == 1} + field = "Maximum AFR for correction", stft_maxAfr, {fuelClosedLoopCorrectionEnabled == 1} + field = "Adjustment deadband", stft_deadband, {fuelClosedLoopCorrectionEnabled == 1} + field = "Ignore error magnitude", stftIgnoreErrorMagnitude, {fuelClosedLoopCorrectionEnabled == 1} + + panel = stftPartitioning, {fuelClosedLoopCorrectionEnabled == 1} + panel = stftPartitionSettingsMain, {fuelClosedLoopCorrectionEnabled == 1} + panel = stftPartitionSettingsIdle, {fuelClosedLoopCorrectionEnabled == 1} + panel = stftPartitionSettingsPower, {fuelClosedLoopCorrectionEnabled == 1} + panel = stftPartitionSettingsOverrun, {fuelClosedLoopCorrectionEnabled == 1} + + dialog = lambdaProtectionLeft, "" + field = "Enable lambda protection", lambdaProtectionEnable + field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" + panel = lambdaMaxDeviationTableTbl + + dialog = lambdaProtection, "Lambda Protection", border + panel = lambdaProtectionLeft, West + panel = lambdaProtectionRight, East + + dialog = vvtTargetBumping, "VVT Testing" + field = "Pressing the below buttons will move the respective cam's" + field = "target position for 2 seconds for testing and PID tuning" + field = "" + field = "Target bump amount", vvtBumpAmount + commandButton = "VVT target bump bank 1 intake", cmd_bump_vvt_target_1 + commandButton = "VVT target bump bank 1 exhaust", cmd_bump_vvt_target_2 + commandButton = "VVT target bump bank 2 intake", cmd_bump_vvt_target_3 + commandButton = "VVT target bump bank 2 exhaust", cmd_bump_vvt_target_4 + + dialog = vvtPidDialog0, "Configuration" + field = "Activation Delay", vvtActivationDelayMs + field = "Do not control below RPM", vvtControlMinRpm + field = "VVT solenoid bank 1 intake", vvtPins1 + field = "VVT solenoid bank 1 exhaust", vvtPins2 + field = "VVT solenoid bank 2 intake", vvtPins3 + field = "VVT solenoid bank 2 exhaust", vvtPins4 + field = "PWM frequency", vvtOutputFrequency, {vvtPins1 != 0 || vvtPins2 != 0} + field = "VVT solenoid intake cams control direction", invertVvtControlIntake, { vvtPins1 != 0 || vvtPins3 != 0 } + field = "VVT solenoid exhaust cams control direction", invertVvtControlExhaust, { vvtPins2 != 0 || vvtPins4 != 0 } + panel = vvtTargetBumping + + dialog = vvtPidDialog1, "Intake PID" + field = "offset", auxPid1_offset, {vvtPins1 != 0} + field = "P factor", auxPid1_pFactor, {vvtPins1 != 0} + field = "I factor", auxPid1_iFactor, {vvtPins1 != 0} + field = "D factor", auxPid1_dFactor, {vvtPins1 != 0} + field = "Min", auxPid1_minValue, {vvtPins1 != 0} + field = "Max", auxPid1_maxValue, {vvtPins1 != 0} + + dialog = vvtPidDialog2, "Exhaust PID" + field = "offset", auxPid2_offset, {vvtPins2 != 0} + field = "P factor", auxPid2_pFactor, {vvtPins2 != 0} + field = "I factor", auxPid2_iFactor, {vvtPins2 != 0} + field = "D factor", auxPid2_dFactor, {vvtPins2 != 0} + field = "Min", auxPid2_minValue, {vvtPins2 != 0} + field = "Max", auxPid2_maxValue, {vvtPins2 != 0} + + dialog = vvtPidDialog, "VVT Configuration & PID", border + panel = vvtPidDialog0, West + panel = vvtPidDialog1, Center + panel = vvtPidDialog2, East + +; Engine->Battery & Alternator + dialog = batteryDialog, "Battery Settings", yAxis + field = "vBatt ADC input", vbattAdcChannel + field = "Battery Input Divider Coefficient", vbattDividerCoeff + dialog = alternator, "Alternator Settings", yAxis + field = "Enabled", isAlternatorControlEnabled + field = "Target", targetVBatt, {isAlternatorControlEnabled == 1} + field = "Control output", alternatorControlPin, {isAlternatorControlEnabled == 1} + field = "Control outpur mode", alternatorControlPinMode, {isAlternatorControlEnabled == 1} + field = "PWM frequency", alternatorPwmFrequency, {isAlternatorControlEnabled == 1} + field = "A/C duty adder", acRelayAlternatorDutyAdder, {isAlternatorControlEnabled == 1} + field = "#PID control" + field = "offset", alternatorControl_offset, {isAlternatorControlEnabled == 1} + field = "P factor", alternatorControl_pFactor, {isAlternatorControlEnabled == 1} + field = "I factor", alternatorControl_iFactor, {isAlternatorControlEnabled == 1} + field = "D factor", alternatorControl_dFactor, {isAlternatorControlEnabled == 1} + field = "Min", alternatorControl_minValue, {isAlternatorControlEnabled == 1} + field = "Max", alternatorControl_maxValue, {isAlternatorControlEnabled == 1} + field = "#% duty = Pterm + Iterm + Dterm + offset%" + + dialog = energySystems, "Battery and Alternator Settings", yAxis + panel = batteryDialog + panel = alternator + + dialog = speedSensorAnalog, "Speed sensor" + field = "Input", vehicleSpeedSensorInputPin + field = "Filter parameter", vssFilterReciprocal, { vehicleSpeedSensorInputPin != 0 } + +; +; We prefer quantities that users can actually measure or inspect without math, so we have +; two separate natural settings here without one 'sensor tooth to wheel revolution' ratio +; + field = "Wheel revolutions per kilometer", driveWheelRevPerKm + field = "Speed sensor gear ratio", vssGearRatio, { vehicleSpeedSensorInputPin != 0 } + field = "Speed sensor tooth count", vssToothCount, { vehicleSpeedSensorInputPin != 0 } + + dialog = speedSensorCan, "CAN Vehicle Speed" + field = "Enable CAN VSS", enableCanVss, { canReadEnabled } + field = "CAN VSS type", canVssNbcType, { enableCanVss } + field = "CAN VSS scaling", canVssScaling, { canReadEnabled } + + dialog = speedSensorLeft, "", yAxis + panel = speedSensorAnalog, { enableCanVss == 0 } + panel = speedSensorCan + + dialog = gearDetection, "Gear Detection" + field = "Wheel revolutions per kilometer", driveWheelRevPerKm + field = "Final drive ratio", finalGearRatio + field = "" + field = "Forward gear count", totalGearsCount + field = "" + field = "1st gear", gearRatio1, { totalGearsCount >= 1 } + field = "2nd gear", gearRatio2, { totalGearsCount >= 2 } + field = "3rd gear", gearRatio3, { totalGearsCount >= 3 } + field = "4th gear", gearRatio4, { totalGearsCount >= 4 } + field = "5th gear", gearRatio5, { totalGearsCount >= 5 } + field = "6th gear", gearRatio6, { totalGearsCount >= 6 } + field = "7th gear", gearRatio7, { totalGearsCount >= 7 } + field = "8th gear", gearRatio8, { totalGearsCount >= 8 } + + dialog = speedSensor, "Speed sensor", xAxis + panel = speedSensorLeft + gauge = VSSGauge + panel = gearDetection + +; Board->Connection + dialog = tsPort, "Calibration Secondary Serial" + field = "tunerStudioSerialSpeed", tunerStudioSerialSpeed + field = "TX pin", binarySerialTxPin + field = "RX pin", binarySerialRxPin + + dialog = canHw1, "Primary CAN" + field = "Verbose Can", verboseCan + field = "Bitrate", canBaudRate + field = "Allow OpenBLT", canOpenBLT + + dialog = canHw2, "Secondary CAN" + field = "Verbose Can2", verboseCan2 + field = "Bitrate", can2BaudRate + field = "Allow OpenBLT", can2OpenBLT + + dialog = canBus, "CAN Bus" + field = "CAN read enabled", canReadEnabled + field = "CAN write enabled", canWriteEnabled + field = "CAN dash type", canNbcType + field = "inertia measurement unit", imuType + field = "Enable FOME CAN broadcast", enableVerboseCanTx + field = verboseIsoTp, verboseIsoTp + field = "FOME CAN data bus", canBroadcastUseChannelTwo + field = "FOME CAN data base address", verboseCanBaseAddress + field = "FOME CAN data address type", rusefiVerbose29b + field = "FOME CAN data period", canSleepPeriodMs + + dialog = canBus2, "Secondary CAN Bus" + + dialog = canBusMain, "CAN Bus Communication", yAxis + panel = canBus + + panel = canHw1 + + dialog = auxSerial, "AUX Sensor Serial" + field = "RX pin", auxSerialRxPin + field = "TX pin", auxSerialTxPin + field = "Serial Baud Rate", auxSerialSpeed + + dialog = sdCard, "SD Card Logger" + field = "#FOME logs to SD when powered without USB connected" + field = "#FOME connects SD to your PC when powered by USB" + field = "Enable SD Card", isSdCardEnabled + field = "SD logger rate", sdCardLogFrequency + field = "SD logger mode", sdTriggerLog + + dialog = tle8888, "TLE8888", yAxis + field = "TLE8888 Chip Select", tle8888_cs + field = "TLE8888 SPI", tle8888spiDevice + field = "Mode", tle8888mode + field = "useTLE8888 cranking reset hack", useTLE8888_cranking_hack + field = "useTLE8888 stepper", useTLE8888_stepper + commandButton = "Reinit", cmd_tle8888_init + field = "L9779 SPI", tle8888spiDevice + + dialog = connection, "", yAxis + field = "uartConsoleSerialSpeed", uartConsoleSerialSpeed + panel = auxSerial + + dialog = monitoringSettings, "FOME Console Settings" + field = "Sensor Sniffer", sensorChartMode + field = " Threshold", sensorSnifferRpmThreshold + field = "Engine Sniffer Threshold", engineSnifferRpmThreshold + + dialog = generalSettings, "Fuel" + field = "!https://wiki.fome.tech/r/fuel" + field = "Fuel strategy", fuelAlgorithm + + dialog = debugging, "Debug" + field = "!https://wiki.fome.tech/r/debugmode" + field = "Debug mode", debugMode + + dialog = dutyCycleLimiting, "Injector Duty Cycle Limiter" + field = "Instantaneous injector duty cycle limit", maxInjectorDutyInstant, {isInjectionEnabled} + field = "Sustained injector duty cycle limit", maxInjectorDutySustained, {isInjectionEnabled} + field = "Sustained injector duty cycle delay", maxInjectorDutySustainedTimeout, {isInjectionEnabled} + + dialog = limitsSettings, "Limits" + field = "Cut fuel on RPM limit", cutFuelOnHardLimit + field = "Cut spark on RPM limit", cutSparkOnHardLimit + field = "Use CLT-based RPM limit curve", useCltBasedRpmLimit, { cutFuelOnHardLimit || cutSparkOnHardLimit } + field = "RPM hard limit", rpmHardLimit, { (cutFuelOnHardLimit || cutSparkOnHardLimit) && !useCltBasedRpmLimit } + field = "Hard limit hysteresis", rpmHardLimitHyst, { cutFuelOnHardLimit || cutSparkOnHardLimit } + field = "Boost cut pressure", boostCutPressure + field = "Minimum oil pressure after start", minOilPressureAfterStart + panel = dutyCycleLimiting + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = etbLimits + + dialog = limitsAndFallbackCenter, "CLT-based RPM Limit" + panel = cltRevLimitCurve + + dialog = limitsAndFallback, "Limits and fallbacks", border + panel = limitsAndFallbackLeft, West + panel = limitsAndFallbackCenter, Center, { (cutFuelOnHardLimit || cutSparkOnHardLimit) && useCltBasedRpmLimit } + +; Engine->Base Engine Settings + dialog = engineChars, "Base Engine Settings" + topicHelp = "baseHelp" + panel = baseEngineConfig + panel = engineMetadata + panel = generalSettings + panel = debugging + + dialog = crankingFuel, "Fuel" + field = "Injection mode", crankingInjectionMode + field = "Fuel Source For Cranking", useRunningMathForCranking + field = "Base fuel mass", cranking_baseFuel, {useRunningMathForCranking == 0} + + dialog = crankingIAC, "Idle air valve" + field = "Cranking base IAC position", crankingIACposition + field = "After cranking IAC taper duration",afterCrankingIACtaperDuration + field = "Override cranking IAC CLT multiplier", overrideCrankingIacSetting + field = "Use cranking taper duration multiplier", useCrankingIdleTaperTableSetting + + dialog = crankingIgnition, "Ignition" + field = "Timing Advance mode", useSeparateAdvanceForCranking + field = "Fixed cranking advance", crankingTimingAngle, {useSeparateAdvanceForCranking == 0} + field = "Fixed Cranking Dwell", ignitionDwellForCrankingMs + + dialog = postCrankingEnrichment, "After start enrichment" + field = "Post-Cranking factor", postCrankingFactor + field = "Duration", postCrankingDurationSec + + dialog = primingFuelPulsePanel, "Priming fuel pulse" + field = "Priming delay", primingDelay + panel = primingPulse + + dialog = crankingAdv, "Advanced" + field = "Enable flood clear", isCylinderCleanupEnabled + field = "Enable faster engine spin-up", isFasterEngineSpinUpEnabled + field = "Use Advance Corrections for cranking", useAdvanceCorrectionsForCranking + field = "Use Flex Fuel cranking table", flexCranking, { flexSensorPin != 0 } + +; Cranking->Cranking Settings + dialog = crankingDialog, "Cranking Settings" + field = "Cranking RPM limit", cranking_rpm + panel = crankingFuel + panel = crankingIgnition + panel = crankingIAC + panel = crankingAdv + + dialog = TpsAccelPanel, "TPS" + field = "Set 'Debug Mode' to see detailed 'TPS acceleration enrichment' diagnostics" + field = "Length", tpsAccelLookback + field = "Accel Threshold", tpsAccelEnrichmentThreshold + field = "Decel Threshold", tpsDecelEnleanmentThreshold +; field = "Decel Multiplier", tpsDecelEnleanmentMultiplier + field = "#Accelerator Pump model:" + field = "Fraction Period", tpsAccelFractionPeriod + field = "Fraction Divisor", tpsAccelFractionDivisor + + dialog = WallWettingAccelPanel, "Wall Wetting (alpha version)" + field = "Wall fueling model type", complexWallModel + field = "evaporation time constant / tau", wwaeTau, { complexWallModel == 0 } + field = "added to wall coef / beta", wwaeBeta, { complexWallModel == 0 } + + +; Tuning->AccelEnrichment + dialog = AccelEnrich, "Accel/Decel Enrichment" + panel = TpsAccelPanel + panel = WallWettingAccelPanel + field = "No accel after RPM hard limit", noAccelAfterHardLimitPeriodSecs + + + dialog = wwTauCurves, "Wall wetting AE evaporation time" + field = "#Set a base evaporation time based on coolant temperature, and a multiplier based on MAP." + panel = wwTauCltCurve + panel = wwTauMapCurve + + dialog = wwBetaCurves, "Wall wetting AE impact fraction" + field = "#Set a base impact fraction based on coolant temperature, and a multiplier based on MAP." + panel = wwBetaCltCurve + panel = wwBetaMapCurve + + dialog = auxValvesIO, "Outputs" + field = "aux valve #1", auxValves1 + field = "aux valve #2", auxValves2 + + dialog = scriptSetting, "Setting" + field = "!Use FOME console for Lua script editing" + field = "Set number is not associated with the output number." + field = "Set number, only the cell number with some numbers." + field = "Name #1", scriptSettingName1 + field = "Setting #1", scriptSetting1 + field = "Name #2", scriptSettingName2 + field = "Setting #2", scriptSetting2 + field = "Name #3", scriptSettingName3 + field = "Setting #3", scriptSetting3 + field = "Name #4", scriptSettingName4 + field = "Setting #4", scriptSetting4 + field = "Name #5", scriptSettingName5 + field = "Setting #5", scriptSetting5 + field = "Name #6", scriptSettingName6 + field = "Setting #6", scriptSetting6 + + dialog = scriptSettingDialog, "Script Settings", border + panel = scriptSetting, East + + dialog = luaDigitalInputsLeftDialog + field = "Digital #1", luaDigitalInputPins1 + field = "Digital #2", luaDigitalInputPins2 + field = "Digital #3", luaDigitalInputPins3 + field = "Digital #4", luaDigitalInputPins4 + field = "Digital #5", luaDigitalInputPins5 + field = "Digital #6", luaDigitalInputPins6 + field = "Digital #7", luaDigitalInputPins7 + field = "Digital #8", luaDigitalInputPins8 + + dialog = luaDigitalInputsRightDialog + field = "Mode #1", luaDigitalInputPinModes1 + field = "Mode #2", luaDigitalInputPinModes2 + field = "Mode #3", luaDigitalInputPinModes3 + field = "Mode #4", luaDigitalInputPinModes4 + field = "Mode #5", luaDigitalInputPinModes5 + field = "Mode #6", luaDigitalInputPinModes6 + field = "Mode #7", luaDigitalInputPinModes7 + field = "Mode #8", luaDigitalInputPinModes8 + + dialog = luaDigitalInputsDialog, "Lua Digital Aux Inputs", border + panel = luaDigitalInputsLeftDialog, West + panel = luaDigitalInputsRightDialog, East + + dialog = auxInputsDialog, "Lua Analog Inputs" + field = "ADC #1", auxAnalogInputs1 + field = "ADC #2", auxAnalogInputs2 + field = "ADC #3", auxAnalogInputs3 + field = "ADC #4", auxAnalogInputs4 + field = "ADC #5", auxAnalogInputs5 + field = "ADC #6", auxAnalogInputs6 + field = "ADC #7", auxAnalogInputs7 + field = "ADC #8", auxAnalogInputs8 + + dialog = luaOutputs, "Lua Outputs" + field = "!Use FOME console for Lua script editing" + field = "#Call startPwm to initialize, then call" + field = "#setPwmDuty and setPwmFreq to vary duty/freq" + field = "#See https://wiki.fome.tech/r/lua for more info" + field = "output #0", luaOutputPins1 + field = "output #1", luaOutputPins2 + field = "output #2", luaOutputPins3 + field = "output #3", luaOutputPins4 + field = "output #4", luaOutputPins5 + field = "output #5", luaOutputPins6 + field = "output #6", luaOutputPins7 + field = "output #7", luaOutputPins8 + + dialog = transmissionPanel + field = "TCU Enabled" tcuEnabled + field = "Gear Controller" gearControllerMode, { tcuEnabled } + field = "Transmission Controller" transmissionControllerMode, { tcuEnabled } + + dialog = shiftSolenoidPanel, "Shift Solenoids" + field = "Solenoid 1 output" tcu_solenoid1, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 1 output Mode" tcu_solenoid_mode1, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 2 output" tcu_solenoid2, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 2 output Mode" tcu_solenoid_mode2, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 3 output" tcu_solenoid3, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 3 output Mode" tcu_solenoid_mode3, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 4 output" tcu_solenoid4, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 4 output Mode" tcu_solenoid_mode4, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 5 output" tcu_solenoid5, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 5 output Mode" tcu_solenoid_mode5, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 6 output" tcu_solenoid6, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 6 output Mode" tcu_solenoid_mode6, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "3-2 Solenoid output" tcu_32_solenoid_pin, { tcuEnabled && (transmissionControllerMode == 2) } + field = "3-2 Solenoid output mode" tcu_32_solenoid_pin_mode, { tcuEnabled && (transmissionControllerMode == 2) } + field = "3-2 Solenoid Frequency" tcu_32_solenoid_freq, { tcuEnabled && (transmissionControllerMode == 2) } + + dialog = otherSolenoidPanel, "Other Solenoids" + field = "TCC On/Off Solenoid Pin" tcu_tcc_onoff_solenoid, { tcuEnabled && (transmissionControllerMode == 2) } + field = "TCC On/Off Solenoid Pin Mode" tcu_tcc_onoff_solenoid_mode, { tcuEnabled && (transmissionControllerMode == 2) } + field = "TCC PWM Solenoid Pin" tcu_tcc_pwm_solenoid, { tcuEnabled && (transmissionControllerMode == 2) } + field = "TCC PWM Solenoid Pin Mode" tcu_tcc_pwm_solenoid_mode, { tcuEnabled && (transmissionControllerMode == 2) } + field = "TCC PWM Solenoid Frequency" tcu_tcc_pwm_solenoid_freq, { tcuEnabled && (transmissionControllerMode == 2) } + field = "Pressure Control Solenoid Pin" tcu_pc_solenoid_pin, { tcuEnabled && (transmissionControllerMode == 2) } + field = "Pressure Control Solenoid Pin Mode" tcu_pc_solenoid_pin_mode, { tcuEnabled && (transmissionControllerMode == 2) } + field = "Pressure Control Solenoid Frequency" tcu_pc_solenoid_freq, { tcuEnabled && (transmissionControllerMode == 2) } + + dialog = buttonShiftInputPanel, "Switch/Button Shift" + field = "Upshift Pin" tcuUpshiftButtonPin, { tcuEnabled && gearControllerMode == 1 } + field = "Upshift Pin Mode" tcuUpshiftButtonPinMode, { tcuEnabled && gearControllerMode == 1 } + field = "Downshift Pin" tcuDownshiftButtonPin, { tcuEnabled && gearControllerMode == 1 } + field = "Downshift Pin Mode" tcuDownshiftButtonPinMode, { tcuEnabled && gearControllerMode == 1 } + + dialog = inputSpeedSensorPanel, "Input Speed Sensor" + field = "Input Pin", tcuInputSpeedSensorPin + field = "Filter parameter", issFilterReciprocal, { tcuInputSpeedSensorPin != 0 } + field = "Tooth Count", tcuInputSpeedSensorTeeth + +dialog = tcuControls, "Transmission Settings" + panel = transmissionPanel + panel = shiftSolenoidPanel + panel = otherSolenoidPanel + + dialog = gearControls, "Gear Selection Settings" + panel = buttonShiftInputPanel + + dialog = inputSpeedSensor, "Input Speed Sensor" + panel = inputSpeedSensorPanel + + dialog = tccCurves, "TCC Lock/Unlock Speed" + panel = tccLockCurve + + dialog = pcPerGearDialog, "Line Pressure Per Gear Steady State" + panel = pcPerGearCurve + + dialog = pcPerShiftDialog, "Line Pressure Per Shift" + panel = pcPerShiftCurve + + dialog = 32Dialog, "3-2 Shift Solenoid Percent by Speed" + panel = 32Curve + +;Boost Open Loop + + dialog = boostDialog, "" + field = "Enable", isBoostControlEnabled + field = "Control Mode", boostType, { isBoostControlEnabled } + field = "Output", boostControlPin, { boostControlPin != 0 || isBoostControlEnabled } + field = "Output Mode", boostControlPinMode, { isBoostControlEnabled } + field = "Frequency", boostPwmFrequency, { isBoostControlEnabled } + field = "Safe duty cycle", boostControlSafeDutyCycle, { isBoostControlEnabled } + field = "No boost control below RPM", boostControlMinRpm, { isBoostControlEnabled } + field = "No boost control below TPS", boostControlMinTps, { isBoostControlEnabled } + field = "No boost control below MAP", boostControlMinMap, { isBoostControlEnabled } + + dialog = boostOpenLoopDialog, "", border + panel = boostTableTbl, Center + +;Boost Closed Loop + + dialog = boostPidDialog, "" + topicHelp = "boostPidHelp" + field = "Enable closed loop above", minimumBoostClosedLoopMap, { isBoostControlEnabled && boostType == 1 } + field = "P Gain", boostPid_pFactor, { isBoostControlEnabled && boostType == 1 } + field = "I Gain", boostPid_iFactor, { isBoostControlEnabled && boostType == 1 } + field = "D Gain", boostPid_dFactor, { isBoostControlEnabled && boostType == 1 } + field = "Min adjustment", boostPid_minValue, { isBoostControlEnabled && boostType == 1 } + field = "Max adjustment", boostPid_maxValue, { isBoostControlEnabled && boostType == 1 } + + dialog = boostTargetDialog, "", card + panel = boostTable2Tbl + + dialog = boostEtbPid, "" + field = "This PID is controlling how DC motor reaches desired position" + field = "" + field = "!This section is for advanced users only!" + field = "H-Bridge #1 function", etbFunctions1 + field = "H-Bridge #2 function", etbFunctions2 + field = "P gain", etbWastegatePid_pFactor, { isBoostControlEnabled } + field = "I gain", etbWastegatePid_iFactor, { isBoostControlEnabled } + field = "D gain", etbWastegatePid_dFactor, { isBoostControlEnabled } + field = "PID min", etbWastegatePid_minValue, { isBoostControlEnabled } + field = "PID max", etbWastegatePid_maxValue, { isBoostControlEnabled } + + help = boostPidHelp, "Boost Control PID" + text = "P = % per kPa error" + text = "I = % per kPa-seconds" + text = "D = % per kPa/sec" + text = "" + text = "If the boost error is 5kpa, and your P is set to 2, it will make a correction of 10%." + text = "If the boost error has been 5kPa for 2 second (10 kPa-seconds) and I is set to 0.1, it will make a correction of 1%" + text = "If the boost is changing at 10kPa/s and D is set to 0.5, it will make a correction of 5%." + text = "Those three terms are then added together, and limited by the PID min/max settings." + text = "" + text = "That is then added to the value from the open loop table, and sent to PWM the valve." + + help = veTableDialogHelp, "Volumetric Efficiency" + text = "Volumetric Efficiency is used to calculate fuel in Speed Density mode. VE incorporates pressure ratio as measured by MAP sensor in boost (no VE ever above 105%ish)" + webHelp = "https://wiki.fome.tech/r/fuel" + + help = stepperHbridgeHardwareHelp, "Stepper driven by Dual H-bridge" + text = "In case you are using two H-bridges driving 4-wire stepper. H-brigde control signals connected to MCU pins configured here." + + help = idleStepperHwHelp, "Stepper drivern by step motor driver IC" + text = "In case you have some special IC that drives your stepper. MCU to IC control signals (DIR/STEP/EN) configured here" + + help = stepperDirectDriveHardwareHelp, "Stepper driven by 4 Push-Pull/Pull outputs" + text = "In case you have 4/6-wire stepper driven by 4 ECU outputs in Push-Pull or Pull mode. Set ECU outputs used for each phase here." + + help = iatFuelCorrCurveHelp, "IAT Fuel Correction" + text = "Charge temperature estimation coefficient is the more proper way to handle IAT for fuel purposes" + text = "Open question who if anyone needs IAT Fuel Correction when" + + help = fuelHelp, "Fuel Control" + text = "More about fuel control on the web" + webHelp = "https://wiki.fome.tech/r/fuel" + + help = triggerHelp, "Trigger Settings" + text = "More about Trigger Settings on the web" + webHelp = "https://wiki.fome.tech/r/trigger" + + help = etbHelp, "ETB Control" + text = "More about electronic throttle body on the web" + webHelp = "https://wiki.fome.tech/r/etb" + + help = vrThresholdHelp, "VR Sensor Threshold" + text = "This is about FOME VR Discrete decoder" + webHelp = "https://wiki.fome.tech/r/vr" + + help = tpsTpsHelp, "Acceleration Enrichment" + text = "More about Tps To Tps acceleration on the web" + webHelp = "https://wiki.fome.tech/r/tpstps" + + help = baseHelp, "Base Settings Control" + text = "More about FOME on the web" + webHelp = "https://wiki.fome.tech" + + dialog = veTableDialog + topicHelp = "veTableDialogHelp" + panel = veTableTbl, South + + dialog = veTableDialog3D, "VE Table" + topicHelp = "veTableDialogHelp" + panel = veTableMap, South + + dialog = etbPidDialog, "PID settings" + field = "pFactor", etb_pFactor + field = "iFactor", etb_iFactor + field = "dFactor", etb_dFactor + field = "pid min", etb_minValue + field = "pid max", etb_maxValue + field = "iTermMin", etb_iTermMin + field = "iTermMax", etb_iTermMax + + dialog = etbIdleDialog, "ETB Idle" + field = "ETB idle maximum angle", etbIdleThrottleRange + + dialog = etbDialogLeft + field = "https://wiki.fome.tech/r/etb" + field = "Disable ETB if engine is stopped", disableEtbWhenEngineStopped + field = "Disable ETB Motor", pauseEtbControl + field = "H-Bridge #1 function", etbFunctions1 + field = "H-Bridge #2 function", etbFunctions2 + field = "PWM Frequency", etbFreq + field = "Minimum ETB position", etbMinimumPosition + field = "Maximum ETB position", etbMaximumPosition + field = "Jam detection integrator max", etbJamIntegratorLimit + field = "Jam detection timeout period", etbJamTimeout + field = "Duty Averaging Length", etbExpAverageLength + field = "Rate of change Averaging Length", etbRocExpAverageLength + ; we need the term about stepper idle in here, because there's a bug in TS that you can't have different visibility + ; criteria for the same panel when used in multiple places + ; todo: report bug to TS? + ; another todo: split panel into two panels so that we can enable/disable h-bridge #1 separately from h-bridge #2 + + dialog = etbAutotune, "PID Autotune" + field = "First step: calibrate TPS and hit 'Burn'" + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + field = "Second step" + commandButton = "Start ETB PID Autotune", cmd_etb_autotune, {(etb1configured == 1 || etb2configured == 1) && calibrationMode = 0} + commandButton = "Stop ETB PID Autotune", cmd_etb_autotune_stop, {(etb1configured == 1 || etb2configured == 1) && calibrationMode >= 3 && calibrationMode <= 5} + + field = "!Set debug mode below to 'ETB Autotune' to show more detail" + field = "Debug mode", debugMode + + dialog = etbDialogRight + panel = etbIdleDialog,{ etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbPidDialog, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbAutotune, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + + dialog = etbDialog, "Electronic Throttle Body", border + topicHelp = "etbHelp" + panel = etbDialogLeft, West + panel = etbDialogRight, East + + dialog = testMisc, "Misc" + commandButton = "Main Relay", cmd_test_main_relay + commandButton = "Fuel pump on", cmd_fuel_pump_on + commandButton = "Fuel pump off", cmd_fuel_pump_off + commandButton = "Cooling Fan", cmd_test_fan_1 + commandButton = "Cooling Fan 2", cmd_test_fan_2 + commandButton = "A/C Relay", cmd_test_ac_relay + commandButton = "Check Engine", cmd_test_check_engine_light + commandButton = "Idle Air Valve", cmd_test_idle_valve + commandButton = "Idle Second Air Valve", cmd_test_second_idle_valve + commandButton = "HPFP Valve", cmd_test_hpfp_valve + commandButton = "Starter Relay", cmd_test_starter_relay + commandButton = "Stop Engine", cmd_stop_engine + commandButton = "Write Config", cmd_write_config + commandButton = "Reset ECU", cmd_reset_controller + commandButton = "Reset to DFU", cmd_dfu + commandButton = "Reset to OpenBLT", cmd_openblt + commandButton = "No flash Burn mode", cmd_burn_without_flash + + ; bench test + dialog = ioTest, "Bench Test & Commands", xAxis + panel = testOther + panel = testLuaOut + panel = testMisc + + ; Injectors test + dialog = injTest_l, "" + commandButton = "Injector #1", cmd_test_inj1 + commandButton = "Injector #2", cmd_test_inj2, { cylindersCount >= 2 } + commandButton = "Injector #3", cmd_test_inj3, { cylindersCount >= 3 } + commandButton = "Injector #4", cmd_test_inj4, { cylindersCount >= 4 } + commandButton = "Injector #5", cmd_test_inj5, { cylindersCount >= 5 } + commandButton = "Injector #6", cmd_test_inj6, { cylindersCount >= 6 } + commandButton = "Injector #7", cmd_test_inj7, { cylindersCount >= 7 } + commandButton = "Injector #8", cmd_test_inj8, { cylindersCount >= 8 } + commandButton = "Injector #9", cmd_test_inj9, { cylindersCount >= 9 } + commandButton = "Injector #10", cmd_test_inj10, { cylindersCount >= 10 } + commandButton = "Injector #11", cmd_test_inj11, { cylindersCount >= 11 } + commandButton = "Injector #12", cmd_test_inj12, { cylindersCount >= 12 } + + dialog = injTest_c, "", yAxis + field = "Iterations", benchTestCount + field = "ON time", benchTestOnTime + field = "OFF time", benchTestOffTime + field = "" + commandButton = "Abort test", cmd_test_cancel + field = "" + field = "Use these buttons to run the" + field = "fuel pump for testing injectors" + commandButton = "Fuel pump on", cmd_fuel_pump_on + commandButton = "Fuel pump off", cmd_fuel_pump_off + gauge = testBenchIterGauge + + dialog = injTest_r, "Reference gauges", yAxis + gauge = VBattGauge,North + gauge = lowFuelPressureGauge + + dialog = injTest, "", xAxis + panel = injTest_l + panel = injTest_c + panel = injTest_r + + ; Ignition coils test + dialog = ignTest_l, "" + commandButton = "Spark #1", cmd_test_spk1 + commandButton = "Spark #2", cmd_test_spk2, { cylindersCount >= 2 } + commandButton = "Spark #3", cmd_test_spk3, { cylindersCount >= 3 } + commandButton = "Spark #4", cmd_test_spk4, { cylindersCount >= 4 } + commandButton = "Spark #5", cmd_test_spk5, { cylindersCount >= 5 } + commandButton = "Spark #6", cmd_test_spk6, { cylindersCount >= 6 } + commandButton = "Spark #7", cmd_test_spk7, { cylindersCount >= 7 } + commandButton = "Spark #8", cmd_test_spk8, { cylindersCount >= 8 } + commandButton = "Spark #9", cmd_test_spk9, { cylindersCount >= 9 } + commandButton = "Spark #10", cmd_test_spk10, { cylindersCount >= 10 } + commandButton = "Spark #11", cmd_test_spk11, { cylindersCount >= 11 } + commandButton = "Spark #12", cmd_test_spk12, { cylindersCount >= 12 } + + dialog = ignTest_c, "" + field = "Iterations", ignTestCount + field = "ON time", ignTestOnTime + field = "OFF time", ignTestOffTime + commandButton = "Abort test", cmd_test_cancel + gauge = testIgnIterGauge + + dialog = ignTest, "", xAxis + panel = ignTest_l + panel = ignTest_c + + dialog = widebandConfig, "CAN Wideband Config" + field = "!Please connect exactly one wideband controller before pressing these buttons!" + commandButton = "Update Firmware", cmd_wideband_firmare_update + field = "!These buttons will set ALL connected controllers to the specified index." + field = "!Disconnect all controllers you don't want to set!" + commandButton = "Set Index 0", cmd_set_wideband_idx_0 + commandButton = "Set Index 1", cmd_set_wideband_idx_1 + field = "Wideband CAN bus", widebandOnSecondBus + field = "Force O2 sensor heating", forceO2Heating + + dialog = engineTypeDialog, "Popular vehicles" + field = "!These buttons send a command to FOME to apply preset values" + field = "!Once you send the command, please reconnect to FOME in order to read fresh values" + + + + + + + + + commandButton = "Hellen 128 Merc 4 cyl", cmd_set_engine_type_hellen_128_merc_4 + commandButton = "Hellen 128 Merc 6 cyl", cmd_set_engine_type_hellen_128_merc_6 + commandButton = "Hellen 128 Merc v8", cmd_set_engine_type_hellen_128_merc_8 + + + commandButton = "Reset firmware settings", cmd_set_engine_type_default + +; Board->ECU stimulator + dialog = ecuStimulator, "ECU stimulator" + field = "Trigger Simulator", triggerSimulatorRpm + commandButton = "Enable internal trigger simulation", cmd_enable_self_stim + commandButton = "Disable trigger simulation", cmd_disable_self_stim + 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 = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} + ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + field = "Spark Skip Ratio", ALSSkipRatio, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "Tachometer Output", boardUseTachPullUp + field = "boardUseTempPullUp", boardUseTempPullUp + field = "boardUseCrankPullUp", boardUseCrankPullUp + field = "2-step input", boardUse2stepPullDown + field = "boardUseCamPullDown", boardUseCamPullDown + field = "boardUseCamVrPullUp", boardUseCamVrPullUp + field = "boardUseD2PullDown", boardUseD2PullDown + field = "boardUseD3PullDown", boardUseD3PullDown + field = "boardUseD4PullDown", boardUseD4PullDown + field = "boardUseD5PullDown", boardUseD5PullDown + field = "SENT input 1", sentInputPins1 + field = "SENT sentEtbType", sentEtbType + + dialog = harleyAcr, "Harley Automatic Compression Release" + field = "Pin", acrPin + field = "Pin 2", acrPin2 + field = "#ACR is disabled after the specified number" + field = "#of revolutions, plus degrees of engine phase" + field = "Disable after revolutions", acrRevolutions + field = "Disable after engine phase", acrDisablePhase + + dialog = parkingLot, "Experimental/Broken" + field = "I understand ECU Locking", yesUnderstandLocking + field = "Tune read/write password", tuneHidingKey, { yesUnderstandLocking == 1 } + field = "#System hacks" + field = "Global fuel correction", globalFuelCorrection + field = "MAP Averaging Logic @", mapAveragingSchedulingAtIndex + field = "Ford redundant TPS mode", useFordRedundantTps + field = "Secondary TPS maximum", tpsSecondaryMaximum, {useFordRedundantTps} + field = "Ford redundant PPS mode", useFordRedundantPps + field = "Secondary PPS maximum", ppsSecondaryMaximum, {useFordRedundantPps} + field = "ADC vRef voltage", adcVcc + field = "CLT sensor is pulldown instead of pullup", cltSensorPulldown + field = "IAT sensor is pulldown instead of pullup", iatSensorPulldown + field = "BRZ/FRS/GT86 pedal", allowIdenticalPps + field = "Artificial Misfire", artificialTestMisfire + field = "Instant Rpm Range", instantRpmRange + field = "Always use instant RPM", alwaysInstantRpm + field = "Never use instant RPM TODO", neverInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = harleyAcr + + help = helpGeneral, "FOME General Help" + webHelp = "https://rusefi.com/s/hellen128merc" + text = "" + + dialog = vrThreshold1, "VR 1 Threshold" + field = "Pin", vrThreshold1_pin + panel = vrThresholdCurve1 + + dialog = vrThreshold2, "VR 2 Threshold" + field = "Pin", vrThreshold2_pin + panel = vrThresholdCurve2 + + dialog = vrThreshold + topicHelp = "vrThresholdHelp" + panel = vrThreshold1 + panel = vrThreshold2 + + dialog = gppwm1left, "" + field = "Output", gppwm1_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm1_pwmFrequency, {gppwm1_pin != 0} + field = "" + field = "On above duty", gppwm1_onAboveDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Off below duty", gppwm1_offBelowDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Duty if error", gppwm1_dutyIfError, {gppwm1_pin != 0} + field = "" + field = "X Axis", gppwm1_rpmAxis, {gppwm1_pin != 0} + field = "Y Axis", gppwm1_loadAxis, {gppwm1_pin != 0} + field = "Note", gpPwmNote1 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm1, "General Purpose PWM 1", xAxis + panel = gppwm1left + panel = gppwm1Tbl, {gppwm1_pin != 0} + + dialog = gppwm2left, "" + field = "Output", gppwm2_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm2_pwmFrequency, {gppwm2_pin != 0} + field = "" + field = "On above duty", gppwm2_onAboveDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Off below duty", gppwm2_offBelowDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Duty if error", gppwm2_dutyIfError, {gppwm2_pin != 0} + field = "" + field = "X Axis", gppwm2_rpmAxis, {gppwm2_pin != 0} + field = "Y Axis", gppwm2_loadAxis, {gppwm2_pin != 0} + field = "Note", gpPwmNote2 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm2, "General Purpose PWM 2", xAxis + panel = gppwm2left + panel = gppwm2Tbl, {gppwm2_pin != 0} + + dialog = gppwm3left, "" + field = "Output", gppwm3_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm3_pwmFrequency, {gppwm3_pin != 0} + field = "" + field = "On above duty", gppwm3_onAboveDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Off below duty", gppwm3_offBelowDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Duty if error", gppwm3_dutyIfError, {gppwm3_pin != 0} + field = "" + field = "X Axis", gppwm3_rpmAxis, {gppwm3_pin != 0} + field = "Y Axis", gppwm3_loadAxis, {gppwm3_pin != 0} + field = "Note", gpPwmNote3 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm3, "General Purpose PWM 3", xAxis + panel = gppwm3left + panel = gppwm3Tbl, {gppwm3_pin != 0} + + dialog = gppwm4left, "" + field = "Output", gppwm4_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm4_pwmFrequency, {gppwm4_pin != 0} + field = "" + field = "On above duty", gppwm4_onAboveDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Off below duty", gppwm4_offBelowDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Duty if error", gppwm4_dutyIfError, {gppwm4_pin != 0} + field = "" + field = "X Axis", gppwm4_rpmAxis, {gppwm4_pin != 0} + field = "Y Axis", gppwm4_loadAxis, {gppwm4_pin != 0} + field = "Note", gpPwmNote4 + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm4, "General Purpose PWM 4", xAxis + panel = gppwm4left + panel = gppwm4Tbl, {gppwm4_pin != 0} + + dialog = hpfpCamDialog, "HPFP Cam Configuration" + field = "Number of lobes", hpfpCamLobes + field = "If using VVT, which cam the pump is driven from", hpfpCam, {hpfpCamLobes != 0} + field = "Angle of first lobe", hpfpPeakPos, {hpfpCamLobes != 0} + panel = hpfpLobeProfileCurve, {hpfpCamLobes != 0} + + dialog = hpfpPumpDialog, "HPFP Pump Configuration" + field = "Valve Pin", hpfpValvePin, {hpfpCamLobes != 0} + field = "Valve Pin Mode", hpfpValvePinMode, {hpfpCamLobes != 0} + field = "Valve peak current", mc33_hpfp_i_peak, {hpfpCamLobes != 0} + field = "Valve hold current", mc33_hpfp_i_hold, {hpfpCamLobes != 0} + field = "Valve hold off time", mc33_hpfp_i_hold_off, {hpfpCamLobes != 0} + field = "Valve maximum duration", mc33_hpfp_max_hold, {hpfpCamLobes != 0} + field = "Pump volume", hpfpPumpVolume, {hpfpCamLobes != 0} + field = "Minimum angle", hpfpMinAngle, {hpfpCamLobes != 0} + field = "Activation angle", hpfpActivationAngle, {hpfpCamLobes != 0} + field = "Target decay rate", hpfpTargetDecay, {hpfpCamLobes != 0} + field = "Proportional gain", hpfpPidP, {hpfpCamLobes != 0} + field = "Integral gain", hpfpPidI, {hpfpCamLobes != 0} + panel = hpfpDeadtimeCurve, {hpfpCamLobes != 0} + +[Tools] + ;addTool = toolName, PanelName + addTool = veTableGenerator, "VE Table Generator", veTableTbl +#if LAMBDA +#else + addTool = afrTableGenerator, "AFR Table Generator", afrTableTbl +#endif