; This is a TunerStudio project for the rusEFI.com engine management system ; ; This file has been generated by invoking gen_config.bat. ; The input files are ; tunerstudio.template.ini 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" ; ; pok ; ; 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 ; see https://github.com/rusefi/rusefi/issues/6170 issue ; settingGroup = connectivityProfile, "Protocol Profile" ; settingOption = CONN_SLOW, "Slower / Wireless" ; settingOption = CONN_FAST, "High Speed / USB" [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 signature = "rusEFI master.2024.03.27.at_start_f435.3281056407" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. signature= "rusEFI master.2024.03.27.at_start_f435.3281056407" ; 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; ;#if CONN_SLOW ;#else maxUnusedRuntimeRange = 1000; ;#endif ; Set default IP/port to our IP/port defaultIpAddress = localhost 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 ; Milliseconds delay after burn command. See https://sourceforge.net/p/rusefi/tickets/77/ pageActivationDelay = 500 ;e.g. put writeblocks off and add an interwrite delay writeBlocks = on interWriteDelay = 10 blockReadTimeout = 3000; Milliseconds general timeout ; delayAfterPortOpen = 500 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 #define gpio_list="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" #define switch_input_pin_e_list="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" #define output_pin_e_list="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_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16", "L215", "L216", "L217", "L218", "L219", "L220", "L221", "L222", "L223", "L224", "L225", "L226", "L227", "L228", "L229", "L230", "L231", "L232", "L233", "L234", "L235", "L236", "L237", "L238", "L239", "L240", "L241", "L242", "L243", "L244", "L245", "L246", "L247", "L248", "can0", "can1", "can2", "can3", "can4", "can5", "can6", "can7", "protected_0", "protected_1", "protected_2", "protected_3", "protected_4", "protected_5", "protected_6", "protected_7", "protected_8", "protected_9", "protected_10", "protected_11", "protected_12", "protected_13", "protected_14", "protected_15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "MC33810_0_OUT_0", "MC33810_0_OUT_1", "MC33810_0_OUT_2", "MC33810_0_OUT_3", "MC33810_0_GD_0", "MC33810_0_GD_1", "MC33810_0_GD_2", "MC33810_0_GD_3" #define brain_input_pin_e_list="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" #define adc_channel_e_list="Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" ; CONFIG_DEFINITION_START ; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 27 01:20:17 UTC 2024 pageSize = 22404 page = 1 engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",21="ET_BOSCH_QUICK_START",24="ET_TEST_WITH_BOSCH_QUICK_START",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",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",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",68="MERCEDES_M111",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",9="POLARIS_RZR",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",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",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",17="UNUSED17",47="UNUSED47",67="UNUSED67",93="UNUSED93",94="UNUSED94",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 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 compressionRatio = scalar, F32, 16, "CR", 1, 0, 0, 300, 1 wastegatePositionMin = scalar, U16, 20, "mv", 1, 0, 0, 5000, 0 wastegatePositionMax = scalar, U16, 22, "mv", 1, 0, 0, 5000, 0 idlePositionMin = scalar, U16, 24, "mv", 1, 0, 0, 5000, 0 idlePositionMax = scalar, U16, 26, "mv", 1, 0, 0, 5000, 0 mainRelayPin = bits, U16, 28, [0:8], $output_pin_e_list sdCardCsPin = bits, U16, 30, [0:7], $gpio_list canTxPin = bits, U16, 32, [0:7], $gpio_list canRxPin = bits, U16, 34, [0:7], $gpio_list etbExpAverageLength = scalar, U16, 36, "", 1, 0, 0, 32000, 0 launchFuelAdderPercent = scalar, S08, 38, "%", 1, 0, 0, 100, 0 etbJamTimeout = scalar, U08, 39, "sec", 0.02, 0, 0, 5, 2 tachOutputPin = bits, U16, 40, [0:8], $output_pin_e_list tachOutputPinMode = bits, U08, 42, [0:1], "default", "default inverted", "open collector", "open collector inverted" acIdleExtraOffset = scalar, U08, 43, "%", 1, 0, 0, 100, 0 manIdlePosition = scalar, F32, 44, "%", 1, 0, 0, 100, 0 multisparkMaxSparkingAngle = scalar, U08, 48, "deg", 1, 0, 0, 60, 0 multisparkMaxExtraSparkCount = scalar, U08, 49, "count", 1, 0, 1, 5, 0 vvtControlMinRpm = scalar, S16, 50, "RPM", 1, 0, 0, 3000, 0 injector_flow = scalar, F32, 52, "cm3/min", 1, 0, 0, 99999, 2 injector_battLagCorrBins = array, F32, 56, [8], "volts", 1, 0, 0, 20, 2 injector_battLagCorr = array, F32, 88, [8], "ms", 1, 0, 0, 50, 2 injectorSecondary_flow = scalar, F32, 120, "cm3/min", 1, 0, 0, 99999, 2 injectorSecondary_battLagCorrBins = array, F32, 124, [8], "volts", 1, 0, 0, 20, 2 injectorSecondary_battLagCorr = array, F32, 156, [8], "ms", 1, 0, 0, 50, 2 isForcedInduction = bits, U32, 188, [0:0], "false", "true" useFordRedundantTps = bits, U32, 188, [1:1], "false", "true" enableKline = bits, U32, 188, [2:2], "false", "true" overrideTriggerGaps = bits, U32, 188, [3:3], "false", "true" enableFan1WithAc = bits, U32, 188, [4:4], "false", "true" enableFan2WithAc = bits, U32, 188, [5:5], "false", "true" disableFan1WhenStopped = bits, U32, 188, [6:6], "false", "true" disableFan2WhenStopped = bits, U32, 188, [7:7], "false", "true" enableTrailingSparks = bits, U32, 188, [8:8], "false", "true" etb_use_two_wires = bits, U32, 188, [9:9], "false", "true" isDoubleSolenoidIdle = bits, U32, 188, [10:10], "false", "true" useEeprom = bits, U32, 188, [11:11], "false", "true" useCicPidForIdle = bits, U32, 188, [12:12], "false", "true" useTLE8888_cranking_hack = bits, U32, 188, [13:13], "false", "true" kickStartCranking = bits, U32, 188, [14:14], "false", "true" useSeparateIdleTablesForCrankingTaper = bits, U32, 188, [15:15], "false", "true" launchControlEnabled = bits, U32, 188, [16:16], "false", "true" doNotFilterTriggerEdgeNoise = bits, U32, 188, [17:17], "with filter", "without filter" antiLagEnabled = bits, U32, 188, [18:18], "false", "true" useRunningMathForCranking = bits, U32, 188, [19:19], "Fixed", "Fuel Map" displayLogicLevelsInEngineSniffer = bits, U32, 188, [20:20], "false", "true" useTLE8888_stepper = bits, U32, 188, [21:21], "false", "true" usescriptTableForCanSniffingFiltering = bits, U32, 188, [22:22], "false", "true" verboseCan = bits, U32, 188, [23:23], "Do not print", "Print all" artificialTestMisfire = bits, U32, 188, [24:24], "No thank you", "Danger Mode" useFordRedundantPps = bits, U32, 188, [25:25], "false", "true" cltSensorPulldown = bits, U32, 188, [26:26], "false", "true" iatSensorPulldown = bits, U32, 188, [27:27], "false", "true" allowIdenticalPps = bits, U32, 188, [28:28], "false", "true" overrideVvtTriggerGaps = bits, U32, 188, [29:29], "false", "true" useSpiImu = bits, U32, 188, [30:30], "false", "true" enableStagedInjection = bits, U32, 188, [31:31], "false", "true" tpsMin = scalar, S16, 192, "ADC", 1, 0, 0, 1023, 0 tpsMax = scalar, S16, 194, "ADC", 1, 0, 0, 1023, 0 tpsErrorDetectionTooLow = scalar, S16, 196, "%", 1, 0, -10, 0, 0 tpsErrorDetectionTooHigh = scalar, S16, 198, "%", 1, 0, 100, 110, 0 cranking_baseFuel = scalar, F32, 200, "mg", 1, 0, 0, 500, 1 cranking_rpm = scalar, S16, 204, "RPM", 1, 0, 0, 12000, 0 ignitionDwellForCrankingMs = scalar, F32, 208, "ms", 1, 0, 0, 200, 1 etbRevLimitStart = scalar, U16, 212, "rpm", 1, 0, 0, 15000, 0 etbRevLimitRange = scalar, U16, 214, "rpm", 1, 0, 0, 2000, 0 map_samplingAngleBins = array, F32, 216, [8], "", 1, 0, 0, 18000, 2 map_samplingAngle = array, F32, 248, [8], "deg", 1, 0, -720, 720, 2 map_samplingWindowBins = array, F32, 280, [8], "", 1, 0, 0, 18000, 2 map_samplingWindow = array, F32, 312, [8], "deg", 1, 0, -720, 720, 2 map_sensor_lowValue = scalar, F32, 344, "kpa", 1, 0, -400, 800, 2 map_sensor_highValue = scalar, F32, 348, "kpa", 1, 0, -400, 800, 2 map_sensor_type = bits, U08, 352, [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", "MPXH6300", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" map_sensor_hwChannel = bits, U08, 353, [0:5], $adc_channel_e_list clt_tempC_1 = scalar, F32, 356, "*C", 1, 0, -55, 200, 1 clt_tempC_2 = scalar, F32, 360, "*C", 1, 0, -55, 200, 1 clt_tempC_3 = scalar, F32, 364, "*C", 1, 0, -55, 200, 1 clt_resistance_1 = scalar, F32, 368, "Ohm", 1, 0, 0, 1000000, 1 clt_resistance_2 = scalar, F32, 372, "Ohm", 1, 0, 0, 1000000, 1 clt_resistance_3 = scalar, F32, 376, "Ohm", 1, 0, 0, 1000000, 1 clt_bias_resistor = scalar, F32, 380, "Ohm", 1, 0, 0, 200000, 1 clt_adcChannel = bits, U08, 384, [0:5], $adc_channel_e_list iat_tempC_1 = scalar, F32, 388, "*C", 1, 0, -55, 200, 1 iat_tempC_2 = scalar, F32, 392, "*C", 1, 0, -55, 200, 1 iat_tempC_3 = scalar, F32, 396, "*C", 1, 0, -55, 200, 1 iat_resistance_1 = scalar, F32, 400, "Ohm", 1, 0, 0, 1000000, 1 iat_resistance_2 = scalar, F32, 404, "Ohm", 1, 0, 0, 1000000, 1 iat_resistance_3 = scalar, F32, 408, "Ohm", 1, 0, 0, 1000000, 1 iat_bias_resistor = scalar, F32, 412, "Ohm", 1, 0, 0, 200000, 1 iat_adcChannel = bits, U08, 416, [0:5], $adc_channel_e_list launchTimingRetard = scalar, F32, 420, "deg", 1, 0, -180, 180, 2 hip9011PrescalerAndSDO = scalar, S32, 424, "integer", 1, 0, 0, 32, 0 knockBandCustom = scalar, F32, 428, "kHz", 1, 0, 0, 20, 2 displacement = scalar, U16, 432, "L", 0.001, 0, 0, 65, 3 triggerSimulatorRpm = scalar, U16, 434, "RPM", 1, 0, 0, 30000, 0 cylindersCount = scalar, U32, 436, "", 1, 0, 1, 12, 0 firingOrder = bits, U08, 440, [0:6], "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", "1-5-4-8-3-7-2-6", "fo33", "fo34", "fo35", "fo36", "fo37", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" justATempTest = scalar, U08, 441, "", 1, 0, 0, 100, 0 communityCommsLedPid = bits, U16, 442, [0:7], $gpio_list cylinderBore = scalar, F32, 444, "mm", 1, 0, 0, 20000, 2 fuelAlgorithm = bits, U08, 448, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua", "INVALID", "INVALID", "INVALID", "INVALID" ALSMaxTPS = scalar, U08, 449, "%", 1, 0, 0, 10, 0 crankingInjectionMode = bits, U08, 450, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" injectionMode = bits, U08, 451, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" boostControlMinRpm = scalar, U16, 452, "", 1, 0, 0, 25000, 0 boostControlMinTps = scalar, U08, 454, "", 1, 0, 0, 100, 0 boostControlMinMap = scalar, U08, 455, "", 1, 0, 0, 250, 0 crankingTimingAngle = scalar, F32, 456, "deg", 1, 0, -30, 30, 0 ignitionMode = bits, U08, 460, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" gapTrackingLengthOverride = scalar, S08, 461, "count", 1, 0, 1, 18, 0 maxIdleVss = scalar, U08, 462, "kph", 1, 0, 0, 100, 0 camDecoder2jzPrecision = scalar, U08, 463, "", 1, 0, 0, 100, 0 minOilPressureAfterStart = scalar, U16, 464, "kPa", 1, 0, 0, 1000, 0 timingMode = bits, U08, 466, [0:0], "dynamic", "fixed" canNbcType = bits, U08, 467, [0:4], "None", "FIAT", "VAG", "MAZDA RX8", "BMW E46", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "MS Simplified Broadcast", "type 14", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" fixedModeTiming = scalar, F32, 468, "RPM", 1, 0, 0, 3000, 0 globalTriggerAngleOffset = scalar, F32, 472, "deg btdc", 1, 0, -720, 720, 0 analogInputDividerCoefficient = scalar, F32, 476, "coef", 1, 0, 0.01, 10, 2 vbattDividerCoeff = scalar, F32, 480, "coef", 1, 0, 0.01, 99, 2 fanOnTemperature = scalar, F32, 484, "deg C", 1, 0, 0, 150, 0 fanOffTemperature = scalar, F32, 488, "deg C", 1, 0, 0, 150, 0 acrPin = bits, U16, 492, [0:8], $output_pin_e_list driveWheelRevPerKm = scalar, F32, 496, "revs/km", 1, 0, 100, 1000, 1 canSleepPeriodMs = scalar, S32, 500, "ms", 1, 0, 0, 1000, 2 byFirmwareVersion = scalar, S32, 504, "index", 1, 0, 0, 300, 0 tps1_1AdcChannel = bits, U08, 508, [0:5], $adc_channel_e_list vbattAdcChannel = bits, U08, 509, [0:5], $adc_channel_e_list fuelLevelSensor = bits, U08, 510, [0:5], $adc_channel_e_list tps2_1AdcChannel = bits, U08, 511, [0:5], $adc_channel_e_list idle_derivativeFilterLoss = scalar, F32, 512, "x", 1, 0, -1000000, 1000000, 4 trailingSparkAngle = scalar, S32, 516, "angle", 1, 0, 0, 720, 0 trigger_type = bits, U32, 520, [0:6], "custom toothed wheel", "Ford Aspire", "Dodge Neon 1995", "Miata NA", "INVALID", "GM_7X", "Daihatsu 3 cylinder", "Mazda SOHC 4", "60-2", "36-1", "Mercedes Two Segment", "Single Tooth", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Half Moon", "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 Cam", "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", "12crank/24cam", "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", "INVALID", "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", "3-0", "INVALID", "GM 24x 3 degree", "60-2-2 F3R", "Mitsu 4G63 Crank", "x2 30 Deg camshaft BTDC", "INVALID", "Mitsu 6G72 Cam", "6-0", "Daihatsu 4 cylinder", "trg82", "trg83", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" trigger_customTotalToothCount = scalar, S32, 524, "number", 1, 0, 1, 300, 0 trigger_customSkippedToothCount = scalar, S32, 528, "number", 1, 0, 0, 300, 0 airByRpmTaper = scalar, F32, 532, "%", 1, 0, 0, 50, 1 hip9011SpiDevice = bits, U08, 536, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" boostControlSafeDutyCycle = scalar, U08, 537, "%", 1, 0, 0, 100, 0 mafAdcChannel = bits, U08, 538, [0:5], $adc_channel_e_list acrRevolutions = scalar, U08, 539, "", 1, 0, 0, 100, 0 calibrationBirthday = scalar, S32, 540, "", 1, 0, 0, 100, 0 adcVcc = scalar, F32, 544, "volts", 1, 0, 0, 6, 3 mapCamDetectionAnglePosition = scalar, F32, 548, "Deg", 1, 0, 0, 360, 0 camInputs1 = bits, U16, 552, [0:7], $brain_input_pin_e_list camInputs2 = bits, U16, 554, [0:7], $brain_input_pin_e_list camInputs3 = bits, U16, 556, [0:7], $brain_input_pin_e_list camInputs4 = bits, U16, 558, [0:7], $brain_input_pin_e_list afr_hwChannel = bits, U08, 560, [0:5], $adc_channel_e_list afr_hwChannel2 = bits, U08, 561, [0:5], $adc_channel_e_list afr_v1 = scalar, F32, 564, "volts", 1, 0, 0, 10, 2 afr_value1 = scalar, F32, 568, "AFR", 1, 0, 0, 1000, 2 afr_v2 = scalar, F32, 572, "volts", 1, 0, 0, 10, 2 afr_value2 = scalar, F32, 576, "AFR", 1, 0, 0, 1000, 2 throttlePedalPositionAdcChannel = bits, U08, 580, [0:5], $adc_channel_e_list etbSplit = scalar, U08, 581, "%", 0.1, 0, 0, 20, 1 tle6240_cs = bits, U16, 582, [0:7], $gpio_list tle6240_csPinMode = bits, U08, 584, [0:1], "default", "default inverted", "open collector", "open collector inverted" mc33810_csPinMode = bits, U08, 585, [0:1], "default", "default inverted", "open collector", "open collector inverted" throttlePedalUpPin = bits, U16, 586, [0:7], $switch_input_pin_e_list baroSensor_lowValue = scalar, F32, 588, "kpa", 1, 0, -400, 800, 2 baroSensor_highValue = scalar, F32, 592, "kpa", 1, 0, -400, 800, 2 baroSensor_type = bits, U08, 596, [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", "MPXH6300", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" baroSensor_hwChannel = bits, U08, 597, [0:5], $adc_channel_e_list idle_solenoidFrequency = scalar, S32, 600, "Hz", 1, 0, 0, 3000, 0 idle_solenoidPin = bits, U16, 604, [0:8], $output_pin_e_list idle_stepperDirectionPin = bits, U16, 606, [0:7], $gpio_list idle_stepperStepPin = bits, U16, 608, [0:7], $gpio_list idle_solenoidPinMode = bits, U08, 610, [0:1], "default", "default inverted", "open collector", "open collector inverted" knockRetardAggression = scalar, U08, 612, "%", 0.1, 0, 0, 20, 1 knockRetardReapplyRate = scalar, U08, 613, "deg/s", 0.1, 0, 0, 10, 1 engineSyncCam = bits, S08, 614, [0:1], "Intake First Bank", "Exhaust First Bank", "Intake Second Bank", "Exhaust Second Bank" sdCardCsPinMode = bits, U08, 615, [0:1], "default", "default inverted", "open collector", "open collector inverted" vssGearRatio = scalar, U16, 616, "ratio", 0.001, 0, 0, 60, 3 vssFilterReciprocal = scalar, U08, 618, "", 1, 0, 3, 200 0 vssToothCount = scalar, U08, 619, "count", 1, 0, 1, 100, 0 idleVeOverrideMode = bits, U08, 620, [0:1], "None", "MAP", "TPS", "INVALID" l9779_cs = bits, U16, 622, [0:7], $gpio_list injectionPins1 = bits, U16, 624, [0:8], $output_pin_e_list injectionPins2 = bits, U16, 626, [0:8], $output_pin_e_list injectionPins3 = bits, U16, 628, [0:8], $output_pin_e_list injectionPins4 = bits, U16, 630, [0:8], $output_pin_e_list injectionPins5 = bits, U16, 632, [0:8], $output_pin_e_list injectionPins6 = bits, U16, 634, [0:8], $output_pin_e_list injectionPins7 = bits, U16, 636, [0:8], $output_pin_e_list injectionPins8 = bits, U16, 638, [0:8], $output_pin_e_list injectionPins9 = bits, U16, 640, [0:8], $output_pin_e_list injectionPins10 = bits, U16, 642, [0:8], $output_pin_e_list injectionPins11 = bits, U16, 644, [0:8], $output_pin_e_list injectionPins12 = bits, U16, 646, [0:8], $output_pin_e_list ignitionPins1 = bits, U16, 648, [0:8], $output_pin_e_list ignitionPins2 = bits, U16, 650, [0:8], $output_pin_e_list ignitionPins3 = bits, U16, 652, [0:8], $output_pin_e_list ignitionPins4 = bits, U16, 654, [0:8], $output_pin_e_list ignitionPins5 = bits, U16, 656, [0:8], $output_pin_e_list ignitionPins6 = bits, U16, 658, [0:8], $output_pin_e_list ignitionPins7 = bits, U16, 660, [0:8], $output_pin_e_list ignitionPins8 = bits, U16, 662, [0:8], $output_pin_e_list ignitionPins9 = bits, U16, 664, [0:8], $output_pin_e_list ignitionPins10 = bits, U16, 666, [0:8], $output_pin_e_list ignitionPins11 = bits, U16, 668, [0:8], $output_pin_e_list ignitionPins12 = bits, U16, 670, [0:8], $output_pin_e_list injectionPinMode = bits, U08, 672, [0:1], "default", "default inverted", "open collector", "open collector inverted" ignitionPinMode = bits, U08, 673, [0:1], "default", "default inverted", "open collector", "open collector inverted" fuelPumpPin = bits, U16, 674, [0:8], $output_pin_e_list fuelPumpPinMode = bits, U08, 676, [0:1], "default", "default inverted", "open collector", "open collector inverted" gapVvtTrackingLengthOverride = scalar, S08, 677, "count", 1, 0, 1, 4, 0 malfunctionIndicatorPin = bits, U16, 678, [0:8], $output_pin_e_list malfunctionIndicatorPinMode = bits, U08, 680, [0:1], "default", "default inverted", "open collector", "open collector inverted" fanPinMode = bits, U08, 681, [0:1], "default", "default inverted", "open collector", "open collector inverted" fanPin = bits, U16, 682, [0:8], $output_pin_e_list clutchDownPin = bits, U16, 684, [0:7], $switch_input_pin_e_list alternatorControlPin = bits, U16, 686, [0:8], $output_pin_e_list alternatorControlPinMode = bits, U08, 688, [0:1], "default", "default inverted", "open collector", "open collector inverted" clutchDownPinMode = bits, U08, 689, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" digitalPotentiometerChipSelect1 = bits, U16, 690, [0:7], $gpio_list digitalPotentiometerChipSelect2 = bits, U16, 692, [0:7], $gpio_list digitalPotentiometerChipSelect3 = bits, U16, 694, [0:7], $gpio_list digitalPotentiometerChipSelect4 = bits, U16, 696, [0:7], $gpio_list electronicThrottlePin1Mode = bits, U08, 698, [0:1], "default", "default inverted", "open collector", "open collector inverted" max31855spiDevice = bits, U08, 699, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" debugTriggerSync = bits, U16, 700, [0:7], $gpio_list digitalPotentiometerSpiDevice = bits, U08, 702, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" brakePedalPinMode = bits, U08, 703, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" mc33972_cs = bits, U16, 704, [0:7], $gpio_list mc33972_csPinMode = bits, U08, 706, [0:1], "default", "default inverted", "open collector", "open collector inverted" auxFastSensor1_adcChannel = bits, U08, 707, [0:5], $adc_channel_e_list tps1_2AdcChannel = bits, U08, 708, [0:5], $adc_channel_e_list tps2_2AdcChannel = bits, U08, 709, [0:5], $adc_channel_e_list throttlePedalPositionSecondAdcChannel = bits, U08, 710, [0:5], $adc_channel_e_list afr_type = bits, S08, 711, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom", "AEM", "INVALID" mc33810_cs1 = bits, U16, 712, [0:7], $gpio_list idle_antiwindupFreq = scalar, F32, 716, "x", 1, 0, -1000000, 1000000, 4 triggerInputPins1 = bits, U16, 720, [0:7], $brain_input_pin_e_list triggerInputPins2 = bits, U16, 722, [0:7], $brain_input_pin_e_list mc33_t_min_boost = scalar, U16, 724, "us", 1, 0, 0, 10000, 0 hip9011CsPinMode = bits, U08, 726, [0:1], "default", "default inverted", "open collector", "open collector inverted" throttlePedalUpPinMode = bits, U08, 727, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" finalGearRatio = scalar, U16, 728, "ratio", 0.01, 0, 0, 10, 2 tcuInputSpeedSensorPin = bits, U16, 730, [0:7], $brain_input_pin_e_list tcuInputSpeedSensorTeeth = scalar, U08, 732, "", 1, 0, 0, 100, 0 triggerSimulatorPins1 = bits, U16, 734, [0:7], $gpio_list triggerSimulatorPins2 = bits, U16, 736, [0:7], $gpio_list fordInjectorSmallPulseSlope = scalar, U16, 738, "g/s", 0.001, 0, 0, 65, 3 triggerSimulatorPinModes1 = bits, U08, 740, [0:1], "default", "default inverted", "open collector", "open collector inverted" triggerSimulatorPinModes2 = bits, U08, 741, [0:1], "default", "default inverted", "open collector", "open collector inverted" maf2AdcChannel = bits, U08, 742, [0:5], $adc_channel_e_list o2heaterPin = bits, U16, 744, [0:8], $output_pin_e_list o2heaterPinModeTodO = bits, U08, 746, [0:1], "default", "default inverted", "open collector", "open collector inverted" lambdaProtectionMinRpm = scalar, U08, 747, "RPM", 100.0, 0, 0, 25000, 0 lambdaProtectionMinLoad = scalar, U08, 748, "%", 10.0, 0, 0, 1000, 0 is_enabled_spi_1 = bits, U32, 752, [0:0], "false", "true" is_enabled_spi_2 = bits, U32, 752, [1:1], "false", "true" is_enabled_spi_3 = bits, U32, 752, [2:2], "false", "true" isSdCardEnabled = bits, U32, 752, [3:3], "false", "true" rusefiVerbose29b = bits, U32, 752, [4:4], "11 bit", "29 bit" rethrowHardFault = bits, U32, 752, [5:5], "false", "true" isHip9011Enabled = bits, U32, 752, [6:6], "false", "true" requireFootOnBrakeToCrank = bits, U32, 752, [7:7], "false", "true" verboseQuad = bits, U32, 752, [8:8], "false", "true" useStepperIdle = bits, U32, 752, [9:9], "false", "true" enabledStep1Limiter = bits, U32, 752, [10:10], "false", "true" useTpicAdvancedMode = bits, U32, 752, [11:11], "false", "true" lambdaProtectionEnable = bits, U32, 752, [12:12], "false", "true" verboseTLE8888 = bits, U32, 752, [13:13], "false", "true" enableVerboseCanTx = bits, U32, 752, [14:14], "false", "true" etb1configured = bits, U32, 752, [15:15], "false", "true" etb2configured = bits, U32, 752, [16:16], "false", "true" measureMapOnlyInOneCylinder = bits, U32, 752, [17:17], "false", "true" stepperForceParkingEveryRestart = bits, U32, 752, [18:18], "false", "true" isFasterEngineSpinUpEnabled = bits, U32, 752, [19:19], "false", "true" coastingFuelCutEnabled = bits, U32, 752, [20:20], "false", "true" useIacTableForCoasting = bits, U32, 752, [21:21], "false", "true" useNoiselessTriggerDecoder = bits, U32, 752, [22:22], "false", "true" useIdleTimingPidControl = bits, U32, 752, [23:23], "false", "true" disableEtbWhenEngineStopped = bits, U32, 752, [24:24], "false", "true" is_enabled_spi_4 = bits, U32, 752, [25:25], "false", "true" pauseEtbControl = bits, U32, 752, [26:26], "false", "true" alignEngineSnifferAtTDC = bits, U32, 752, [27:27], "false", "true" verboseKLine = bits, U32, 752, [28:28], "false", "true" idleIncrementalPidCic = bits, U32, 752, [29:29], "false", "true" enableAemXSeries = bits, U32, 752, [30:30], "false", "true" logicAnalyzerPins1 = bits, U16, 756, [0:7], $brain_input_pin_e_list logicAnalyzerPins2 = bits, U16, 758, [0:7], $brain_input_pin_e_list logicAnalyzerPins3 = bits, U16, 760, [0:7], $brain_input_pin_e_list logicAnalyzerPins4 = bits, U16, 762, [0:7], $brain_input_pin_e_list mainRelayPinMode = bits, U08, 764, [0:1], "default", "default inverted", "open collector", "open collector inverted" hip9011CsPin = bits, U16, 766, [0:7], $gpio_list hip9011IntHoldPin = bits, U16, 768, [0:7], $gpio_list hip9011IntHoldPinMode = bits, U08, 770, [0:1], "default", "default inverted", "open collector", "open collector inverted" verboseCanBaseAddress = scalar, U32, 772, "", 1, 0, 0, 536870911, 0 mc33_hvolt = scalar, U08, 776, "v", 1, 0, 40, 70, 0 minimumBoostClosedLoopMap = scalar, U08, 777, "kPa", 1, 0, 0, 255, 0 acFanPin = bits, U16, 778, [0:8], $output_pin_e_list acFanPinMode = bits, U08, 780, [0:1], "default", "default inverted", "open collector", "open collector inverted" l9779spiDevice = bits, U08, 781, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" imuType = bits, U08, 782, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" vehicleWeight = scalar, U16, 784, "kg", 1, 0, 0, 10000, 0 idlePidRpmUpperLimit = scalar, S16, 786, "RPM", 1, 0, 0, 500, 0 applyNonlinearBelowPulse = scalar, U16, 788, "ms", 0.001, 0, 0, 30, 3 lps25BaroSensorScl = bits, U16, 790, [0:7], $gpio_list lps25BaroSensorSda = bits, U16, 792, [0:7], $gpio_list vehicleSpeedSensorInputPin = bits, U16, 794, [0:7], $brain_input_pin_e_list clutchUpPin = bits, U16, 796, [0:7], $switch_input_pin_e_list injectorNonlinearMode = bits, U08, 798, [0:1], "None", "Polynomial", "Ford (dual slope)", "INVALID" clutchUpPinMode = bits, U08, 799, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" max31855_cs1 = bits, U16, 800, [0:7], $gpio_list max31855_cs2 = bits, U16, 802, [0:7], $gpio_list max31855_cs3 = bits, U16, 804, [0:7], $gpio_list max31855_cs4 = bits, U16, 806, [0:7], $gpio_list max31855_cs5 = bits, U16, 808, [0:7], $gpio_list max31855_cs6 = bits, U16, 810, [0:7], $gpio_list max31855_cs7 = bits, U16, 812, [0:7], $gpio_list max31855_cs8 = bits, U16, 814, [0:7], $gpio_list flexSensorPin = bits, U16, 816, [0:7], $brain_input_pin_e_list test557pin = bits, U16, 818, [0:7], $gpio_list stepperDirectionPinMode = bits, U08, 820, [0:1], "default", "default inverted", "open collector", "open collector inverted" mc33972spiDevice = bits, U08, 821, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" stoichRatioSecondary = scalar, U08, 822, ":1", 0.1, 0, 5, 25, 1 etbMaximumPosition = scalar, U08, 823, "%", 1, 0, 70, 100, 0 sdCardLogFrequency = scalar, U16, 824, "hz", 1, 0, 1, 250, 0 idlePositionChannel = bits, U08, 826, [0:5], $adc_channel_e_list debugMapAveraging = bits, U16, 828, [0:7], $gpio_list starterRelayDisablePin = bits, U16, 830, [0:8], $output_pin_e_list starterRelayDisablePinMode = bits, U08, 832, [0:1], "default", "default inverted", "open collector", "open collector inverted" secondSolenoidPin = bits, U16, 834, [0:8], $output_pin_e_list startStopButtonPin = bits, U16, 836, [0:7], $switch_input_pin_e_list lambdaProtectionRestoreRpm = scalar, U08, 838, "RPM", 100.0, 0, 0, 25000, 0 acRelayPinMode = bits, U08, 839, [0:1], "default", "default inverted", "open collector", "open collector inverted" mapMinBufferLength = scalar, S32, 840, "count", 1, 0, 1, 24, 0 idlePidDeactivationTpsThreshold = scalar, S16, 844, "%", 1, 0, 0, 50, 0 stepperParkingExtraSteps = scalar, S16, 846, "%", 1, 0, 0, 3000, 0 tps1SecondaryMin = scalar, U16, 848, "ADC", 1, 0, 0, 1000, 0 tps1SecondaryMax = scalar, U16, 850, "ADC", 1, 0, 0, 1000, 0 antiLagRpmTreshold = scalar, S16, 852, "rpm", 1, 0, 0, 20000, 0 startCrankingDuration = scalar, U16, 854, "Seconds", 1, 0, 0, 30, 0 triggerErrorPin = bits, U16, 856, [0:7], $gpio_list triggerErrorPinMode = bits, U08, 858, [0:1], "default", "default inverted", "open collector", "open collector inverted" acRelayPin = bits, U16, 860, [0:8], $output_pin_e_list lambdaProtectionMinTps = scalar, U08, 862, "%", 1, 0, 0, 100, 0 lambdaProtectionTimeout = scalar, U08, 863, "s", 0.1, 0, 0, 10, 1 scriptSetting1 = scalar, F32, 864, "", 1, 0, 0, 18000, 2 scriptSetting2 = scalar, F32, 868, "", 1, 0, 0, 18000, 2 scriptSetting3 = scalar, F32, 872, "", 1, 0, 0, 18000, 2 scriptSetting4 = scalar, F32, 876, "", 1, 0, 0, 18000, 2 scriptSetting5 = scalar, F32, 880, "", 1, 0, 0, 18000, 2 scriptSetting6 = scalar, F32, 884, "", 1, 0, 0, 18000, 2 scriptSetting7 = scalar, F32, 888, "", 1, 0, 0, 18000, 2 scriptSetting8 = scalar, F32, 892, "", 1, 0, 0, 18000, 2 spi1mosiPin = bits, U16, 896, [0:7], $gpio_list spi1misoPin = bits, U16, 898, [0:7], $gpio_list spi1sckPin = bits, U16, 900, [0:7], $gpio_list spi2mosiPin = bits, U16, 902, [0:7], $gpio_list spi2misoPin = bits, U16, 904, [0:7], $gpio_list spi2sckPin = bits, U16, 906, [0:7], $gpio_list spi3mosiPin = bits, U16, 908, [0:7], $gpio_list spi3misoPin = bits, U16, 910, [0:7], $gpio_list spi3sckPin = bits, U16, 912, [0:7], $gpio_list cdmInputPin = bits, U16, 914, [0:7], $gpio_list consoleUartDevice = bits, U08, 916, [0:1], "Off", "UART1", "UART2", "UART3" sensorChartMode = bits, S08, 917, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1", "INVALID", "INVALID" mafSensorType = bits, S08, 918, [0:1], "v0", "v1", "v2", "v3" clutchUpPinInverted = bits, U32, 920, [0:0], "false", "true" clutchDownPinInverted = bits, U32, 920, [1:1], "false", "true" useHbridgesToDriveIdleStepper = bits, U32, 920, [2:2], "false", "true" multisparkEnable = bits, U32, 920, [3:3], "false", "true" enableLaunchRetard = bits, U32, 920, [4:4], "false", "true" canInputBCM = bits, U32, 920, [5:5], "false", "true" consumeObdSensors = bits, U32, 920, [6:6], "false", "true" enableCanVss = bits, U32, 920, [7:7], "false", "true" enableInnovateLC2 = bits, U32, 920, [8:8], "false", "true" showHumanReadableWarning = bits, U32, 920, [9:9], "false", "true" stftIgnoreErrorMagnitude = bits, U32, 920, [10:10], "false", "true" vvtBooleanForVerySpecialCases = bits, U32, 920, [11:11], "false", "true" enableSoftwareKnock = bits, U32, 920, [12:12], "false", "true" verboseVVTDecoding = bits, U32, 920, [13:13], "false", "true" invertCamVVTSignal = bits, U32, 920, [14:14], "Rising", "Falling" alphaNUseIat = bits, U32, 920, [15:15], "false", "true" knockBankCyl1 = bits, U32, 920, [16:16], "Channel 1", "Channel 2" knockBankCyl2 = bits, U32, 920, [17:17], "Channel 1", "Channel 2" knockBankCyl3 = bits, U32, 920, [18:18], "Channel 1", "Channel 2" knockBankCyl4 = bits, U32, 920, [19:19], "Channel 1", "Channel 2" knockBankCyl5 = bits, U32, 920, [20:20], "Channel 1", "Channel 2" knockBankCyl6 = bits, U32, 920, [21:21], "Channel 1", "Channel 2" knockBankCyl7 = bits, U32, 920, [22:22], "Channel 1", "Channel 2" knockBankCyl8 = bits, U32, 920, [23:23], "Channel 1", "Channel 2" knockBankCyl9 = bits, U32, 920, [24:24], "Channel 1", "Channel 2" knockBankCyl10 = bits, U32, 920, [25:25], "Channel 1", "Channel 2" knockBankCyl11 = bits, U32, 920, [26:26], "Channel 1", "Channel 2" knockBankCyl12 = bits, U32, 920, [27:27], "Channel 1", "Channel 2" tcuEnabled = bits, U32, 920, [28:28], "false", "true" canBroadcastUseChannelTwo = bits, U32, 920, [29:29], "first", "second" useRawOutputToDriveIdleStepper = bits, U32, 920, [30:30], "false", "true" verboseCan2 = bits, U32, 920, [31:31], "Do not print", "Print all" etbIo1_directionPin1 = bits, U16, 924, [0:7], $gpio_list etbIo1_directionPin2 = bits, U16, 926, [0:7], $gpio_list etbIo1_controlPin = bits, U16, 928, [0:7], $gpio_list etbIo1_disablePin = bits, U16, 930, [0:7], $gpio_list etbIo2_directionPin1 = bits, U16, 932, [0:7], $gpio_list etbIo2_directionPin2 = bits, U16, 934, [0:7], $gpio_list etbIo2_controlPin = bits, U16, 936, [0:7], $gpio_list etbIo2_disablePin = bits, U16, 938, [0:7], $gpio_list boostControlPin = bits, U16, 940, [0:8], $output_pin_e_list boostControlPinMode = bits, U08, 942, [0:1], "default", "default inverted", "open collector", "open collector inverted" ALSActivatePin = bits, U16, 944, [0:7], $switch_input_pin_e_list launchActivatePin = bits, U16, 946, [0:7], $switch_input_pin_e_list boostPid_pFactor = scalar, F32, 948, "", 1, 0, -10000, 10000, 4 boostPid_iFactor = scalar, F32, 952, "", 1, 0, -10000, 10000, 4 boostPid_dFactor = scalar, F32, 956, "", 1, 0, -10000, 10000, 4 boostPid_offset = scalar, S16, 960, "", 1, 0, -1000, 1000, 0 boostPid_periodMs = scalar, S16, 962, "ms", 1, 0, 0, 3000, 0 boostPid_minValue = scalar, S16, 964, "", 1, 0, -30000, 30000, 0 boostPid_maxValue = scalar, S16, 966, "", 1, 0, -30000, 30000, 0 boostType = bits, U08, 968, [0:0], "Open Loop", "Open + Closed Loop" ignitionKeyDigitalPinMode = bits, U08, 969, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" ignitionKeyDigitalPin = bits, U16, 970, [0:7], $gpio_list boostPwmFrequency = scalar, S32, 972, "Hz", 1, 0, 0, 3000, 0 launchActivationMode = bits, S08, 976, [0:1], "Launch Button", "Clutch Down Switch", "Speed Based", "Brake Pedal" antiLagActivationMode = bits, S08, 977, [0:0], "Switch Input", "Always Active" tpsAccelLookback = scalar, U08, 978, "sec", 0.05, 0, 0, 5, 2 noFuelTrimAfterDfcoTime = scalar, U08, 979, "sec", 0.1, 0, 0, 10, 1 launchSpeedThreshold = scalar, S32, 980, "Kph", 1, 0, 0, 300, 0 launchRpmWindow = scalar, S32, 984, "RPM", 1, 0, 0, 8000, 0 launchSparkSkipPercent = scalar, S32, 988, "%", 1, 0, 0, 100, 0 launchBoostDuty = scalar, S32, 992, "%", 1, 0, 0, 100, 0 magicNumberAvailableForDevTricks = scalar, F32, 996, "", 1, 0, 0, 100, 0 turbochargerFilter = scalar, F32, 1000, "", 1, 0, 0, 100, 0 launchTpsThreshold = scalar, S32, 1004, "", 1, 0, 0, 20000, 0 launchActivateDelay = scalar, F32, 1008, "", 1, 0, 0, 20000, 0 stft_maxIdleRegionRpm = scalar, U08, 1012, "RPM", 50.0, 0, 0, 12000, 0 stft_maxOverrunLoad = scalar, U08, 1013, "load", 1, 0, 0, 250, 0 stft_minPowerLoad = scalar, U08, 1014, "load", 1, 0, 0, 250, 0 stft_deadband = scalar, U08, 1015, "%", 0.1, 0, 0, 3, 1 stft_minClt = scalar, S08, 1016, "C", 1, 0, -20, 100, 0 stft_minAfr = scalar, U08, 1017, "afr", 0.1, 0, 10, 20, 1 stft_maxAfr = scalar, U08, 1018, "afr", 0.1, 0, 10, 20, 1 stft_startupDelay = scalar, U08, 1019, "seconds", 1, 0, 0, 250, 0 stft_cellCfgs1_maxAdd = scalar, S08, 1020, "%", 1, 0, 0, 25, 0 stft_cellCfgs1_maxRemove = scalar, S08, 1021, "%", 1, 0, -25, 0, 0 stft_cellCfgs1_timeConstant = scalar, U16, 1022, "sec", 0.1, 0, 0.1, 100, 2 stft_cellCfgs2_maxAdd = scalar, S08, 1024, "%", 1, 0, 0, 25, 0 stft_cellCfgs2_maxRemove = scalar, S08, 1025, "%", 1, 0, -25, 0, 0 stft_cellCfgs2_timeConstant = scalar, U16, 1026, "sec", 0.1, 0, 0.1, 100, 2 stft_cellCfgs3_maxAdd = scalar, S08, 1028, "%", 1, 0, 0, 25, 0 stft_cellCfgs3_maxRemove = scalar, S08, 1029, "%", 1, 0, -25, 0, 0 stft_cellCfgs3_timeConstant = scalar, U16, 1030, "sec", 0.1, 0, 0.1, 100, 2 stft_cellCfgs4_maxAdd = scalar, S08, 1032, "%", 1, 0, 0, 25, 0 stft_cellCfgs4_maxRemove = scalar, S08, 1033, "%", 1, 0, -25, 0, 0 stft_cellCfgs4_timeConstant = scalar, U16, 1034, "sec", 0.1, 0, 0.1, 100, 2 stepperDcIo1_directionPin1 = bits, U16, 1036, [0:7], $gpio_list stepperDcIo1_directionPin2 = bits, U16, 1038, [0:7], $gpio_list stepperDcIo1_controlPin = bits, U16, 1040, [0:7], $gpio_list stepperDcIo1_disablePin = bits, U16, 1042, [0:7], $gpio_list stepperDcIo2_directionPin1 = bits, U16, 1044, [0:7], $gpio_list stepperDcIo2_directionPin2 = bits, U16, 1046, [0:7], $gpio_list stepperDcIo2_controlPin = bits, U16, 1048, [0:7], $gpio_list stepperDcIo2_disablePin = bits, U16, 1050, [0:7], $gpio_list engineMake = string, ASCII, 1052, 32 engineCode = string, ASCII, 1084, 32 vehicleName = string, ASCII, 1116, 32 tcu_solenoid1 = bits, U16, 1148, [0:8], $output_pin_e_list tcu_solenoid2 = bits, U16, 1150, [0:8], $output_pin_e_list tcu_solenoid3 = bits, U16, 1152, [0:8], $output_pin_e_list tcu_solenoid4 = bits, U16, 1154, [0:8], $output_pin_e_list tcu_solenoid5 = bits, U16, 1156, [0:8], $output_pin_e_list tcu_solenoid6 = bits, U16, 1158, [0:8], $output_pin_e_list etbFunctions1 = bits, U08, 1160, [0:2], "None", "Throttle 1", "Throttle 2", "Idle Valve", "Wastegate", "INVALID", "INVALID", "INVALID" etbFunctions2 = bits, U08, 1161, [0:2], "None", "Throttle 1", "Throttle 2", "Idle Valve", "Wastegate", "INVALID", "INVALID", "INVALID" drv8860spiDevice = bits, U08, 1162, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" drv8860_cs = bits, U16, 1164, [0:7], $gpio_list drv8860_csPinMode = bits, U08, 1166, [0:1], "default", "default inverted", "open collector", "open collector inverted" drv8860_miso = bits, U16, 1168, [0:7], $gpio_list luaOutputPins1 = bits, U16, 1170, [0:8], $output_pin_e_list luaOutputPins2 = bits, U16, 1172, [0:8], $output_pin_e_list luaOutputPins3 = bits, U16, 1174, [0:8], $output_pin_e_list luaOutputPins4 = bits, U16, 1176, [0:8], $output_pin_e_list luaOutputPins5 = bits, U16, 1178, [0:8], $output_pin_e_list luaOutputPins6 = bits, U16, 1180, [0:8], $output_pin_e_list luaOutputPins7 = bits, U16, 1182, [0:8], $output_pin_e_list luaOutputPins8 = bits, U16, 1184, [0:8], $output_pin_e_list vvtOffsets1 = scalar, F32, 1188, "value", 1, 0, -720, 1000, 1 vvtOffsets2 = scalar, F32, 1192, "value", 1, 0, -720, 1000, 1 vvtOffsets3 = scalar, F32, 1196, "value", 1, 0, -720, 1000, 1 vvtOffsets4 = scalar, F32, 1200, "value", 1, 0, -720, 1000, 1 vrThreshold1_rpmBins = array, U08, 1204, [6], "rpm", 50.0, 0, 0, 12000, 0 vrThreshold1_values = array, U08, 1210, [6], "volts", 0.01, 0, 0, 2.5, 2 vrThreshold1_pin = bits, U16, 1216, [0:7], $gpio_list vrThreshold2_rpmBins = array, U08, 1220, [6], "rpm", 50.0, 0, 0, 12000, 0 vrThreshold2_values = array, U08, 1226, [6], "volts", 0.01, 0, 0, 2.5, 2 vrThreshold2_pin = bits, U16, 1232, [0:7], $gpio_list gpPwmNote1 = string, ASCII, 1236, 16 gpPwmNote2 = string, ASCII, 1252, 16 gpPwmNote3 = string, ASCII, 1268, 16 gpPwmNote4 = string, ASCII, 1284, 16 tps2SecondaryMin = scalar, U16, 1300, "ADC", 1, 0, 0, 1000, 0 tps2SecondaryMax = scalar, U16, 1302, "ADC", 1, 0, 0, 1000, 0 widebandOnSecondBus = bits, U32, 1304, [0:0], "1", "2" fuelClosedLoopCorrectionEnabled = bits, U32, 1304, [1:1], "false", "true" oddFireEngine = bits, U32, 1304, [2:2], "false", "true" boardUseTachPullUp = bits, U32, 1304, [3:3], "5v", "12v" boardUseTempPullUp = bits, U32, 1304, [4:4], "Piggyback Mode", "With Pull Ups" yesUnderstandLocking = bits, U32, 1304, [5:5], "no", "yes" silentTriggerError = bits, U32, 1304, [6:6], "false", "true" useLinearCltSensor = bits, U32, 1304, [7:7], "false", "true" canReadEnabled = bits, U32, 1304, [8:8], "false", "true" canWriteEnabled = bits, U32, 1304, [9:9], "false", "true" useLinearIatSensor = bits, U32, 1304, [10:10], "false", "true" boardUse2stepPullDown = bits, U32, 1304, [11:11], "With Pull Up", "With Pull Down" tachPulseDurationAsDutyCycle = bits, U32, 1304, [12:12], "Constant time", "Duty cycle" isAlternatorControlEnabled = bits, U32, 1304, [13:13], "false", "true" invertPrimaryTriggerSignal = bits, U32, 1304, [14:14], "Rising", "Falling" invertSecondaryTriggerSignal = bits, U32, 1304, [15:15], "Rising", "Falling" cutFuelOnHardLimit = bits, U32, 1304, [16:16], "no", "yes" cutSparkOnHardLimit = bits, U32, 1304, [17:17], "no", "yes" launchFuelCutEnable = bits, U32, 1304, [18:18], "false", "true" launchSparkCutEnable = bits, U32, 1304, [19:19], "false", "true" boardUseCrankPullUp = bits, U32, 1304, [20:20], "VR", "Hall" boardUseCamPullDown = bits, U32, 1304, [21:21], "With Pull Up", "With Pull Down" boardUseCamVrPullUp = bits, U32, 1304, [22:22], "VR", "Hall" boardUseD2PullDown = bits, U32, 1304, [23:23], "With Pull Up", "With Pull Down" boardUseD3PullDown = bits, U32, 1304, [24:24], "With Pull Up", "With Pull Down" boardUseD4PullDown = bits, U32, 1304, [25:25], "With Pull Up", "With Pull Down" boardUseD5PullDown = bits, U32, 1304, [26:26], "With Pull Up", "With Pull Down" verboseIsoTp = bits, U32, 1304, [27:27], "false", "true" engineSnifferFocusOnInputs = bits, U32, 1304, [28:28], "false", "true" launchActivateInverted = bits, U32, 1304, [29:29], "false", "true" twoStroke = bits, U32, 1304, [30:30], "Four Stroke", "Two Stroke" skippedWheelOnCam = bits, U32, 1304, [31:31], "On crankshaft", "On camshaft" hipOutputChannel = bits, U08, 1308, [0:5], $adc_channel_e_list acSwitch = bits, U16, 1310, [0:7], $switch_input_pin_e_list vRefAdcChannel = bits, U08, 1312, [0:5], $adc_channel_e_list etbNeutralPosition = scalar, U08, 1313, "%", 1, 0, 0, 100, 0 idleMode = bits, U08, 1314, [0:0], "Open Loop + Closed Loop", "Open Loop" isInjectionEnabled = bits, U32, 1316, [0:0], "false", "true" isIgnitionEnabled = bits, U32, 1316, [1:1], "false", "true" isCylinderCleanupEnabled = bits, U32, 1316, [2:2], "false", "true" complexWallModel = bits, U32, 1316, [3:3], "Basic (constants)", "Advanced (tables)" alwaysInstantRpm = bits, U32, 1316, [4:4], "false", "true" isMapAveragingEnabled = bits, U32, 1316, [5:5], "false", "true" overrideCrankingIacSetting = bits, U32, 1316, [6:6], "false", "true" useSeparateAdvanceForIdle = bits, U32, 1316, [7:7], "false", "true" isWaveAnalyzerEnabled = bits, U32, 1316, [8:8], "false", "true" useSeparateVeForIdle = bits, U32, 1316, [9:9], "false", "true" verboseTriggerSynchDetails = bits, U32, 1316, [10:10], "false", "true" isManualSpinningMode = bits, U32, 1316, [11:11], "false", "true" cutFuelInAcr = bits, U32, 1316, [12:12], "false", "true" hondaK = bits, U32, 1316, [13:13], "false", "true" twoWireBatchIgnition = bits, U32, 1316, [14:14], "false", "true" useFixedBaroCorrFromMap = bits, U32, 1316, [15:15], "false", "true" useSeparateAdvanceForCranking = bits, U32, 1316, [16:16], "Fixed (auto taper)", "Table" useAdvanceCorrectionsForCranking = bits, U32, 1316, [17:17], "false", "true" flexCranking = bits, U32, 1316, [18:18], "false", "true" useIacPidMultTable = bits, U32, 1316, [19:19], "false", "true" isBoostControlEnabled = bits, U32, 1316, [20:20], "false", "true" launchSmoothRetard = bits, U32, 1316, [21:21], "false", "true" isPhaseSyncRequiredForIgnition = bits, U32, 1316, [22:22], "false", "true" useCltBasedRpmLimit = bits, U32, 1316, [23:23], "no", "yes" forceO2Heating = bits, U32, 1316, [24:24], "no", "yes" invertVvtControlIntake = bits, U32, 1316, [25:25], "advance", "retard" invertVvtControlExhaust = bits, U32, 1316, [26:26], "advance", "retard" useBiQuadOnAuxSpeedSensors = bits, U32, 1316, [27:27], "false", "true" sdTriggerLog = bits, U32, 1316, [28:28], "normal", "trigger" ALSActivateInverted = bits, U32, 1316, [29:29], "false", "true" stepper_dc_use_two_wires = bits, U32, 1316, [30:30], "false", "true" watchOutForLinearTime = bits, U32, 1316, [31:31], "false", "true" engineChartSize = scalar, U32, 1320, "count", 1, 0, 0, 300, 0 turboSpeedSensorMultiplier = scalar, F32, 1324, "mult", 1, 0, 0, 7000, 3 camInputsDebug1 = bits, U16, 1328, [0:7], $gpio_list camInputsDebug2 = bits, U16, 1330, [0:7], $gpio_list camInputsDebug3 = bits, U16, 1332, [0:7], $gpio_list camInputsDebug4 = bits, U16, 1334, [0:7], $gpio_list acIdleRpmTarget = scalar, S16, 1336, "RPM", 1, 0, 0, 2000, 0 warningPeriod = scalar, S16, 1338, "seconds", 1, 0, 0, 60, 0 knockDetectionWindowStart = scalar, F32, 1340, "angle", 1, 0, -1000, 1000, 2 knockDetectionWindowEnd = scalar, F32, 1344, "angle", 1, 0, -1000, 1000, 2 idleStepperReactionTime = scalar, F32, 1348, "ms", 1, 0, 1, 300, 0 idleStepperTotalSteps = scalar, S32, 1352, "count", 1, 0, 5, 3000, 0 noAccelAfterHardLimitPeriodSecs = scalar, F32, 1356, "sec", 1, 0, 0, 60, 0 mapAveragingSchedulingAtIndex = scalar, S32, 1360, "index", 1, 0, 0, 7000, 0 tachPulseDuractionMs = scalar, F32, 1364, "", 1, 0, 0, 100, 2 wwaeTau = scalar, F32, 1368, "Seconds", 1, 0, 0, 3, 2 alternatorControl_pFactor = scalar, F32, 1372, "", 1, 0, -10000, 10000, 4 alternatorControl_iFactor = scalar, F32, 1376, "", 1, 0, -10000, 10000, 4 alternatorControl_dFactor = scalar, F32, 1380, "", 1, 0, -10000, 10000, 4 alternatorControl_offset = scalar, S16, 1384, "", 1, 0, -1000, 1000, 0 alternatorControl_periodMs = scalar, S16, 1386, "ms", 1, 0, 0, 3000, 0 alternatorControl_minValue = scalar, S16, 1388, "", 1, 0, -30000, 30000, 0 alternatorControl_maxValue = scalar, S16, 1390, "", 1, 0, -30000, 30000, 0 etb_pFactor = scalar, F32, 1392, "", 1, 0, -10000, 10000, 4 etb_iFactor = scalar, F32, 1396, "", 1, 0, -10000, 10000, 4 etb_dFactor = scalar, F32, 1400, "", 1, 0, -10000, 10000, 4 etb_offset = scalar, S16, 1404, "", 1, 0, -1000, 1000, 0 etb_periodMs = scalar, S16, 1406, "ms", 1, 0, 0, 3000, 0 etb_minValue = scalar, S16, 1408, "", 1, 0, -30000, 30000, 0 etb_maxValue = scalar, S16, 1410, "", 1, 0, -30000, 30000, 0 triggerInputDebugPins1 = bits, U16, 1412, [0:7], $gpio_list triggerInputDebugPins2 = bits, U16, 1414, [0:7], $gpio_list airTaperRpmRange = scalar, S16, 1416, "RPM", 1, 0, 0, 1500, 0 turboSpeedSensorInputPin = bits, U16, 1418, [0:7], $brain_input_pin_e_list tps2Min = scalar, S16, 1420, "ADC", 1, 0, 0, 1023, 0 tps2Max = scalar, S16, 1422, "ADC", 1, 0, 0, 1023, 0 starterControlPin = bits, U16, 1424, [0:8], $output_pin_e_list startStopButtonMode = bits, U08, 1426, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" mc33816_flag0 = bits, U16, 1428, [0:7], $gpio_list tachPulsePerRev = scalar, U08, 1430, "Pulse", 1, 0, 1, 255, 0 mapErrorDetectionTooLow = scalar, F32, 1432, "kPa", 1, 0, -100, 100, 2 mapErrorDetectionTooHigh = scalar, F32, 1436, "kPa", 1, 0, -100, 800, 2 multisparkSparkDuration = scalar, U16, 1440, "ms", 0.001, 0, 0, 3, 2 multisparkDwell = scalar, U16, 1442, "ms", 0.001, 0, 0, 3, 2 idleRpmPid_pFactor = scalar, F32, 1444, "", 1, 0, -10000, 10000, 4 idleRpmPid_iFactor = scalar, F32, 1448, "", 1, 0, -10000, 10000, 4 idleRpmPid_dFactor = scalar, F32, 1452, "", 1, 0, -10000, 10000, 4 idleRpmPid_offset = scalar, S16, 1456, "", 1, 0, -1000, 1000, 0 idleRpmPid_periodMs = scalar, S16, 1458, "ms", 1, 0, 0, 3000, 0 idleRpmPid_minValue = scalar, S16, 1460, "", 1, 0, -30000, 30000, 0 idleRpmPid_maxValue = scalar, S16, 1462, "", 1, 0, -30000, 30000, 0 wwaeBeta = scalar, F32, 1464, "Fraction", 1, 0, 0, 1, 2 binarySerialTxPin = bits, U16, 1468, [0:7], $gpio_list binarySerialRxPin = bits, U16, 1470, [0:7], $gpio_list auxValves1 = bits, U16, 1472, [0:7], $gpio_list auxValves2 = bits, U16, 1474, [0:7], $gpio_list tcuUpshiftButtonPin = bits, U16, 1476, [0:7], $switch_input_pin_e_list tcuDownshiftButtonPin = bits, U16, 1478, [0:7], $switch_input_pin_e_list throttlePedalUpVoltage = scalar, F32, 1480, "voltage", 1, 0, -6, 6, 2 throttlePedalWOTVoltage = scalar, F32, 1484, "voltage", 1, 0, -6, 6, 2 startUpFuelPumpDuration = scalar, S16, 1488, "seconds", 1, 0, 0, 6000, 0 idlePidRpmDeadZone = scalar, S16, 1490, "RPM", 1, 0, 0, 800, 0 targetVBatt = scalar, F32, 1492, "Volts", 1, 0, 0, 30, 1 mc33810DisableRecoveryMode = bits, U32, 1496, [0:0], "false", "true" mc33810Gpgd0Mode = bits, U32, 1496, [1:1], "false", "true" mc33810Gpgd1Mode = bits, U32, 1496, [2:2], "false", "true" mc33810Gpgd2Mode = bits, U32, 1496, [3:3], "false", "true" mc33810Gpgd3Mode = bits, U32, 1496, [4:4], "false", "true" enableExtendedCanBroadcast = bits, U32, 1496, [5:5], "false", "true" luaCanRxWorkaround = bits, U32, 1496, [6:6], "false", "true" flexSensorInverted = bits, U32, 1496, [7:7], "false", "true" useHardSkipInTraction = bits, U32, 1496, [8:8], "false", "true" fancySmartS = bits, U32, 1496, [9:9], "false", "true" fancySmartL = bits, U32, 1496, [10:10], "false", "true" useAuxSpeedForSlipRatio = bits, U32, 1496, [11:11], "false", "true" useVssAsSecondWheelSpeed = bits, U32, 1496, [12:12], "false", "true" is_enabled_spi_5 = bits, U32, 1496, [13:13], "false", "true" is_enabled_spi_6 = bits, U32, 1496, [14:14], "false", "true" enableAemXSeriesEgt = bits, U32, 1496, [15:15], "false", "true" skipBoardCanDash = bits, U32, 1496, [18:18], "false", "true" afterCrankingIACtaperDuration = scalar, S16, 1500, "cycles", 1, 0, 0, 5000, 0 iacByTpsTaper = scalar, S16, 1502, "percent", 1, 0, 0, 500, 0 auxSerialTxPin = bits, U16, 1504, [0:7], $gpio_list auxSerialRxPin = bits, U16, 1506, [0:7], $gpio_list accelerometerCsPin = bits, U16, 1508, [0:7], $gpio_list coastingFuelCutVssLow = scalar, U08, 1510, "kph", 1, 0, 0, 255, 0 coastingFuelCutVssHigh = scalar, U08, 1511, "kph", 1, 0, 0, 255, 0 tpsAccelEnrichmentThreshold = scalar, F32, 1512, "roc", 1, 0, 0, 200, 1 auxSpeedSensorInputPin1 = bits, U16, 1516, [0:7], $brain_input_pin_e_list auxSpeedSensorInputPin2 = bits, U16, 1518, [0:7], $brain_input_pin_e_list totalGearsCount = scalar, U08, 1520, "", 1, 0, 1, 10, 0 injectionTimingMode = bits, U08, 1521, [0:1], "End of injection", "Start of injection", "Center of injection", "INVALID" debugMode = bits, U08, 1522, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" fan1ExtraIdle = scalar, U08, 1523, "%", 1, 0, 0, 100, 0 uartConsoleSerialSpeed = scalar, U32, 1524, "BPs", 1, 0, 0, 1000000, 0 tpsDecelEnleanmentThreshold = scalar, F32, 1528, "roc", 1, 0, 0, 200, 1 tpsDecelEnleanmentMultiplier = scalar, F32, 1532, "coeff", 1, 0, 0, 200, 2 auxSerialSpeed = scalar, U32, 1536, "BPs", 1, 0, 0, 1000000, 0 throttlePedalSecondaryUpVoltage = scalar, F32, 1540, "voltage", 1, 0, -6, 6, 2 throttlePedalSecondaryWOTVoltage = scalar, F32, 1544, "voltage", 1, 0, -6, 6, 2 canBaudRate = bits, U08, 1548, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps", "INVALID" veOverrideMode = bits, U08, 1549, [0:1], "None", "MAP", "TPS", "INVALID" can2BaudRate = bits, U08, 1550, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps", "INVALID" afrOverrideMode = bits, U08, 1551, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %", "INVALID", "INVALID", "INVALID" mc33_hpfp_i_peak = scalar, U08, 1552, "A", 0.1, 0, 0, 25, 1 mc33_hpfp_i_hold = scalar, U08, 1553, "A", 0.1, 0, 0, 25, 1 mc33_hpfp_i_hold_off = scalar, U08, 1554, "us", 1, 0, 0, 255, 0 mc33_hpfp_max_hold = scalar, U08, 1555, "ms", 1, 0, 0, 255, 0 stepperDcInvertedPins = bits, U32, 1556, [0:0], "false", "true" canOpenBLT = bits, U32, 1556, [1:1], "false", "true" can2OpenBLT = bits, U32, 1556, [2:2], "false", "true" injectorFlowAsMassFlow = bits, U32, 1556, [3:3], "volumetric flow", "mass flow" boardUseCanTerminator = bits, U32, 1556, [4:4], "false", "true" kLineDoHondaSend = bits, U32, 1556, [5:5], "false", "true" can1ListenMode = bits, U32, 1556, [6:6], "false", "true" can2ListenMode = bits, U32, 1556, [7:7], "false", "true" camDecoder2jzPosition = scalar, U08, 1560, "", 1, 0, 0, 100, 0 mc33810maxDwellTimer = bits, U08, 1561, [0:2], "2 mS", "4 mS", "8 mS", "16 mS", "32 mS", "64 mS", "INVALID", "INVALID" benchTestOnTime = scalar, U16, 1562, "ms", 0.01, 0, 0, 500, 2 lambdaProtectionRestoreTps = scalar, U08, 1564, "%", 1, 0, 0, 100, 0 lambdaProtectionRestoreLoad = scalar, U08, 1565, "%", 10.0, 0, 0, 1000, 0 launchActivatePinMode = bits, U08, 1566, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" can2TxPin = bits, U16, 1568, [0:7], $gpio_list can2RxPin = bits, U16, 1570, [0:7], $gpio_list starterControlPinMode = bits, U08, 1572, [0:1], "default", "default inverted", "open collector", "open collector inverted" wastegatePositionSensor = bits, U08, 1573, [0:5], $adc_channel_e_list ignOverrideMode = bits, U08, 1574, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %", "INVALID", "INVALID", "INVALID" injectorPressureType = bits, U08, 1575, [0:0], "Low", "High" hpfpValvePin = bits, U16, 1576, [0:8], $output_pin_e_list hpfpValvePinMode = bits, U08, 1578, [0:1], "default", "default inverted", "open collector", "open collector inverted" boostCutPressure = scalar, F32, 1580, "kPa (absolute)", 1, 0, 0, 1000, 0 tchargeBins = array, U08, 1584, [16], "kg/h", 5.0, 0, 0, 1200, 0 tchargeValues = array, U08, 1600, [16], "ratio", 0.01, 0, 0, 1, 2 fixedTiming = scalar, F32, 1616, "deg", 1, 0, -720, 720, 2 mapLowValueVoltage = scalar, F32, 1620, "v", 1, 0, 0, 10, 2 mapHighValueVoltage = scalar, F32, 1624, "v", 1, 0, 0, 10, 2 egoValueShift = scalar, F32, 1628, "value", 1, 0, -10, 10, 2 vvtPins1 = bits, U16, 1632, [0:8], $output_pin_e_list vvtPins2 = bits, U16, 1634, [0:8], $output_pin_e_list vvtPins3 = bits, U16, 1636, [0:8], $output_pin_e_list vvtPins4 = bits, U16, 1638, [0:8], $output_pin_e_list crankingIACposition = scalar, S32, 1640, "percent", 1, 0, -100, 100, 0 tChargeMinRpmMinTps = scalar, F32, 1644, "", 1, 0, 0, 3, 4 tChargeMinRpmMaxTps = scalar, F32, 1648, "", 1, 0, 0, 3, 4 tChargeMaxRpmMinTps = scalar, F32, 1652, "", 1, 0, 0, 3, 4 tChargeMaxRpmMaxTps = scalar, F32, 1656, "", 1, 0, 0, 3, 4 vvtOutputFrequency = scalar, U16, 1660, "Hz", 1, 0, 0, 3000, 0 minimumIgnitionTiming = scalar, S08, 1662, "deg BTDC", 1, 0, -90, 90, 0 maximumIgnitionTiming = scalar, S08, 1663, "deg BTDC", 1, 0, -90, 90, 0 alternatorPwmFrequency = scalar, S32, 1664, "Hz", 1, 0, 0, 3000, 0 vvtMode1 = bits, U08, 1668, [0:5], "Inactive", "Single Tooth", "Toyota 3 Tooth", "Miata NB2", "Mitsu 4G69", "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", "Ford Coyote", "Mitsu 6G72", "Honda 600", "vvt22", "vvt23", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" vvtMode2 = bits, U08, 1669, [0:5], "Inactive", "Single Tooth", "Toyota 3 Tooth", "Miata NB2", "Mitsu 4G69", "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", "Ford Coyote", "Mitsu 6G72", "Honda 600", "vvt22", "vvt23", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" fan2ExtraIdle = scalar, U08, 1670, "%", 1, 0, 0, 100, 0 primingDelay = scalar, U08, 1671, "sec", 0.01, 0, 0, 1, 2 auxAnalogInputs1 = bits, U08, 1672, [0:5], $adc_channel_e_list auxAnalogInputs2 = bits, U08, 1673, [0:5], $adc_channel_e_list auxAnalogInputs3 = bits, U08, 1674, [0:5], $adc_channel_e_list auxAnalogInputs4 = bits, U08, 1675, [0:5], $adc_channel_e_list auxAnalogInputs5 = bits, U08, 1676, [0:5], $adc_channel_e_list auxAnalogInputs6 = bits, U08, 1677, [0:5], $adc_channel_e_list auxAnalogInputs7 = bits, U08, 1678, [0:5], $adc_channel_e_list auxAnalogInputs8 = bits, U08, 1679, [0:5], $adc_channel_e_list trailingCoilPins1 = bits, U16, 1680, [0:8], $output_pin_e_list trailingCoilPins2 = bits, U16, 1682, [0:8], $output_pin_e_list trailingCoilPins3 = bits, U16, 1684, [0:8], $output_pin_e_list trailingCoilPins4 = bits, U16, 1686, [0:8], $output_pin_e_list trailingCoilPins5 = bits, U16, 1688, [0:8], $output_pin_e_list trailingCoilPins6 = bits, U16, 1690, [0:8], $output_pin_e_list trailingCoilPins7 = bits, U16, 1692, [0:8], $output_pin_e_list trailingCoilPins8 = bits, U16, 1694, [0:8], $output_pin_e_list trailingCoilPins9 = bits, U16, 1696, [0:8], $output_pin_e_list trailingCoilPins10 = bits, U16, 1698, [0:8], $output_pin_e_list trailingCoilPins11 = bits, U16, 1700, [0:8], $output_pin_e_list trailingCoilPins12 = bits, U16, 1702, [0:8], $output_pin_e_list tle8888mode = bits, U08, 1704, [0:1], "Auto", "SemiAuto", "Manual", "Hall" accelerometerCsPinMode = bits, U08, 1705, [0:1], "default", "default inverted", "open collector", "open collector inverted" injectorCompensationMode = bits, U08, 1706, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure", "INVALID" fan2PinMode = bits, U08, 1707, [0:1], "default", "default inverted", "open collector", "open collector inverted" fuelReferencePressure = scalar, F32, 1708, "kPa", 1, 0, 50, 700000, 0 postCrankingFactor = array, F32, 1712, [6x6], "mult", 1, 0, 1, 3, 2 postCrankingDurationBins = array, F32, 1856, [6], "count", 1, 0, 0, 1000, 0 postCrankingCLTBins = array, F32, 1880, [6], "C", 1, 0, -100, 100, 0 auxTempSensor1_tempC_1 = scalar, F32, 1904, "*C", 1, 0, -55, 200, 1 auxTempSensor1_tempC_2 = scalar, F32, 1908, "*C", 1, 0, -55, 200, 1 auxTempSensor1_tempC_3 = scalar, F32, 1912, "*C", 1, 0, -55, 200, 1 auxTempSensor1_resistance_1 = scalar, F32, 1916, "Ohm", 1, 0, 0, 1000000, 1 auxTempSensor1_resistance_2 = scalar, F32, 1920, "Ohm", 1, 0, 0, 1000000, 1 auxTempSensor1_resistance_3 = scalar, F32, 1924, "Ohm", 1, 0, 0, 1000000, 1 auxTempSensor1_bias_resistor = scalar, F32, 1928, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor1_adcChannel = bits, U08, 1932, [0:5], $adc_channel_e_list auxTempSensor2_tempC_1 = scalar, F32, 1936, "*C", 1, 0, -55, 200, 1 auxTempSensor2_tempC_2 = scalar, F32, 1940, "*C", 1, 0, -55, 200, 1 auxTempSensor2_tempC_3 = scalar, F32, 1944, "*C", 1, 0, -55, 200, 1 auxTempSensor2_resistance_1 = scalar, F32, 1948, "Ohm", 1, 0, 0, 1000000, 1 auxTempSensor2_resistance_2 = scalar, F32, 1952, "Ohm", 1, 0, 0, 1000000, 1 auxTempSensor2_resistance_3 = scalar, F32, 1956, "Ohm", 1, 0, 0, 1000000, 1 auxTempSensor2_bias_resistor = scalar, F32, 1960, "Ohm", 1, 0, 0, 200000, 1 auxTempSensor2_adcChannel = bits, U08, 1964, [0:5], $adc_channel_e_list knockSamplingDuration = scalar, S16, 1968, "Deg", 1, 0, 0, 720, 0 etbFreq = scalar, S16, 1970, "Hz", 1, 0, 0, 3000, 0 etbWastegatePid_pFactor = scalar, F32, 1972, "", 1, 0, -10000, 10000, 4 etbWastegatePid_iFactor = scalar, F32, 1976, "", 1, 0, -10000, 10000, 4 etbWastegatePid_dFactor = scalar, F32, 1980, "", 1, 0, -10000, 10000, 4 etbWastegatePid_offset = scalar, S16, 1984, "", 1, 0, -1000, 1000, 0 etbWastegatePid_periodMs = scalar, S16, 1986, "ms", 1, 0, 0, 3000, 0 etbWastegatePid_minValue = scalar, S16, 1988, "", 1, 0, -30000, 30000, 0 etbWastegatePid_maxValue = scalar, S16, 1990, "", 1, 0, -30000, 30000, 0 stepperNumMicroSteps = bits, U08, 1992, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" stepperMinDutyCycle = scalar, U08, 1993, "%", 1, 0, 0, 100, 0 stepperMaxDutyCycle = scalar, U08, 1994, "%", 1, 0, 0, 100, 0 sdCardSpiDevice = bits, U08, 1995, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" timing_offset_cylinder1 = scalar, F32, 1996, "deg", 1, 0, -720, 720, 1 timing_offset_cylinder2 = scalar, F32, 2000, "deg", 1, 0, -720, 720, 1 timing_offset_cylinder3 = scalar, F32, 2004, "deg", 1, 0, -720, 720, 1 timing_offset_cylinder4 = scalar, F32, 2008, "deg", 1, 0, -720, 720, 1 timing_offset_cylinder5 = scalar, F32, 2012, "deg", 1, 0, -720, 720, 1 timing_offset_cylinder6 = scalar, F32, 2016, "deg", 1, 0, -720, 720, 1 timing_offset_cylinder7 = scalar, F32, 2020, "deg", 1, 0, -720, 720, 1 timing_offset_cylinder8 = scalar, F32, 2024, "deg", 1, 0, -720, 720, 1 timing_offset_cylinder9 = scalar, F32, 2028, "deg", 1, 0, -720, 720, 1 timing_offset_cylinder10 = scalar, F32, 2032, "deg", 1, 0, -720, 720, 1 timing_offset_cylinder11 = scalar, F32, 2036, "deg", 1, 0, -720, 720, 1 timing_offset_cylinder12 = scalar, F32, 2040, "deg", 1, 0, -720, 720, 1 idlePidActivationTime = scalar, F32, 2044, "seconds", 1, 0, 0, 60, 1 spi1SckMode = bits, U08, 2048, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" spi1MosiMode = bits, U08, 2049, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" spi1MisoMode = bits, U08, 2050, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" spi2SckMode = bits, U08, 2051, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" spi2MosiMode = bits, U08, 2052, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" spi2MisoMode = bits, U08, 2053, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" spi3SckMode = bits, U08, 2054, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" spi3MosiMode = bits, U08, 2055, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" spi3MisoMode = bits, U08, 2056, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" stepperEnablePinMode = bits, U08, 2057, [0:1], "default", "default inverted", "open collector", "open collector inverted" mc33816_rstb = bits, U16, 2058, [0:7], $gpio_list mc33816_driven = bits, U16, 2060, [0:7], $gpio_list brakePedalPin = bits, U16, 2062, [0:7], $switch_input_pin_e_list auxPid1_pFactor = scalar, F32, 2064, "", 1, 0, -10000, 10000, 4 auxPid1_iFactor = scalar, F32, 2068, "", 1, 0, -10000, 10000, 4 auxPid1_dFactor = scalar, F32, 2072, "", 1, 0, -10000, 10000, 4 auxPid1_offset = scalar, S16, 2076, "", 1, 0, -1000, 1000, 0 auxPid1_periodMs = scalar, S16, 2078, "ms", 1, 0, 0, 3000, 0 auxPid1_minValue = scalar, S16, 2080, "", 1, 0, -30000, 30000, 0 auxPid1_maxValue = scalar, S16, 2082, "", 1, 0, -30000, 30000, 0 auxPid2_pFactor = scalar, F32, 2084, "", 1, 0, -10000, 10000, 4 auxPid2_iFactor = scalar, F32, 2088, "", 1, 0, -10000, 10000, 4 auxPid2_dFactor = scalar, F32, 2092, "", 1, 0, -10000, 10000, 4 auxPid2_offset = scalar, S16, 2096, "", 1, 0, -1000, 1000, 0 auxPid2_periodMs = scalar, S16, 2098, "ms", 1, 0, 0, 3000, 0 auxPid2_minValue = scalar, S16, 2100, "", 1, 0, -30000, 30000, 0 auxPid2_maxValue = scalar, S16, 2102, "", 1, 0, -30000, 30000, 0 injectorCorrectionPolynomial1 = scalar, F32, 2104, "", 1, 0, -1000, 1000, 4 injectorCorrectionPolynomial2 = scalar, F32, 2108, "", 1, 0, -1000, 1000, 4 injectorCorrectionPolynomial3 = scalar, F32, 2112, "", 1, 0, -1000, 1000, 4 injectorCorrectionPolynomial4 = scalar, F32, 2116, "", 1, 0, -1000, 1000, 4 injectorCorrectionPolynomial5 = scalar, F32, 2120, "", 1, 0, -1000, 1000, 4 injectorCorrectionPolynomial6 = scalar, F32, 2124, "", 1, 0, -1000, 1000, 4 injectorCorrectionPolynomial7 = scalar, F32, 2128, "", 1, 0, -1000, 1000, 4 injectorCorrectionPolynomial8 = scalar, F32, 2132, "", 1, 0, -1000, 1000, 4 primeBins = array, S08, 2136, [8], "C", 1, 0, -40, 120, 0 oilPressure_hwChannel = bits, U08, 2144, [0:5], $adc_channel_e_list oilPressure_v1 = scalar, F32, 2148, "volts", 1, 0, 0, 10, 2 oilPressure_value1 = scalar, F32, 2152, "", 1, 0, 0, 1000000, 2 oilPressure_v2 = scalar, F32, 2156, "volts", 1, 0, 0, 10, 2 oilPressure_value2 = scalar, F32, 2160, "", 1, 0, 0, 1000000, 2 accelerometerSpiDevice = bits, U08, 2164, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" fan2Pin = bits, U16, 2166, [0:8], $output_pin_e_list fan2OnTemperature = scalar, U08, 2168, "deg C", 1, 0, 0, 150, 0 fan2OffTemperature = scalar, U08, 2169, "deg C", 1, 0, 0, 150, 0 stepperEnablePin = bits, U16, 2170, [0:7], $gpio_list tle8888_cs = bits, U16, 2172, [0:7], $gpio_list tle8888_csPinMode = bits, U08, 2174, [0:1], "default", "default inverted", "open collector", "open collector inverted" mc33816_cs = bits, U16, 2176, [0:7], $gpio_list auxFrequencyFilter = scalar, F32, 2180, "hz", 1, 0, 0, 100, 1 sentInputPins1 = bits, U16, 2184, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" coastingFuelCutRpmHigh = scalar, S16, 2186, "rpm", 1, 0, 0, 5000, 0 coastingFuelCutRpmLow = scalar, S16, 2188, "rpm", 1, 0, 0, 5000, 0 coastingFuelCutTps = scalar, S16, 2190, "%", 1, 0, 0, 20, 0 coastingFuelCutClt = scalar, S16, 2192, "C", 1, 0, -100, 100, 0 pidExtraForLowRpm = scalar, S16, 2194, "%", 1, 0, 0, 100, 0 coastingFuelCutMap = scalar, S16, 2196, "kPa", 1, 0, 0, 250, 0 highPressureFuel_hwChannel = bits, U08, 2200, [0:5], $adc_channel_e_list highPressureFuel_v1 = scalar, F32, 2204, "volts", 1, 0, 0, 10, 2 highPressureFuel_value1 = scalar, F32, 2208, "", 1, 0, 0, 1000000, 2 highPressureFuel_v2 = scalar, F32, 2212, "volts", 1, 0, 0, 10, 2 highPressureFuel_value2 = scalar, F32, 2216, "", 1, 0, 0, 1000000, 2 lowPressureFuel_hwChannel = bits, U08, 2220, [0:5], $adc_channel_e_list lowPressureFuel_v1 = scalar, F32, 2224, "volts", 1, 0, 0, 10, 2 lowPressureFuel_value1 = scalar, F32, 2228, "", 1, 0, 0, 1000000, 2 lowPressureFuel_v2 = scalar, F32, 2232, "volts", 1, 0, 0, 10, 2 lowPressureFuel_value2 = scalar, F32, 2236, "", 1, 0, 0, 1000000, 2 scriptCurveName1 = string, ASCII, 2240, 16 scriptCurveName2 = string, ASCII, 2256, 16 scriptCurveName3 = string, ASCII, 2272, 16 scriptCurveName4 = string, ASCII, 2288, 16 scriptCurveName5 = string, ASCII, 2304, 16 scriptCurveName6 = string, ASCII, 2320, 16 scriptTableName1 = string, ASCII, 2336, 16 scriptTableName2 = string, ASCII, 2352, 16 scriptTableName3 = string, ASCII, 2368, 16 scriptTableName4 = string, ASCII, 2384, 16 scriptSettingName1 = string, ASCII, 2400, 16 scriptSettingName2 = string, ASCII, 2416, 16 scriptSettingName3 = string, ASCII, 2432, 16 scriptSettingName4 = string, ASCII, 2448, 16 scriptSettingName5 = string, ASCII, 2464, 16 scriptSettingName6 = string, ASCII, 2480, 16 scriptSettingName7 = string, ASCII, 2496, 16 scriptSettingName8 = string, ASCII, 2512, 16 tChargeAirCoefMin = scalar, F32, 2528, "", 1, 0, 0, 1, 3 tChargeAirCoefMax = scalar, F32, 2532, "", 1, 0, 0, 1, 3 tChargeAirFlowMax = scalar, F32, 2536, "kg/h", 1, 0, 0, 1000, 1 tChargeAirIncrLimit = scalar, F32, 2540, "deg/sec", 1, 0, 0, 100, 1 tChargeAirDecrLimit = scalar, F32, 2544, "deg/sec", 1, 0, 0, 100, 1 hip9011Gain = scalar, F32, 2548, "", 1, 0, 0, 100, 2 etb_iTermMin = scalar, S16, 2552, "", 1, 0, -30000, 30000, 0 etb_iTermMax = scalar, S16, 2554, "", 1, 0, -30000, 30000, 0 idleTimingPid_pFactor = scalar, F32, 2556, "", 1, 0, -10000, 10000, 4 idleTimingPid_iFactor = scalar, F32, 2560, "", 1, 0, -10000, 10000, 4 idleTimingPid_dFactor = scalar, F32, 2564, "", 1, 0, -10000, 10000, 4 idleTimingPid_offset = scalar, S16, 2568, "", 1, 0, -1000, 1000, 0 idleTimingPid_periodMs = scalar, S16, 2570, "ms", 1, 0, 0, 3000, 0 idleTimingPid_minValue = scalar, S16, 2572, "", 1, 0, -30000, 30000, 0 idleTimingPid_maxValue = scalar, S16, 2574, "", 1, 0, -30000, 30000, 0 idleTimingSoftEntryTime = scalar, F32, 2576, "", 1, 0, 0, 100, 1 etbRocExpAverageLength = scalar, S16, 2580, "", 1, 0, 0, 32000, 0 tpsAccelFractionPeriod = scalar, S16, 2582, "cycles", 1, 0, 0, 500, 0 tpsAccelFractionDivisor = scalar, F32, 2584, "coef", 1, 0, 1, 100, 2 tle8888spiDevice = bits, U08, 2588, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" mc33816spiDevice = bits, U08, 2589, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" idlerpmpid_iTermMin = scalar, S16, 2590, "", 1, 0, -30000, 30000, 0 tle6240spiDevice = bits, U08, 2592, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" stoichRatioPrimary = scalar, U08, 2593, ":1", 0.1, 0, 5, 25, 1 idlerpmpid_iTermMax = scalar, S16, 2594, "", 1, 0, -30000, 30000, 0 etbIdleThrottleRange = scalar, F32, 2596, "%", 1, 0, 0, 15, 0 cylinderBankSelect1 = scalar, U08, 2600, "", 1, 1, 1, 2, 0 cylinderBankSelect2 = scalar, U08, 2601, "", 1, 1, 1, 2, 0 cylinderBankSelect3 = scalar, U08, 2602, "", 1, 1, 1, 2, 0 cylinderBankSelect4 = scalar, U08, 2603, "", 1, 1, 1, 2, 0 cylinderBankSelect5 = scalar, U08, 2604, "", 1, 1, 1, 2, 0 cylinderBankSelect6 = scalar, U08, 2605, "", 1, 1, 1, 2, 0 cylinderBankSelect7 = scalar, U08, 2606, "", 1, 1, 1, 2, 0 cylinderBankSelect8 = scalar, U08, 2607, "", 1, 1, 1, 2, 0 cylinderBankSelect9 = scalar, U08, 2608, "", 1, 1, 1, 2, 0 cylinderBankSelect10 = scalar, U08, 2609, "", 1, 1, 1, 2, 0 cylinderBankSelect11 = scalar, U08, 2610, "", 1, 1, 1, 2, 0 cylinderBankSelect12 = scalar, U08, 2611, "", 1, 1, 1, 2, 0 primeValues = array, U08, 2612, [8], "mg", 5.0, 0, 0, 1250, 0 triggerCompCenterVolt = scalar, U08, 2620, "V", 0.02, 0, 0, 5.1, 2 triggerCompHystMin = scalar, U08, 2621, "V", 0.02, 0, 0, 5.1, 2 triggerCompHystMax = scalar, U08, 2622, "V", 0.02, 0, 0, 5.1, 2 triggerCompSensorSatRpm = scalar, U08, 2623, "RPM", 50.0, 0, 0, 12000, 0 tractionControlSlipBins = array, U16, 2624, [6], "ratio", 0.01, 0, 0, 999, 2 tractionControlSpeedBins = array, U08, 2636, [6], "RPM", 1, 0, 0, 250, 0 disableFan1AtSpeed = scalar, S08, 2642, "", 1, 0, 0, 100, 0 disableFan2AtSpeed = scalar, S08, 2643, "", 1, 0, 0, 100, 0 canVssNbcType = bits, U08, 2644, [0:2], "BMW_e46", "W202", "BMW E8x/E9x MK60e5", "Nissan 350", "Hyundai PB", "Honda Civic9", "INVALID", "INVALID" gppwm1_pin = bits, U16, 2648, [0:8], $output_pin_e_list gppwm1_dutyIfError = scalar, U08, 2650, "%", 1, 0, 0, 100, 0 gppwm1_pwmFrequency = scalar, U16, 2652, "hz", 1, 0, 0, 500, 0 gppwm1_onAboveDuty = scalar, U08, 2654, "%", 1, 0, 0, 100, 0 gppwm1_offBelowDuty = scalar, U08, 2655, "%", 1, 0, 0, 100, 0 gppwm1_loadAxis = bits, U08, 2656, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm1_rpmAxis = bits, U08, 2657, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm1_loadBins = array, S16, 2658, [8], "load", 0.5, 0, -1000, 10000, 1 gppwm1_rpmBins = array, S16, 2674, [8], "RPM", 1, 0, -30000, 30000, 0 gppwm1_table = array, U08, 2690, [8x8], "duty", 0.5, 0, 0, 100, 1 gppwm2_pin = bits, U16, 2756, [0:8], $output_pin_e_list gppwm2_dutyIfError = scalar, U08, 2758, "%", 1, 0, 0, 100, 0 gppwm2_pwmFrequency = scalar, U16, 2760, "hz", 1, 0, 0, 500, 0 gppwm2_onAboveDuty = scalar, U08, 2762, "%", 1, 0, 0, 100, 0 gppwm2_offBelowDuty = scalar, U08, 2763, "%", 1, 0, 0, 100, 0 gppwm2_loadAxis = bits, U08, 2764, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm2_rpmAxis = bits, U08, 2765, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm2_loadBins = array, S16, 2766, [8], "load", 0.5, 0, -1000, 10000, 1 gppwm2_rpmBins = array, S16, 2782, [8], "RPM", 1, 0, -30000, 30000, 0 gppwm2_table = array, U08, 2798, [8x8], "duty", 0.5, 0, 0, 100, 1 gppwm3_pin = bits, U16, 2864, [0:8], $output_pin_e_list gppwm3_dutyIfError = scalar, U08, 2866, "%", 1, 0, 0, 100, 0 gppwm3_pwmFrequency = scalar, U16, 2868, "hz", 1, 0, 0, 500, 0 gppwm3_onAboveDuty = scalar, U08, 2870, "%", 1, 0, 0, 100, 0 gppwm3_offBelowDuty = scalar, U08, 2871, "%", 1, 0, 0, 100, 0 gppwm3_loadAxis = bits, U08, 2872, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm3_rpmAxis = bits, U08, 2873, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm3_loadBins = array, S16, 2874, [8], "load", 0.5, 0, -1000, 10000, 1 gppwm3_rpmBins = array, S16, 2890, [8], "RPM", 1, 0, -30000, 30000, 0 gppwm3_table = array, U08, 2906, [8x8], "duty", 0.5, 0, 0, 100, 1 gppwm4_pin = bits, U16, 2972, [0:8], $output_pin_e_list gppwm4_dutyIfError = scalar, U08, 2974, "%", 1, 0, 0, 100, 0 gppwm4_pwmFrequency = scalar, U16, 2976, "hz", 1, 0, 0, 500, 0 gppwm4_onAboveDuty = scalar, U08, 2978, "%", 1, 0, 0, 100, 0 gppwm4_offBelowDuty = scalar, U08, 2979, "%", 1, 0, 0, 100, 0 gppwm4_loadAxis = bits, U08, 2980, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm4_rpmAxis = bits, U08, 2981, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm4_loadBins = array, S16, 2982, [8], "load", 0.5, 0, -1000, 10000, 1 gppwm4_rpmBins = array, S16, 2998, [8], "RPM", 1, 0, -30000, 30000, 0 gppwm4_table = array, U08, 3014, [8x8], "duty", 0.5, 0, 0, 100, 1 mc33_i_boost = scalar, U16, 3080, "mA", 1, 0, 1000, 25000, 0 mc33_i_peak = scalar, U16, 3082, "mA", 1, 0, 1000, 20000, 0 mc33_i_hold = scalar, U16, 3084, "mA", 1, 0, 1000, 20000, 0 mc33_t_max_boost = scalar, U16, 3086, "us", 1, 0, 0, 10000, 0 mc33_t_peak_off = scalar, U16, 3088, "us", 1, 0, 0, 10000, 0 mc33_t_peak_tot = scalar, U16, 3090, "us", 1, 0, 0, 10000, 0 mc33_t_bypass = scalar, U16, 3092, "us", 1, 0, 0, 10000, 0 mc33_t_hold_off = scalar, U16, 3094, "us", 1, 0, 0, 10000, 0 mc33_t_hold_tot = scalar, U16, 3096, "us", 1, 0, 0, 10000, 0 tcuUpshiftButtonPinMode = bits, U08, 3098, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" tcuDownshiftButtonPinMode = bits, U08, 3099, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" acSwitchMode = bits, U08, 3100, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" tcu_solenoid_mode1 = bits, U08, 3101, [0:1], "default", "default inverted", "open collector", "open collector inverted" tcu_solenoid_mode2 = bits, U08, 3102, [0:1], "default", "default inverted", "open collector", "open collector inverted" tcu_solenoid_mode3 = bits, U08, 3103, [0:1], "default", "default inverted", "open collector", "open collector inverted" tcu_solenoid_mode4 = bits, U08, 3104, [0:1], "default", "default inverted", "open collector", "open collector inverted" tcu_solenoid_mode5 = bits, U08, 3105, [0:1], "default", "default inverted", "open collector", "open collector inverted" tcu_solenoid_mode6 = bits, U08, 3106, [0:1], "default", "default inverted", "open collector", "open collector inverted" triggerGapOverrideFrom1 = scalar, F32, 3108, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideFrom2 = scalar, F32, 3112, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideFrom3 = scalar, F32, 3116, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideFrom4 = scalar, F32, 3120, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideFrom5 = scalar, F32, 3124, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideFrom6 = scalar, F32, 3128, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideFrom7 = scalar, F32, 3132, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideFrom8 = scalar, F32, 3136, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideFrom9 = scalar, F32, 3140, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideFrom10 = scalar, F32, 3144, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideFrom11 = scalar, F32, 3148, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideFrom12 = scalar, F32, 3152, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideFrom13 = scalar, F32, 3156, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideFrom14 = scalar, F32, 3160, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideFrom15 = scalar, F32, 3164, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideFrom16 = scalar, F32, 3168, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideFrom17 = scalar, F32, 3172, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideFrom18 = scalar, F32, 3176, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideTo1 = scalar, F32, 3180, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideTo2 = scalar, F32, 3184, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideTo3 = scalar, F32, 3188, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideTo4 = scalar, F32, 3192, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideTo5 = scalar, F32, 3196, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideTo6 = scalar, F32, 3200, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideTo7 = scalar, F32, 3204, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideTo8 = scalar, F32, 3208, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideTo9 = scalar, F32, 3212, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideTo10 = scalar, F32, 3216, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideTo11 = scalar, F32, 3220, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideTo12 = scalar, F32, 3224, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideTo13 = scalar, F32, 3228, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideTo14 = scalar, F32, 3232, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideTo15 = scalar, F32, 3236, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideTo16 = scalar, F32, 3240, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideTo17 = scalar, F32, 3244, "ratio", 1, 0, 0, 20, 3 triggerGapOverrideTo18 = scalar, F32, 3248, "ratio", 1, 0, 0, 20, 3 maxCamPhaseResolveRpm = scalar, U08, 3252, "rpm", 50.0, 0, 0, 12500, 0 dfcoDelay = scalar, U08, 3253, "sec", 0.1, 0, 0, 10, 1 acDelay = scalar, U08, 3254, "sec", 0.1, 0, 0, 10, 1 tChargeMode = bits, U08, 3255, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table", "INVALID" fordInjectorSmallPulseBreakPoint = scalar, U16, 3256, "mg", 0.001, 0, 0, 65, 3 etbJamIntegratorLimit = scalar, U08, 3258, "%", 1, 0, 0, 50, 0 hpfpCamLobes = scalar, U08, 3259, "lobes/cam", 1, 0, 0, 255, 0 hpfpCam = bits, U08, 3260, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2", "INVALID", "INVALID", "INVALID" auxiliarySetting1 = scalar, U08, 3261, "", 1, 0, 0, 100, 0 hpfpMinAngle = scalar, U08, 3262, "deg", 1, 0, 0, 255, 0 hpfpPumpVolume = scalar, U16, 3264, "cc", 0.001, 0, 0, 65, 3 hpfpActivationAngle = scalar, U08, 3266, "deg", 1, 0, 0, 255, 0 issFilterReciprocal = scalar, U08, 3267, "", 1, 0, 0, 255, 0 hpfpPidP = scalar, U16, 3268, "%/kPa", 0.001, 0, 0, 65, 3 hpfpPidI = scalar, U16, 3270, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 hpfpTargetDecay = scalar, U16, 3272, "kPa/s", 1, 0, 0, 65000, 0 stepper_raw_output1 = bits, U16, 3274, [0:8], $output_pin_e_list stepper_raw_output2 = bits, U16, 3276, [0:8], $output_pin_e_list stepper_raw_output3 = bits, U16, 3278, [0:8], $output_pin_e_list stepper_raw_output4 = bits, U16, 3280, [0:8], $output_pin_e_list gearRatio1 = scalar, U16, 3282, "ratio", 0.01, 0, 0, 30, 2 gearRatio2 = scalar, U16, 3284, "ratio", 0.01, 0, 0, 30, 2 gearRatio3 = scalar, U16, 3286, "ratio", 0.01, 0, 0, 30, 2 gearRatio4 = scalar, U16, 3288, "ratio", 0.01, 0, 0, 30, 2 gearRatio5 = scalar, U16, 3290, "ratio", 0.01, 0, 0, 30, 2 gearRatio6 = scalar, U16, 3292, "ratio", 0.01, 0, 0, 30, 2 gearRatio7 = scalar, U16, 3294, "ratio", 0.01, 0, 0, 30, 2 gearRatio8 = scalar, U16, 3296, "ratio", 0.01, 0, 0, 30, 2 gearRatio9 = scalar, U16, 3298, "ratio", 0.01, 0, 0, 30, 2 gearRatio10 = scalar, U16, 3300, "ratio", 0.01, 0, 0, 30, 2 vvtActivationDelayMs = scalar, U16, 3302, "ms", 1, 0, 0, 65000, 0 torqueTable = array, U08, 3304, [6x6], "Nm", 10.0, 0, 0, 255, 0 torqueRpmBins = array, U16, 3340, [6], "RPM", 1, 0, 0, 65000, 0 torqueLoadBins = array, U16, 3352, [6], "Load", 1, 0, 0, 65000, 0 gearControllerMode = bits, U08, 3364, [0:1], "None", "Button Shift", "INVALID", "INVALID" transmissionControllerMode = bits, U08, 3365, [0:1], "None", "Simple Transmission", "GM 4L6X", "INVALID" acrDisablePhase = scalar, U16, 3366, "deg", 1, 0, 0, 720, 0 auxLinear1_hwChannel = bits, U08, 3368, [0:5], $adc_channel_e_list auxLinear1_v1 = scalar, F32, 3372, "volts", 1, 0, 0, 10, 2 auxLinear1_value1 = scalar, F32, 3376, "", 1, 0, 0, 1000000, 2 auxLinear1_v2 = scalar, F32, 3380, "volts", 1, 0, 0, 10, 2 auxLinear1_value2 = scalar, F32, 3384, "", 1, 0, 0, 1000000, 2 auxLinear2_hwChannel = bits, U08, 3388, [0:5], $adc_channel_e_list auxLinear2_v1 = scalar, F32, 3392, "volts", 1, 0, 0, 10, 2 auxLinear2_value1 = scalar, F32, 3396, "", 1, 0, 0, 1000000, 2 auxLinear2_v2 = scalar, F32, 3400, "volts", 1, 0, 0, 10, 2 auxLinear2_value2 = scalar, F32, 3404, "", 1, 0, 0, 1000000, 2 tcu_tcc_onoff_solenoid = bits, U16, 3408, [0:8], $output_pin_e_list tcu_tcc_onoff_solenoid_mode = bits, U08, 3410, [0:1], "default", "default inverted", "open collector", "open collector inverted" tcu_tcc_pwm_solenoid = bits, U16, 3412, [0:8], $output_pin_e_list tcu_tcc_pwm_solenoid_mode = bits, U08, 3414, [0:1], "default", "default inverted", "open collector", "open collector inverted" tcu_tcc_pwm_solenoid_freq = scalar, U16, 3416, "Hz", 1, 0, 0, 3000, 0 tcu_pc_solenoid_pin = bits, U16, 3418, [0:8], $output_pin_e_list tcu_pc_solenoid_pin_mode = bits, U08, 3420, [0:1], "default", "default inverted", "open collector", "open collector inverted" tcu_pc_solenoid_freq = scalar, U16, 3422, "Hz", 1, 0, 0, 3000, 0 tcu_32_solenoid_pin = bits, U16, 3424, [0:8], $output_pin_e_list tcu_32_solenoid_pin_mode = bits, U08, 3426, [0:1], "default", "default inverted", "open collector", "open collector inverted" tcu_32_solenoid_freq = scalar, U16, 3428, "Hz", 1, 0, 0, 3000, 0 acrPin2 = bits, U16, 3430, [0:8], $output_pin_e_list etbMinimumPosition = scalar, F32, 3432, "%", 1, 0, 0.01, 100, 2 tuneHidingKey = scalar, U16, 3436, "", 1, 0, 0, 20000, 0 vinNumber = string, ASCII, 3438, 17 highSpeedOffsets = array, U16, 3456, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave fuelPressureSensorMode = bits, U08, 3520, [0:1], "Absolute", "Gauge", "Differential", "INVALID" luaDigitalInputPins1 = bits, U16, 3522, [0:7], $switch_input_pin_e_list luaDigitalInputPins2 = bits, U16, 3524, [0:7], $switch_input_pin_e_list luaDigitalInputPins3 = bits, U16, 3526, [0:7], $switch_input_pin_e_list luaDigitalInputPins4 = bits, U16, 3528, [0:7], $switch_input_pin_e_list luaDigitalInputPins5 = bits, U16, 3530, [0:7], $switch_input_pin_e_list luaDigitalInputPins6 = bits, U16, 3532, [0:7], $switch_input_pin_e_list luaDigitalInputPins7 = bits, U16, 3534, [0:7], $switch_input_pin_e_list luaDigitalInputPins8 = bits, U16, 3536, [0:7], $switch_input_pin_e_list ALSMinRPM = scalar, S16, 3538, "rpm", 1, 0, 0, 20000, 0 ALSMaxRPM = scalar, S16, 3540, "rpm", 1, 0, 0, 20000, 0 ALSMaxDuration = scalar, S16, 3542, "sec", 1, 0, 0, 10, 0 ALSMinCLT = scalar, S08, 3544, "C", 1, 0, 0, 90, 0 ALSMaxCLT = scalar, S08, 3545, "C", 1, 0, 0, 105, 0 alsMinTimeBetween = scalar, U08, 3546, "", 1, 0, 0, 20000, 0 alsEtbPosition = scalar, U08, 3547, "", 1, 0, 0, 20000, 0 acRelayAlternatorDutyAdder = scalar, U08, 3548, "%", 1, 0, 0, 100, 0 sentEtbType = bits, S08, 3549, [0:1], "None", "GM type 1", "Ford type 1", "Custom" customSentTpsMin = scalar, U16, 3550, "", 1, 0, 0, 32000, 0 ALSIdleAdd = scalar, S32, 3552, "%", 1, 0, 0, 100, 2 ALSEtbAdd = scalar, S32, 3556, "%", 1, 0, 0, 100, 2 ALSSkipRatio = scalar, F32, 3560, "", 1, 0, 0, 1, 1 ALSMaxDriverThrottleIntent = scalar, U08, 3564, "%", 1, 0, 0, 10, 0 ALSActivatePinMode = bits, U08, 3565, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" tpsSecondaryMaximum = scalar, U08, 3566, "%", 0.5, 0, 0, 100, 1 ppsSecondaryMaximum = scalar, U08, 3567, "%", 0.5, 0, 0, 100, 1 luaDigitalInputPinModes1 = bits, U08, 3568, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" luaDigitalInputPinModes2 = bits, U08, 3569, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" luaDigitalInputPinModes3 = bits, U08, 3570, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" luaDigitalInputPinModes4 = bits, U08, 3571, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" luaDigitalInputPinModes5 = bits, U08, 3572, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" luaDigitalInputPinModes6 = bits, U08, 3573, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" luaDigitalInputPinModes7 = bits, U08, 3574, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" luaDigitalInputPinModes8 = bits, U08, 3575, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" customSentTpsMax = scalar, U16, 3576, "", 1, 0, 0, 32000, 0 kLineBaudRate = scalar, U16, 3578, "", 1, 0, 0, 32000, 0 canGpioType = bits, S08, 3580, [0:1], "None", "DRT protocol", "MS protocol", "INVALID" uiMode = bits, S08, 3581, [0:1], "Full", "Installation", "Tuning", "INVALID" hpfpPeakPos = scalar, S16, 3582, "deg", 1, 0, -719, 719, 0 kLinePeriodUs = scalar, S16, 3584, "us", 1, 0, 0, 30000, 0 rpmSoftLimitWindowSize = scalar, U08, 3586, "RPM", 10.0, 0, 0, 2500, 0 rpmSoftLimitTimingRetard = scalar, U08, 3587, "deg", 0.2, 0, 0, 50, 1 rpmSoftLimitFuelAdded = scalar, U08, 3588, "%", 0.2, 0, 0, 50, 1 rpmHardLimitHyst = scalar, U08, 3589, "RPM", 10.0, 0, 0, 2500, 0 benchTestOffTime = scalar, U16, 3590, "ms", 0.1, 0, 0, 2000, 1 boostCutPressureHyst = scalar, U08, 3592, "kPa (absolute)", 0.5, 0, 0, 125, 1 gearBasedOpenLoopBoostAdder = array, S08, 3593, [10], "%", 0.5, 0, -63, 63, 1 benchTestCount = scalar, U32, 3604, "", 1, 0, 0, 10000000, 0 iacByTpsHoldTime = scalar, U08, 3608, "seconds", 0.1, 0, 0, 25, 1 iacByTpsDecayTime = scalar, U08, 3609, "seconds", 0.1, 0, 0, 25, 1 tcu_rangeInput1 = bits, U16, 3610, [0:7], $switch_input_pin_e_list tcu_rangeInput2 = bits, U16, 3612, [0:7], $switch_input_pin_e_list tcu_rangeInput3 = bits, U16, 3614, [0:7], $switch_input_pin_e_list tcu_rangeInput4 = bits, U16, 3616, [0:7], $switch_input_pin_e_list tcu_rangeInput5 = bits, U16, 3618, [0:7], $switch_input_pin_e_list tcu_rangeInput6 = bits, U16, 3620, [0:7], $switch_input_pin_e_list tcu_rangeInputMode1 = bits, U08, 3622, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" tcu_rangeInputMode2 = bits, U08, 3623, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" tcu_rangeInputMode3 = bits, U08, 3624, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" tcu_rangeInputMode4 = bits, U08, 3625, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" tcu_rangeInputMode5 = bits, U08, 3626, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" tcu_rangeInputMode6 = bits, U08, 3627, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" canVssScaling = scalar, U16, 3628, "ratio", 1.0E-4, 0, 0.5, 1.5, 4 oilTempSensor_tempC_1 = scalar, F32, 3632, "*C", 1, 0, -55, 200, 1 oilTempSensor_tempC_2 = scalar, F32, 3636, "*C", 1, 0, -55, 200, 1 oilTempSensor_tempC_3 = scalar, F32, 3640, "*C", 1, 0, -55, 200, 1 oilTempSensor_resistance_1 = scalar, F32, 3644, "Ohm", 1, 0, 0, 1000000, 1 oilTempSensor_resistance_2 = scalar, F32, 3648, "Ohm", 1, 0, 0, 1000000, 1 oilTempSensor_resistance_3 = scalar, F32, 3652, "Ohm", 1, 0, 0, 1000000, 1 oilTempSensor_bias_resistor = scalar, F32, 3656, "Ohm", 1, 0, 0, 200000, 1 oilTempSensor_adcChannel = bits, U08, 3660, [0:5], $adc_channel_e_list fuelTempSensor_tempC_1 = scalar, F32, 3664, "*C", 1, 0, -55, 200, 1 fuelTempSensor_tempC_2 = scalar, F32, 3668, "*C", 1, 0, -55, 200, 1 fuelTempSensor_tempC_3 = scalar, F32, 3672, "*C", 1, 0, -55, 200, 1 fuelTempSensor_resistance_1 = scalar, F32, 3676, "Ohm", 1, 0, 0, 1000000, 1 fuelTempSensor_resistance_2 = scalar, F32, 3680, "Ohm", 1, 0, 0, 1000000, 1 fuelTempSensor_resistance_3 = scalar, F32, 3684, "Ohm", 1, 0, 0, 1000000, 1 fuelTempSensor_bias_resistor = scalar, F32, 3688, "Ohm", 1, 0, 0, 200000, 1 fuelTempSensor_adcChannel = bits, U08, 3692, [0:5], $adc_channel_e_list ambientTempSensor_tempC_1 = scalar, F32, 3696, "*C", 1, 0, -55, 200, 1 ambientTempSensor_tempC_2 = scalar, F32, 3700, "*C", 1, 0, -55, 200, 1 ambientTempSensor_tempC_3 = scalar, F32, 3704, "*C", 1, 0, -55, 200, 1 ambientTempSensor_resistance_1 = scalar, F32, 3708, "Ohm", 1, 0, 0, 1000000, 1 ambientTempSensor_resistance_2 = scalar, F32, 3712, "Ohm", 1, 0, 0, 1000000, 1 ambientTempSensor_resistance_3 = scalar, F32, 3716, "Ohm", 1, 0, 0, 1000000, 1 ambientTempSensor_bias_resistor = scalar, F32, 3720, "Ohm", 1, 0, 0, 200000, 1 ambientTempSensor_adcChannel = bits, U08, 3724, [0:5], $adc_channel_e_list compressorDischargeTemperature_tempC_1 = scalar, F32, 3728, "*C", 1, 0, -55, 200, 1 compressorDischargeTemperature_tempC_2 = scalar, F32, 3732, "*C", 1, 0, -55, 200, 1 compressorDischargeTemperature_tempC_3 = scalar, F32, 3736, "*C", 1, 0, -55, 200, 1 compressorDischargeTemperature_resistance_1 = scalar, F32, 3740, "Ohm", 1, 0, 0, 1000000, 1 compressorDischargeTemperature_resistance_2 = scalar, F32, 3744, "Ohm", 1, 0, 0, 1000000, 1 compressorDischargeTemperature_resistance_3 = scalar, F32, 3748, "Ohm", 1, 0, 0, 1000000, 1 compressorDischargeTemperature_bias_resistor = scalar, F32, 3752, "Ohm", 1, 0, 0, 200000, 1 compressorDischargeTemperature_adcChannel = bits, U08, 3756, [0:5], $adc_channel_e_list throttleInletPressureChannel = bits, U08, 3760, [0:5], $adc_channel_e_list compressorDischargePressureChannel = bits, U08, 3761, [0:5], $adc_channel_e_list dacOutputPins1 = bits, U16, 3762, [0:7], $gpio_list dacOutputPins2 = bits, U16, 3764, [0:7], $gpio_list speedometerOutputPin = bits, U16, 3766, [0:8], $output_pin_e_list speedometerPulsePerKm = scalar, U16, 3768, "", 1, 0, 0, 65000, 0 simulatorCamPosition1 = scalar, U08, 3770, "", 1, 0, 0, 100, 0 simulatorCamPosition2 = scalar, U08, 3771, "", 1, 0, 0, 100, 0 simulatorCamPosition3 = scalar, U08, 3772, "", 1, 0, 0, 100, 0 simulatorCamPosition4 = scalar, U08, 3773, "", 1, 0, 0, 100, 0 ignKeyAdcChannel = bits, U08, 3774, [0:5], $adc_channel_e_list spi6MisoMode = bits, U08, 3775, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" triggerVVTGapOverrideFrom1 = scalar, F32, 3776, "ratio", 1, 0, 0, 20, 3 triggerVVTGapOverrideFrom2 = scalar, F32, 3780, "ratio", 1, 0, 0, 20, 3 triggerVVTGapOverrideFrom3 = scalar, F32, 3784, "ratio", 1, 0, 0, 20, 3 triggerVVTGapOverrideFrom4 = scalar, F32, 3788, "ratio", 1, 0, 0, 20, 3 triggerVVTGapOverrideTo1 = scalar, F32, 3792, "ratio", 1, 0, 0, 20, 3 triggerVVTGapOverrideTo2 = scalar, F32, 3796, "ratio", 1, 0, 0, 20, 3 triggerVVTGapOverrideTo3 = scalar, F32, 3800, "ratio", 1, 0, 0, 20, 3 triggerVVTGapOverrideTo4 = scalar, F32, 3804, "ratio", 1, 0, 0, 20, 3 tractionControlEtbDrop = array, S08, 3808, [6x6], "%", 1, 0, -100, 0, 0 maxInjectorDutyInstant = scalar, U08, 3844, "%", 1, 0, 50, 200, 0 maxInjectorDutySustained = scalar, U08, 3845, "%", 1, 0, 50, 120, 0 maxInjectorDutySustainedTimeout = scalar, U08, 3846, "sec", 0.1, 0, 0, 5, 1 injectionPinsStage21 = bits, U16, 3848, [0:8], $output_pin_e_list injectionPinsStage22 = bits, U16, 3850, [0:8], $output_pin_e_list injectionPinsStage23 = bits, U16, 3852, [0:8], $output_pin_e_list injectionPinsStage24 = bits, U16, 3854, [0:8], $output_pin_e_list injectionPinsStage25 = bits, U16, 3856, [0:8], $output_pin_e_list injectionPinsStage26 = bits, U16, 3858, [0:8], $output_pin_e_list injectionPinsStage27 = bits, U16, 3860, [0:8], $output_pin_e_list injectionPinsStage28 = bits, U16, 3862, [0:8], $output_pin_e_list injectionPinsStage29 = bits, U16, 3864, [0:8], $output_pin_e_list injectionPinsStage210 = bits, U16, 3866, [0:8], $output_pin_e_list injectionPinsStage211 = bits, U16, 3868, [0:8], $output_pin_e_list injectionPinsStage212 = bits, U16, 3870, [0:8], $output_pin_e_list tractionControlTimingDrop = array, S08, 3872, [6x6], "Deg", 1, 0, -100, 100, 0 tractionControlIgnitionSkip = array, S08, 3908, [6x6], "%", 1, 0, 0, 100, 0 auxSpeed1Multiplier = scalar, F32, 3944, "", 1, 0, 0, 100, 0 brakeMeanEffectivePressureDifferential = scalar, F32, 3948, "", 1, 0, 0, 100, 0 spi4mosiPin = bits, U16, 3952, [0:7], $gpio_list spi4misoPin = bits, U16, 3954, [0:7], $gpio_list spi4sckPin = bits, U16, 3956, [0:7], $gpio_list spi5mosiPin = bits, U16, 3958, [0:7], $gpio_list spi5misoPin = bits, U16, 3960, [0:7], $gpio_list spi5sckPin = bits, U16, 3962, [0:7], $gpio_list spi6mosiPin = bits, U16, 3964, [0:7], $gpio_list spi6misoPin = bits, U16, 3966, [0:7], $gpio_list spi6sckPin = bits, U16, 3968, [0:7], $gpio_list spi4SckMode = bits, U08, 3970, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" spi4MosiMode = bits, U08, 3971, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" spi4MisoMode = bits, U08, 3972, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" spi5SckMode = bits, U08, 3973, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" spi5MosiMode = bits, U08, 3974, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" spi5MisoMode = bits, U08, 3975, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" spi6SckMode = bits, U08, 3976, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" spi6MosiMode = bits, U08, 3977, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" tunerStudioSerialSpeed = scalar, U32, 3980, "BPs", 1, 0, 0, 1000000, 0 camSimulatorPin = bits, U16, 3984, [0:7], $gpio_list testField = scalar, S32, 3988, "", 1, 0, 0, 100, 0 unusedOftenChangesDuringFirmwareUpdate = array, U08, 3992, [230], "units", 1, 0, 0, 1, 0 etbBiasBins = array, F32, 4224, [8], "target TPS position", 1, 0, 0, 100, 0 etbBiasValues = array, F32, 4256, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 iacPidMultTable = array, U08, 4288, [8x8], "%", 0.05, 0, 0, 10, 2 iacPidMultLoadBins = array, U08, 4352, [8], "Load", 1, 0, 0, 500, 2 iacPidMultRpmBins = array, U08, 4360, [8], "RPM", 10.0, 0, 0, 2500, 0 sparkDwellRpmBins = array, U16, 4368, [8], "RPM", 1, 0, 0, 25000, 0 sparkDwellValues = array, U16, 4384, [8], "ms", 0.01, 0, 0, 30, 2 cltIdleRpmBins = array, S08, 4400, [16], "C", 2.0, 0, -40, 200, 0 cltIdleRpm = array, U08, 4416, [16], "RPM", 20.0, 0, 0, 5000, 0 cltTimingBins = array, F32, 4432, [8], "C", 1, 0, -100, 250, 1 cltTimingExtra = array, F32, 4464, [8], "degree", 1, 0, -400, 400, 0 scriptCurve1Bins = array, F32, 4496, [16], "x", 1, 0, -10000, 10000, 3 scriptCurve1 = array, F32, 4560, [16], "y", 1, 0, -10000, 10000, 3 scriptCurve2Bins = array, F32, 4624, [16], "x", 1, 0, -10000, 10000, 3 scriptCurve2 = array, F32, 4688, [16], "y", 1, 0, -10000, 10000, 3 scriptCurve3Bins = array, F32, 4752, [8], "x", 1, 0, -10000, 10000, 3 scriptCurve3 = array, F32, 4784, [8], "y", 1, 0, -10000, 10000, 3 scriptCurve4Bins = array, F32, 4816, [8], "x", 1, 0, -10000, 10000, 3 scriptCurve4 = array, F32, 4848, [8], "y", 1, 0, -10000, 10000, 3 scriptCurve5Bins = array, F32, 4880, [8], "x", 1, 0, -10000, 10000, 3 scriptCurve5 = array, F32, 4912, [8], "y", 1, 0, -10000, 10000, 3 scriptCurve6Bins = array, F32, 4944, [8], "x", 1, 0, -10000, 10000, 3 scriptCurve6 = array, F32, 4976, [8], "y", 1, 0, -10000, 10000, 3 baroCorrPressureBins = array, F32, 5008, [4], "kPa", 1, 0, 0, 200, 2 baroCorrRpmBins = array, F32, 5024, [4], "RPM", 1, 0, 0, 18000, 0 baroCorrTable = array, F32, 5040, [4x4], "ratio", 1, 0, 0, 2, 2 crankingTpsCoef = array, F32, 5104, [8], "Ratio", 1, 0, 0, 700, 2 crankingTpsBins = array, F32, 5136, [8], "%", 1, 0, 0, 100, 2 crankingAdvanceBins = array, U16, 5168, [4], "RPM", 1, 0, 0, 25000, 0 crankingAdvance = array, S16, 5176, [4], "deg", 0.01, 0, -20, 90, 2 iacCoastingRpmBins = array, U08, 5184, [16], "RPM", 100.0, 0, 0, 25000, 0 iacCoasting = array, U08, 5200, [16], "%", 0.5, 0, 0, 100, 1 warning_message = string, ASCII, 5216, 120 fancyOptions1 = scalar, U08, 5336, "", 1, 0, 0, 255, 0 fancyOptions2 = scalar, U08, 5337, "", 1, 0, 0, 255, 0 fancyOptions3 = scalar, U08, 5338, "", 1, 0, 0, 255, 0 fancyOptions4 = scalar, U08, 5339, "", 1, 0, 0, 255, 0 fancyOptions5 = scalar, U08, 5340, "", 1, 0, 0, 255, 0 fancyOptions6 = scalar, U08, 5341, "", 1, 0, 0, 255, 0 fancyOptions7 = scalar, U08, 5342, "", 1, 0, 0, 255, 0 fancyOptions8 = scalar, U08, 5343, "", 1, 0, 0, 255, 0 fancyOptions9 = scalar, U08, 5344, "", 1, 0, 0, 255, 0 fancyOptions10 = scalar, U08, 5345, "", 1, 0, 0, 255, 0 fancyOptions11 = scalar, U08, 5346, "", 1, 0, 0, 255, 0 fancyOptions12 = scalar, U08, 5347, "", 1, 0, 0, 255, 0 fancyOptions13 = scalar, U08, 5348, "", 1, 0, 0, 255, 0 fancyOptions14 = scalar, U08, 5349, "", 1, 0, 0, 255, 0 fancyOptions15 = scalar, U08, 5350, "", 1, 0, 0, 255, 0 fancyOptions16 = scalar, U08, 5351, "", 1, 0, 0, 255, 0 boostTableOpenLoop = array, U08, 5352, [8x8], "", 0.5, 0, 0, 100, 1 boostRpmBins = array, U08, 5416, [8], "RPM", 100.0, 0, 0, 25000, 0 boostTableClosedLoop = array, U08, 5424, [8x8], "", 2.0, 0, 0, 3000, 0 boostTpsBins = array, U08, 5488, [8], "%", 1, 0, 0, 100, 0 pedalToTpsTable = array, U08, 5496, [8x8], "%", 1, 0, 0, 100, 0 pedalToTpsPedalBins = array, U08, 5560, [8], "%", 1, 0, 0, 120, 0 pedalToTpsRpmBins = array, U08, 5568, [8], "RPM", 100.0, 0, 0, 25000, 0 cltCrankingCorrBins = array, F32, 5576, [8], "C", 1, 0, -100, 250, 2 cltCrankingCorr = array, F32, 5608, [8], "%", 1, 0, 0, 500, 2 idleAdvanceBins = array, U08, 5640, [8], "RPM", 50.0, 0, 0, 12000, 0 idleAdvance = array, F32, 5648, [8], "deg", 1, 0, -20, 90, 1 idleVeRpmBins = array, U08, 5680, [4], "RPM", 10.0, 0, 0, 2500, 0 idleVeLoadBins = array, U08, 5684, [4], "load", 1, 0, 0, 100, 0 idleVeTable = array, U16, 5688, [4x4], "%", 0.1, 0, 0, 999, 1 luaScript = string, ASCII, 5720, 8000 cltFuelCorrBins = array, F32, 13720, [16], "C", 1, 0, -100, 250, 2 cltFuelCorr = array, F32, 13784, [16], "ratio", 1, 0, 0, 5, 2 iatFuelCorrBins = array, F32, 13848, [16], "C", 1, 0, -100, 250, 2 iatFuelCorr = array, F32, 13912, [16], "ratio", 1, 0, 0, 5, 2 crankingFuelCoef = array, F32, 13976, [8], "ratio", 1, 0, 0, 50, 2 crankingFuelBins = array, F32, 14008, [8], "C", 1, 0, -80, 170, 2 crankingCycleCoef = array, F32, 14040, [8], "ratio", 1, 0, 0, 5, 2 crankingCycleBins = array, F32, 14072, [8], "counter", 1, 0, -80, 170, 0 cltIdleCorrBins = array, F32, 14104, [16], "C", 1, 0, -100, 250, 2 cltIdleCorr = array, F32, 14168, [16], "ratio", 1, 0, 0, 10, 2 mafDecoding = array, F32, 14232, [32], "kg/hour", 1, 0, -500, 4000, 2 mafDecodingBins = array, F32, 14360, [32], "V", 1, 0, -5, 150, 2 ignitionIatCorrTable = array, S08, 14488, [8x8], "deg", 0.1, 0, -25, 25, 1 ignitionIatCorrTempBins = array, S08, 14552, [8], "C", 1, 0, -40, 120, 0 ignitionIatCorrLoadBins = array, U08, 14560, [8], "Load", 5.0, 0, 0, 1000, 0 injectionPhase = array, S16, 14568, [16x16], "deg", 1, 0, -720, 720, 0 injPhaseLoadBins = array, U16, 15080, [16], "Load", 1, 0, 0, 1000, 0 injPhaseRpmBins = array, U16, 15112, [16], "RPM", 1, 0, 0, 18000, 0 tcuSolenoidTable = array, U08, 15144, [10x6], "onoff", 1, 0, 0, 1, 0 mapEstimateTable = array, U16, 15204, [16x16], "kPa", 0.01, 0, 0, 600, 2 mapEstimateTpsBins = array, U16, 15716, [16], "% TPS", 0.01, 0, 0, 100, 1 mapEstimateRpmBins = array, U16, 15748, [16], "RPM", 1, 0, 0, 18000, 0 vvtTable1 = array, S08, 15780, [8x8], "value", 1, 0, -125, 125, 0 vvtTable1LoadBins = array, U16, 15844, [8], "L", 1, 0, 0, 1000, 0 vvtTable1RpmBins = array, U16, 15860, [8], "RPM", 1, 0, 0, 18000, 0 vvtTable2 = array, S08, 15876, [8x8], "value", 1, 0, -125, 125, 0 vvtTable2LoadBins = array, U16, 15940, [8], "L", 1, 0, 0, 1000, 0 vvtTable2RpmBins = array, U16, 15956, [8], "RPM", 1, 0, 0, 18000, 0 ignitionTable = array, S16, 15972, [16x16], "deg", 0.1, 0, -20, 90, 1 ignitionLoadBins = array, U16, 16484, [16], "Load", 1, 0, 0, 1000, 0 ignitionRpmBins = array, U16, 16516, [16], "RPM", 1, 0, 0, 18000, 0 veTable = array, U16, 16548, [16x16], "%", 0.1, 0, 0, 999, 1 veLoadBins = array, U16, 17060, [16], "kPa", 1, 0, 0, 1000, 0 veRpmBins = array, U16, 17092, [16], "RPM", 1, 0, 0, 18000, 0 #if LAMBDA lambdaTable = array, U08, 17124, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 #else lambdaTable = array, U08, 17124, [16x16], "afr", 0.1, 0, 0, 25, 1 #endif lambdaLoadBins = array, U16, 17380, [16], "", 1, 0, 0, 1000, 0 lambdaRpmBins = array, U16, 17412, [16], "RPM", 1, 0, 0, 18000, 0 tpsTpsAccelTable = array, F32, 17444, [8x8], "value", 1, 0, 0, 30000, 2 tpsTpsAccelFromRpmBins = array, F32, 17700, [8], "from", 1, 0, 0, 30000, 2 tpsTpsAccelToRpmBins = array, F32, 17732, [8], "to", 1, 0, 0, 25500, 2 scriptTable1 = array, F32, 17764, [8x8], "value", 1, 0, -100000, 100000, 2 scriptTable1LoadBins = array, S16, 18020, [8], "L", 1, 0, -32000, 32000, 0 scriptTable1RpmBins = array, S16, 18036, [8], "RPM", 1, 0, -32000, 32000, 0 scriptTable2 = array, F32, 18052, [8x8], "value", 1, 0, -100000, 100000, 2 scriptTable2LoadBins = array, S16, 18308, [8], "L", 1, 0, -32000, 32000, 0 scriptTable2RpmBins = array, S16, 18324, [8], "RPM", 1, 0, -32000, 32000, 0 scriptTable3 = array, U08, 18340, [8x8], "value", 1, 0, 0, 255, 0 scriptTable3LoadBins = array, S16, 18404, [8], "L", 1, 0, -32000, 32000, 0 scriptTable3RpmBins = array, S16, 18420, [8], "RPM", 1, 0, -32000, 32000, 0 scriptTable4 = array, U08, 18436, [10x8], "value", 1, 0, 0, 255, 0 scriptTable4LoadBins = array, S16, 18516, [8], "L", 1, 0, -32000, 32000, 0 scriptTable4RpmBins = array, S16, 18532, [10], "RPM", 1, 0, -32000, 32000, 0 ignTrimLoadBins = array, U16, 18552, [4], "", 1, 0, 0, 1000, 0 ignTrimRpmBins = array, U16, 18560, [4], "rpm", 1, 0, 0, 20000, 0 ignTrims1_table = array, S08, 18568, [4x4], "", 0.2, 0, -25, 25, 1 ignTrims2_table = array, S08, 18584, [4x4], "", 0.2, 0, -25, 25, 1 ignTrims3_table = array, S08, 18600, [4x4], "", 0.2, 0, -25, 25, 1 ignTrims4_table = array, S08, 18616, [4x4], "", 0.2, 0, -25, 25, 1 ignTrims5_table = array, S08, 18632, [4x4], "", 0.2, 0, -25, 25, 1 ignTrims6_table = array, S08, 18648, [4x4], "", 0.2, 0, -25, 25, 1 ignTrims7_table = array, S08, 18664, [4x4], "", 0.2, 0, -25, 25, 1 ignTrims8_table = array, S08, 18680, [4x4], "", 0.2, 0, -25, 25, 1 ignTrims9_table = array, S08, 18696, [4x4], "", 0.2, 0, -25, 25, 1 ignTrims10_table = array, S08, 18712, [4x4], "", 0.2, 0, -25, 25, 1 ignTrims11_table = array, S08, 18728, [4x4], "", 0.2, 0, -25, 25, 1 ignTrims12_table = array, S08, 18744, [4x4], "", 0.2, 0, -25, 25, 1 fuelTrimLoadBins = array, U16, 18760, [4], "", 1, 0, 0, 1000, 0 fuelTrimRpmBins = array, U16, 18768, [4], "rpm", 1, 0, 0, 20000, 0 fuelTrims1_table = array, S08, 18776, [4x4], "", 0.2, 0, -25, 25, 1 fuelTrims2_table = array, S08, 18792, [4x4], "", 0.2, 0, -25, 25, 1 fuelTrims3_table = array, S08, 18808, [4x4], "", 0.2, 0, -25, 25, 1 fuelTrims4_table = array, S08, 18824, [4x4], "", 0.2, 0, -25, 25, 1 fuelTrims5_table = array, S08, 18840, [4x4], "", 0.2, 0, -25, 25, 1 fuelTrims6_table = array, S08, 18856, [4x4], "", 0.2, 0, -25, 25, 1 fuelTrims7_table = array, S08, 18872, [4x4], "", 0.2, 0, -25, 25, 1 fuelTrims8_table = array, S08, 18888, [4x4], "", 0.2, 0, -25, 25, 1 fuelTrims9_table = array, S08, 18904, [4x4], "", 0.2, 0, -25, 25, 1 fuelTrims10_table = array, S08, 18920, [4x4], "", 0.2, 0, -25, 25, 1 fuelTrims11_table = array, S08, 18936, [4x4], "", 0.2, 0, -25, 25, 1 fuelTrims12_table = array, S08, 18952, [4x4], "", 0.2, 0, -25, 25, 1 crankingFuelCoefE100 = array, U16, 18968, [8], "ratio", 0.01, 0, 0, 50, 2 tcu_pcAirmassBins = array, U08, 18984, [8], "Airmass", 0.02, 0, 0, 255, 2 tcu_pcValsR = array, U08, 18992, [8], "%", 1, 0, 0, 255, 0 tcu_pcValsN = array, U08, 19000, [8], "%", 1, 0, 0, 255, 0 tcu_pcVals1 = array, U08, 19008, [8], "%", 1, 0, 0, 255, 0 tcu_pcVals2 = array, U08, 19016, [8], "%", 1, 0, 0, 255, 0 tcu_pcVals3 = array, U08, 19024, [8], "%", 1, 0, 0, 255, 0 tcu_pcVals4 = array, U08, 19032, [8], "%", 1, 0, 0, 255, 0 tcu_pcVals12 = array, U08, 19040, [8], "%", 1, 0, 0, 255, 0 tcu_pcVals23 = array, U08, 19048, [8], "%", 1, 0, 0, 255, 0 tcu_pcVals34 = array, U08, 19056, [8], "%", 1, 0, 0, 255, 0 tcu_pcVals21 = array, U08, 19064, [8], "%", 1, 0, 0, 255, 0 tcu_pcVals32 = array, U08, 19072, [8], "%", 1, 0, 0, 255, 0 tcu_pcVals43 = array, U08, 19080, [8], "%", 1, 0, 0, 255, 0 tcu_tccTpsBins = array, U08, 19088, [8], "TPS", 1, 0, 0, 255, 0 tcu_tccLockSpeed = array, U08, 19096, [8], "MPH", 1, 0, 0, 255, 0 tcu_tccUnlockSpeed = array, U08, 19104, [8], "MPH", 1, 0, 0, 255, 0 tcu_32SpeedBins = array, U08, 19112, [8], "KPH", 1, 0, 0, 255, 0 tcu_32Vals = array, U08, 19120, [8], "%", 1, 0, 0, 255, 0 throttle2TrimTable = array, S08, 19128, [6x6], "%", 0.1, 0, -10, 10, 1 throttle2TrimTpsBins = array, U08, 19164, [6], "%", 1, 0, 0, 120, 0 throttle2TrimRpmBins = array, U08, 19170, [6], "RPM", 100.0, 0, 0, 25000, 0 maxKnockRetardTable = array, U08, 19176, [6x6], "deg", 0.25, 0, 0, 30, 2 maxKnockRetardLoadBins = array, U08, 19212, [6], "%", 1, 0, 0, 250, 0 maxKnockRetardRpmBins = array, U08, 19218, [6], "RPM", 100.0, 0, 0, 25000, 0 ALSTimingRetardTable = array, S16, 19224, [4x4], "deg", 0.1, 0, -60, 0, 1 alsIgnRetardLoadBins = array, U16, 19256, [4], "TPS", 1, 0, 0, 100, 0 alsIgnRetardrpmBins = array, U16, 19264, [4], "RPM", 1, 0, 0, 25000, 0 ALSFuelAdjustment = array, S16, 19272, [4x4], "percent", 0.1, 0, 0, 50, 1 alsFuelAdjustmentLoadBins = array, U16, 19304, [4], "TPS", 1, 0, 0, 100, 0 alsFuelAdjustmentrpmBins = array, U16, 19312, [4], "RPM", 1, 0, 0, 25000, 0 ALSIgnSkipTable = array, S16, 19320, [4x4], "ratio", 10.0, 0, 0, 50, 1 alsIgnSkipLoadBins = array, U16, 19352, [4], "TPS", 1, 0, 0, 100, 0 alsIgnSkiprpmBins = array, U16, 19360, [4], "RPM", 1, 0, 0, 25000, 0 ignBlends1_table = array, S16, 19368, [8x8], "", 0.1, 0, -100, 100, 1 ignBlends1_loadBins = array, U16, 19496, [8], "Load", 1, 0, 0, 1000, 0 ignBlends1_rpmBins = array, U16, 19512, [8], "RPM", 1, 0, 0, 18000, 0 ignBlends1_blendParameter = bits, U08, 19528, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" ignBlends1_yAxisOverride = bits, U08, 19529, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" ignBlends1_blendBins = array, S16, 19530, [8], "", 0.1, 0, -1000, 1000, 1 ignBlends1_blendValues = array, U08, 19546, [8], "%", 0.5, 0, 0, 100, 1 ignBlends2_table = array, S16, 19556, [8x8], "", 0.1, 0, -100, 100, 1 ignBlends2_loadBins = array, U16, 19684, [8], "Load", 1, 0, 0, 1000, 0 ignBlends2_rpmBins = array, U16, 19700, [8], "RPM", 1, 0, 0, 18000, 0 ignBlends2_blendParameter = bits, U08, 19716, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" ignBlends2_yAxisOverride = bits, U08, 19717, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" ignBlends2_blendBins = array, S16, 19718, [8], "", 0.1, 0, -1000, 1000, 1 ignBlends2_blendValues = array, U08, 19734, [8], "%", 0.5, 0, 0, 100, 1 ignBlends3_table = array, S16, 19744, [8x8], "", 0.1, 0, -100, 100, 1 ignBlends3_loadBins = array, U16, 19872, [8], "Load", 1, 0, 0, 1000, 0 ignBlends3_rpmBins = array, U16, 19888, [8], "RPM", 1, 0, 0, 18000, 0 ignBlends3_blendParameter = bits, U08, 19904, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" ignBlends3_yAxisOverride = bits, U08, 19905, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" ignBlends3_blendBins = array, S16, 19906, [8], "", 0.1, 0, -1000, 1000, 1 ignBlends3_blendValues = array, U08, 19922, [8], "%", 0.5, 0, 0, 100, 1 ignBlends4_table = array, S16, 19932, [8x8], "", 0.1, 0, -100, 100, 1 ignBlends4_loadBins = array, U16, 20060, [8], "Load", 1, 0, 0, 1000, 0 ignBlends4_rpmBins = array, U16, 20076, [8], "RPM", 1, 0, 0, 18000, 0 ignBlends4_blendParameter = bits, U08, 20092, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" ignBlends4_yAxisOverride = bits, U08, 20093, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" ignBlends4_blendBins = array, S16, 20094, [8], "", 0.1, 0, -1000, 1000, 1 ignBlends4_blendValues = array, U08, 20110, [8], "%", 0.5, 0, 0, 100, 1 veBlends1_table = array, S16, 20120, [8x8], "", 0.1, 0, -100, 100, 1 veBlends1_loadBins = array, U16, 20248, [8], "Load", 1, 0, 0, 1000, 0 veBlends1_rpmBins = array, U16, 20264, [8], "RPM", 1, 0, 0, 18000, 0 veBlends1_blendParameter = bits, U08, 20280, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" veBlends1_yAxisOverride = bits, U08, 20281, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" veBlends1_blendBins = array, S16, 20282, [8], "", 0.1, 0, -1000, 1000, 1 veBlends1_blendValues = array, U08, 20298, [8], "%", 0.5, 0, 0, 100, 1 veBlends2_table = array, S16, 20308, [8x8], "", 0.1, 0, -100, 100, 1 veBlends2_loadBins = array, U16, 20436, [8], "Load", 1, 0, 0, 1000, 0 veBlends2_rpmBins = array, U16, 20452, [8], "RPM", 1, 0, 0, 18000, 0 veBlends2_blendParameter = bits, U08, 20468, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" veBlends2_yAxisOverride = bits, U08, 20469, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" veBlends2_blendBins = array, S16, 20470, [8], "", 0.1, 0, -1000, 1000, 1 veBlends2_blendValues = array, U08, 20486, [8], "%", 0.5, 0, 0, 100, 1 veBlends3_table = array, S16, 20496, [8x8], "", 0.1, 0, -100, 100, 1 veBlends3_loadBins = array, U16, 20624, [8], "Load", 1, 0, 0, 1000, 0 veBlends3_rpmBins = array, U16, 20640, [8], "RPM", 1, 0, 0, 18000, 0 veBlends3_blendParameter = bits, U08, 20656, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" veBlends3_yAxisOverride = bits, U08, 20657, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" veBlends3_blendBins = array, S16, 20658, [8], "", 0.1, 0, -1000, 1000, 1 veBlends3_blendValues = array, U08, 20674, [8], "%", 0.5, 0, 0, 100, 1 veBlends4_table = array, S16, 20684, [8x8], "", 0.1, 0, -100, 100, 1 veBlends4_loadBins = array, U16, 20812, [8], "Load", 1, 0, 0, 1000, 0 veBlends4_rpmBins = array, U16, 20828, [8], "RPM", 1, 0, 0, 18000, 0 veBlends4_blendParameter = bits, U08, 20844, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" veBlends4_yAxisOverride = bits, U08, 20845, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" veBlends4_blendBins = array, S16, 20846, [8], "", 0.1, 0, -1000, 1000, 1 veBlends4_blendValues = array, U08, 20862, [8], "%", 0.5, 0, 0, 100, 1 throttleEstimateEffectiveAreaBins = array, U16, 20872, [12], "%", 0.1, 0, 0, 100, 1 throttleEstimateEffectiveAreaValues = array, U16, 20896, [12], "g/s", 0.1, 0, 0, 6500, 1 boostOpenLoopBlends1_table = array, S16, 20920, [8x8], "", 0.1, 0, -100, 100, 1 boostOpenLoopBlends1_loadBins = array, U16, 21048, [8], "Load", 1, 0, 0, 1000, 0 boostOpenLoopBlends1_rpmBins = array, U16, 21064, [8], "RPM", 1, 0, 0, 18000, 0 boostOpenLoopBlends1_blendParameter = bits, U08, 21080, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" boostOpenLoopBlends1_yAxisOverride = bits, U08, 21081, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" boostOpenLoopBlends1_blendBins = array, S16, 21082, [8], "", 0.1, 0, -1000, 1000, 1 boostOpenLoopBlends1_blendValues = array, U08, 21098, [8], "%", 0.5, 0, 0, 100, 1 boostOpenLoopBlends2_table = array, S16, 21108, [8x8], "", 0.1, 0, -100, 100, 1 boostOpenLoopBlends2_loadBins = array, U16, 21236, [8], "Load", 1, 0, 0, 1000, 0 boostOpenLoopBlends2_rpmBins = array, U16, 21252, [8], "RPM", 1, 0, 0, 18000, 0 boostOpenLoopBlends2_blendParameter = bits, U08, 21268, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" boostOpenLoopBlends2_yAxisOverride = bits, U08, 21269, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" boostOpenLoopBlends2_blendBins = array, S16, 21270, [8], "", 0.1, 0, -1000, 1000, 1 boostOpenLoopBlends2_blendValues = array, U08, 21286, [8], "%", 0.5, 0, 0, 100, 1 boostClosedLoopBlends1_table = array, S16, 21296, [8x8], "", 0.1, 0, -100, 100, 1 boostClosedLoopBlends1_loadBins = array, U16, 21424, [8], "Load", 1, 0, 0, 1000, 0 boostClosedLoopBlends1_rpmBins = array, U16, 21440, [8], "RPM", 1, 0, 0, 18000, 0 boostClosedLoopBlends1_blendParameter = bits, U08, 21456, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" boostClosedLoopBlends1_yAxisOverride = bits, U08, 21457, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" boostClosedLoopBlends1_blendBins = array, S16, 21458, [8], "", 0.1, 0, -1000, 1000, 1 boostClosedLoopBlends1_blendValues = array, U08, 21474, [8], "%", 0.5, 0, 0, 100, 1 boostClosedLoopBlends2_table = array, S16, 21484, [8x8], "", 0.1, 0, -100, 100, 1 boostClosedLoopBlends2_loadBins = array, U16, 21612, [8], "Load", 1, 0, 0, 1000, 0 boostClosedLoopBlends2_rpmBins = array, U16, 21628, [8], "RPM", 1, 0, 0, 18000, 0 boostClosedLoopBlends2_blendParameter = bits, U08, 21644, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" boostClosedLoopBlends2_yAxisOverride = bits, U08, 21645, [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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" boostClosedLoopBlends2_blendBins = array, S16, 21646, [8], "", 0.1, 0, -1000, 1000, 1 boostClosedLoopBlends2_blendValues = array, U08, 21662, [8], "%", 0.5, 0, 0, 100, 1 tcu_rangeP = array, U08, 21672, [6], "level", 1, 0, 0, 3, 0 tcu_rangeR = array, U08, 21678, [6], "level", 1, 0, 0, 3, 0 tcu_rangeN = array, U08, 21684, [6], "level", 1, 0, 0, 3, 0 tcu_rangeD = array, U08, 21690, [6], "level", 1, 0, 0, 3, 0 tcu_rangeM = array, U08, 21696, [6], "level", 1, 0, 0, 3, 0 tcu_rangeM3 = array, U08, 21702, [6], "level", 1, 0, 0, 3, 0 tcu_rangeM2 = array, U08, 21708, [6], "level", 1, 0, 0, 3, 0 tcu_rangeM1 = array, U08, 21714, [6], "level", 1, 0, 0, 3, 0 tcu_rangePlus = array, U08, 21720, [6], "level", 1, 0, 0, 3, 0 tcu_rangeMinus = array, U08, 21726, [6], "level", 1, 0, 0, 3, 0 tcu_rangeLow = array, U08, 21732, [6], "level", 1, 0, 0, 3, 0 lambdaMaxDeviationTable = array, U08, 21738, [4x4], "lambda", 0.01, 0, 0, 1, 2 lambdaMaxDeviationLoadBins = array, U16, 21754, [4], "", 1, 0, 0, 1000, 0 lambdaMaxDeviationRpmBins = array, U16, 21762, [4], "RPM", 1, 0, 0, 18000, 0 injectorStagingTable = array, U08, 21770, [6x6], "%", 1, 0, 0, 90, 0 injectorStagingLoadBins = array, U16, 21806, [6], "", 1, 0, 0, 1000, 0 injectorStagingRpmBins = array, U16, 21818, [6], "RPM", 1, 0, 0, 18000, 0 wwCltBins = array, S08, 21830, [8], "deg C", 1, 0, -40, 120, 0 wwTauCltValues = array, U08, 21838, [8], "", 0.01, 0, 0, 2.5, 2 wwBetaCltValues = array, U08, 21846, [8], "", 0.01, 0, 0, 1, 2 wwMapBins = array, S08, 21854, [8], "kPa", 1, 0, 0, 250, 0 wwTauMapValues = array, U08, 21862, [8], "", 0.01, 0, 0, 2.5, 2 wwBetaMapValues = array, U08, 21870, [8], "", 0.01, 0, 0, 2.5, 2 hpfpLobeProfileQuantityBins = array, U08, 21878, [16], "%", 0.5, 0, 0, 100, 1 hpfpLobeProfileAngle = array, U08, 21894, [16], "deg", 0.5, 0, 0, 125, 1 hpfpDeadtimeVoltsBins = array, U08, 21910, [8], "volts", 1, 0, 0, 255, 0 hpfpDeadtimeMS = array, U16, 21918, [8], "ms", 0.001, 0, 0, 65, 3 hpfpTarget = array, U16, 21934, [10x10], "kPa", 1, 0, 0, 65000, 0 hpfpTargetLoadBins = array, U16, 22134, [10], "load", 0.1, 0, 0, 6500, 1 hpfpTargetRpmBins = array, U08, 22154, [10], "RPM", 50.0, 0, 0, 12500, 0 hpfpCompensation = array, S08, 22164, [10x10], "%", 1, 0, -100, 100, 0 hpfpCompensationLoadBins = array, U16, 22264, [10], "cc/lobe", 0.001, 0, 0, 65, 3 hpfpCompensationRpmBins = array, U08, 22284, [10], "RPM", 50.0, 0, 0, 12500, 0 knockNoiseRpmBins = array, U16, 22294, [16], "RPM", 1, 0, 0, 30000, 0 knockBaseNoise = array, S08, 22326, [16], "dB", 0.5, 0, -50, 10, 1 tpsTspCorrValuesBins = array, U08, 22342, [4], "RPM", 50.0, 0, 0, 17500, 0 tpsTspCorrValues = array, U08, 22346, [4], "multiplier", 0.02, 0, 0, 5, 2 cltRevLimitRpmBins = array, S08, 22350, [4], "C", 1, 0, -40, 120, 0 cltRevLimitRpm = array, U16, 22354, [4], "RPM", 1, 0, 0, 20000, 0 fuelLevelBins = array, U16, 22362, [8], "volt", 0.001, 0, 0, 5, 3 fuelLevelValues = array, U08, 22378, [8], "%", 1, 0, 0, 100, 0 dwellVoltageCorrVoltBins = array, U08, 22386, [8], "volts", 0.1, 0, 0, 20, 1 dwellVoltageCorrValues = array, U08, 22394, [8], "multiplier", 0.02, 0, 0, 5, 2 ; total TS size = 22404 [SettingContextHelp] engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type\nset engine_type X" sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" rpmHardLimit = "set rpm_hard_limit X" engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm\nset engineSnifferRpmThreshold X" 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." compressionRatio = "Just for reference really, not taken into account by any logic at this point" 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" idlePositionMin = "Voltage when the idle valve is closed.\nYou probably don't have one of these!" idlePositionMax = "Voltage when the idle valve is open.\nYou probably don't have one of these!\n1 volt = 1000 units" canTxPin = "set_can_tx_pin X" canRxPin = "set_can_rx_pin X" etbExpAverageLength = "By the way ETB PID runs at 500hz, length in 1/500 of second here." etbJamTimeout = "Time required to detect a stuck throttle." acIdleExtraOffset = "Additional idle % while A/C is active" manIdlePosition = "Value between 0 and 100 used in Manual mode" 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)" injector_flow = "This is your injector flow at the fuel pressure used in the vehicle. cc/min, cubic centimetre per minute\nBy the way, g/s = 0.125997881 * (lb/hr)\ng/s = 0.125997881 * (cc/min)/10.5\ng/s = 0.0119997981 * 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, cubic centimetre per minute\nBy the way, g/s = 0.125997881 * (lb/hr)\ng/s = 0.125997881 * (cc/min)/10.5\ng/s = 0.0119997981 * 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." useCicPidForIdle = "Switch between Industrial and Cic PID implementation" 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)." displayLogicLevelsInEngineSniffer = "Shall we display real life signal or just the part consumed by trigger decoder.\nApplies to both trigger and cam/vvt input.\n\nenable logic_level_trigger" verboseCan = "Print incoming and outgoing first bus CAN messages in rusEFI 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." useSpiImu = "If enabled - use onboard SPI Accelerometer, otherwise listen for CAN messages" tpsMin = "Closed throttle, 1 volt = 200 units.\nSee also tps1_1AdcChannel\nset tps_min X" tpsMax = "Full throttle.\nSee also tps1_1AdcChannel\nset tps_max X" tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equipped." tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equipped." 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. \nset cranking_rpm X" 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" hip9011PrescalerAndSDO = "value '6' for 8MHz hw osc\nread hip9011 datasheet for details\ntodo split into two bit fields" 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." 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." 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." 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\nset cranking_timing_angle X" 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\nset ignition_mode X" 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." 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)." canNbcType = "set can_mode X" 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 synchronization point before TDC and negative in case of synchronization point after TDC\n.Knowing this angle allows us to control timing and other angles in reference to TDC.\nset global_trigger_offset_angle X" 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. See also pedalPositionAdcChannel" 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 position sensor, single channel so far\nset_analog_input_pin tps2 X" 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\nset trigger_type X" 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." 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" throttlePedalPositionAdcChannel = "Electronic throttle pedal position first channel\nSee throttlePedalPositionSecondAdcChannel for second channel\nSee also tps1_1AdcChannel\nset_analog_input_pin pps X\nSee throttlePedalUpVoltage and throttlePedalWOTVoltage" etbSplit = "TPS/PPS error threshold" 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" 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." 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." vssFilterReciprocal = "Set this so your vehicle speed signal is responsive, but not noisy. Larger value give smoother but slower response." 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." 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" 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" gapVvtTrackingLengthOverride = "How many consecutive VVT gap rations have to match expected ranges for sync to happen" 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" digitalPotentiometerChipSelect1 = "digitalPotentiometerChipSelect 1" digitalPotentiometerChipSelect2 = "digitalPotentiometerChipSelect 2" digitalPotentiometerChipSelect3 = "digitalPotentiometerChipSelect 3" digitalPotentiometerChipSelect4 = "digitalPotentiometerChipSelect 4" digitalPotentiometerSpiDevice = "Digital Potentiometer is used by stock ECU stimulation code" auxFastSensor1_adcChannel = "Useful in Research&Development phase" tps1_2AdcChannel = "First throttle body, second sensor." tps2_2AdcChannel = "Second throttle body, second sensor." throttlePedalPositionSecondAdcChannel = "Electronic throttle pedal position input\nSecond channel\nSee also tps1_1AdcChannel\nSee throttlePedalSecondaryUpVoltage and throttlePedalSecondaryWOTVoltage" afr_type = "AFR, WBO, EGO - whatever you like to call it" mc33810_cs1 = "mc33810_cs 1" 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." finalGearRatio = "Ratio between the wheels and your transmission output." triggerSimulatorPins1 = "Each rusEFI piece can provide synthetic trigger signal for external ECU. Sometimes these wires are routed back into trigger inputs of the same rusEFI board.\nSee also directSelfStimulation which is different. 1" triggerSimulatorPins2 = "Each rusEFI piece can provide synthetic trigger signal for external ECU. Sometimes these wires are routed back into trigger inputs of the same rusEFI board.\nSee also directSelfStimulation which is different. 2" triggerSimulatorPinModes1 = "triggerSimulatorPinModes 1" triggerSimulatorPinModes2 = "triggerSimulatorPinModes 2" o2heaterPin = "On-off O2 sensor heater control. 'ON' if engine is running, 'OFF' if stopped or cranking." isSdCardEnabled = "enable sd/disable sd" rusefiVerbose29b = "Use 11 bit (standard) or 29 bit (extended) IDs for rusEFI 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 rusEFI 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, i.e. coasting detection threshold.\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" secondSolenoidPin = "Some Subaru and some Mazda use double-solenoid idle air valve" startStopButtonPin = "See also starterControlPin" 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" triggerErrorPin = "This pin is used for debugging - snap a logic analyzer on it and see if it's ever high" 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" cdmInputPin = "Saab Combustion Detection Module knock signal input pin\nalso known as Saab Ion Sensing Module" sensorChartMode = "rusEFI console Sensor Sniffer mode" useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" consumeObdSensors = "This property is useful if using rusEFI as TCM or BCM only" 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 coils" verboseCan2 = "Print incoming and outgoing second bus CAN messages in rusEFI 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" 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." 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." launchSpeedThreshold = "Launch disabled above this speed if setting is above zero" launchRpmWindow = "Starting Launch RPM window to activate (subtracts from Launch RPM)" launchSparkSkipPercent = "Spark Skip Transition Target" launchBoostDuty = "Duty Cycle for the Boost Solenoid" stft_maxIdleRegionRpm = "Below this RPM, the idle region is active, idle+300 would be a good value" 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_maxAdd = "Maximum % that the short term fuel trim can add" stft_cellCfgs1_maxRemove = "Maximum % that the short term fuel trim can remove" 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_maxAdd = "Maximum % that the short term fuel trim can add" stft_cellCfgs2_maxRemove = "Maximum % that the short term fuel trim can remove" 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_maxAdd = "Maximum % that the short term fuel trim can add" stft_cellCfgs3_maxRemove = "Maximum % that the short term fuel trim can remove" 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_maxAdd = "Maximum % that the short term fuel trim can add" stft_cellCfgs4_maxRemove = "Maximum % that the short term fuel trim can remove" 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\nREQUIRED for rusEFI Online" engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online" vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online" 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\nset vvt_offset X 1" vvtOffsets2 = "Angle between cam sensor and VVT zero position\nset vvt_offset X 2" vvtOffsets3 = "Angle between cam sensor and VVT zero position\nset vvt_offset X 3" vvtOffsets4 = "Angle between cam sensor and VVT zero position\nset vvt_offset X 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." oddFireEngine = "On even fire engines with even number of cylinders we go wasted spark during cranking. Use this setting to disable wasted spark cranking on odd fire engines." silentTriggerError = "Sometimes we have a performance issue while printing error" canReadEnabled = "enable can_read/disable can_read" canWriteEnabled = "enable can_write/disable can_write. See also can1ListenMode" 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 = "https://wiki.rusefi.com/Trigger-Configuration-Guide\nThis setting flips the signal from the primary engine speed sensor." invertSecondaryTriggerSignal = "https://wiki.rusefi.com/Trigger-Configuration-Guide\nThis setting flips the signal from the secondary engine speed 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" verboseIsoTp = "Are you a developer troubleshooting TS over CAN ISO/TP?" skippedWheelOnCam = "Where is your primary skipped wheel located?" acSwitch = "A/C button input" etbNeutralPosition = "Expected neutral position" idleMode = "See also idleRpmPid" 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?" alwaysInstantRpm = "RPM is measured based on last 720 degrees while instant RPM is measured based on the last 90 degrees of crank revolution" 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" twoWireBatchIgnition = "This is needed if your coils are individually wired (COP) and you wish to use batch ignition (Wasted Spark)." 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" acIdleRpmTarget = "Idle target speed when A/C is enabled. Some cars need the extra speed to keep the AC efficient while idling." warningPeriod = "set warningPeriod X" 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" tps2Min = "Closed throttle#2. todo: extract these two fields into a structure\nSee also tps2_1AdcChannel\nset tps2_min X" tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel\nset tps2_max X" starterControlPin = "See also startStopButtonPin" 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." binarySerialTxPin = "See also EFI_CONSOLE_RX_BRAIN_PIN" 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" mc33810DisableRecoveryMode = "See Over/Undervoltage Shutdown/Retry bit in documentation" useVssAsSecondWheelSpeed = "VSS and auxSpeed1 or auxSpeed1 with auxSpeed2?" enableAemXSeriesEgt = "AEM X-Series EGT gauge kit or rusEFI EGT sensor from Wideband controller" 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.\Should be 100 once tune is better" iacByTpsTaper = "IAC Value added when coasting and transitioning into idle." auxSerialTxPin = "Auxiliary sensor serial, not to be confused with secondary calibration serial" auxSerialRxPin = "Auxiliary sensor serial, not to be confused with secondary calibration serial" 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." 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 http://rusefi.com/s/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)." can1ListenMode = "ListenMode is about acknowledging CAN traffic on the protocol level. Different from canWriteEnabled" benchTestOnTime = "Duration of each test pulse" 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 = "set vvt_mode X 1" vvtMode2 = "set vvt_mode X 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." 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 ignition and fueling timing correction for uneven engines 1" timing_offset_cylinder2 = "per-cylinder ignition and fueling timing correction for uneven engines 2" timing_offset_cylinder3 = "per-cylinder ignition and fueling timing correction for uneven engines 3" timing_offset_cylinder4 = "per-cylinder ignition and fueling timing correction for uneven engines 4" timing_offset_cylinder5 = "per-cylinder ignition and fueling timing correction for uneven engines 5" timing_offset_cylinder6 = "per-cylinder ignition and fueling timing correction for uneven engines 6" timing_offset_cylinder7 = "per-cylinder ignition and fueling timing correction for uneven engines 7" timing_offset_cylinder8 = "per-cylinder ignition and fueling timing correction for uneven engines 8" timing_offset_cylinder9 = "per-cylinder ignition and fueling timing correction for uneven engines 9" timing_offset_cylinder10 = "per-cylinder ignition and fueling timing correction for uneven engines 10" timing_offset_cylinder11 = "per-cylinder ignition and fueling timing correction for uneven engines 11" timing_offset_cylinder12 = "per-cylinder ignition and fueling timing correction for uneven engines 12" spi1MosiMode = "Modes count be used for 3v<>5v integration using pull-ups/pull-downs etc." 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" 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 = 1488 ; 11.2.3 Full Optimized – High Speed scatteredOchGetCommand = 9 scatteredOffsetArray = highSpeedOffsets ;#if CONN_SLOW ; scatteredGetEnabled = { 1 } ;#else scatteredGetEnabled = { 0 } ;#endif ; ; 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] toothLogReady = bits, U32, 0, [10:10] isTpsError = bits, U32, 0, [11:11] isCltError = bits, U32, 0, [12:12] isMapError = bits, U32, 0, [13:13] isIatError = bits, U32, 0, [14:14] isTriggerError = bits, U32, 0, [15:15] hasCriticalError = bits, U32, 0, [16:16] isWarnNow = bits, U32, 0, [17:17] isPedalError = bits, U32, 0, [18:18] isKnockChipOk = 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 unusedVehicleSpeedKph = 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 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 currentIgnitionMode = scalar, U08, 60, "", 1, 0 currentInjectionMode = scalar, U08, 61, "", 1, 0 coilDutyCycle = scalar, U16, 62, "%", 0.01, 0 etbTarget = scalar, S16, 64, "%", 0.01, 0 etb1DutyCycle = scalar, S16, 66, "%", 0.01, 0 fuelTankLevel = scalar, S16, 68, "%", 0.01, 0 totalFuelConsumption = scalar, U16, 70, "grams", 1, 0 fuelFlowRate = scalar, U16, 72, "gram/s", 0.005, 0 TPS2Value = scalar, S16, 74, "%", 0.01, 0 tuneCrc16 = scalar, U16, 76, "crc16", 1, 0 veValue = scalar, U16, 78, "ratio", 0.1, 0 seconds = scalar, U32, 80, "sec", 1, 0 engineMode = scalar, U32, 84, "em", 1, 0 firmwareVersion = scalar, U32, 88, "version_f", 1, 0 rawIdlePositionSensor = scalar, S16, 92, "V", 0.001, 0 rawWastegatePosition = scalar, S16, 94, "V", 0.001, 0 accelerationLat = scalar, S16, 96, "G", 0.001, 0 accelerationLon = scalar, S16, 98, "G", 0.001, 0 detectedGear = scalar, U08, 100, "", 1, 0 maxTriggerReentrant = scalar, U08, 101, "", 1, 0 rawLowFuelPressure = scalar, S16, 102, "V", 0.001, 0 rawHighFuelPressure = scalar, S16, 104, "V", 0.001, 0 lowFuelPressure = scalar, S16, 106, "kpa", 0.03333333333333333, 0 tcuDesiredGear = scalar, S08, 108, "gear", 1, 0 flexPercent = scalar, U08, 109, "%", 0.5, 0 wastegatePositionSensor = scalar, S16, 110, "%", 0.01, 0 highFuelPressure = scalar, S16, 112, "bar", 0.1, 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, S16, 200, "deg C", 0.25, 0 egt2 = scalar, S16, 202, "deg C", 0.25, 0 egt3 = scalar, S16, 204, "deg C", 0.25, 0 egt4 = scalar, S16, 206, "deg C", 0.25, 0 egt5 = scalar, S16, 208, "deg C", 0.25, 0 egt6 = scalar, S16, 210, "deg C", 0.25, 0 egt7 = scalar, S16, 212, "deg C", 0.25, 0 egt8 = scalar, S16, 214, "deg C", 0.25, 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 rawPpsSecondary = scalar, S16, 228, "V", 0.001, 0 idlePositionSensor = scalar, S16, 230, "%", 0.01, 0 AFRValue = scalar, U16, 232, "AFR", 0.001, 0 VssAcceleration = scalar, U16, 234, "m/s2", 0.0033333333333333335, 0 lambdaValue2 = scalar, U16, 236, "", 1.0E-4, 0 AFRValue2 = scalar, U16, 238, "AFR", 0.001, 0 vvtPositionB1E = scalar, S16, 240, "deg", 0.02, 0 vvtPositionB2I = scalar, S16, 242, "deg", 0.02, 0 vvtPositionB2E = scalar, S16, 244, "deg", 0.02, 0 fuelPidCorrection1 = scalar, S16, 246, "%", 0.01, 0 fuelPidCorrection2 = scalar, S16, 248, "%", 0.01, 0 rawTps1Secondary = scalar, S16, 250, "V", 0.001, 0 rawTps2Primary = scalar, S16, 252, "V", 0.001, 0 rawTps2Secondary = scalar, S16, 254, "V", 0.001, 0 accelerationVert = scalar, S16, 256, "G", 0.001, 0 gyroYaw = scalar, S16, 258, "deg/sec", 0.001, 0 vvtTargets1 = scalar, S08, 260, "deg", 1, 0 vvtTargets2 = scalar, S08, 261, "deg", 1, 0 vvtTargets3 = scalar, S08, 262, "deg", 1, 0 vvtTargets4 = scalar, S08, 263, "deg", 1, 0 turboSpeed = scalar, U16, 264, "hz", 1, 0 ignitionAdvanceCyl1 = scalar, S16, 266, "deg", 0.02, 0 ignitionAdvanceCyl2 = scalar, S16, 268, "deg", 0.02, 0 ignitionAdvanceCyl3 = scalar, S16, 270, "deg", 0.02, 0 ignitionAdvanceCyl4 = scalar, S16, 272, "deg", 0.02, 0 ignitionAdvanceCyl5 = scalar, S16, 274, "deg", 0.02, 0 ignitionAdvanceCyl6 = scalar, S16, 276, "deg", 0.02, 0 ignitionAdvanceCyl7 = scalar, S16, 278, "deg", 0.02, 0 ignitionAdvanceCyl8 = scalar, S16, 280, "deg", 0.02, 0 ignitionAdvanceCyl9 = scalar, S16, 282, "deg", 0.02, 0 ignitionAdvanceCyl10 = scalar, S16, 284, "deg", 0.02, 0 ignitionAdvanceCyl11 = scalar, S16, 286, "deg", 0.02, 0 ignitionAdvanceCyl12 = scalar, S16, 288, "deg", 0.02, 0 tps1Split = scalar, S16, 290, "%", 0.01, 0 tps2Split = scalar, S16, 292, "%", 0.01, 0 tps12Split = scalar, S16, 294, "%", 0.01, 0 accPedalSplit = scalar, S16, 296, "%", 0.01, 0 sparkCutReason = scalar, S08, 298, "code", 1, 0 fuelCutReason = scalar, S08, 299, "code", 1, 0 mafEstimate = scalar, U16, 300, "kg/h", 0.1, 0 instantRpm = scalar, U16, 302, "rpm", 1, 0 rawMap = scalar, U16, 304, "V", 0.001, 0 rawAfr = scalar, U16, 306, "V", 0.001, 0 calibrationValue2 = scalar, F32, 308, "", 1, 0 luaInvocationCounter = scalar, U32, 312, "count", 1, 0 luaLastCycleDuration = scalar, U32, 316, "nt", 1, 0 vssEdgeCounter = scalar, U32, 320, "", 1, 0 issEdgeCounter = scalar, U32, 324, "", 1, 0 auxLinear1 = scalar, F32, 328, "", 1, 0 auxLinear2 = scalar, F32, 332, "", 1, 0 fallbackMap = scalar, U16, 336, "kPa", 0.1, 0 instantMAPValue = scalar, U16, 338, "kPa", 0.03333333333333333, 0 maxLockedDuration = scalar, U16, 340, "us", 1, 0 canWriteOk = scalar, U16, 342, "", 1, 0 canWriteNotOk = scalar, U16, 344, "", 1, 0 triggerPrimaryFall = scalar, U32, 348, "", 1, 0 triggerPrimaryRise = scalar, U32, 352, "", 1, 0 triggerSecondaryFall = scalar, U32, 356, "", 1, 0 triggerSecondaryRise = scalar, U32, 360, "", 1, 0 triggerVvtFall = scalar, U16, 364, "", 1, 0 triggerVvtRise = scalar, U16, 366, "", 1, 0 triggerVvt2Fall = scalar, U16, 368, "", 1, 0 triggerVvt2Rise = scalar, U16, 370, "", 1, 0 starterState = scalar, U08, 372, "", 1, 0 starterRelayDisable = scalar, U08, 373, "", 1, 0 multiSparkCounter = scalar, U08, 374, "", 1, 0 extiOverflowCount = scalar, U08, 375, "", 1, 0 alternatorStatus_pTerm = scalar, F32, 376, "", 1, 0 alternatorStatus_iTerm = scalar, S16, 380, "", 0.01, 0 alternatorStatus_dTerm = scalar, S16, 382, "", 0.01, 0 alternatorStatus_output = scalar, S16, 384, "", 0.01, 0 alternatorStatus_error = scalar, S16, 386, "", 0.01, 0 alternatorStatus_resetCounter = scalar, U32, 388, "", 1, 0 idleStatus_pTerm = scalar, F32, 392, "", 1, 0 idleStatus_iTerm = scalar, S16, 396, "", 0.01, 0 idleStatus_dTerm = scalar, S16, 398, "", 0.01, 0 idleStatus_output = scalar, S16, 400, "", 0.01, 0 idleStatus_error = scalar, S16, 402, "", 0.01, 0 idleStatus_resetCounter = scalar, U32, 404, "", 1, 0 etbStatus_pTerm = scalar, F32, 408, "", 1, 0 etbStatus_iTerm = scalar, S16, 412, "", 0.01, 0 etbStatus_dTerm = scalar, S16, 414, "", 0.01, 0 etbStatus_output = scalar, S16, 416, "", 0.01, 0 etbStatus_error = scalar, S16, 418, "", 0.01, 0 etbStatus_resetCounter = scalar, U32, 420, "", 1, 0 boostStatus_pTerm = scalar, F32, 424, "", 1, 0 boostStatus_iTerm = scalar, S16, 428, "", 0.01, 0 boostStatus_dTerm = scalar, S16, 430, "", 0.01, 0 boostStatus_output = scalar, S16, 432, "", 0.01, 0 boostStatus_error = scalar, S16, 434, "", 0.01, 0 boostStatus_resetCounter = scalar, U32, 436, "", 1, 0 wastegateDcStatus_pTerm = scalar, F32, 440, "", 1, 0 wastegateDcStatus_iTerm = scalar, S16, 444, "", 0.01, 0 wastegateDcStatus_dTerm = scalar, S16, 446, "", 0.01, 0 wastegateDcStatus_output = scalar, S16, 448, "", 0.01, 0 wastegateDcStatus_error = scalar, S16, 450, "", 0.01, 0 wastegateDcStatus_resetCounter = scalar, U32, 452, "", 1, 0 vvtStatus1_pTerm = scalar, F32, 456, "", 1, 0 vvtStatus1_iTerm = scalar, S16, 460, "", 0.01, 0 vvtStatus1_dTerm = scalar, S16, 462, "", 0.01, 0 vvtStatus1_output = scalar, S16, 464, "", 0.01, 0 vvtStatus1_error = scalar, S16, 466, "", 0.01, 0 vvtStatus1_resetCounter = scalar, U32, 468, "", 1, 0 vvtStatus2_pTerm = scalar, F32, 472, "", 1, 0 vvtStatus2_iTerm = scalar, S16, 476, "", 0.01, 0 vvtStatus2_dTerm = scalar, S16, 478, "", 0.01, 0 vvtStatus2_output = scalar, S16, 480, "", 0.01, 0 vvtStatus2_error = scalar, S16, 482, "", 0.01, 0 vvtStatus2_resetCounter = scalar, U32, 484, "", 1, 0 vvtStatus3_pTerm = scalar, F32, 488, "", 1, 0 vvtStatus3_iTerm = scalar, S16, 492, "", 0.01, 0 vvtStatus3_dTerm = scalar, S16, 494, "", 0.01, 0 vvtStatus3_output = scalar, S16, 496, "", 0.01, 0 vvtStatus3_error = scalar, S16, 498, "", 0.01, 0 vvtStatus3_resetCounter = scalar, U32, 500, "", 1, 0 vvtStatus4_pTerm = scalar, F32, 504, "", 1, 0 vvtStatus4_iTerm = scalar, S16, 508, "", 0.01, 0 vvtStatus4_dTerm = scalar, S16, 510, "", 0.01, 0 vvtStatus4_output = scalar, S16, 512, "", 0.01, 0 vvtStatus4_error = scalar, S16, 514, "", 0.01, 0 vvtStatus4_resetCounter = scalar, U32, 516, "", 1, 0 auxSpeed1 = scalar, U16, 520, "s", 1, 0 auxSpeed2 = scalar, U16, 522, "s", 1, 0 ISSValue = scalar, U16, 524, "RPM", 1, 0 rawAnalogInput1 = scalar, S16, 526, "V", 0.001, 0 rawAnalogInput2 = scalar, S16, 528, "V", 0.001, 0 rawAnalogInput3 = scalar, S16, 530, "V", 0.001, 0 rawAnalogInput4 = scalar, S16, 532, "V", 0.001, 0 rawAnalogInput5 = scalar, S16, 534, "V", 0.001, 0 rawAnalogInput6 = scalar, S16, 536, "V", 0.001, 0 rawAnalogInput7 = scalar, S16, 538, "V", 0.001, 0 rawAnalogInput8 = scalar, S16, 540, "V", 0.001, 0 gppwmOutput1 = scalar, U08, 542, "%", 0.5, 0 gppwmOutput2 = scalar, U08, 543, "%", 0.5, 0 gppwmOutput3 = scalar, U08, 544, "%", 0.5, 0 gppwmOutput4 = scalar, U08, 545, "%", 0.5, 0 gppwmXAxis1 = scalar, S16, 546, "", 1, 0 gppwmXAxis2 = scalar, S16, 548, "", 1, 0 gppwmXAxis3 = scalar, S16, 550, "", 1, 0 gppwmXAxis4 = scalar, S16, 552, "", 1, 0 gppwmYAxis1 = scalar, S16, 554, "", 0.1, 0 gppwmYAxis2 = scalar, S16, 556, "", 0.1, 0 gppwmYAxis3 = scalar, S16, 558, "", 0.1, 0 gppwmYAxis4 = scalar, S16, 560, "", 0.1, 0 rawBattery = scalar, S16, 562, "V", 0.001, 0 ignBlendParameter1 = scalar, S16, 564, "", 0.1, 0 ignBlendParameter2 = scalar, S16, 566, "", 0.1, 0 ignBlendParameter3 = scalar, S16, 568, "", 0.1, 0 ignBlendParameter4 = scalar, S16, 570, "", 0.1, 0 ignBlendBias1 = scalar, U08, 572, "%", 0.5, 0 ignBlendBias2 = scalar, U08, 573, "%", 0.5, 0 ignBlendBias3 = scalar, U08, 574, "%", 0.5, 0 ignBlendBias4 = scalar, U08, 575, "%", 0.5, 0 ignBlendOutput1 = scalar, S16, 576, "deg", 0.01, 0 ignBlendOutput2 = scalar, S16, 578, "deg", 0.01, 0 ignBlendOutput3 = scalar, S16, 580, "deg", 0.01, 0 ignBlendOutput4 = scalar, S16, 582, "deg", 0.01, 0 veBlendParameter1 = scalar, S16, 584, "", 0.1, 0 veBlendParameter2 = scalar, S16, 586, "", 0.1, 0 veBlendParameter3 = scalar, S16, 588, "", 0.1, 0 veBlendParameter4 = scalar, S16, 590, "", 0.1, 0 veBlendBias1 = scalar, U08, 592, "%", 0.5, 0 veBlendBias2 = scalar, U08, 593, "%", 0.5, 0 veBlendBias3 = scalar, U08, 594, "%", 0.5, 0 veBlendBias4 = scalar, U08, 595, "%", 0.5, 0 veBlendOutput1 = scalar, S16, 596, "%", 0.01, 0 veBlendOutput2 = scalar, S16, 598, "%", 0.01, 0 veBlendOutput3 = scalar, S16, 600, "%", 0.01, 0 veBlendOutput4 = scalar, S16, 602, "%", 0.01, 0 boostOpenLoopBlendParameter1 = scalar, S16, 604, "", 0.1, 0 boostOpenLoopBlendParameter2 = scalar, S16, 606, "", 0.1, 0 boostOpenLoopBlendBias1 = scalar, U08, 608, "%", 0.5, 0 boostOpenLoopBlendBias2 = scalar, U08, 609, "%", 0.5, 0 boostOpenLoopBlendOutput1 = scalar, S08, 610, "%", 1, 0 boostOpenLoopBlendOutput2 = scalar, S08, 611, "%", 1, 0 boostClosedLoopBlendParameter1 = scalar, S16, 612, "", 0.1, 0 boostClosedLoopBlendParameter2 = scalar, S16, 614, "", 0.1, 0 boostClosedLoopBlendBias1 = scalar, U08, 616, "%", 0.5, 0 boostClosedLoopBlendBias2 = scalar, U08, 617, "%", 0.5, 0 boostClosedLoopBlendOutput1 = scalar, S16, 618, "%", 0.1, 0 boostClosedLoopBlendOutput2 = scalar, S16, 620, "%", 0.1, 0 coilState1 = bits, U32, 624, [0:0] coilState2 = bits, U32, 624, [1:1] coilState3 = bits, U32, 624, [2:2] coilState4 = bits, U32, 624, [3:3] coilState5 = bits, U32, 624, [4:4] coilState6 = bits, U32, 624, [5:5] coilState7 = bits, U32, 624, [6:6] coilState8 = bits, U32, 624, [7:7] coilState9 = bits, U32, 624, [8:8] coilState10 = bits, U32, 624, [9:9] coilState11 = bits, U32, 624, [10:10] coilState12 = bits, U32, 624, [11:11] injectorState1 = bits, U32, 624, [12:12] injectorState2 = bits, U32, 624, [13:13] injectorState3 = bits, U32, 624, [14:14] injectorState4 = bits, U32, 624, [15:15] injectorState5 = bits, U32, 624, [16:16] injectorState6 = bits, U32, 624, [17:17] injectorState7 = bits, U32, 624, [18:18] injectorState8 = bits, U32, 624, [19:19] injectorState9 = bits, U32, 624, [20:20] injectorState10 = bits, U32, 624, [21:21] injectorState11 = bits, U32, 624, [22:22] injectorState12 = bits, U32, 624, [23:23] triggerChannel1 = bits, U32, 624, [24:24] triggerChannel2 = bits, U32, 624, [25:25] vvtChannel1 = bits, U32, 624, [26:26] vvtChannel2 = bits, U32, 624, [27:27] vvtChannel3 = bits, U32, 624, [28:28] vvtChannel4 = bits, U32, 624, [29:29] outputRequestPeriod = scalar, U32, 628, "", 1, 0 mapFast = scalar, F32, 632, "", 1, 0 luaGauges1 = scalar, F32, 636, "value", 1, 0 luaGauges2 = scalar, F32, 640, "value", 1, 0 luaGauges3 = scalar, F32, 644, "value", 1, 0 luaGauges4 = scalar, F32, 648, "value", 1, 0 luaGauges5 = scalar, F32, 652, "value", 1, 0 luaGauges6 = scalar, F32, 656, "value", 1, 0 luaGauges7 = scalar, F32, 660, "value", 1, 0 luaGauges8 = scalar, F32, 664, "value", 1, 0 rawMaf2 = scalar, U16, 668, "V", 0.001, 0 mafMeasured2 = scalar, U16, 670, "kg/h", 0.1, 0 schedulingUsedCount = scalar, U16, 672, "", 1,0 vehicleSpeedKph = scalar, U16, 674, "kph", 0.01, 0 Gego = scalar, U16, 676, "%", 0.01,0 testBenchIter = scalar, U16, 678, "count", 1, 0 oilTemp = scalar, S16, 680, "deg C", 0.01, 0 fuelTemp = scalar, S16, 682, "deg C", 0.01, 0 ambientTemp = scalar, S16, 684, "deg C", 0.01, 0 compressorDischargeTemp = scalar, S16, 686, "deg C", 0.01, 0 compressorDischargePressure = scalar, U16, 688, "kPa", 0.03333333333333333, 0 throttleInletPressure = scalar, U16, 690, "kPa", 0.03333333333333333, 0 ignitionOnTime = scalar, U16, 692, "sec", 1,0 engineRunTime = scalar, U16, 694, "sec", 1,0 distanceTraveled = scalar, U16, 696, "km", 0.1,0 afrGasolineScale = scalar, U16, 698, "AFR", 0.001, 0 afr2GasolineScale = scalar, U16, 700, "AFR", 0.001, 0 wheelSlipRatio = scalar, F32, 704, "", 1, 0 ignitorDiagnostic1 = scalar, U08, 708, "", 1, 0 ignitorDiagnostic2 = scalar, U08, 709, "", 1, 0 ignitorDiagnostic3 = scalar, U08, 710, "", 1, 0 ignitorDiagnostic4 = scalar, U08, 711, "", 1, 0 ignitorDiagnostic5 = scalar, U08, 712, "", 1, 0 ignitorDiagnostic6 = scalar, U08, 713, "", 1, 0 ignitorDiagnostic7 = scalar, U08, 714, "", 1, 0 ignitorDiagnostic8 = scalar, U08, 715, "", 1, 0 ignitorDiagnostic9 = scalar, U08, 716, "", 1, 0 ignitorDiagnostic10 = scalar, U08, 717, "", 1, 0 ignitorDiagnostic11 = scalar, U08, 718, "", 1, 0 ignitorDiagnostic12 = scalar, U08, 719, "", 1, 0 injectorDiagnostic1 = scalar, U08, 720, "", 1, 0 injectorDiagnostic2 = scalar, U08, 721, "", 1, 0 injectorDiagnostic3 = scalar, U08, 722, "", 1, 0 injectorDiagnostic4 = scalar, U08, 723, "", 1, 0 injectorDiagnostic5 = scalar, U08, 724, "", 1, 0 injectorDiagnostic6 = scalar, U08, 725, "", 1, 0 injectorDiagnostic7 = scalar, U08, 726, "", 1, 0 injectorDiagnostic8 = scalar, U08, 727, "", 1, 0 injectorDiagnostic9 = scalar, U08, 728, "", 1, 0 injectorDiagnostic10 = scalar, U08, 729, "", 1, 0 injectorDiagnostic11 = scalar, U08, 730, "", 1, 0 injectorDiagnostic12 = scalar, U08, 731, "", 1, 0 actualLastInjectionStage2 = scalar, U16, 732, "ms", 0.0033333333333333335, 0 injectorDutyCycleStage2 = scalar, U08, 734, "%", 0.5, 0 unusedAtTheEnd1 = scalar, U08, 735, "", 1, 0 unusedAtTheEnd2 = scalar, U08, 736, "", 1, 0 unusedAtTheEnd3 = scalar, U08, 737, "", 1, 0 unusedAtTheEnd4 = scalar, U08, 738, "", 1, 0 unusedAtTheEnd5 = scalar, U08, 739, "", 1, 0 unusedAtTheEnd6 = scalar, U08, 740, "", 1, 0 unusedAtTheEnd7 = scalar, U08, 741, "", 1, 0 unusedAtTheEnd8 = scalar, U08, 742, "", 1, 0 unusedAtTheEnd9 = scalar, U08, 743, "", 1, 0 unusedAtTheEnd10 = scalar, U08, 744, "", 1, 0 unusedAtTheEnd11 = scalar, U08, 745, "", 1, 0 unusedAtTheEnd12 = scalar, U08, 746, "", 1, 0 unusedAtTheEnd13 = scalar, U08, 747, "", 1, 0 unusedAtTheEnd14 = scalar, U08, 748, "", 1, 0 unusedAtTheEnd15 = scalar, U08, 749, "", 1, 0 unusedAtTheEnd16 = scalar, U08, 750, "", 1, 0 unusedAtTheEnd17 = scalar, U08, 751, "", 1, 0 unusedAtTheEnd18 = scalar, U08, 752, "", 1, 0 unusedAtTheEnd19 = scalar, U08, 753, "", 1, 0 unusedAtTheEnd20 = scalar, U08, 754, "", 1, 0 unusedAtTheEnd21 = scalar, U08, 755, "", 1, 0 unusedAtTheEnd22 = scalar, U08, 756, "", 1, 0 unusedAtTheEnd23 = scalar, U08, 757, "", 1, 0 unusedAtTheEnd24 = scalar, U08, 758, "", 1, 0 unusedAtTheEnd25 = scalar, U08, 759, "", 1, 0 unusedAtTheEnd26 = scalar, U08, 760, "", 1, 0 unusedAtTheEnd27 = scalar, U08, 761, "", 1, 0 unusedAtTheEnd28 = scalar, U08, 762, "", 1, 0 unusedAtTheEnd29 = scalar, U08, 763, "", 1, 0 unusedAtTheEnd30 = scalar, U08, 764, "", 1, 0 unusedAtTheEnd31 = scalar, U08, 765, "", 1, 0 unusedAtTheEnd32 = scalar, U08, 766, "", 1, 0 unusedAtTheEnd33 = scalar, U08, 767, "", 1, 0 unusedAtTheEnd34 = scalar, U08, 768, "", 1, 0 unusedAtTheEnd35 = scalar, U08, 769, "", 1, 0 unusedAtTheEnd36 = scalar, U08, 770, "", 1, 0 unusedAtTheEnd37 = scalar, U08, 771, "", 1, 0 unusedAtTheEnd38 = scalar, U08, 772, "", 1, 0 unusedAtTheEnd39 = scalar, U08, 773, "", 1, 0 unusedAtTheEnd40 = scalar, U08, 774, "", 1, 0 unusedAtTheEnd41 = scalar, U08, 775, "", 1, 0 unusedAtTheEnd42 = scalar, U08, 776, "", 1, 0 unusedAtTheEnd43 = scalar, U08, 777, "", 1, 0 unusedAtTheEnd44 = scalar, U08, 778, "", 1, 0 unusedAtTheEnd45 = scalar, U08, 779, "", 1, 0 unusedAtTheEnd46 = scalar, U08, 780, "", 1, 0 unusedAtTheEnd47 = scalar, U08, 781, "", 1, 0 unusedAtTheEnd48 = scalar, U08, 782, "", 1, 0 unusedAtTheEnd49 = scalar, U08, 783, "", 1, 0 unusedAtTheEnd50 = scalar, U08, 784, "", 1, 0 unusedAtTheEnd51 = scalar, U08, 785, "", 1, 0 unusedAtTheEnd52 = scalar, U08, 786, "", 1, 0 unusedAtTheEnd53 = scalar, U08, 787, "", 1, 0 unusedAtTheEnd54 = scalar, U08, 788, "", 1, 0 unusedAtTheEnd55 = scalar, U08, 789, "", 1, 0 unusedAtTheEnd56 = scalar, U08, 790, "", 1, 0 unusedAtTheEnd57 = scalar, U08, 791, "", 1, 0 unusedAtTheEnd58 = scalar, U08, 792, "", 1, 0 unusedAtTheEnd59 = scalar, U08, 793, "", 1, 0 unusedAtTheEnd60 = scalar, U08, 794, "", 1, 0 unusedAtTheEnd61 = scalar, U08, 795, "", 1, 0 unusedAtTheEnd62 = scalar, U08, 796, "", 1, 0 unusedAtTheEnd63 = scalar, U08, 797, "", 1, 0 unusedAtTheEnd64 = scalar, U08, 798, "", 1, 0 unusedAtTheEnd65 = scalar, U08, 799, "", 1, 0 unusedAtTheEnd66 = scalar, U08, 800, "", 1, 0 unusedAtTheEnd67 = scalar, U08, 801, "", 1, 0 unusedAtTheEnd68 = scalar, U08, 802, "", 1, 0 unusedAtTheEnd69 = scalar, U08, 803, "", 1, 0 unusedAtTheEnd70 = scalar, U08, 804, "", 1, 0 unusedAtTheEnd71 = scalar, U08, 805, "", 1, 0 unusedAtTheEnd72 = scalar, U08, 806, "", 1, 0 unusedAtTheEnd73 = scalar, U08, 807, "", 1, 0 unusedAtTheEnd74 = scalar, U08, 808, "", 1, 0 unusedAtTheEnd75 = scalar, U08, 809, "", 1, 0 unusedAtTheEnd76 = scalar, U08, 810, "", 1, 0 unusedAtTheEnd77 = scalar, U08, 811, "", 1, 0 unusedAtTheEnd78 = scalar, U08, 812, "", 1, 0 unusedAtTheEnd79 = scalar, U08, 813, "", 1, 0 unusedAtTheEnd80 = scalar, U08, 814, "", 1, 0 unusedAtTheEnd81 = scalar, U08, 815, "", 1, 0 unusedAtTheEnd82 = scalar, U08, 816, "", 1, 0 unusedAtTheEnd83 = scalar, U08, 817, "", 1, 0 unusedAtTheEnd84 = scalar, U08, 818, "", 1, 0 unusedAtTheEnd85 = scalar, U08, 819, "", 1, 0 unusedAtTheEnd86 = scalar, U08, 820, "", 1, 0 unusedAtTheEnd87 = scalar, U08, 821, "", 1, 0 unusedAtTheEnd88 = scalar, U08, 822, "", 1, 0 ; total TS size = 824 totalFuelCorrection = scalar, F32, 824, "mult", 1,0 running_postCrankingFuelCorrection = scalar, F32, 828, "", 1, 0 running_intakeTemperatureCoefficient = scalar, F32, 832, "", 1, 0 running_coolantTemperatureCoefficient = scalar, F32, 836, "", 1, 0 running_timeSinceCrankingInSecs = scalar, F32, 840, "secs", 1,0 running_baseFuel = scalar, U16, 844, "mg", 0.01, 0 running_fuel = scalar, U16, 846, "mg", 0.01, 0 afrTableYAxis = scalar, U16, 848, "%", 0.01,0 targetLambda = scalar, U16, 850, "", 1.0E-4,0 targetAFR = scalar, U16, 852, "ratio", 0.001,0 stoichiometricRatio = scalar, U16, 854, "ratio", 0.001, 0 sdTcharge_coff = scalar, F32, 856, "", 1, 0 sdAirMassInOneCylinder = scalar, F32, 860, "g", 1, 0 normalizedCylinderFilling = scalar, F32, 864, "%", 1, 0 brokenInjector = scalar, U08, 868, "", 1, 0 unused88 = scalar, U08, 869, "", 1, 0 idealEngineTorque = scalar, U16, 870, "", 1, 0 injectorHwIssue = bits, U32, 872, [0:0] ; total TS size = 876 baseDwell = scalar, F32, 876, "ms", 1,0 sparkDwell = scalar, F32, 880, "ms", 1,0 dwellDurationAngle = scalar, F32, 884, "deg", 1,0 cltTimingCorrection = scalar, S16, 888, "deg", 0.01,0 timingIatCorrection = scalar, S16, 890, "deg", 0.01,0 timingPidCorrection = scalar, S16, 892, "deg", 0.01,0 baseIgnitionAdvance = scalar, S16, 894, "deg", 0.02, 0 correctedIgnitionAdvance = scalar, S16, 896, "deg", 0.02, 0 tractionAdvanceDrop = scalar, S16, 898, "deg", 0.02, 0 dwellVoltageCorrection = scalar, F32, 900, "", 1, 0 luaTimingAdd = scalar, F32, 904, "deg", 1, 0 luaTimingMult = scalar, F32, 908, "deg", 1, 0 luaIgnitionSkip = bits, U32, 912, [0:0] ; total TS size = 916 m_knockLevel = scalar, F32, 916, "Volts", 1, 0 m_knockCyl1 = scalar, S08, 920, "dBv", 1, 0 m_knockCyl2 = scalar, S08, 921, "dBv", 1, 0 m_knockCyl3 = scalar, S08, 922, "dBv", 1, 0 m_knockCyl4 = scalar, S08, 923, "dBv", 1, 0 m_knockCyl5 = scalar, S08, 924, "dBv", 1, 0 m_knockCyl6 = scalar, S08, 925, "dBv", 1, 0 m_knockCyl7 = scalar, S08, 926, "dBv", 1, 0 m_knockCyl8 = scalar, S08, 927, "dBv", 1, 0 m_knockCyl9 = scalar, S08, 928, "dBv", 1, 0 m_knockCyl10 = scalar, S08, 929, "dBv", 1, 0 m_knockCyl11 = scalar, S08, 930, "dBv", 1, 0 m_knockCyl12 = scalar, S08, 931, "dBv", 1, 0 m_knockRetard = scalar, F32, 932, "deg", 1,0 m_knockThreshold = scalar, F32, 936, "", 1, 0 m_knockCount = scalar, U32, 940, "", 1, 0 m_maximumRetard = scalar, F32, 944, "", 1, 0 ; total TS size = 948 tcuCurrentGear = scalar, S08, 948, "gear", 1, 0 tcRatio = scalar, U16, 950, "value", 0.01, 0 lastShiftTime = scalar, F32, 952, "", 1, 0 tcu_currentRange = scalar, U08, 956, "", 1, 0 ; total TS size = 960 throttleUseWotModel = bits, U32, 960, [0:0] throttleModelCrossoverAngle = scalar, S16, 964, "%", 0.01, 0 throttleEstimatedFlow = scalar, F32, 968, "g/s", 1, 0 ; total TS size = 972 m_requested_pump = scalar, F32, 972, "", 1, 0 fuel_requested_percent = scalar, F32, 976, "", 1, 0 fuel_requested_percent_pi = scalar, F32, 980, "", 1, 0 noValve = bits, U32, 984, [0:0] angleAboveMin = bits, U32, 984, [1:1] isHpfpInactive = bits, U32, 984, [2:2] m_pressureTarget_kPa = scalar, F32, 988, "", 1, 0 nextLobe = scalar, F32, 992, "", 1, 0 di_nextStart = scalar, F32, 996, "v", 1, 0 ; total TS size = 1000 m_deadtime = scalar, F32, 1000, "ms", 1, 0 pressureDelta = scalar, F32, 1004, "kPa", 1, 0 pressureRatio = scalar, F32, 1008, "", 1, 0 ; total TS size = 1012 retardThresholdRpm = scalar, S32, 1012, "", 1, 0 combinedConditions = bits, U32, 1016, [0:0] launchActivatePinState = bits, U32, 1016, [1:1] isLaunchPreCondition = bits, U32, 1016, [2:2] isLaunchCondition = bits, U32, 1016, [3:3] isSwitchActivated = bits, U32, 1016, [4:4] isClutchActivated = bits, U32, 1016, [5:5] isValidInputPin = bits, U32, 1016, [6:6] activateSwitchCondition = bits, U32, 1016, [7:7] rpmCondition = bits, U32, 1016, [8:8] speedCondition = bits, U32, 1016, [9:9] tpsCondition = bits, U32, 1016, [10:10] ; total TS size = 1020 isAntilagCondition = bits, U32, 1020, [0:0] ALSMinRPMCondition = bits, U32, 1020, [1:1] ALSMaxRPMCondition = bits, U32, 1020, [2:2] ALSMinCLTCondition = bits, U32, 1020, [3:3] ALSMaxCLTCondition = bits, U32, 1020, [4:4] ALSMaxThrottleIntentCondition = bits, U32, 1020, [5:5] isALSSwitchActivated = bits, U32, 1020, [6:6] ALSActivatePinState = bits, U32, 1020, [7:7] ALSSwitchCondition = bits, U32, 1020, [8:8] ALSTimerCondition = bits, U32, 1020, [9:9] fuelALSCorrection = scalar, F32, 1024, "", 1, 0 timingALSCorrection = scalar, S16, 1028, "deg", 0.01, 0 timingALSSkip = scalar, S16, 1030, "deg", 0.01, 0 ; total TS size = 1032 isTpsInvalid = bits, U32, 1032, [0:0] m_shouldResetPid = bits, U32, 1032, [1:1] isBelowClosedLoopThreshold = bits, U32, 1032, [2:2] isNotClosedLoop = bits, U32, 1032, [3:3] isZeroRpm = bits, U32, 1032, [4:4] hasInitBoost = bits, U32, 1032, [5:5] rpmTooLow = bits, U32, 1032, [6:6] tpsTooLow = bits, U32, 1032, [7:7] mapTooLow = bits, U32, 1032, [8:8] isPlantValid = bits, U32, 1032, [9:9] isBoostControlled = bits, U32, 1032, [10:10] luaTargetAdd = scalar, S16, 1036, "v", 0.5,0 boostOutput = scalar, S16, 1038, "percent", 0.01,0 luaTargetMult = scalar, F32, 1040, "v", 1,0 openLoopPart = scalar, F32, 1044, "v", 1,0 luaOpenLoopAdd = scalar, F32, 1048, "v", 1,0 boostControllerClosedLoopPart = scalar, S08, 1052, "%", 0.5,0 boostControlTarget = scalar, S16, 1054, "kPa", 0.03333333333333333,0 ; total TS size = 1056 acButtonState = scalar, S08, 1056, "", 1, 0 m_acEnabled = bits, U32, 1060, [0:0] engineTooSlow = bits, U32, 1060, [1:1] engineTooFast = bits, U32, 1060, [2:2] noClt = bits, U32, 1060, [3:3] engineTooHot = bits, U32, 1060, [4:4] tpsTooHigh = bits, U32, 1060, [5:5] isDisabledByLua = bits, U32, 1060, [6:6] acCompressorState = bits, U32, 1060, [7:7] latest_usage_ac_control = scalar, S32, 1064, "", 1, 0 acSwitchLastChangeTimeMs = scalar, S32, 1068, "", 1, 0 ; total TS size = 1072 cranking0 = bits, U32, 1072, [0:0] notRunning0 = bits, U32, 1072, [1:1] disabledWhileEngineStopped0 = bits, U32, 1072, [2:2] brokenClt0 = bits, U32, 1072, [3:3] enabledForAc0 = bits, U32, 1072, [4:4] hot0 = bits, U32, 1072, [5:5] cold0 = bits, U32, 1072, [6:6] disabledBySpeed0 = bits, U32, 1072, [7:7] ; total TS size = 1076 isPrime = bits, U32, 1076, [0:0] engineTurnedRecently = bits, U32, 1076, [1:1] isFuelPumpOn = bits, U32, 1076, [2:2] ignitionOn = bits, U32, 1076, [3:3] ; total TS size = 1080 isBenchTest = bits, U32, 1080, [0:0] hasIgnitionVoltage = bits, U32, 1080, [1:1] mainRelayState = bits, U32, 1080, [2:2] delayedShutoffRequested = bits, U32, 1080, [3:3] ; total TS size = 1084 lua_fuelAdd = scalar, F32, 1084, "g", 1, 0 lua_fuelMult = scalar, F32, 1088, "", 1, 0 lua_clutchUpState = bits, U32, 1092, [0:0] lua_brakePedalState = bits, U32, 1092, [1:1] lua_acRequestState = bits, U32, 1092, [2:2] lua_luaDisableEtb = bits, U32, 1092, [3:3] lua_luaIgnCut = bits, U32, 1092, [4:4] sd_tCharge = scalar, S16, 1096, "deg C", 0.01, 0 sd_tChargeK = scalar, F32, 1100, "", 1, 0 crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1104, "", 1, 0 crankingFuel_tpsCoefficient = scalar, F32, 1108, "", 1, 0 crankingFuel_durationCoefficient = scalar, F32, 1112, "", 1, 0 crankingFuel_fuel = scalar, U16, 1116, "mg", 0.01, 0 baroCorrection = scalar, F32, 1120, "", 1, 0 hellenBoardId = scalar, S16, 1124, "id", 1, 0 clutchUpState = scalar, S08, 1126, "", 1, 0 clutchDownState = scalar, S08, 1127, "", 1, 0 brakePedalState = scalar, S08, 1128, "", 1, 0 startStopState = scalar, S08, 1129, "", 1, 0 smartChipState = scalar, S08, 1130, "", 1, 0 smartChipRestartCounter = scalar, S08, 1131, "", 1, 0 smartChipAliveCounter = scalar, S08, 1132, "", 1, 0 startStopPhysicalState = bits, U32, 1136, [0:0] acrActive = bits, U32, 1136, [1:1] acrEngineMovedRecently = bits, U32, 1136, [2:2] heaterControlEnabled = bits, U32, 1136, [3:3] luaDigitalState0 = bits, U32, 1136, [4:4] luaDigitalState1 = bits, U32, 1136, [5:5] luaDigitalState2 = bits, U32, 1136, [6:6] luaDigitalState3 = bits, U32, 1136, [7:7] startStopStateToggleCounter = scalar, U32, 1140, "", 1, 0 luaSoftSparkSkip = scalar, F32, 1144, "", 1, 0 luaHardSparkSkip = scalar, F32, 1148, "", 1, 0 tractionControlSparkSkip = scalar, F32, 1152, "", 1, 0 desiredRpmLimit = scalar, S16, 1156, "rpm", 1, 0 fuelInjectionCounter = scalar, U32, 1160, "", 1, 0 globalSparkCounter = scalar, U32, 1164, "", 1, 0 fuelingLoad = scalar, F32, 1168, "", 1, 0 ignitionLoad = scalar, F32, 1172, "", 1, 0 veTableYAxis = scalar, U16, 1176, "%", 0.01, 0 ; total TS size = 1180 tpsFrom = scalar, F32, 1180 tpsTo = scalar, F32, 1184 deltaTps = scalar, F32, 1188 extraFuel = scalar, F32, 1192, "", 1, 0 valueFromTable = scalar, F32, 1196, "", 1, 0 isAboveAccelThreshold = bits, U32, 1200, [0:0] isBelowDecelThreshold = bits, U32, 1200, [1:1] isTimeToResetAccumulator = bits, U32, 1200, [2:2] isFractionalEnrichment = bits, U32, 1200, [3:3] belowEpsilon = bits, U32, 1200, [4:4] tooShort = bits, U32, 1200, [5:5] fractionalInjFuel = scalar, F32, 1204, "", 1, 0 accumulatedValue = scalar, F32, 1208, "", 1, 0 maxExtraPerCycle = scalar, F32, 1212, "", 1, 0 maxExtraPerPeriod = scalar, F32, 1216, "", 1, 0 maxInjectedPerPeriod = scalar, F32, 1220, "", 1, 0 cycleCnt = scalar, S32, 1224, "", 1, 0 ; total TS size = 1228 hwEventCounters1 = scalar, U32, 1228, "", 1, 0 hwEventCounters2 = scalar, U32, 1232, "", 1, 0 hwEventCounters3 = scalar, U32, 1236, "", 1, 0 hwEventCounters4 = scalar, U32, 1240, "", 1, 0 hwEventCounters5 = scalar, U32, 1244, "", 1, 0 hwEventCounters6 = scalar, U32, 1248, "", 1, 0 vvtCamCounter = scalar, U32, 1252, "", 1, 0 mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1256, "", 1, 0 mapVvt_MAP_AT_DIFF = scalar, F32, 1260, "", 1, 0 mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1264, "", 1, 0 mapVvt_map_peak = scalar, U08, 1265, "", 1, 0 currentEngineDecodedPhase = scalar, F32, 1268, "deg", 1, 0 triggerToothAngleError = scalar, F32, 1272, "deg", 1, 0 triggerIgnoredToothCount = scalar, U08, 1276, "", 1, 0 mapCamPrevToothAngle = scalar, F32, 1280, "deg", 1, 0 isDecodingMapCam = bits, U32, 1284, [0:0] ; total TS size = 1288 crankSynchronizationCounter0 = scalar, U32, 1288, "", 1, 0 vvtSyncGapRatio0 = scalar, F32, 1292, "", 1, 0 vvtToothDurations00 = scalar, U32, 1296, "us", 1, 0 vvtCurrentPosition0 = scalar, F32, 1300, "sync: Primary Cam Position", 1, 0 vvtToothPosition10 = scalar, F32, 1304, "sync: Cam Tooth Position", 1, 0 vvtToothPosition20 = scalar, F32, 1308, "sync: Cam Tooth Position", 1, 0 vvtToothPosition30 = scalar, F32, 1312, "sync: Cam Tooth Position", 1, 0 vvtToothPosition40 = scalar, F32, 1316, "sync: Cam Tooth Position", 1, 0 triggerSyncGapRatio0 = scalar, F32, 1320, "", 1, 0 triggerStateIndex0 = scalar, U08, 1324, "", 1, 0 vvtStateIndex0 = scalar, U08, 1325, "", 1, 0 ; total TS size = 1328 camResyncCounter = scalar, U08, 1328, "", 1, 0 m_hasSynchronizedPhase = bits, U32, 1332, [0:0] ; total TS size = 1336 wallFuelCorrection = scalar, F32, 1336, "", 1, 0 wallFuel = scalar, F32, 1340, "", 1, 0 ; total TS size = 1344 idleState = bits, S32, 1344, [0:2], "not important" currentIdlePosition = scalar, F32, 1348 baseIdlePosition = scalar, F32, 1352 idleClosedLoop = scalar, F32, 1356 iacByTpsTaper = scalar, F32, 1360 throttlePedalUpState = scalar, S32, 1364, "", 1, 0 mightResetPid = bits, U32, 1368, [0:0] shouldResetPid = bits, U32, 1368, [1:1] wasResetPid = bits, U32, 1368, [2:2] mustResetPid = bits, U32, 1368, [3:3] isCranking = bits, U32, 1368, [4:4] isIacTableForCoasting = bits, U32, 1368, [5:5] notIdling = bits, U32, 1368, [6:6] needReset = bits, U32, 1368, [7:7] isInDeadZone = bits, U32, 1368, [8:8] isBlipping = bits, U32, 1368, [9:9] useClosedLoop = bits, U32, 1368, [10:10] badTps = bits, U32, 1368, [11:11] looksLikeRunning = bits, U32, 1368, [12:12] looksLikeCoasting = bits, U32, 1368, [13:13] looksLikeCrankToIdle = bits, U32, 1368, [14:14] isIdleCoasting = bits, U32, 1368, [15:15] isIdleClosedLoop = bits, U32, 1368, [16:16] idleTarget = scalar, S32, 1372, "", 1, 0 targetRpmByClt = scalar, S32, 1376, "", 1, 0 targetRpmAc = scalar, S32, 1380, "", 1, 0 iacByRpmTaper = scalar, F32, 1384 luaAdd = scalar, F32, 1388 ; total TS size = 1392 idlePosition0 = scalar, F32, 1392, "per", 1,0 trim0 = scalar, F32, 1396, "", 1, 0 luaAdjustment0 = scalar, F32, 1400, "per", 1,0 m_wastegatePosition0 = scalar, F32, 1404, "per", 1,0 etbFeedForward0 = scalar, F32, 1408 etbIntegralError0 = scalar, F32, 1412, "", 1, 0 etbCurrentTarget0 = scalar, F32, 1416, "%", 1, 0 etbCurrentAdjustedTarget0 = scalar, F32, 1420, "%", 1, 0 etbRevLimitActive0 = bits, U32, 1424, [0:0] jamDetected0 = bits, U32, 1424, [1:1] etbDutyRateOfChange0 = scalar, F32, 1428, "per", 1,0 etbDutyAverage0 = scalar, F32, 1432, "per", 1,0 etbTpsErrorCounter0 = scalar, U16, 1436, "count", 1,0 etbPpsErrorCounter0 = scalar, U16, 1438, "count", 1,0 etbErrorCode0 = scalar, S08, 1440, "", 1, 0 tcEtbDrop0 = scalar, S08, 1441, "", 1, 0 jamTimer0 = scalar, U16, 1442, "sec", 0.01, 0 ; total TS size = 1444 faultCode0 = scalar, U08, 1444, "", 1, 0 heaterDuty0 = scalar, U08, 1445, "%", 1, 0 pumpDuty0 = scalar, U08, 1446, "%", 1, 0 tempC0 = scalar, U16, 1448, "C", 1, 0 nernstVoltage0 = scalar, U16, 1450, "V", 0.001, 0 esr0 = scalar, U16, 1452, "ohm", 1, 0 ; total TS size = 1456 dcOutput0 = scalar, F32, 1456, "per", 1,0 isEnabled0_int = scalar, U08, 1460, "per", 1,0 isEnabled0 = bits, U32, 1464, [0:0] ; total TS size = 1468 value0 = scalar, U16, 1468, "value", 1,0 value1 = scalar, U16, 1470, "value", 1,0 errorRate = scalar, F32, 1472, "ratio", 1,0 ; total TS size = 1476 vvtTarget = scalar, U16, 1476, "deg", 0.1, 0 vvtOutput = scalar, U08, 1478, "%", 0.5, 0 ; total TS size = 1480 lambdaCurrentlyGood = bits, U32, 1480, [0:0] lambdaMonitorCut = bits, U32, 1480, [1:1] lambdaTimeSinceGood = scalar, U16, 1484, "sec", 0.01, 0 ; total TS size = 1488 time = { timeNow } egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } wbo0_hasFault = { enableAemXSeries && (faultCode0 >= 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 rangeInputArray = array, U08, [6], "Input", 1, 0, 0, 6, 0, noMsqSave rangeStateArray = array, U08, [9], "State", 1, 0, 0, 9, 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", "silent", "cranking", "failed to heat", "overheat", "underheat", "no supply", "legacy" 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", "GDI Comms", "Brake" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" outputDiagErrorList = bits, U08, [0:3], "Not used", "No error", "Open Load", "Short to Gnd", "Short to Battery", "Overload", "Driver Overtemp", "Driver disabled", "Unknown" [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 = boardUseCanTerminator requiresPowerCycle = lps25BaroSensorScl requiresPowerCycle = lps25BaroSensorSda requiresPowerCycle = binarySerialTxPin requiresPowerCycle = binarySerialRxPin requiresPowerCycle = tunerStudioSerialSpeed requiresPowerCycle = auxSerialRxPin requiresPowerCycle = auxSerialTxPin requiresPowerCycle = canWriteEnabled requiresPowerCycle = canReadEnabled requiresPowerCycle = can1ListenMode requiresPowerCycle = can2ListenMode requiresPowerCycle = startStopButtonPin requiresPowerCycle = startStopButtonMode requiresPowerCycle = enableAemXSeries requiresPowerCycle = enableAemXSeriesEgt requiresPowerCycle = etb_use_two_wires requiresPowerCycle = etbSplit 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 readOnly = warning_message defaultValue = gearCountArray, -1 0 1 2 3 4 5 6 7 8 readOnly = gearCountArray defaultValue = solenoidCountArray, 1 2 3 4 5 6 7 8 readOnly = solenoidCountArray defaultValue = rangeStateArray, 0 1 2 3 4 5 6 7 8 readOnly = rangeStateArray defaultValue = rangeInputArray, 0 1 2 3 4 5 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, "Transient 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 Cycle Multiplier" columnLabel = "Engine Cycle", "Multiplier" xAxis = 0, 50, 11 yAxis = 0, 5, 6 xBins = crankingCycleBins yBins = crankingCycleCoef curve = cltIdleCurve, "Warmup Idle multiplier" columnLabel = "Coolant", "Multiplier" xAxis = -40, 120, 10 yAxis = 0, 3, 10 xBins = cltIdleCorrBins, coolant yBins = cltIdleCorr gauge = CLTGauge curve = iacCoastingCurve, "Coasting IAC Position" columnLabel = "RPM", "Multiplier" xAxis = -40, 120, 9 yAxis = 0, 100, 10 xBins = iacCoastingRpmBins, RPMValue yBins = iacCoasting gauge = idleAirValvePositionGauge curve = cltCrankingCurve, "Cranking Idle Air multiplier" columnLabel = "Coolant", "Multiplier" xAxis = -40, 120, 9 yAxis = 0, 3, 10 xBins = cltCrankingCorrBins, coolant yBins = cltCrankingCorr gauge = CLTGauge curve = cltIdleRPMCurve, "Idle Target RPM" columnLabel = "Coolant", "RPM" xAxis = -40, 120, 9 yAxis = 0, 2400, 13 xBins = cltIdleRpmBins, coolant yBins = cltIdleRpm, RPMValue gauge = CLTGauge curve = idleAdvanceCurve, "Idle Advance Angle" columnLabel = "RPM", "degrees" xAxis = 0, 2400, 13 yAxis = -100, 100, 11 xBins = idleAdvanceBins, RPMValue yBins = idleAdvance gauge = RPMGauge curve = crankingAdvanceCurve, "Cranking Advance Angle" columnLabel = "RPM", "degrees" xAxis = 0, 1200, 13 yAxis = -30, 30, 11 xBins = crankingAdvanceBins, RPMValue yBins = crankingAdvance gauge = RPMGauge curve = fuelLevelCurve, "Fuel Level" columnLabel = "Voltage", "%" xAxis = 0, 5, 6 yAxis = 0, 100, 11 xBins = fuelLevelBins yBins = fuelLevelValues gauge = fuelTankLevelGauge curve = wueAfrTargetOffsetCurve, "AFR Target Temperature Adjustment" columnLabel = "Coolant", "AFR Offset" xAxis = -40, 200, 9 yAxis = -3, 1, 5 xBins = cltFuelCorrBins, coolant yBins = wueAfrTargetOffset gauge = cltGauge curve = wueAnalyzer_warmup_curve, "Warmup Enrichment" columnLabel = "Coolant", "Current WUE", "Coolant", "Corrected" xAxis = -40, 200, 9 yAxis = 90, 500, 6 xBins = cltFuelCorrBins, coolant yBins = cltFuelCorr yBins = wueAnalRecommend ;gauge = cltGauge lineLabel = "Warmup Correction" lineLabel = "Recommended WUE" curve = hpfpLobeProfileCurve, "HPFP Lobe Profile" columnLabel = "% pump volume", "angle" xAxis = 0, 100, 11 yAxis = 0, 240, 13 xBins = hpfpLobeProfileQuantityBins yBins = hpfpLobeProfileAngle curve = hpfpDeadtimeCurve, "HPFP Valve Deadtime" columnLabel = "volts", "ms" xAxis = 5, 15, 11 yAxis = 0, 5, 6 xBins = hpfpDeadtimeVoltsBins yBins = hpfpDeadtimeMS curve = wwTauCltCurve, "Evap time vs. CLT" columnLabel = "coolant", "seconds" xAxis = -40, 120, 9 yAxis = 0, 2, 9 xBins = wwCltBins, coolant yBins = wwTauCltValues gauge = CLTGauge curve = wwTauMapCurve, "Evap time vs. MAP" columnLabel = "MAP", "mult" xAxis = 0, 100, 5 yAxis = 0, 2, 9 xBins = wwMapBins, MAPValue yBins = wwTauMapValues gauge = MAPGauge curve = wwBetaCltCurve, "Impact fraction vs. CLT" columnLabel = "coolant", "fraction" xAxis = -40, 120, 9 yAxis = 0, 2, 9 xBins = wwCltBins, coolant yBins = wwBetaCltValues gauge = CLTGauge curve = wwBetaMapCurve, "Impact fraction vs. MAP" columnLabel = "MAP", "mult" xAxis = 0, 100, 5 yAxis = 0, 2, 9 xBins = wwMapBins, MAPValue yBins = wwBetaMapValues gauge = MAPGauge curve = tchargeCurve, "Charge temperature estimation coefficient" columnLabel = "flow", "coefficient" xAxis = 0, 500, 6 yAxis = 0, 100, 5 xBins = tchargeBins, mafEstimate yBins = tchargeValues gauge = tChargeGauge curve = tccLockCurve, "TCC Lock Curve" columnLabel = "TPS", "Lock Speed", "Unlock Speed" xAxis = 0, 100, 10 yAxis = 0, 100, 10 xBins = tcu_tccTpsBins, TPSValue yBins = tcu_tccLockSpeed yBins = tcu_tccUnlockSpeed gauge = TPSGauge curve = pcPerGearCurve, "Transmission Line Pressure Control" columnLabel = "Airmass", "" xAxis = 0, 5, 10 yAxis = 0, 100, 10 xBins = tcu_pcAirmassBins, chargeAirMass yBins = tcu_pcValsR yBins = tcu_pcValsN yBins = tcu_pcVals1 yBins = tcu_pcVals2 yBins = tcu_pcVals3 yBins = tcu_pcVals4 lineLabel = "R%" lineLabel = "N%" lineLabel = "1%" lineLabel = "2%" lineLabel = "3%" lineLabel = "4%" curve = pcPerShiftCurve, "Transmission Line Pressure Control - Shift" columnLabel = "Airmass", "" xAxis = 0, 5, 10 yAxis = 0, 100, 10 xBins = tcu_pcAirmassBins, chargeAirMass yBins = tcu_pcVals12 yBins = tcu_pcVals23 yBins = tcu_pcVals34 yBins = tcu_pcVals21 yBins = tcu_pcVals32 yBins = tcu_pcVals43 lineLabel = "1->2%" lineLabel = "2->3%" lineLabel = "3->4%" lineLabel = "2->1%" lineLabel = "3->2%" lineLabel = "4->3%" curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" columnLabel = "Speed", "%" xAxis = 0, 200, 20 yAxis = 0, 100, 10 xBins = tcu_32SpeedBins, vehicleSpeedKph yBins = tcu_32Vals curve = rangeMatrix, "Range Switch Input Matrix" columnLabel = "Pin", "" xAxis = 0, 6, 6 yAxis = 0, 3, 3 xBins = rangeInputArray yBins = tcu_rangeP yBins = tcu_rangeR yBins = tcu_rangeN yBins = tcu_rangeD yBins = tcu_rangeM yBins = tcu_rangeM3 yBins = tcu_rangeM2 yBins = tcu_rangeM1 yBins = tcu_rangePlus yBins = tcu_rangeMinus yBins = tcu_rangeLow lineLabel = "Park" lineLabel = "Reverse" lineLabel = "Neutral" lineLabel = "Drive" lineLabel = "Manual" lineLabel = "Manual 3rd" lineLabel = "Manual 2nd" lineLabel = "Manual 1st" lineLabel = "Manual +" lineLabel = "Manual -" lineLabel = "Low" 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 curve = boostOpenLoopGearAdderCurve, "Boost Open Loop gear-based modifier" columnLabel = "Gear", "duty cycle" xAxis = 0, 100, 11 yAxis = 0, 100, 5 xBins = gearCountArray, tcuCurrentGear yBins = gearBasedOpenLoopBoostAdder [TableEditor] ; table_id, map3d_id, "title", page ; move table into a panel? or find a way to add a link to https://rusefi.com/s/tpstps https://github.com/rusefi/rusefi/issues/5130 table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 topicHelp = "tpstpsHelp" xBins = tpsTpsAccelFromRpmBins, TPSValue yBins = tpsTpsAccelToRpmBins, TPSValue zBins = tpsTpsAccelTable table = tractionEtbTableTbl, tractionEtb, "Traction Control ETB drop", 1 xBins = tractionControlSpeedBins, vehicleSpeedKph yBins = tractionControlSlipBins, wheelSlipRatio zBins = tractionControlEtbDrop table = tractionTimingTableTbl, tractionEtb, "Traction Control Timing drop", 1 xBins = tractionControlSpeedBins, vehicleSpeedKph yBins = tractionControlSlipBins, wheelSlipRatio zBins = tractionControlTimingDrop table = tractionIgnitionSkipTableTbl, tractionEtb, "Traction Control Skip Ignition", 1 xBins = tractionControlSpeedBins, vehicleSpeedKph yBins = tractionControlSlipBins, wheelSlipRatio zBins = tractionControlIgnitionSkip 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 = IgnSkipTableALS, IgnSkipALS, "Ignition Skip", 1 ; constant, variable xBins = alsIgnSkiprpmBins, RPMValue yBins = alsIgnSkipLoadBins, TPSValue zBins = ALSIgnSkipTable gridHeight = 4.0 gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" table = baroCorrTbl, baroCorrMap, "Baro Correction", 1 xyLabels = "RPM", "Ignition Load" xBins = baroCorrRpmBins, RPMValue yBins = baroCorrPressureBins, baroPressure zBins = baroCorrTable gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" table = ignitionTableTbl, ignitionTableMap, "Ignition Table", 1 xyLabels = "RPM", "Ignition Load" xBins = ignitionRpmBins, RPMValue yBins = ignitionLoadBins, ignitionLoad zBins = ignitionTable gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" table = ignAdder1Table, ignAdder1Map, "Ignition adder 1", 1 xyLabels = "RPM", "Ignition Load" xBins = ignBlends1_rpmBins, RPMValue yBins = ignBlends1_loadBins, ignitionLoad zBins = ignBlends1_table gridOrient = 250, 0, 340 table = ignAdder2Table, ignAdder2Map, "Ignition adder 2", 1 xyLabels = "RPM", "Ignition Load" xBins = ignBlends2_rpmBins, RPMValue yBins = ignBlends2_loadBins, ignitionLoad zBins = ignBlends2_table gridOrient = 250, 0, 340 table = ignAdder3Table, ignAdder3Map, "Ignition adder 3", 1 xyLabels = "RPM", "Ignition Load" xBins = ignBlends3_rpmBins, RPMValue yBins = ignBlends3_loadBins, ignitionLoad zBins = ignBlends3_table gridOrient = 250, 0, 340 table = ignAdder4Table, ignAdder4Map, "Ignition adder 4", 1 xyLabels = "RPM", "Ignition Load" xBins = ignBlends4_rpmBins, RPMValue yBins = ignBlends4_loadBins, ignitionLoad zBins = ignBlends4_table gridOrient = 250, 0, 340 table = veBlend1Table, veBlend1Map, "VE blend 1", 1 xyLabels = "RPM", "Fueling Load" xBins = veBlends1_rpmBins, RPMValue yBins = veBlends1_loadBins, fuelingLoad zBins = veBlends1_table gridOrient = 250, 0, 340 table = veBlend2Table, veBlend2Map, "VE blend 2", 1 xyLabels = "RPM", "Fueling Load" xBins = veBlends2_rpmBins, RPMValue yBins = veBlends2_loadBins, fuelingLoad zBins = veBlends2_table gridOrient = 250, 0, 340 table = veBlend3Table, veBlend3Map, "VE blend 3", 1 xyLabels = "RPM", "Fueling Load" xBins = veBlends3_rpmBins, RPMValue yBins = veBlends3_loadBins, fuelingLoad zBins = veBlends3_table gridOrient = 250, 0, 340 table = veBlend4Table, veBlend4Map, "VE blend 4", 1 xyLabels = "RPM", "Fueling Load" xBins = veBlends4_rpmBins, RPMValue yBins = veBlends4_loadBins, fuelingLoad zBins = veBlends4_table gridOrient = 250, 0, 340 table = boostOpenBlend1Table, boostOpenBlend1Map, "Boost open loop blend 1", 1 xyLabels = "RPM", "TPS" xBins = boostOpenLoopBlends1_rpmBins, RPMValue yBins = boostOpenLoopBlends1_loadBins, TPSValue zBins = boostOpenLoopBlends1_table gridOrient = 250, 0, 340 table = boostOpenBlend2Table, boostOpenBlend2Map, "Boost open loop blend 2", 1 xyLabels = "RPM", "TPS" xBins = boostOpenLoopBlends2_rpmBins, RPMValue yBins = boostOpenLoopBlends2_loadBins, TPSValue zBins = boostOpenLoopBlends2_table gridOrient = 250, 0, 340 table = boostClosedBlend1Table, boostClosedBlend1Map, "Boost closed loop blend 1", 1 xyLabels = "RPM", "TPS" xBins = boostClosedLoopBlends1_rpmBins, RPMValue yBins = boostClosedLoopBlends1_loadBins, TPSValue zBins = boostClosedLoopBlends1_table gridOrient = 250, 0, 340 table = boostClosedBlend2Table, boostClosedBlend2Map, "Boost closed loop blend 2", 1 xyLabels = "RPM", "TPS" xBins = boostClosedLoopBlends2_rpmBins, RPMValue yBins = boostClosedLoopBlends2_loadBins, TPSValue zBins = boostClosedLoopBlends2_table gridOrient = 250, 0, 340 table = ignitionIatCorrTableTbl, ignitionIatCorrTableMap, "Ignition Intake Air Temp correction", 1 xyLabels = "Air Temp", "Ignition Load" 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 = torqueTableTbl, torqueTableMap, "Engine Torque", 1 xBins = torqueRpmBins, RPMValue yBins = torqueLoadBins, veTableYAxis zBins = torqueTable 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, TPSValue zBins = maxKnockRetardTable gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. #if LAMBDA table = lambdaTableTbl, lambdaTableMap, "Target Lambda Table", 1 #else table = afrTableTbl, afrTableMap, "Target AFR Table", 1 #endif 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 = gearCountArray, tcuCurrentGear yBins = solenoidCountArray, 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 table = postCrankingEnrichmentTbl, postCrankingEnrichmentMap, "After start enrichment", 1 xyLabels = "Engine Cycles", "Coolant Temp" xBins = postCrankingDurationBins, revolutionCounterSinceStart yBins = postCrankingCLTBins, coolant zBins = postCrankingFactor [GaugeConfigurations] gaugeCategory = "Sync" triggerVvt2FallGauge = triggerVvt2Fall,"triggerVvt2Fall", "", 0.0,3000.0, 0.0,3000.0, 0.0,3000.0, 0,0 triggerVvt2RiseGauge = triggerVvt2Rise,"triggerVvt2Rise", "", 0.0,3000.0, 0.0,3000.0, 0.0,3000.0, 0,0 currentEngineDecodedPhaseGauge = currentEngineDecodedPhase,"Sync: Engine Phase", "deg", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 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 = "Timing" baseDwellGauge = baseDwell,"Ignition: base dwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 sparkDwellGauge = sparkDwell,"Ignition: coil charge time", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 dwellDurationAngleGauge = dwellDurationAngle,"Ignition: dwell duration", "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,"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 = "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 gaugeCategory = "ETB more" idlePosition0Gauge = idlePosition0,"ETB: idlePosition0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 luaAdjustment0Gauge = luaAdjustment0,"ETB: luaAdjustment0", "per", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 m_wastegatePosition0Gauge = m_wastegatePosition0,"DC: wastegatePosition0", "per", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 etbDutyRateOfChange0Gauge = etbDutyRateOfChange0,"ETB duty rate of change0", "per", 0.0,25.0, 0.0,25.0, 0.0,25.0, 2,2 etbDutyAverage0Gauge = etbDutyAverage0,"ETB average duty0", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 etbTpsErrorCounter0Gauge = etbTpsErrorCounter0,"ETB TPS error counter0", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 etbPpsErrorCounter0Gauge = etbPpsErrorCounter0,"ETB pedal error counter0", "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 ;Name Var Title Units Lo,Hi LowDanger,LowWarning,HiWarning,HiDanger vd,ld gaugeCategory = Trigger triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 10, 300, 0, 0 triggerSyncGapRatioGauge = triggerSyncGapRatio0,"triggerSyncGapRatio", "", -10000,10000, -10000,-10000, 10000,10000, 3,3 triggerStateIndexGauge = triggerStateIndex0,"triggerStateIndex", "", -10000,10000, -10000,-10000, 10000,10000, 3,3 vvtSyncGapRatioGauge = vvtSyncGapRatio0,"vvtSyncGapRatio", "", -10000,10000, -10000,-10000, 10000,10000, 3,3 vvtStateIndexGauge = vvtStateIndex0,"vvtStateIndex", "", -10000,10000, -10000,-10000, 10000,10000, 3,3 triggerPrimaryFallCounterGauge = triggerPrimaryFall,"triggerPrimaryFall", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 triggerPrimaryRiseCounterGauge = triggerPrimaryRise,"triggerPrimaryRise", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 triggerSecondaryFallCounterGauge = triggerSecondaryFall,"triggerSecondaryFall", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 triggerSecondaryRiseCounterGauge = triggerSecondaryRise,"triggerSecondaryRise", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 triggerVvtFallCounterGauge = triggerVvtFall,"triggerVvtFall", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 triggerVvtRiseCounterGauge = triggerVvtRise,"triggerVvtRise", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 triggerVvt2FallCounterGauge = triggerVvt2Fall,"triggerVvt2Fall", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 triggerVvt2RiseCounterGauge = triggerVvt2Rise,"triggerVvt2Rise", "", 0,10000.0, 0,10000.0, 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", -10, {benchTestCount + 10}, -5, 0, {benchTestCount}, {benchTestCount + 5}, 1, 1 gaugeCategory = LUA luaInvocationCounterGauge = luaInvocationCounter,"luaInvocationCounter", "count", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 luaLastCycleDurationGauge = luaLastCycleDuration,"luaLastCycleDuration", "nt", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 luaGauges1gauge = luaGauges1, "Lua Gauge 1", "lua", -30000,30000, 0, 0, 30000, 30000, 3, 3 luaGauges2gauge = luaGauges2, "Lua Gauge 2", "lua", -30000,30000, 0, 0, 30000, 30000, 3, 3 luaGauges3gauge = luaGauges3, "Lua Gauge 3", "lua", -30000,30000, 0, 0, 30000, 30000, 3, 3 luaGauges4gauge = luaGauges4, "Lua Gauge 4", "lua", -30000,30000, 0, 0, 30000, 30000, 3, 3 luaGauges5gauge = luaGauges5, "Lua Gauge 5", "lua", -30000,30000, 0, 0, 30000, 30000, 3, 3 luaGauges6gauge = luaGauges6, "Lua Gauge 6", "lua", -30000,30000, 0, 0, 30000, 30000, 3, 3 luaGauges7gauge = luaGauges7, "Lua Gauge 7", "lua", -30000,30000, 0, 0, 30000, 30000, 3, 3 luaGauges8gauge = luaGauges8, "Lua Gauge 8", "lua", -30000,30000, 0, 0, 30000, 30000, 3, 3 gaugeCategory = Alternator PID alternatorStatus_iTermGauge = alternatorStatus_iTerm,"Alternator PID iTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 alternatorStatus_dTermGauge = alternatorStatus_dTerm,"Alternator PID dTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 alternatorStatus_outputGauge = alternatorStatus_output,"Alternator PID output", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 alternatorStatus_errorGauge = alternatorStatus_error,"Alternator PID error", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 alternatorStatus_resetCounterGauge = alternatorStatus_resetCounter,"Alternator PID resetCounter", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 0,0 gaugeCategory = Boost PID 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 = Idle idlePosSensGauge = idlePositionSensor, "Idle: Position sensor", "%", 0, 100, 0, 0, 100, 100, 1, 1 idleAirValvePositionGauge = currentIdlePosition, "Idle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 idleStatus_iTermGauge = idleStatus_iTerm,"Idle PID iTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 idleStatus_dTermGauge = idleStatus_dTerm,"Idle PID dTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 idleStatus_outputGauge = idleStatus_output,"Idle PID output", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 idleStatus_errorGauge = idleStatus_error,"Idle PID error", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 idleStatus_resetCounterGauge = idleStatus_resetCounter,"Idle PID resetCounter", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 0,0 gaugeCategory = Etb PID etbStatus_iTermGauge = etbStatus_iTerm,"ETB 1 PID iTerm", "", -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_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,"CAN: Rx", "", 0,64000, 0,64000, 0,64000, 0,0 canWriteOkGauge = canWriteOk,"CAN: Tx OK", "", 0,64000, 0,64000, 0,64000, 0,0 canWriteNotOkGauge = canWriteNotOk,"CAN: Tx err", "", 0,64000, 0,64000, 0,64000, 0,0 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, 5, 110, 130, 1, 1 wheelSlipRatioGauge = wheelSlipRatio, "Wheel Slip Ratio", "", 0, 200, 0, 1, 3, 4, 3, 3 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 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 fuelTempGauge = fuelTemp, "Fuel Temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 fuelTankLevelGauge = fuelTankLevel,"Fuel level", "%", 0, 100, 10, 20, 100, 100, 1, 1 AuxL1Gauge = auxLinear1, "Aux linear #1", "", -1000, 1000, -1000, -1000, 1000, 1000, 2, 2 AuxL2Gauge = auxLinear2, "Aux linear #2", "", -1000, 1000, -1000, -1000, 1000, 1000, 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 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 auxSpeed2Gauge = auxSpeed2, "Aux Freq Input2", "hz", 0, 30000, 0, 0, 30000, 30000, 0, 0 gaugeCategory = Sensors - EGT egt1Gauge = egt1, "EGT#1", "C", -100, 1400, 100, 200, 900, 1000, 2, 1 egt2Gauge = egt2, "EGT#2", "C", -100, 1400, 100, 200, 900, 1000, 2, 1 egt3Gauge = egt3, "EGT#3", "C", -100, 1400, 100, 200, 900, 1000, 2, 1 egt4Gauge = egt4, "EGT#4", "C", -100, 1400, 100, 200, 900, 1000, 2, 1 egt5Gauge = egt5, "EGT#5", "C", -100, 1400, 100, 200, 900, 1000, 2, 1 egt6Gauge = egt6, "EGT#6", "C", -100, 1400, 100, 200, 900, 1000, 2, 1 egt7Gauge = egt7, "EGT#7", "C", -100, 1400, 100, 200, 900, 1000, 2, 1 egt8Gauge = egt8, "EGT#8", "C", -100, 1400, 100, 200, 900, 1000, 2, 1 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,"Spark Cut Code", "code", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 baseIgnAdvGauge = baseIgnitionAdvance, "Ignition: Timing", "degrees", -100, 100, -999, -999, 999, 999, 1, 1 correctedIgnAdvGauge = correctedIgnitionAdvance, "Timing: ignition", "degrees", -100, 100, -999, -999, 999, 999, 1, 1 dwellGauge = sparkDwell, "Dwell", "mSec", 0, 10, 0.5, 1.0, 6.0, 8.0, 1, 1 coilDutyCycleGauge = coilDutyCycle, "Ignition: coil duty cycle", "%", 0, 110, 0, 0, 90, 100, 1, 1 ignitionLoadGauge = ignitionLoad, "Ignition: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 gaugeCategory = Acceleration Enrichment deltaTpsGauge = deltaTps, "AE: TPS change", "", 0, 120, 10, 10, 100, 100, 1, 1 tpsAccelFuelGauge = tpsAccelFuel,"AE: TPS enrich", "ms", 0, 120, 10, 10, 100, 100, 1, 1 wallFuelAmountGauge = wallFuelAmount, "AE: wall amount", "mg", 0, 100, 0, 0, 100, 100, 0, 0 wallFuelCorrectionGauge = wallFuelCorrection, "AE: wall correction extra", "mg", -20, 20, -100, -100, 100, 100, 1, 1 gaugeCategory = Fueling ;Name Var Title Units Lo Hi LoD LoW HiW HiD vd ld fuelCutReasonGauge = fuelCutReason,"Fuel Cut Code", "code", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 tChargeGauge = 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 gegoGauge = Gego, "EGO", "", 50, 160, 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 tps1SplitGauge = tps1Split, "TPS1 Sensor Split", "%", -20, 20, -10, -5, 5, 10, 2, 0 tps2SplitGauge = tps2Split, "TPS2 Sensor Split", "%", -20, 20, -10, -5, 5, 10, 2, 0 accPedalSplitGauge = accPedalSplit, "Pedal Sensor Split", "%", -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 rawIdlePositionSensorGauge = rawIdlePositionSensor, "Raw Idle Position", "V", 0, 5, 0, 0, 5, 5, 3, 0 rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 0, 0 issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 0, 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, 10, 0, 0, 10, 10, 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 idealEngineTorqueGauge = idealEngineTorque, "idealEngineTorque", "", 0, 100, 0, 0, 100, 100, 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 = correctedIgnAdvGauge ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg ; Line 1 ; important status ; 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 ; todo: do we want to drop this line since we have "config error" thing above? 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 = { etbErrorCode0 != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode0)}, white, black, yellow, black ; 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 = { etbRevLimitActive0 }, "No ETB RPM Limit", "ETB RPM Limit", white, black, yellow, black indicator = { wbo0_hasFault }, { WBO0: bitStringValue(wboFaultCodeList, faultCode0)}, { WBO0: bitStringValue(wboFaultCodeList, faultCode0)}, white, black, red, black ; 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, spiBuses 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 = 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 = isKnockChipOk, "isKnockChipOk", 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 = internalMcuTemperature, "CPU 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 = 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 = currentIgnitionMode, "Ignition: Mode", int, "%d" entry = currentInjectionMode, "Fuel: Injection mode", int, "%d" entry = coilDutyCycle, "Ignition: 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 = veValue, "Fuel: VE", float, "%.3f" entry = seconds, "Uptime", int, "%d" entry = engineMode, "Engine Mode", int, "%d" entry = firmwareVersion, "firmware", int, "%d" entry = rawIdlePositionSensor, "rawIdlePositionSensor", float, "%.3f" 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 = tcuDesiredGear, "TCU: Desired Gear", int, "%d" entry = flexPercent, "Flex Ethanol %", float, "%.3f" entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" entry = highFuelPressure, "Fuel pressure (high)", 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", float, "%.3f" entry = egt2, "EGT 2", float, "%.3f" entry = egt3, "EGT 3", float, "%.3f" entry = egt4, "EGT 4", float, "%.3f" entry = egt5, "EGT 5", float, "%.3f" entry = egt6, "EGT 6", float, "%.3f" entry = egt7, "EGT 7", float, "%.3f" entry = egt8, "EGT 8", float, "%.3f" 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 = rawPpsSecondary, "rawPpsSecondary", float, "%.3f" entry = idlePositionSensor, "Idle: Position sensor", float, "%.3f" 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, "sync: instant RPM", 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 = 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 = triggerVvt2Fall, "triggerVvt2Fall", int, "%d" entry = triggerVvt2Rise, "triggerVvt2Rise", 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 = vvtStatus1_pTerm, "vvtStatus1_pTerm", float, "%.3f" entry = vvtStatus1_iTerm, "vvtStatus1_iTerm", float, "%.3f" entry = vvtStatus1_dTerm, "vvtStatus1_dTerm", float, "%.3f" entry = vvtStatus1_output, "vvtStatus1_output", float, "%.3f" entry = vvtStatus1_error, "vvtStatus1_error", float, "%.3f" entry = vvtStatus1_resetCounter, "vvtStatus1_resetCounter", int, "%d" entry = vvtStatus2_pTerm, "vvtStatus2_pTerm", float, "%.3f" entry = vvtStatus2_iTerm, "vvtStatus2_iTerm", float, "%.3f" entry = vvtStatus2_dTerm, "vvtStatus2_dTerm", float, "%.3f" entry = vvtStatus2_output, "vvtStatus2_output", float, "%.3f" entry = vvtStatus2_error, "vvtStatus2_error", float, "%.3f" entry = vvtStatus2_resetCounter, "vvtStatus2_resetCounter", int, "%d" entry = vvtStatus3_pTerm, "vvtStatus3_pTerm", float, "%.3f" entry = vvtStatus3_iTerm, "vvtStatus3_iTerm", float, "%.3f" entry = vvtStatus3_dTerm, "vvtStatus3_dTerm", float, "%.3f" entry = vvtStatus3_output, "vvtStatus3_output", float, "%.3f" entry = vvtStatus3_error, "vvtStatus3_error", float, "%.3f" entry = vvtStatus3_resetCounter, "vvtStatus3_resetCounter", int, "%d" entry = vvtStatus4_pTerm, "vvtStatus4_pTerm", float, "%.3f" entry = vvtStatus4_iTerm, "vvtStatus4_iTerm", float, "%.3f" entry = vvtStatus4_dTerm, "vvtStatus4_dTerm", float, "%.3f" entry = vvtStatus4_output, "vvtStatus4_output", float, "%.3f" entry = vvtStatus4_error, "vvtStatus4_error", float, "%.3f" entry = vvtStatus4_resetCounter, "vvtStatus4_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 = triggerChannel1, "triggerChannel1", int, "%d" entry = triggerChannel2, "triggerChannel2", int, "%d" entry = vvtChannel1, "bank 1 intake cam input", int, "%d" entry = vvtChannel2, "bank 1 exhaust cam input", int, "%d" entry = vvtChannel3, "bank 2 intake cam input", int, "%d" entry = vvtChannel4, "bank 2 exhaust cam input", 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 = luaGauges3, "Lua: Gauge 3", float, "%.3f" entry = luaGauges4, "Lua: Gauge 4", float, "%.3f" entry = luaGauges5, "Lua: Gauge 5", float, "%.3f" entry = luaGauges6, "Lua: Gauge 6", float, "%.3f" entry = luaGauges7, "Lua: Gauge 7", float, "%.3f" entry = luaGauges8, "Lua: Gauge 8", float, "%.3f" entry = rawMaf2, "rawMaf2", float, "%.3f" entry = mafMeasured2, "MAF #2", float, "%.3f" entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" entry = vehicleSpeedKph, "Vehicle Speed", float, "%.3f" 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 = wheelSlipRatio, "wheelSlipRatio", float, "%.3f" entry = ignitorDiagnostic1, "ignitorDiagnostic 1", int, "%d" entry = ignitorDiagnostic2, "ignitorDiagnostic 2", int, "%d" entry = ignitorDiagnostic3, "ignitorDiagnostic 3", int, "%d" entry = ignitorDiagnostic4, "ignitorDiagnostic 4", int, "%d" entry = ignitorDiagnostic5, "ignitorDiagnostic 5", int, "%d" entry = ignitorDiagnostic6, "ignitorDiagnostic 6", int, "%d" entry = ignitorDiagnostic7, "ignitorDiagnostic 7", int, "%d" entry = ignitorDiagnostic8, "ignitorDiagnostic 8", int, "%d" entry = ignitorDiagnostic9, "ignitorDiagnostic 9", int, "%d" entry = ignitorDiagnostic10, "ignitorDiagnostic 10", int, "%d" entry = ignitorDiagnostic11, "ignitorDiagnostic 11", int, "%d" entry = ignitorDiagnostic12, "ignitorDiagnostic 12", int, "%d" entry = injectorDiagnostic1, "injectorDiagnostic 1", int, "%d" entry = injectorDiagnostic2, "injectorDiagnostic 2", int, "%d" entry = injectorDiagnostic3, "injectorDiagnostic 3", int, "%d" entry = injectorDiagnostic4, "injectorDiagnostic 4", int, "%d" entry = injectorDiagnostic5, "injectorDiagnostic 5", int, "%d" entry = injectorDiagnostic6, "injectorDiagnostic 6", int, "%d" entry = injectorDiagnostic7, "injectorDiagnostic 7", int, "%d" entry = injectorDiagnostic8, "injectorDiagnostic 8", int, "%d" entry = injectorDiagnostic9, "injectorDiagnostic 9", int, "%d" entry = injectorDiagnostic10, "injectorDiagnostic 10", int, "%d" entry = injectorDiagnostic11, "injectorDiagnostic 11", int, "%d" entry = injectorDiagnostic12, "injectorDiagnostic 12", int, "%d" 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 = brokenInjector, "brokenInjector", int, "%d" entry = idealEngineTorque, "idealEngineTorque", int, "%d" entry = injectorHwIssue, "injectorHwIssue", int, "%d" entry = baseDwell, "Ignition: base dwell", float, "%.3f" entry = sparkDwell, "Ignition: coil charge time", float, "%.3f" entry = dwellDurationAngle, "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 = baseIgnitionAdvance, "Ignition: Timing", float, "%.3f" entry = correctedIgnitionAdvance, "Timing: ignition", float, "%.3f" entry = tractionAdvanceDrop, "Traction: timing correction", 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 = luaIgnitionSkip, "Ign: Lua Spark Skip", int, "%d" 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 = tcuCurrentGear, "Current Gear", int, "%d" entry = tcRatio, "TCU: Torque Converter Ratio", float, "%.3f" entry = lastShiftTime, "lastShiftTime", float, "%.3f" entry = tcu_currentRange, "TCU: Current Range", int, "%d" 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 = m_requested_pump, "GDI: HPFP duration", float, "%.3f" entry = fuel_requested_percent, "GDI: requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "GDI: percent_pi", float, "%.3f" entry = noValve, "noValve", int, "%d" entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = m_pressureTarget_kPa, "GDI: target pressure", float, "%.3f" entry = nextLobe, "GDI: nextLobe", float, "%.3f" entry = di_nextStart, "GDI: 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 = isLaunchPreCondition, "isLaunchPreCondition", 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 = timingALSSkip, "timingALSSkip", 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 = isPlantValid, "isPlantValid", int, "%d" entry = isBoostControlled, "isBoostControlled", 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 = cranking0, "cranking0", int, "%d" entry = notRunning0, "notRunning0", int, "%d" entry = disabledWhileEngineStopped0, "disabledWhileEngineStopped0", int, "%d" entry = brokenClt0, "brokenClt0", int, "%d" entry = enabledForAc0, "enabledForAc0", int, "%d" entry = hot0, "hot0", int, "%d" entry = cold0, "cold0", int, "%d" entry = disabledBySpeed0, "disabledBySpeed0", int, "%d" ;entry = cranking1, "cranking1", int, "%d" ;entry = notRunning1, "notRunning1", int, "%d" ;entry = disabledWhileEngineStopped1, "disabledWhileEngineStopped1", int, "%d" ;entry = brokenClt1, "brokenClt1", int, "%d" ;entry = enabledForAc1, "enabledForAc1", int, "%d" ;entry = hot1, "hot1", int, "%d" ;entry = cold1, "cold1", int, "%d" ;entry = disabledBySpeed1, "disabledBySpeed1", 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 = smartChipState, "smartChipState", int, "%d" entry = smartChipRestartCounter, "smartChipRestartCounter", int, "%d" entry = smartChipAliveCounter, "smartChipAliveCounter", int, "%d" entry = startStopPhysicalState, "startStopPhysicalState", int, "%d" entry = acrActive, "Harley ACR Active", int, "%d" entry = acrEngineMovedRecently, "acrEngineMovedRecently", int, "%d" entry = heaterControlEnabled, "heaterControlEnabled", int, "%d" entry = luaDigitalState0, "luaDigitalState0", int, "%d" entry = luaDigitalState1, "luaDigitalState1", int, "%d" entry = luaDigitalState2, "luaDigitalState2", int, "%d" entry = luaDigitalState3, "luaDigitalState3", int, "%d" entry = startStopStateToggleCounter, "startStopStateToggleCounter", int, "%d" entry = luaSoftSparkSkip, "luaSoftSparkSkip", float, "%.3f" entry = luaHardSparkSkip, "luaHardSparkSkip", float, "%.3f" entry = tractionControlSparkSkip, "tractionControlSparkSkip", float, "%.3f" entry = desiredRpmLimit, "User-defined RPM hard limit", int, "%d" entry = fuelInjectionCounter, "Fuel: Injection counter", int, "%d" entry = globalSparkCounter, "Ign: Spark counter", int, "%d" entry = fuelingLoad, "Fuel: Load", float, "%.3f" entry = ignitionLoad, "Ignition: 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, "Fuel: TPS AE: reset time", int, "%d" entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" entry = belowEpsilon, "Fuel: TPS AE: below threshold", int, "%d" entry = tooShort, "Fuel: TPS AE: 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, "Sync: total cams front counter", 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, "Sync: Engine Phase", float, "%.3f" entry = triggerToothAngleError, "Sync: trigger angle error", float, "%.3f" entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" entry = mapCamPrevToothAngle, "Sync: MAP: prev angle", float, "%.3f" entry = isDecodingMapCam, "isDecodingMapCam", int, "%d" entry = crankSynchronizationCounter0, "sync: Crank sync counter0", int, "%d" entry = vvtSyncGapRatio0, "vvtSyncGapRatio0", float, "%.3f" entry = vvtToothDurations00, "vvtToothDurations00", int, "%d" entry = vvtCurrentPosition0, "vvtCurrentPosition0", float, "%.3f" entry = vvtToothPosition10, "vvtToothPosition 10", float, "%.3f" entry = vvtToothPosition20, "vvtToothPosition 20", float, "%.3f" entry = vvtToothPosition30, "vvtToothPosition 30", float, "%.3f" entry = vvtToothPosition40, "vvtToothPosition 40", float, "%.3f" entry = triggerSyncGapRatio0, "Trigger Sync Latest Ratio0", float, "%.3f" entry = triggerStateIndex0, "triggerStateIndex0", int, "%d" entry = vvtStateIndex0, "vvtStateIndex0", int, "%d" ;entry = crankSynchronizationCounter1, "sync: Crank sync counter1", int, "%d" ;entry = vvtSyncGapRatio1, "vvtSyncGapRatio1", float, "%.3f" ;entry = vvtToothDurations01, "vvtToothDurations01", int, "%d" ;entry = vvtCurrentPosition1, "vvtCurrentPosition1", float, "%.3f" ;entry = vvtToothPosition11, "vvtToothPosition 11", float, "%.3f" ;entry = vvtToothPosition21, "vvtToothPosition 21", float, "%.3f" ;entry = vvtToothPosition31, "vvtToothPosition 31", float, "%.3f" ;entry = vvtToothPosition41, "vvtToothPosition 41", float, "%.3f" ;entry = triggerSyncGapRatio1, "Trigger Sync Latest Ratio1", float, "%.3f" ;entry = triggerStateIndex1, "triggerStateIndex1", int, "%d" ;entry = vvtStateIndex1, "vvtStateIndex1", int, "%d" ;entry = crankSynchronizationCounter2, "sync: Crank sync counter2", int, "%d" ;entry = vvtSyncGapRatio2, "vvtSyncGapRatio2", float, "%.3f" ;entry = vvtToothDurations02, "vvtToothDurations02", int, "%d" ;entry = vvtCurrentPosition2, "vvtCurrentPosition2", float, "%.3f" ;entry = vvtToothPosition12, "vvtToothPosition 12", float, "%.3f" ;entry = vvtToothPosition22, "vvtToothPosition 22", float, "%.3f" ;entry = vvtToothPosition32, "vvtToothPosition 32", float, "%.3f" ;entry = vvtToothPosition42, "vvtToothPosition 42", float, "%.3f" ;entry = triggerSyncGapRatio2, "Trigger Sync Latest Ratio2", float, "%.3f" ;entry = triggerStateIndex2, "triggerStateIndex2", int, "%d" ;entry = vvtStateIndex2, "vvtStateIndex2", int, "%d" ;entry = crankSynchronizationCounter3, "sync: Crank sync counter3", int, "%d" ;entry = vvtSyncGapRatio3, "vvtSyncGapRatio3", float, "%.3f" ;entry = vvtToothDurations03, "vvtToothDurations03", int, "%d" ;entry = vvtCurrentPosition3, "vvtCurrentPosition3", float, "%.3f" ;entry = vvtToothPosition13, "vvtToothPosition 13", float, "%.3f" ;entry = vvtToothPosition23, "vvtToothPosition 23", float, "%.3f" ;entry = vvtToothPosition33, "vvtToothPosition 33", float, "%.3f" ;entry = vvtToothPosition43, "vvtToothPosition 43", float, "%.3f" ;entry = triggerSyncGapRatio3, "Trigger Sync Latest Ratio3", float, "%.3f" ;entry = triggerStateIndex3, "triggerStateIndex3", int, "%d" ;entry = vvtStateIndex3, "vvtStateIndex3", int, "%d" ;entry = crankSynchronizationCounter4, "sync: Crank sync counter4", int, "%d" ;entry = vvtSyncGapRatio4, "vvtSyncGapRatio4", float, "%.3f" ;entry = vvtToothDurations04, "vvtToothDurations04", int, "%d" ;entry = vvtCurrentPosition4, "vvtCurrentPosition4", float, "%.3f" ;entry = vvtToothPosition14, "vvtToothPosition 14", float, "%.3f" ;entry = vvtToothPosition24, "vvtToothPosition 24", float, "%.3f" ;entry = vvtToothPosition34, "vvtToothPosition 34", float, "%.3f" ;entry = vvtToothPosition44, "vvtToothPosition 44", float, "%.3f" ;entry = triggerSyncGapRatio4, "Trigger Sync Latest Ratio4", float, "%.3f" ;entry = triggerStateIndex4, "triggerStateIndex4", int, "%d" ;entry = vvtStateIndex4, "vvtStateIndex4", int, "%d" entry = camResyncCounter, "sync: Phase Re-Sync Counter", int, "%d" entry = m_hasSynchronizedPhase, "sync: Known Engine Phase", 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: base value", 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 = useClosedLoop, "useClosedLoop", int, "%d" entry = badTps, "badTps", 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 = targetRpmAc, "Idle: Target A/C RPM", int, "%d" entry = iacByRpmTaper, "idle: iacByRpmTaper portion", float, "%.3f" entry = luaAdd, "idle: Lua Adder", float, "%.3f" entry = idlePosition0, "ETB: idlePosition0", float, "%.3f" entry = trim0, "ETB: trim0", float, "%.3f" entry = luaAdjustment0, "ETB: luaAdjustment0", float, "%.3f" entry = m_wastegatePosition0, "DC: wastegatePosition0", float, "%.3f" entry = etbFeedForward0, "etbFeedForward0", float, "%.3f" entry = etbIntegralError0, "etbIntegralError0", float, "%.3f" entry = etbCurrentTarget0, "etbCurrentTarget0", float, "%.3f" entry = etbCurrentAdjustedTarget0, "etbCurrentAdjustedTarget0", float, "%.3f" entry = etbRevLimitActive0, "etbRevLimitActive0", int, "%d" entry = jamDetected0, "jamDetected0", int, "%d" entry = etbDutyRateOfChange0, "ETB duty rate of change0", float, "%.3f" entry = etbDutyAverage0, "ETB average duty0", float, "%.3f" entry = etbTpsErrorCounter0, "ETB TPS error counter0", int, "%d" entry = etbPpsErrorCounter0, "ETB pedal error counter0", int, "%d" entry = etbErrorCode0, "etbErrorCode0", int, "%d" entry = tcEtbDrop0, "tcEtbDrop0", int, "%d" entry = jamTimer0, "ETB jam timer0", float, "%.3f" ;entry = idlePosition1, "ETB: idlePosition1", float, "%.3f" ;entry = trim1, "ETB: trim1", float, "%.3f" ;entry = luaAdjustment1, "ETB: luaAdjustment1", float, "%.3f" ;entry = m_wastegatePosition1, "DC: wastegatePosition1", float, "%.3f" ;entry = etbFeedForward1, "etbFeedForward1", float, "%.3f" ;entry = etbIntegralError1, "etbIntegralError1", float, "%.3f" ;entry = etbCurrentTarget1, "etbCurrentTarget1", float, "%.3f" ;entry = etbCurrentAdjustedTarget1, "etbCurrentAdjustedTarget1", float, "%.3f" ;entry = etbRevLimitActive1, "etbRevLimitActive1", int, "%d" ;entry = jamDetected1, "jamDetected1", int, "%d" ;entry = etbDutyRateOfChange1, "ETB duty rate of change1", float, "%.3f" ;entry = etbDutyAverage1, "ETB average duty1", float, "%.3f" ;entry = etbTpsErrorCounter1, "ETB TPS error counter1", int, "%d" ;entry = etbPpsErrorCounter1, "ETB pedal error counter1", int, "%d" ;entry = etbErrorCode1, "etbErrorCode1", int, "%d" ;entry = tcEtbDrop1, "tcEtbDrop1", int, "%d" ;entry = jamTimer1, "ETB jam timer1", float, "%.3f" entry = faultCode0, "WBO: Fault code0", int, "%d" entry = heaterDuty0, "WBO: Heater duty0", int, "%d" entry = pumpDuty0, "WBO: Pump duty0", int, "%d" entry = tempC0, "WBO: Temperature0", int, "%d" entry = nernstVoltage0, "WBO: Nernst Voltage0", float, "%.3f" entry = esr0, "WBO: ESR0", int, "%d" ;entry = faultCode1, "WBO: Fault code1", int, "%d" ;entry = heaterDuty1, "WBO: Heater duty1", int, "%d" ;entry = pumpDuty1, "WBO: Pump duty1", int, "%d" ;entry = tempC1, "WBO: Temperature1", int, "%d" ;entry = nernstVoltage1, "WBO: Nernst Voltage1", float, "%.3f" ;entry = esr1, "WBO: ESR1", 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 = 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 = triggerConfiguration_gap, "Trigger Gap Override" subMenu = std_separator subMenu = energySystems, "Battery and alternator" subMenu = std_separator # Digital outputs subMenu = outputsDialog, "Outputs" subMenu = acSettings, "Air Conditioning" subMenu = statusLeds, "Status LEDs" menu = "Fuel" # basic subMenu = injectorConfig, "Injection configuration" subMenu = injectionSettings, "Injection hardware", 0, {isInjectionEnabled == 1} subMenu = cylinderBankSelect, "Cylinder bank selection", 0, {isInjectionEnabled == 1} subMenu = injectorNonlinear, "Injector small-pulse correction", 0, {isInjectionEnabled == 1} 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} subMenu = veTableMap, "VE Table", 0, {isInjectionEnabled} 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 extra fuelRPM 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 = std_separator subMenu = ignitionTableTbl, "Ignition advance", 0, {isIgnitionEnabled} subMenu = ignitionTableMap, "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 = postCrankingEnrichmentTbl,"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} 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 = boostOpenLoopGearAdderDialog, "Boost control open loop gear adder", { 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 == 4 || etbFunctions2 == 4 } 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 && vvtPins1 != 0 } subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 && vvtPins2 != 0 } subMenu = std_separator subMenu = auxInputsDialog, "Lua Analog Inputs" subMenu = luaDigitalInputsDialog, "Lua Digital 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" menu = "&Sensors" # Base analog input settings subMenu = otherSensorInputs, "Misc sensors" subMenu = analogInputSettings, "Analog input settings" subMenu = std_separator # Thermistors subMenu = cltSensor, "CLT sensor" subMenu = iatSensor, "IAT sensor" subMenu = auxTempSensor1Sensor, "AuxTemp1 sensor" subMenu = auxTempSensor2Sensor, "AuxTemp2 sensor" subMenu = std_separator # TPS/pedal subMenu = tpsSensor, "TPS" subMenu = pedalSensor, "Accelerator pedal" subMenu = std_separator # MAP/Baro subMenu = mapSettings, "MAP sensor" subMenu = mapCurves, "MAP sampling" subMenu = baroSettings, "Baro sensor" subMenu = std_separator # MAF subMenu = mafSettings, "MAF sensor" subMenu = mafDecodingCurve, "MAF transfer function", 0, {mafAdcChannel != 0 } subMenu = std_separator # O2 sensor(s) subMenu = egoSettings, "O2 sensor" subMenu = widebandConfig, "rusEFI Wideband Controller", 0, { canReadEnabled && canWriteEnabled } subMenu = std_separator # Misc sensors 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 = egtInputs, "EGT" subMenu = wastegateIdlePos, "Wastegate and idle position sensors" subMenu = std_separator subMenu = auxLinearSensors, "Aux Sensors" menu = "&Controller" subMenu = ecuStimulator, "ECU stimulator" subMenu = ioTest, "Bench test" subMenu = injTest, "Injector test" subMenu = engineTypeDialog, "Popular vehicles" subMenu = std_separator subMenu = spiBuses, "SPI Buses" subMenu = spiDevices, "SPI Devices" subMenu = monitoringSettings, "rusEFI console" subMenu = std_separator subMenu = canBusMain, "CAN Bus Communication" subMenu = sdCard, "SD Card Logger" subMenu = connection, "Connection" subMenu = std_separator subMenu = std_separator subMenu = allPins1, "Full pinout 1/3" subMenu = allPins2, "Full pinout 2/3" subMenu = allPins3_1_and_2 "Full pinout 3/3" # EXPERIMENTAL FEATURES subMenu = std_separator subMenu = fancyOptionsDialog, "Fancy Options" subMenu = tractionEtbTableTbl, "Traction Control ETB Drop" subMenu = tractionTimingTableTbl, "Traction Control Timing Adjustment" subMenu = tractionIgnitionSkipDialog, "Traction Control Skip Ignition" subMenu = std_separator ; 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 = parkingLot2, "Experimental 2" subMenu = harleyAcr, "HD" subMenu = antiLagDialog, "Anti-Lag ALS" subMenu = rotaryDialog, "Rotary" subMenu = throttleEffectiveArea, "Throttle effective area" menu = "Help" subMenu = helpGeneral, "rusEFI Info" menu = "&View" subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" subMenu = tcu_controllerDialog, "tcu_controller" subMenu = throttle_modelDialog, "throttle_model" 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_control0Dialog, "fan_control0" 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_state0Dialog, "trigger_state0" subMenu = trigger_state_primaryDialog, "trigger_state_primary" subMenu = wall_fuel_stateDialog, "wall_fuel_state" subMenu = idle_stateDialog, "idle_state" subMenu = electronic_throttle0Dialog, "electronic_throttle0" subMenu = wideband_state0Dialog, "wideband_state0" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" 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\x0f" 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_fuel_pump = "Z\x00\x16\x00\x01" cmd_test_starter_relay = "Z\x00\x16\x00\x02" cmd_test_starter_disable_relay = "Z\x00\x16\x00\x03" cmd_test_ac_relay = "Z\x00\x16\x00\x06" cmd_test_fan_1 = "Z\x00\x16\x00\x04" cmd_test_fan_2 = "Z\x00\x16\x00\x05" cmd_test_check_engine_light = "Z\x00\x16\x00\x07" cmd_test_idle_valve = "Z\x00\x16\x00\x08" cmd_test_second_idle_valve = "Z\x00\x16\x00\x0e" cmd_test_hpfp_valve = "Z\x00\x16\x00\x09" cmd_test_acr_valve = "Z\x00\x16\x00\x1c" cmd_test_acr2_valve = "Z\x00\x16\x00\x1d" cmd_test_vvt0_valve = "Z\x00\x16\x00\x10" cmd_test_vvt1_valve = "Z\x00\x16\x00\x11" cmd_test_vvt2_valve = "Z\x00\x16\x00\x12" cmd_test_vvt3_valve = "Z\x00\x16\x00\x13" 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_mc33810_init = "Z\x00\x14\x00\x14" cmd_write_config = "Z\x00\x14\x00\x0a" cmd_etb_reset = "Z\x00\x14\x00\x0b" 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_HONDA_OBD1 = "Z\x00\x1e\x00\x42" 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_SECONDARY_CAN = "Z\x00\x1e\x00\x04" ; cmd_set_engine_type_ = "Z\x00\x1e@@engine_type_e_ cmd_set_engine_type_MITSUBISHI_3A92 = "Z\x00\x1e\x00\x0c" cmd_set_engine_type_MITSUBISHI_4G93 = "Z\x00\x1e\x00\x10" cmd_set_engine_type_TOYOTA_1NZ_FE = "Z\x00\x1e\x00\x0d" cmd_set_engine_type_MERCEDES_M111 = "Z\x00\x1e\x00\x44" cmd_set_engine_type_MAZDA_MIATA_NA6 = "Z\x00\x1e\x00\x22" cmd_set_engine_type_MAZDA_MIATA_NA94 = "Z\x00\x1e\x00\x50" cmd_set_engine_type_MAZDA_MIATA_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_coupe_bk1 = "Z\x00\x1e\x00\x52" cmd_set_engine_type_hellen_coupe_bk2 = "Z\x00\x1e\x00\x5f" ; MIATA_NA6_MAP = 41 cmd_set_engine_type_Frankenso_Miata_NA6_MAP = "Z\x00\x1e\x00\x29" cmd_set_engine_type_FUEL_BENCH = "Z\x00\x1e\x00\x0f" ; 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] indicatorPanel = fuel_computerIndicatorPanel, 2 indicator = {injectorHwIssue}, "injectorHwIssue No", "injectorHwIssue Yes" dialog = fuel_computerDialog, "fuel_computer" panel = fuel_computerIndicatorPanel 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 graphLine = brokenInjector graphLine = unused88 liveGraph = fuel_computer_5_Graph, "Graph", South graphLine = idealEngineTorque indicatorPanel = ignition_stateIndicatorPanel, 2 indicator = {luaIgnitionSkip}, "luaIgnitionSkip No", "luaIgnitionSkip Yes" dialog = ignition_stateDialog, "ignition_state" panel = ignition_stateIndicatorPanel liveGraph = ignition_state_1_Graph, "Graph", South graphLine = baseDwell graphLine = sparkDwell graphLine = dwellDurationAngle graphLine = cltTimingCorrection liveGraph = ignition_state_2_Graph, "Graph", South graphLine = timingIatCorrection graphLine = timingPidCorrection graphLine = baseIgnitionAdvance graphLine = correctedIgnitionAdvance liveGraph = ignition_state_3_Graph, "Graph", South graphLine = tractionAdvanceDrop graphLine = dwellVoltageCorrection graphLine = luaTimingAdd 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 dialog = tcu_controllerDialog, "tcu_controller" liveGraph = tcu_controller_1_Graph, "Graph", South graphLine = tcuCurrentGear graphLine = tcRatio graphLine = lastShiftTime graphLine = tcu_currentRange 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 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 = m_pressureTarget_kPa liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South graphLine = nextLobe 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 = {isLaunchPreCondition}, "isLaunchPreCondition No", "isLaunchPreCondition 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 graphLine = timingALSSkip 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" indicator = {isPlantValid}, "isPlantValid No", "isPlantValid Yes" indicator = {isBoostControlled}, "isBoostControlled No", "isBoostControlled 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 = {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 = acButtonState graphLine = latest_usage_ac_control graphLine = acSwitchLastChangeTimeMs indicatorPanel = fan_control0IndicatorPanel, 2 indicator = {cranking0}, "cranking No", "cranking Yes" indicator = {notRunning0}, "notRunning No", "notRunning Yes" indicator = {disabledWhileEngineStopped0}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" indicator = {brokenClt0}, "brokenClt No", "brokenClt Yes" indicator = {enabledForAc0}, "enabledForAc No", "enabledForAc Yes" indicator = {hot0}, "hot No", "hot Yes" indicator = {cold0}, "cold No", "cold Yes" indicator = {disabledBySpeed0}, "disabledBySpeed No", "disabledBySpeed Yes" dialog = fan_control0Dialog, "fan_control0" panel = fan_control0IndicatorPanel 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 = {startStopPhysicalState}, "startStopPhysicalState No", "startStopPhysicalState Yes" indicator = {acrActive}, "acrActive No", "acrActive Yes" indicator = {acrEngineMovedRecently}, "acrEngineMovedRecently No", "acrEngineMovedRecently Yes" indicator = {heaterControlEnabled}, "heaterControlEnabled No", "heaterControlEnabled Yes" indicator = {luaDigitalState0}, "luaDigitalState0 No", "luaDigitalState0 Yes" indicator = {luaDigitalState1}, "luaDigitalState1 No", "luaDigitalState1 Yes" indicator = {luaDigitalState2}, "luaDigitalState2 No", "luaDigitalState2 Yes" indicator = {luaDigitalState3}, "luaDigitalState3 No", "luaDigitalState3 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 = clutchUpState graphLine = clutchDownState liveGraph = engine_state_4_Graph, "Graph", South graphLine = brakePedalState graphLine = startStopState graphLine = smartChipState graphLine = smartChipRestartCounter liveGraph = engine_state_5_Graph, "Graph", South graphLine = smartChipAliveCounter graphLine = startStopStateToggleCounter graphLine = luaSoftSparkSkip graphLine = luaHardSparkSkip liveGraph = engine_state_6_Graph, "Graph", South graphLine = tractionControlSparkSkip graphLine = desiredRpmLimit graphLine = fuelInjectionCounter graphLine = globalSparkCounter liveGraph = engine_state_7_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 indicatorPanel = trigger_centralIndicatorPanel, 2 indicator = {isDecodingMapCam}, "isDecodingMapCam No", "isDecodingMapCam Yes" dialog = trigger_centralDialog, "trigger_central" panel = trigger_centralIndicatorPanel 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 graphLine = mapCamPrevToothAngle dialog = trigger_state0Dialog, "trigger_state0" liveGraph = trigger_state0_1_Graph, "Graph", South graphLine = crankSynchronizationCounter0 graphLine = vvtSyncGapRatio0 graphLine = vvtToothDurations00 graphLine = vvtCurrentPosition0 liveGraph = trigger_state0_2_Graph, "Graph", South graphLine = vvtToothPosition10 graphLine = vvtToothPosition20 graphLine = vvtToothPosition30 graphLine = vvtToothPosition40 liveGraph = trigger_state0_3_Graph, "Graph", South graphLine = triggerSyncGapRatio0 graphLine = triggerStateIndex0 graphLine = vvtStateIndex0 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 = {useClosedLoop}, "useClosedLoop No", "useClosedLoop Yes" indicator = {badTps}, "badTps No", "badTps 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 = targetRpmAc graphLine = iacByRpmTaper graphLine = luaAdd indicatorPanel = electronic_throttle0IndicatorPanel, 2 indicator = {etbRevLimitActive0}, "etbRevLimitActive No", "etbRevLimitActive Yes" indicator = {jamDetected0}, "jamDetected No", "jamDetected Yes" dialog = electronic_throttle0Dialog, "electronic_throttle0" panel = electronic_throttle0IndicatorPanel liveGraph = electronic_throttle0_1_Graph, "Graph", South graphLine = idlePosition0 graphLine = trim0 graphLine = luaAdjustment0 graphLine = m_wastegatePosition0 liveGraph = electronic_throttle0_2_Graph, "Graph", South graphLine = etbFeedForward0 graphLine = etbIntegralError0 graphLine = etbCurrentTarget0 graphLine = etbCurrentAdjustedTarget0 liveGraph = electronic_throttle0_3_Graph, "Graph", South graphLine = etbDutyRateOfChange0 graphLine = etbDutyAverage0 graphLine = etbTpsErrorCounter0 graphLine = etbPpsErrorCounter0 liveGraph = electronic_throttle0_4_Graph, "Graph", South graphLine = etbErrorCode0 graphLine = tcEtbDrop0 graphLine = jamTimer0 dialog = wideband_state0Dialog, "wideband_state0" liveGraph = wideband_state0_1_Graph, "Graph", South graphLine = faultCode0 graphLine = heaterDuty0 graphLine = pumpDuty0 graphLine = tempC0 liveGraph = wideband_state0_2_Graph, "Graph", South graphLine = nernstVoltage0 graphLine = esr0 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 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 = "# wire each output to the corresponding cylinder number" field = "# rusEFI handles firing order" field = "Ignition Output Mode", ignitionPinMode, {isIgnitionEnabled == 1} field = "Ignition Output 1", ignitionPins1, {isIgnitionEnabled == 1} ; see rusefi_config.txt comment next to 'ignitionPin2logic' which says ; this section is auto-generated by FiringOrderTSLogic.java field = "Ignition Output 2", ignitionPins2, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 2) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 2) || (firingOrder == 7) || (firingOrder == 9) || (firingOrder == 11) || (firingOrder == 12) || (firingOrder == 16) || (firingOrder == 19) || (firingOrder == 20) || (firingOrder == 23) || (firingOrder == 25) || (firingOrder == 29)))} field = "Ignition Output 3", ignitionPins3, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 3) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 1) || (firingOrder == 3) || (firingOrder == 4) || (firingOrder == 5) || (firingOrder == 9) || (firingOrder == 13) || (firingOrder == 14) || (firingOrder == 15) || (firingOrder == 18) || (firingOrder == 20) || (firingOrder == 23) || (firingOrder == 25) || (firingOrder == 27) || (firingOrder == 28)))} field = "Ignition Output 4", ignitionPins4, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 4) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 7) || (firingOrder == 12) || (firingOrder == 14) || (firingOrder == 16) || (firingOrder == 17) || (firingOrder == 22) || (firingOrder == 23) || (firingOrder == 25) || (firingOrder == 26) || (firingOrder == 27) || (firingOrder == 31) || (firingOrder == 32)))} field = "Ignition Output 5", ignitionPins5, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 5) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 4) || (firingOrder == 12) || (firingOrder == 15) || (firingOrder == 18) || (firingOrder == 23) || (firingOrder == 26) || (firingOrder == 30) || (firingOrder == 31) || (firingOrder == 32)))} field = "Ignition Output 6", ignitionPins6, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 6) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 13) || (firingOrder == 22) || (firingOrder == 23) || (firingOrder == 29) || (firingOrder == 30)))} field = "Ignition Output 7", ignitionPins7, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 7) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 11) || (firingOrder == 15) || (firingOrder == 16) || (firingOrder == 19) || (firingOrder == 20) || (firingOrder == 22) || (firingOrder == 28)))} field = "Ignition Output 8", ignitionPins8, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 8) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11) || (firingOrder == 16) || (firingOrder == 18) || (firingOrder == 19) || (firingOrder == 26) || (firingOrder == 28) || (firingOrder == 32)))} field = "Ignition Output 9", ignitionPins9, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 9) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 14) || (firingOrder == 15) || (firingOrder == 22)))} field = "Ignition Output 10", ignitionPins10, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 10) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 14) || (firingOrder == 16) || (firingOrder == 18)))} field = "Ignition Output 11", ignitionPins11, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 11) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 15)))} field = "Ignition Output 12", ignitionPins12, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 12) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 18) || (firingOrder == 22)))} dialog = ignitionBasic, "" field = "Enabled", isIgnitionEnabled field = "Mode", ignitionMode, {isIgnitionEnabled} field = "Maximum timing advance", maximumIgnitionTiming, {isIgnitionEnabled} field = "Minimum timing advance", minimumIgnitionTiming, {isIgnitionEnabled} field = "Individually wired Wasted Spark", twoWireBatchIgnition, {isIgnitionEnabled == 1 && ignitionMode == 2 } 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, { uiMode == 0 || uiMode == 1 } dialog = baseEngineConfig, "Engine Configuration" field = "Number of cylinders", cylindersCount field = "Displacement", displacement field = "Firing order", firingOrder dialog = engineMetadata, "Engine Metadata" field = "#These metadata are used by rusEFI Online" field = "Engine Make", engineMake field = "Manufacturer Engine Code", engineCode field = "Vehicle Name", vehicleName field = "Forced Induction?", isForcedInduction dialog = trigger_primary, "Primary Trigger" topicHelp = "triggerHelp" ; see also in firmware '[doesTriggerImplyOperationMode]' tag field = "What kind of engine", 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 = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 11 || 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 == 75 || trigger_type == 76 || trigger_type == 77) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 11 || 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 == 11 || 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 == 75 || trigger_type == 76 || trigger_type == 77) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 11 || 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 == 11 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } field = "Primary Edge", invertPrimaryTriggerSignal field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || 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 = "Secondary Edge", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || 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://rusefi.com/s/vvt" ; todo: code generator to hard-code all triggers not requiring VVT? ; todo: https://github.com/rusefi/rusefi/issues/2077 field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} field = "2JZ Position", camDecoder2jzPosition, 1, {vvtMode1 == 2} field = "2JZ Precision", camDecoder2jzPrecision, 1, {vvtMode1 == 2} 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 = "Cam Edge Select", 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 a pretty advanced feature for when you are debugging trigger synchronization" field = "Override well known trigger gaps", overrideTriggerGaps field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } field = "First gap to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } field = "Second gap 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 } field = "Override well known VVT gaps", overrideVvtTriggerGaps field = gapVvtTrackingLengthOverride, gapVvtTrackingLengthOverride, { overrideVvtTriggerGaps == 1 } field = "First VVT gap from", triggerVVTGapOverrideFrom1 field = "First VVT gap to", triggerVVTGapOverrideTo1 field = "Second VVT gap from", triggerVVTGapOverrideFrom2 field = "Second VVT gap to", triggerVVTGapOverrideTo2 field = "VVT gap #3 from", triggerVVTGapOverrideFrom3 field = "VVT gap #3 to", triggerVVTGapOverrideTo3 field = "VVT gap #4 from", triggerVVTGapOverrideFrom4 field = "VVT gap #4 to", triggerVVTGapOverrideTo4 dialog = trigger_advanced, "Advanced Trigger" field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } field = "Print verbose VVT sync details to console",verboseVVTDecoding field = "Print verbose trigger sync to console", verboseTriggerSynchDetails field = "Display logic signals", displayLogicLevelsInEngineSniffer field = "Do not print messages in case of sync error", silentTriggerError field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} panel = triggerConfiguration_gap dialog = triggerConfiguration, "", xAxis panel = trigger_primary, {1}, { consumeObdSensors == 0 } panel = trigger_cams, {1}, { consumeObdSensors == 0 } ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis field = "Injector flow", injector_flow, {isInjectionEnabled == 1} field = "Injector flow units", injectorFlowAsMassFlow, {isInjectionEnabled == 1} field = "Fuel rail pressure sensor", injectorPressureType, { isInjectionEnabled && (highPressureFuel_hwChannel || lowPressureFuel_hwChannel) } field = "Injector flow compensation mode", injectorCompensationMode, { isInjectionEnabled } field = "Injector reference pressure", fuelReferencePressure, { isInjectionEnabled && injectorCompensationMode != 0 } dialog = fuelParams, "Fuel characteristics", yAxis field = "Stoichiometric ratio", stoichRatioPrimary, {isInjectionEnabled == 1} field = "E100 stoichiometric ratio", stoichRatioSecondary, {isInjectionEnabled == 1 && flexSensorPin != 0 } dialog = injectorOutputSettings, "Injector Outputs", yAxis field = "Use only first half of outputs for batch mode" field = "# wire each output to the corresponding cylinder number" field = "# rusEFI handles firing order" 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)", fordInjectorSmallPulseSlope field = "Set this to 'mass flow'", injectorFlowAsMassFlow field = "Large pulse slope (AHISL)", 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 = testInjectors, "Injector Test" commandButton = "Injector #1", cmd_test_inj1 commandButton = "Injector #2", cmd_test_inj2, { cylindersCount >= 2 } commandButton = "Injector #3", cmd_test_inj3, { cylindersCount >= 3 } commandButton = "Injector #4", cmd_test_inj4, { cylindersCount >= 4 } commandButton = "Injector #5", cmd_test_inj5, { cylindersCount >= 5 } commandButton = "Injector #6", cmd_test_inj6, { cylindersCount >= 6 } commandButton = "Injector #7", cmd_test_inj7, { cylindersCount >= 7 } commandButton = "Injector #8", cmd_test_inj8, { cylindersCount >= 8 } commandButton = "Injector #9", cmd_test_inj9, { cylindersCount >= 9 } commandButton = "Injector #10", cmd_test_inj10, { cylindersCount >= 10 } commandButton = "Injector #11", cmd_test_inj11, { cylindersCount >= 11 } commandButton = "Injector #12", cmd_test_inj12, { cylindersCount >= 12 } commandButton = "Abort test", cmd_test_cancel dialog = testTcuSolenoids, "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 dialog = injectionSettingsEast, "", yAxis panel = testInjectors field = "" dialog = injectionSettingsWest, "", yAxis panel = injectorOutputSettings field = "" dialog = injectionSettings, "", xAxis panel = injectionSettingsWest panel = injectionSettingsEast dialog = injectorConfig, "", yAxis topicHelp = "fuelHelp" panel = baseInjection panel = injChars panel = fuelParams panel = injectorsDeadTime, {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 = "Odd Fire Engine", oddFireEngine 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", injectorSecondary_flow {isInjectionEnabled && enableStagedInjection} 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} indicatorPanel = isBoostControlledPanel, 1 indicator = {isBoostControlled}, "No Boost Control", "Boost Control Active" 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." panel = isBoostControlledPanel 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." panel = isBoostControlledPanel 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 = "#Here is three pairs of thermistor temperature and resistance." field = "#Typical temperatures is -40 deg C, 0 deg C and 100 deg C" field = "" field = "Lowest temperature", auxTempSensor1_tempC_1, {auxTempSensor1_adcChannel != 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 = "#Here is three pairs of thermistor temperature and resistance." field = "#Typical temperatures is -40 deg C, 0 deg C and 100 deg C" field = "" field = "Lowest temperature", auxTempSensor2_tempC_1, {auxTempSensor2_adcChannel != 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 = tpsSent1, "SENT TPS" field = "Input #1", sentInputPins1 field = "ETB type", sentEtbType, {sentInputPins1 != 0} field = "Closed value", customSentTpsMin, {sentEtbType == 3 } field = "Open value", customSentTpsMax, {sentEtbType == 3 } 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 field = "Error Detection Threshold", etbSplit 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 = idlePosConfig, "Idle position sensor" field = "Input", idlePositionChannel field = "Min (valve closed, low idle)", idlePositionMin field = "Max (valve open, high idle)", idlePositionMax dialog = wastegateIdlePosLeft, "" panel = wastegatePosConfig panel = idlePosConfig dialog = wastegateIdlePosGauges, "" gauge = rawWastegatePositionGauge, West gauge = wastegatePosGauge, East gauge = rawIdlePositionSensorGauge gauge = idlePosSensGauge dialog = wastegateIdlePos, "", border panel = wastegateIdlePosLeft, West panel = wastegateIdlePosGauges, East dialog = tractionIgnitionSkipDialog, "Traction Ignition Skip" field = useHardSkipInTraction, useHardSkipInTraction panel = tractionIgnitionSkipTableTbl 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 = "MC33816 Driven", mc33816_driven 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", brakePedalPin field = "Brake Pedal Mode", brakePedalPinMode field = "Flex fuel sensor", flexSensorPin field = flexSensorInverted, flexSensorInverted 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 = hpfpValvePin, hpfpValvePin dialog = allPins1_1 field = "trigger stimulator output #1", triggerSimulatorPins1 field = "trigger stimulator output #2", triggerSimulatorPins2 field = camSimulatorPin, camSimulatorPin field = "tle6240_cs", tle6240_cs field = "mc33810_cs", mc33810_cs1 field = "mc33810_csPinMode", mc33810_csPinMode field = "tle6240 SPI", tle6240spiDevice dialog = allPins1_2 field = "Tachometer output", tachOutputPin field = "Narrowband 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 = "ETB#1 Dir #1", etbIo1_directionPin1 field = "ETB#1 Dir #2", etbIo1_directionPin2 field = "ETB#1 Control", etbIo1_controlPin field = "ETB#1 Disable", etbIo1_disablePin field = "ETB#2 Dir #1", etbIo2_directionPin1 field = "ETB#2 Dir #2", etbIo2_directionPin2 field = "ETB#2 Control", etbIo2_controlPin field = "ETB#2 Disable", etbIo2_disablePin 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 = "CAN RX pin", canRxPin field = "CAN TX pin", canTxPin 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 = "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 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 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 = "hip9011CsPin", hip9011CsPin field = "Saab CDM knock", cdmInputPin field = "DRV8860 CS", drv8860_cs field = "DRV8860 CS Mode", drv8860_csPinMode field = "DRV8860 MISO pin", drv8860_miso field = "DRV8860 SPI", drv8860spiDevice 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=-40,clt_resistance_1=100000,clt_tempC_2=40,clt_resistance_2=1459,clt_tempC_3=130,clt_resistance_3=70,useLinearCltSensor=0 settingOption = "Miata NA", clt_tempC_1=-20,clt_resistance_1=16150,clt_tempC_2=40,clt_resistance_2=1150,clt_tempC_3=80,clt_resistance_3=330,useLinearCltSensor=0 settingOption = "Miata NB", clt_tempC_1=-10,clt_resistance_1=9000,clt_tempC_2=20,clt_resistance_2=2500,clt_tempC_3=80,clt_resistance_3=320,useLinearCltSensor=0 settingOption = "Bosch Various", clt_tempC_1=0,clt_resistance_1=5896,clt_tempC_2=50,clt_resistance_2=834,clt_tempC_3=100,clt_resistance_3=187,useLinearCltSensor=0 field = "#Input three pairs of thermistor temperature and resistance." field = "#Typical temperatures are -40 deg C, 0 deg C and 100 deg C" field = "" field = "Lowest temperature", clt_tempC_1, {clt_adcChannel != 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 = "#Input three pairs of thermistor temperature and resistance." field = "#Typical temperatures are -40 deg C, 0 deg C and 100 deg C" field = "" field = "Lowest temperature", iat_tempC_1, {iat_adcChannel != 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 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 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 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 = "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 = "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 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 input", baroSensor_hwChannel field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0} field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0} field = "Type", baroSensor_type, {baroSensor_hwChannel != 0} field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} 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 ; Sensors->EGO sensor dialog = egoSettings_sensor, "O2 sensor" settingSelector = "O2 Type" settingOption = "BPSX", afr_v1=0,afr_value1=9,afr_v2=5,afr_value2=19 settingOption = "Innovate", afr_v1=0,afr_value1=7.35,afr_v2=5,afr_value2=22.39 settingOption = "14Point7", afr_v1=0,afr_value1=9.996,afr_v2=5,afr_value2=19.992 settingOption = "PLX", afr_v1=0,afr_value1=10,afr_v2=5,afr_value2=20 settingOption = "Narrow Band", afr_v1=0.1,afr_value1=15,afr_v2=0.9,afr_value2=14 settingOption = "AEM", afr_v1=0.5,afr_value1=8.5,afr_v2=4.5,afr_value2=18 field = "Type", afr_type ; todo: only use these values for custom! field = "low voltage", afr_v1 field = "low value", afr_value1 field = "high voltage", afr_v2 field = "high value", afr_value2 field = "Correction", egoValueShift dialog = egoSettings_IO1, "O2 Sensor 1 I/O" field = "Input channel", afr_hwChannel,{afr_hwChannel != 0 || enableAemXSeries == 0 } field = "Narrowband Heater output", o2heaterPin, { o2heaterPin != 0 || enableAemXSeries == 0 } dialog = egoSettings_IO2, "O2 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 = "CAN support only EGT1 and EGT2" field = "CAN EGT (AEM X series of RusEFI)" enableAemXSeriesEgt, { canReadEnabled } field = "If both CAN and SPI EGT sensors are used, please leave two first for CAN" field = "MAX31855/MAX31856 SPI", max31855spiDevice field = "CS for EGT1", max31855_cs1 field = "CS for EGT2", max31855_cs2 field = "CS for EGT3", max31855_cs3 field = "CS for EGT4", max31855_cs4 field = "CS for EGT5", max31855_cs5 field = "CS for EGT6", max31855_cs6 field = "CS for EGT7", max31855_cs7 field = "CS for EGT8", 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 panel = etbHbridgeHardwareNo2 dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" field = "No1 Direction #1", stepperDcIo1_directionPin1 field = "No1 Direction #2", stepperDcIo1_directionPin2 field = "No1 Control", stepperDcIo1_controlPin 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 Control", stepperDcIo2_controlPin 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 = idleIncrementalPidCic, idleIncrementalPidCic field = "use Cic Pid", useCicPidForIdle field = "Use IAC PID Multiplier Table", useIacPidMultTable dialog = idleOpenLoop, "Open Loop Idle" slider = "Open loop base position", manIdlePosition, horizontal field = "A/C adder", acIdleExtraOffset field = "A/C RPM target", acIdleRpmTarget field = "Fan #1 adder", fan1ExtraIdle field = "Fan #2 adder", fan2ExtraIdle field = "Dashpot/Taper Initial IAC Adder", 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 field = "Dashpot coasting-to-idle Hold time", iacByTpsHoldTime field = "Dashpot coasting-to-idle Decay time", iacByTpsDecayTime 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 = "Integral gain", idleTimingPid_iFactor, {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 = "Soft entry time", idleTimingSoftEntryTime, {useIdleTimingPidControl == 1} field = "" field = "#Use debug mode 'Timing' to view idle timing adjustment" ; Engine->Fan Settings dialog = fan1Settings, "Fan 1" field = "Output", fanPin, 1, { uiMode == 0 || uiMode == 1 } field = "Output mode", fanPinMode, { uiMode == 0 || uiMode == 1 } field = "On temperature", fanOnTemperature field = "Off temperature", fanOffTemperature field = "Enable with AC", enableFan1WithAc field = "Disable when engine stopped", disableFan1WhenStopped field = "Disable above vehicle speed", disableFan1AtSpeed 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 = "Disable above vehicle speed", disableFan2AtSpeed 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 Idle RPM", acIdleRpmTarget 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 commandButton = "Test Fuel Pump", cmd_test_fuel_pump ; Controller->Actuator Outputs dialog = mainRelayDialog, "Main relay output" field = "Output", mainRelayPin field = "Output mode", mainRelayPinMode commandButton = "Test Main Relay", cmd_test_main_relay dialog = starterRelayDialog, "Starter Disable" field = "Output", starterRelayDisablePin field = "Output mode", starterRelayDisablePinMode commandButton = "Test Starter Disable", cmd_test_starter_disable_relay dialog = startStopDialog, "Starter Control" field = "Require Foot On Brake To Crank", requireFootOnBrakeToCrank 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} field = "Suppress On Start Up (Ms)", startButtonSuppressOnStartUpMs, {startStopButtonPin != 0} commandButton = "Test Starter Relay", cmd_test_starter_relay ; Engine->MIL Settings dialog = malfunctionDialog, "Check Engine Settings" field = "Output", malfunctionIndicatorPin field = "Output mode", malfunctionIndicatorPinMode field = "Warning Period", warningPeriod commandButton = "Test Check Engine", cmd_test_check_engine_light 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 dialog = outputsDialogRight panel = startStopDialog panel = starterRelayDialog panel = speedoSettings panel = malfunctionDialog dialog = outputsDialog, "Outputs", border panel = outputsDialogLeft, West panel = fanSetting, Center panel = outputsDialogRight, East dialog = statusLeds, "Status LEDs" field = "Trigger error LED", triggerErrorPin field = "Debug Trigger Sync", debugTriggerSync dialog = softwareKnockCfg, "Sense" field = "Enable", enableSoftwareKnock field = "Cylinder Bore", cylinderBore field = "Knock filter frequency", knockBandCustom, {enableSoftwareKnock} field = "knockDetectionWindowStart",knockDetectionWindowStart, {enableSoftwareKnock} field = "knockSamplingDuration", knockSamplingDuration, {enableSoftwareKnock} field = "" field = "Select the nearest sensor for each cylinder" field = "Cylinder 1", knockBankCyl1, {enableSoftwareKnock} field = "Cylinder 2", knockBankCyl2, {enableSoftwareKnock && cylindersCount >= 2} field = "Cylinder 3", knockBankCyl3, {enableSoftwareKnock && cylindersCount >= 3} field = "Cylinder 4", knockBankCyl4, {enableSoftwareKnock && cylindersCount >= 4} field = "Cylinder 5", knockBankCyl5, {enableSoftwareKnock && cylindersCount >= 5} field = "Cylinder 6", knockBankCyl6, {enableSoftwareKnock && cylindersCount >= 6} field = "Cylinder 7", knockBankCyl7, {enableSoftwareKnock && cylindersCount >= 7} field = "Cylinder 8", knockBankCyl8, {enableSoftwareKnock && cylindersCount >= 8} field = "Cylinder 9", knockBankCyl9, {enableSoftwareKnock && cylindersCount >= 9} field = "Cylinder 10", knockBankCyl10, {enableSoftwareKnock && cylindersCount >= 10} field = "Cylinder 11", knockBankCyl11, {enableSoftwareKnock && cylindersCount >= 11} field = "Cylinder 12", knockBankCyl12, {enableSoftwareKnock && cylindersCount >= 12} dialog = softwareKnockResponseCfg, "Response" field = knockRetardAggression, knockRetardAggression field = knockRetardReapplyRate, knockRetardReapplyRate dialog = softwareKnockLeft, "" panel = softwareKnockCfg panel = softwareKnockResponseCfg dialog = softwareKnock, "Software Knock", border panel = softwareKnockLeft, West panel = knockThresholdCurve, Center ; Engine->hip9011 Settings dialog = hipFunction, "HIP9011 Settings (knock decoder)" field = "Enabled", isHip9011Enabled field = "!ECU reboot needed to apply these settings" field = "IntHold pin (hip9011 input)", hip9011IntHoldPin, {isHip9011Enabled == 1} field = "IntHold pin (hip9011 input) mode", hip9011IntHoldPinMode, {isHip9011Enabled == 1} field = "ChipSelect pin", hip9011CsPin, {isHip9011Enabled == 1} field = "ChipSelect mode", hip9011CsPinMode, {isHip9011Enabled == 1} field = "hip Output/stm input", hipOutputChannel, {isHip9011Enabled == 1} field = "prescaler & SDO", hip9011PrescalerAndSDO, {isHip9011Enabled == 1} field = "knockDetectionWindowStart", knockDetectionWindowStart, {isHip9011Enabled == 1} field = "knockDetectionWindowEnd", knockDetectionWindowEnd, {isHip9011Enabled == 1} field = "cylinder bore (mm)", cylinderBore, {isHip9011Enabled == 1} field = "Band Freq override", knockBandCustom, {isHip9011Enabled == 1} field = "SPI device", hip9011SpiDevice, {isHip9011Enabled == 1} panel = knockThresholdCurve dialog = spiBuses, "SPI buses settings" field = "!ECU reboot needed to apply these settings" field = "SPI1 enable", is_enabled_spi_1 field = "SPI1 MOSI", spi1mosiPin, {is_enabled_spi_1 == 1} field = "SPI1mosi mode", spi1MosiMode, {is_enabled_spi_1 == 1} field = "SPI1 MISO", spi1misoPin, {is_enabled_spi_1 == 1} field = "SPI1miso mode", spi1MisoMode, {is_enabled_spi_1 == 1} field = "SPI1 SCK", spi1sckPin, {is_enabled_spi_1 == 1} field = "SPI1sck mode", spi1SckMode, {is_enabled_spi_1 == 1} field = "SPI2 enable", is_enabled_spi_2 field = "SPI2 MOSI", spi2mosiPin, {is_enabled_spi_2 == 1} field = "SPI2mosi mode", spi2MosiMode, {is_enabled_spi_2 == 1} field = "SPI2 MISO", spi2misoPin, {is_enabled_spi_2 == 1} field = "SPI2miso mode", spi2MisoMode, {is_enabled_spi_2 == 1} field = "SPI2 SCK", spi2sckPin, {is_enabled_spi_2 == 1} field = "SPI2sck mode", spi2SckMode, {is_enabled_spi_2 == 1} field = "SPI3 enable", is_enabled_spi_3 field = "SPI3 MOSI", spi3mosiPin, {is_enabled_spi_3 == 1} field = "SPI3mosi mode", spi3MosiMode, {is_enabled_spi_3 == 1} field = "SPI3 MISO", spi3misoPin, {is_enabled_spi_3 == 1} field = "SPI3miso mode", spi3MisoMode, {is_enabled_spi_3 == 1} field = "SPI3 SCK", spi3sckPin, {is_enabled_spi_3 == 1} field = "SPI3sck mode", spi3SckMode, {is_enabled_spi_3 == 1} field = "SPI4 enable", is_enabled_spi_4 field = "SPI5 enable", is_enabled_spi_5 field = "SPI6 enable", is_enabled_spi_6 dialog = spiDevices, "SPI devices settings" field = "Use SPI accelerometer", useSpiImu 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 = 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 } 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} commandButton = "Bench bank 1", cmd_test_vvt0_valve, { engineTurnedRecently == 0 } commandButton = "Bench bank 2", cmd_test_vvt2_valve, { engineTurnedRecently == 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} commandButton = "Bench bank 1", cmd_test_vvt1_valve, { engineTurnedRecently == 0 } commandButton = "Bench bank 2", cmd_test_vvt3_valve, { engineTurnedRecently == 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 output 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 ; Engine->Other inputs dialog = analogInputSettings, "Analog Input Settings" field = "!ECU reboot needed to apply these settings" field = "ADC vRef voltage", adcVcc field = "Use fixed baro corr from MAP", useFixedBaroCorrFromMap field = "Analog divider ratio", analogInputDividerCoefficient ; Board->Connection dialog = tsPort, "Calibration Secondary Serial" field = "tunerStudioSerialSpeed", tunerStudioSerialSpeed field = "TX pin", binarySerialTxPin field = "RX pin", binarySerialRxPin dialog = canHw1, "Primary CAN" field = "Verbose Can", verboseCan field = "Bitrate", canBaudRate field = "RX pin", canRxPin field = "TX pin", canTxPin field = "Allow OpenBLT", canOpenBLT dialog = canHw2, "Secondary CAN" field = "Verbose Can2", verboseCan2 field = "Bitrate", can2BaudRate field = "RX pin", can2RxPin field = "TX pin", can2TxPin field = "Allow OpenBLT", can2OpenBLT dialog = canBus, "CAN Bus" field = "CAN dash type", canNbcType field = "Inertia Measurement Unit", imuType field = "CAN read enabled", canReadEnabled field = "CAN write enabled", canWriteEnabled field = "Enable rusEFI CAN broadcast", enableVerboseCanTx field = "Enable extended rusEFI CAN broadcast", enableExtendedCanBroadcast field = "rusEFI CAN data bus", canBroadcastUseChannelTwo field = "rusEFI CAN data base address", verboseCanBaseAddress field = "rusEFI CAN data address type", rusefiVerbose29b field = "rusEFI CAN data period", canSleepPeriodMs dialog = canBus2, "Secondary CAN Bus" dialog = canBusMain, "CAN Bus Communication", yAxis panel = canBus panel = canHw1 panel = canHw2 dialog = auxSerial, "AUX Sensor Serial" field = "RX pin", auxSerialRxPin field = "TX pin", auxSerialTxPin field = "Serial Baud Rate", auxSerialSpeed dialog = sdCard, "SD Card Logger" field = "#rusEFI logs to SD when powered without USB connected" field = "#rusEFI connects SD to your PC when powered by USB" field = "Enable SD Card", isSdCardEnabled field = "CS Pin", sdCardCsPin field = "SPI", sdCardSpiDevice field = "SD logger rate", sdCardLogFrequency field = "SD logger mode", sdTriggerLog dialog = tle8888Dialog, "TLE8888", yAxis field = "TLE8888 SPI", tle8888spiDevice field = "TLE8888 Chip Select", tle8888_cs field = "Trigger Input Mode", tle8888mode field = "useTLE8888 cranking reset hack", useTLE8888_cranking_hack field = "useTLE8888 stepper", useTLE8888_stepper commandButton = "Reinitialize", cmd_tle8888_init dialog = l9779Dialog, "L9779", yAxis field = "L9779 SPI", l9779spiDevice field = "L9779 Chip Select", l9779_cs dialog = connection, "", yAxis panel = tsPort field = "uartConsoleSerialSpeed", uartConsoleSerialSpeed panel = auxSerial field = enableKline, enableKline dialog = monitoringSettings, "rusEFI Console Settings" field = "Sensor Sniffer", sensorChartMode field = " Threshold", sensorSnifferRpmThreshold field = "Engine Sniffer Threshold", engineSnifferRpmThreshold dialog = fuelStrategyPanel, "Fuel" field = "!https://rusefi.com/s/fuel" field = "Fuel strategy", fuelAlgorithm dialog = debugging, "Debug" field = "!https://rusefi.com/s/debugmode" field = "Debug mode", debugMode dialog = 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 = "RPM limit hysteresis", rpmHardLimitHyst field = "Boost cut pressure", boostCutPressure field = "Boost cut pressure hysteresis", boostCutPressureHyst field = "Minimum oil pressure after start", minOilPressureAfterStart panel = dutyCycleLimiting dialog = softRpmLimitSettings, "Soft RPM Limit" field = "Window size", rpmSoftLimitWindowSize field = "Timing retard", rpmSoftLimitTimingRetard, { cutSparkOnHardLimit } field = "Fuel added", rpmSoftLimitFuelAdded, { cutFuelOnHardLimit } 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 = softRpmLimitSettings, West, { (cutFuelOnHardLimit || cutSparkOnHardLimit) && !useCltBasedRpmLimit } 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 = fuelStrategyPanel dialog = crankingFuel, "Fuel" field = "Injection mode", crankingInjectionMode field = "Fuel Source For Cranking", useRunningMathForCranking field = "Base fuel mass", cranking_baseFuel, {useRunningMathForCranking == 0} dialog = crankingIAC, "Idle air valve" field = "Cranking base IAC position", crankingIACposition field = "After cranking IAC taper duration",afterCrankingIACtaperDuration field = "Override cranking IAC CLT multiplier", overrideCrankingIacSetting dialog = crankingIgnition, "Ignition" field = "Timing Advance mode", useSeparateAdvanceForCranking field = "Fixed cranking advance", crankingTimingAngle, {useSeparateAdvanceForCranking == 0} field = "Fixed Cranking Dwell", ignitionDwellForCrankingMs dialog = primingFuelPulsePanel, "Priming fuel pulse" field = "Priming delay", primingDelay panel = primingPulse dialog = crankingAdv, "Advanced" field = "Enable flood clear", isCylinderCleanupEnabled field = "Enable faster engine spin-up", isFasterEngineSpinUpEnabled field = "Use Advance Corrections for cranking", useAdvanceCorrectionsForCranking field = "Use Flex Fuel cranking table", flexCranking ; Cranking->Cranking Settings dialog = crankingDialog, "Cranking Settings" field = "Cranking RPM limit", cranking_rpm panel = crankingFuel panel = crankingIgnition panel = crankingIAC panel = crankingAdv dialog = TpsAccelPanel, "TPS" field = "Set 'Debug Mode' to see detailed 'TPS acceleration enrichment' diagnostics" field = "Length", tpsAccelLookback field = "Accel Threshold", tpsAccelEnrichmentThreshold field = "Decel Threshold", tpsDecelEnleanmentThreshold ; field = "Decel Multiplier", tpsDecelEnleanmentMultiplier field = "#Accelerator Pump model:" field = "Fraction Period", tpsAccelFractionPeriod field = "Fraction Divisor", tpsAccelFractionDivisor dialog = WallWettingAccelPanel, "Wall Wetting (alpha version)" field = "Wall fueling model type", complexWallModel field = "evaporation time constant / tau", wwaeTau, { complexWallModel == 0 } field = "added to wall coef / beta", wwaeBeta, { complexWallModel == 0 } ; Tuning->AccelEnrichment dialog = AccelEnrich, "Accel/Decel Enrichment" panel = TpsAccelPanel panel = WallWettingAccelPanel field = "No accel after RPM hard limit", noAccelAfterHardLimitPeriodSecs dialog = wwTauCurves, "Wall wetting AE evaporation time" field = "#Set a base evaporation time based on coolant temperature, and a multiplier based on MAP." panel = wwTauCltCurve panel = wwTauMapCurve dialog = wwBetaCurves, "Wall wetting AE impact fraction" field = "#Set a base impact fraction based on coolant temperature, and a multiplier based on MAP." panel = wwBetaCltCurve panel = wwBetaMapCurve dialog = auxValvesIO, "Outputs" field = "aux valve #1", auxValves1 field = "aux valve #2", auxValves2 dialog = scriptSetting, "Setting" field = "!Use rusEFI console for Lua script editing" field = "Set number is not associated with the output number." field = "Set number, only the cell number with some numbers." field = "Name #1", scriptSettingName1 field = "Setting #1", scriptSetting1 field = "Name #2", scriptSettingName2 field = "Setting #2", scriptSetting2 field = "Name #3", scriptSettingName3 field = "Setting #3", scriptSetting3 field = "Name #4", scriptSettingName4 field = "Setting #4", scriptSetting4 field = "Name #5", scriptSettingName5 field = "Setting #5", scriptSetting5 field = "Name #6", scriptSettingName6 field = "Setting #6", scriptSetting6 dialog = scriptSettingDialog, "Script Settings", border panel = scriptSetting, East dialog = 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 rusEFI console for Lua script editing" field = "#Call startPwm to initialize, then call" field = "#setPwmDuty and setPwmFreq to vary duty/freq" field = "#See rusefi.com/s/lua for more info" field = "output #0", luaOutputPins1 field = "output #1", luaOutputPins2 field = "output #2", luaOutputPins3 field = "output #3", luaOutputPins4 field = "output #4", luaOutputPins5 field = "output #5", luaOutputPins6 field = "output #6", luaOutputPins7 field = "output #7", luaOutputPins8 dialog = transmissionPanel field = "TCU Enabled" tcuEnabled field = "Gear Controller" gearControllerMode, { tcuEnabled } field = "Transmission Controller" transmissionControllerMode, { tcuEnabled } dialog = shiftSolenoidPanel, "Shift Solenoids" field = "Solenoid 1 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 = rangeMatrixInputPanel, "Range Selector Inputs" field = "Input 1 Pin", tcu_rangeInput1, { tcuEnabled } field = "Input 1 Pin Mode", tcu_rangeInputMode1, { tcuEnabled } field = "Input 2 Pin", tcu_rangeInput2, { tcuEnabled } field = "Input 2 Pin Mode", tcu_rangeInputMode2, { tcuEnabled } field = "Input 3 Pin", tcu_rangeInput3, { tcuEnabled } field = "Input 3 Pin Mode", tcu_rangeInputMode3, { tcuEnabled } field = "Input 4 Pin", tcu_rangeInput4, { tcuEnabled } field = "Input 4 Pin Mode", tcu_rangeInputMode4, { tcuEnabled } dialog = tcuControls, "Transmission Settings" panel = transmissionPanel panel = shiftSolenoidPanel panel = otherSolenoidPanel dialog = gearControls, "Gear Selection Settings" panel = buttonShiftInputPanel panel = rangeMatrixInputPanel 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 dialog = rangeMatrixDocumentation, "Cell Values" field = "0 = this pin must be low to reach this state" field = "1 = this pin must be high to reach this state" field = "2 = this pin is ignored for reaching this state" field = "3 = this state is unreachable" dialog = rangeMatrixDialog, "Range Selector Input Matrix", border panel = rangeMatrix, Center panel = rangeMatrixDocumentation, South ;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 dialog = boostOpenLoopGearAdderDialog, "", border panel = boostOpenLoopGearAdderCurve, 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://rusefi.com/s/fuel" help = stepperHbridgeHardwareHelp, "Stepper driven by Dual H-bridge" text = "In case you are using two H-bridges driving 4-wire stepper. H-brigde control signals connected to MCU pins configured here." help = idleStepperHwHelp, "Stepper drivern by step motor driver IC" text = "In case you have some special IC that drives your stepper. MCU to IC control signals (DIR/STEP/EN) configured here" help = stepperDirectDriveHardwareHelp, "Stepper driven by 4 Push-Pull/Pull outputs" text = "In case you have 4/6-wire stepper driven by 4 ECU outputs in Push-Pull or Pull mode. Set ECU outputs used for each phase here." help = 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://rusefi.com/s/fuel" help = triggerHelp, "Trigger Settings" text = "More about Trigger Settings on the web" webHelp = "https://rusefi.com/s/trigger" help = etbHelp, "ETB Control" text = "More about electronic throttle body on the web" webHelp = "https://rusefi.com/s/etb" help = vrThresholdHelp, "VR Sensor Threshold" text = "This is about rusEFI VR Discrete decoder" webHelp = "https://rusefi.com/" help = tpsTpsHelp, "Acceleration Enrichment" text = "More about Tps To Tps acceleration on the web" webHelp = "https://rusefi.com/s/tpstps" help = baseHelp, "Base Settings Control" text = "More about rusefi on the web" webHelp = "https://rusefi.com/" dialog = veTableDialog topicHelp = "veTableDialogHelp" panel = veTableTbl, South dialog = veTableDialog3D, "VE Table" topicHelp = "veTableDialogHelp" panel = veTableMap, South dialog = etbPidDialog, "PID settings" field = "pFactor", etb_pFactor field = "iFactor", etb_iFactor field = "dFactor", etb_dFactor field = "pid min", etb_minValue field = "pid max", etb_maxValue field = "iTermMin", etb_iTermMin field = "iTermMax", etb_iTermMax dialog = etbIdleDialog, "ETB Idle" field = "ETB idle maximum angle", etbIdleThrottleRange dialog = etbDialogLeft field = "https://rusefi.com/s/etb" field = "Disable ETB if engine is stopped", disableEtbWhenEngineStopped field = "Disable ETB Motor", pauseEtbControl field = "H-Bridge #1 function", etbFunctions1 field = "H-Bridge #2 function", etbFunctions2 field = "PWM Frequency", etbFreq field = "Minimum ETB position", etbMinimumPosition field = "Maximum ETB position", etbMaximumPosition 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 panel = etbHbridgeHardware, { etbFunctions1 != 0 || etbFunctions2 != 0 || (useStepperIdle && useHbridgesToDriveIdleStepper) } 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 } commandButton = "Reset ETB", cmd_etb_reset 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 = testSpark, "Spark" commandButton = "Spark #1", cmd_test_spk1 commandButton = "Spark #2", cmd_test_spk2, { cylindersCount >= 2 } commandButton = "Spark #3", cmd_test_spk3, { cylindersCount >= 3 } commandButton = "Spark #4", cmd_test_spk4, { cylindersCount >= 4 } commandButton = "Spark #5", cmd_test_spk5, { cylindersCount >= 5 } commandButton = "Spark #6", cmd_test_spk6, { cylindersCount >= 6 } commandButton = "Spark #7", cmd_test_spk7, { cylindersCount >= 7 } commandButton = "Spark #8", cmd_test_spk8, { cylindersCount >= 8 } commandButton = "Spark #9", cmd_test_spk9, { cylindersCount >= 9 } commandButton = "Spark #10", cmd_test_spk10, { cylindersCount >= 10 } commandButton = "Spark #11", cmd_test_spk11, { cylindersCount >= 11 } commandButton = "Spark #12", cmd_test_spk12, { cylindersCount >= 12 } commandButton = "Abort test", cmd_test_cancel dialog = testMisc, "Misc" commandButton = "A/C Relay", cmd_test_ac_relay commandButton = "Idle Air Valve", cmd_test_idle_valve commandButton = "Idle Second Air Valve", cmd_test_second_idle_valve 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 = testSpark panel = testInjectors panel = testOther panel = testLuaOut panel = testMisc ; Injectors test dialog = injTest_l, "Output test modes", yAxis field = "Iterations", benchTestCount field = "ON time", benchTestOffTime field = "OFF time", benchTestOnTime dialog = injTest_r, "Reference gauges", yAxis gauge = VBattGauge,North gauge = testBenchIterGauge,South dialog = injTest, "", xAxis panel = injTest_l panel = injTest_r dialog = widebandConfig, "rusEFI Wideband Config" field = "!Please connect exactly one wideband controller before pressing these buttons!" commandButton = "Update Firmware", cmd_wideband_firmare_update field = "!These buttons will set ALL connected controllers to the specified index." field = "!Disconnect all controllers you don't want to set!" commandButton = "Set Index 0", cmd_set_wideband_idx_0 commandButton = "Set Index 1", cmd_set_wideband_idx_1 field = "Wideband CAN bus", widebandOnSecondBus field = "Force O2 sensor heating", forceO2Heating dialog = engineTypeDialog, "Popular vehicles" field = "!These buttons send a command to rusEFI controller to apply preset values" field = "!Once you send the command, please reconnect to rusEFI controller in order to read fresh values" commandButton = "Honda OBD1", cmd_set_engine_type_HONDA_OBD1 ; commandButton = "Mitsubishi 3A92", cmd_set_engine_type_MITSUBISHI_3A92 ; commandButton = "Mitsubishi 4G93", cmd_set_engine_type_MITSUBISHI_4G93 commandButton = "Fuel Bench", cmd_set_engine_type_FUEL_BENCH 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 = "Enable external trigger simulation", cmd_enable_ext_stim commandButton = "Disable trigger simulation", cmd_disable_self_stim ; field = "" ; field = "digipot spi", digitalPotentiometerSpiDevice ; field = "digipot CS #0", digitalPotentiometerChipSelect1 ; field = "digipot CS #1", digitalPotentiometerChipSelect2 ; field = "digipot CS #2", digitalPotentiometerChipSelect3 ; field = "digipot CS #3", digitalPotentiometerChipSelect4 field = "" field = "trigger stimulator output #1", triggerSimulatorPins1 field = "trigger stimulator output mode #1", triggerSimulatorPinModes1 field = "trigger stimulator output #2", triggerSimulatorPins2 field = "trigger stimulator output mode #2", triggerSimulatorPinModes2 field = camSimulatorPin, camSimulatorPin 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 = "Launch Control Window", launchRpmWindow, {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} panel = FuelAdderTableALS panel = IgnRetardTableALS panel = IgnSkipTableALS 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 = fancyOptionsDialog, "Fancy Options" field = fancyOptions1, fancyOptions1 field = fancyOptions2, fancyOptions2 field = fancyOptions3, fancyOptions3 field = fancyOptions4, fancyOptions4 field = fancyOptions5, fancyOptions5 field = fancyOptions6, fancyOptions6 field = fancyOptions7, fancyOptions7 field = fancyOptions8, fancyOptions8 field = fancyOptions9, fancyOptions9 field = fancyOptions10, fancyOptions10 field = fancyOptions11, fancyOptions11 field = fancyOptions12, fancyOptions12 field = fancyOptions13, fancyOptions13 field = fancyOptions14, fancyOptions14 field = fancyOptions15, fancyOptions15 field = fancyOptions16, fancyOptions16 dialog = fancyHardwareDialog, "Fancy Boards" field = fancySmartS,fancySmartS field = fancySmartL,fancySmartL dialog = parkingLot2, "Experimental 2" field = dacOutputPins1, dacOutputPins1 field = dacOutputPins2, dacOutputPins2 field = skipBoardCanDash, skipBoardCanDash field = luaCanRxWorkaround, luaCanRxWorkaround field = "Read RPM matching VSS profile", canInputBCM field = auxSpeed1Multiplier, auxSpeed1Multiplier field = useAuxSpeedForSlipRatio, useAuxSpeedForSlipRatio field = useVssAsSecondWheelSpeed, useVssAsSecondWheelSpeed field = magicNumberAvailableForDevTricks, magicNumberAvailableForDevTricks field = brakeMeanEffectivePressureDifferential, brakeMeanEffectivePressureDifferential dialog = mc33810Dialog, "MC33810 IGN/INJ driver" field = "SPI settings" field = "mc33810_cs", mc33810_cs1 field = "mc33810_csPinMode", mc33810_csPinMode field = "Chip configuration" field = "Maximum dwell (IGN pins mode only)", mc33810maxDwellTimer field = "Disable auto recovery from OV/UV", mc33810DisableRecoveryMode field = "Disable ING mode if you have no IGBT/MOSFETs on board and no feedback routed to IC" field = "GD0 output disable IGN mode", mc33810Gpgd0Mode field = "GD1 output disable IGN mode", mc33810Gpgd1Mode field = "GD2 output disable IGN mode", mc33810Gpgd2Mode field = "GD3 output disable IGN mode", mc33810Gpgd3Mode commandButton = "Reinitialize", cmd_mc33810_init indicatorPanel = acrActiveDiagPanel, 1, { 1 } indicator = { acrActive }, "ACR off", "ACR on", white, black, green, black dialog = harleyAcr, "Harley Automatic Compression Release" field = "Pin", acrPin field = "Pin 2", acrPin2 field = "cutFuelInAcr", cutFuelInAcr 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 commandButton = "ACR #1", cmd_test_acr_valve commandButton = "ACR #2", cmd_test_acr2_valve panel = acrActiveDiagPanel dialog = kLineDialog, "K Line" field = kLineBaudRate, kLineBaudRate field = verboseKLine, verboseKLine field = hondaK, hondaK field = kLineDoHondaSend, kLineDoHondaSend field = kLinePeriodUs, kLinePeriodUs dialog = parkingLot, "Experimental/Broken" ; field = uiMode, uiMode field = auxiliarySetting1, auxiliarySetting1 field = can1ListenMode, can1ListenMode field = can2ListenMode, can2ListenMode field = rethrowHardFault, rethrowHardFault field = canGpioType, canGpioType field = "I understand ECU Locking", yesUnderstandLocking field = "! Use console for unlocking" field = "Tune read/write password", tuneHidingKey, { yesUnderstandLocking == 1 } field = verboseQuad, verboseQuad ; field = useEeprom, useEeprom field = "#System hacks" field = "vvtBooleanForVerySpecialCases", vvtBooleanForVerySpecialCases field = watchOutForLinearTime, watchOutForLinearTime field = "TS over CAN debug", verboseIsoTp field = "MAP Averaging Logic @", mapAveragingSchedulingAtIndex field = "showHumanReadableWarning (affects Burn)", showHumanReadableWarning field = "Warning Message", warning_message field = "Ford/Toyota redundant TPS mode", useFordRedundantTps field = "Secondary TPS maximum", tpsSecondaryMaximum, {useFordRedundantTps} field = "Ford/Toyota redundant PPS mode", useFordRedundantPps field = "Secondary PPS maximum", ppsSecondaryMaximum, {useFordRedundantPps} field = "consumeObdSensors", consumeObdSensors, { canReadEnabled == 1 && canWriteEnabled == 1} field = "BRZ/FRS/GT86 pedal", allowIdenticalPps field = "Artificial Misfire", artificialTestMisfire field = "Always use instant RPM", alwaysInstantRpm field = vinNumber, vinNumber field = turbochargerFilter, turbochargerFilter field = auxFrequencyFilter, auxFrequencyFilter field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors field = "TODO KS mode 4569", kickStartCranking panel = allTriggerDebug panel = torqueTableTbl help = helpGeneral, "rusEFI General Help" webHelp = "http://www.rusefi.com/" 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 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 peak", 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} commandButton = "HPFP Valve", cmd_test_hpfp_valve 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} indicatorPanel = IgnitionDiagPanel, 1, { 1 } indicator = { ignitorDiagnostic1 > 1 }, { Ignition out 1: bitStringValue(outputDiagErrorList, ignitorDiagnostic1 )}, { Ignition out 1: bitStringValue(outputDiagErrorList, ignitorDiagnostic1 )}, green, black, red, black indicator = { ignitorDiagnostic2 > 1 }, { Ignition out 2: bitStringValue(outputDiagErrorList, ignitorDiagnostic2 )}, { Ignition out 2: bitStringValue(outputDiagErrorList, ignitorDiagnostic2 )}, green, black, red, black indicator = { ignitorDiagnostic3 > 1 }, { Ignition out 3: bitStringValue(outputDiagErrorList, ignitorDiagnostic3 )}, { Ignition out 3: bitStringValue(outputDiagErrorList, ignitorDiagnostic3 )}, green, black, red, black indicator = { ignitorDiagnostic4 > 1 }, { Ignition out 4: bitStringValue(outputDiagErrorList, ignitorDiagnostic4 )}, { Ignition out 4: bitStringValue(outputDiagErrorList, ignitorDiagnostic4 )}, green, black, red, black indicator = { ignitorDiagnostic5 > 1 }, { Ignition out 5: bitStringValue(outputDiagErrorList, ignitorDiagnostic5 )}, { Ignition out 5: bitStringValue(outputDiagErrorList, ignitorDiagnostic5 )}, green, black, red, black indicator = { ignitorDiagnostic6 > 1 }, { Ignition out 6: bitStringValue(outputDiagErrorList, ignitorDiagnostic6 )}, { Ignition out 6: bitStringValue(outputDiagErrorList, ignitorDiagnostic6 )}, green, black, red, black indicator = { ignitorDiagnostic7 > 1 }, { Ignition out 7: bitStringValue(outputDiagErrorList, ignitorDiagnostic7 )}, { Ignition out 7: bitStringValue(outputDiagErrorList, ignitorDiagnostic7 )}, green, black, red, black indicator = { ignitorDiagnostic8 > 1 }, { Ignition out 8: bitStringValue(outputDiagErrorList, ignitorDiagnostic8 )}, { Ignition out 8: bitStringValue(outputDiagErrorList, ignitorDiagnostic8 )}, green, black, red, black indicator = { ignitorDiagnostic9 > 1 }, { Ignition out 9: bitStringValue(outputDiagErrorList, ignitorDiagnostic9 )}, { Ignition out 9: bitStringValue(outputDiagErrorList, ignitorDiagnostic9 )}, green, black, red, black indicator = { ignitorDiagnostic10 > 1 }, {Ignition out 10: bitStringValue(outputDiagErrorList, ignitorDiagnostic10)}, {Ignition out 10: bitStringValue(outputDiagErrorList, ignitorDiagnostic10)}, green, black, red, black indicator = { ignitorDiagnostic11 > 1 }, {Ignition out 11: bitStringValue(outputDiagErrorList, ignitorDiagnostic11)}, {Ignition out 11: bitStringValue(outputDiagErrorList, ignitorDiagnostic11)}, green, black, red, black indicator = { ignitorDiagnostic12 > 1 }, {Ignition out 12: bitStringValue(outputDiagErrorList, ignitorDiagnostic12)}, {Ignition out 12: bitStringValue(outputDiagErrorList, ignitorDiagnostic12)}, green, black, red, black indicatorPanel = InjectionDiagPanel, 1, { 1 } indicator = { injectorDiagnostic1 > 1 }, { Injector out 1: bitStringValue(outputDiagErrorList, injectorDiagnostic1 )}, { Injector out 1: bitStringValue(outputDiagErrorList, injectorDiagnostic1 )}, green, black, red, black indicator = { injectorDiagnostic2 > 1 }, { Injector out 2: bitStringValue(outputDiagErrorList, injectorDiagnostic2 )}, { Injector out 2: bitStringValue(outputDiagErrorList, injectorDiagnostic2 )}, green, black, red, black indicator = { injectorDiagnostic3 > 1 }, { Injector out 3: bitStringValue(outputDiagErrorList, injectorDiagnostic3 )}, { Injector out 3: bitStringValue(outputDiagErrorList, injectorDiagnostic3 )}, green, black, red, black indicator = { injectorDiagnostic4 > 1 }, { Injector out 4: bitStringValue(outputDiagErrorList, injectorDiagnostic4 )}, { Injector out 4: bitStringValue(outputDiagErrorList, injectorDiagnostic4 )}, green, black, red, black indicator = { injectorDiagnostic5 > 1 }, { Injector out 5: bitStringValue(outputDiagErrorList, injectorDiagnostic5 )}, { Injector out 5: bitStringValue(outputDiagErrorList, injectorDiagnostic5 )}, green, black, red, black indicator = { injectorDiagnostic6 > 1 }, { Injector out 6: bitStringValue(outputDiagErrorList, injectorDiagnostic6 )}, { Injector out 6: bitStringValue(outputDiagErrorList, injectorDiagnostic6 )}, green, black, red, black indicator = { injectorDiagnostic7 > 1 }, { Injector out 7: bitStringValue(outputDiagErrorList, injectorDiagnostic7 )}, { Injector out 7: bitStringValue(outputDiagErrorList, injectorDiagnostic7 )}, green, black, red, black indicator = { injectorDiagnostic8 > 1 }, { Injector out 8: bitStringValue(outputDiagErrorList, injectorDiagnostic8 )}, { Injector out 8: bitStringValue(outputDiagErrorList, injectorDiagnostic8 )}, green, black, red, black indicator = { injectorDiagnostic9 > 1 }, { Injector out 9: bitStringValue(outputDiagErrorList, injectorDiagnostic9 )}, { Injector out 9: bitStringValue(outputDiagErrorList, injectorDiagnostic9 )}, green, black, red, black indicator = { injectorDiagnostic10 > 1 }, {Injector out 10: bitStringValue(outputDiagErrorList, injectorDiagnostic10)}, {Injector out 10: bitStringValue(outputDiagErrorList, injectorDiagnostic10)}, green, black, red, black indicator = { injectorDiagnostic11 > 1 }, {Injector out 11: bitStringValue(outputDiagErrorList, injectorDiagnostic11)}, {Injector out 11: bitStringValue(outputDiagErrorList, injectorDiagnostic11)}, green, black, red, black indicator = { injectorDiagnostic12 > 1 }, {Injector out 12: bitStringValue(outputDiagErrorList, injectorDiagnostic12)}, {Injector out 12: bitStringValue(outputDiagErrorList, injectorDiagnostic12)}, green, black, red, black dialog = OutputDiagDialog, "Output diagnostic", xAxis panel = IgnitionDiagPanel panel = InjectionDiagPanel [Tools] ;addTool = toolName, PanelName addTool = veTableGenerator, "VE Table Generator", veTableTbl #if LAMBDA #else addTool = afrTableGenerator, "AFR Table Generator", afrTableTbl #endif